Moving from Flickr to SmugMug

[ This post is a work in progress as I work towards solutions ] I received an email from Flickr on May 9. Subject: Your Flickr account is in violation of our free account limits. You have more than 50 non-public photos on your free account. They gave me 8 days to resolve it – with the threat of deleting photos. It’s been a long time since I’ve used Flickr, but I don’t want to lose the content I had uploaded.
Read more...

Genie GPS1200IC automation with ESP8266

My garage has two doors. I’d like to be able to say “Open the garage door” to Siri. To get there, I’m going to try using Home Assistant and ESPHome. First, though, I need to know how to tell the garage door to operate. Both door openers are Genie GPS1200IC. Based on some brief research, these appear to have been made between 1996-2000. Hack a remote? My first attempt was to buy a remote and hook a microcontroller to it.
Read more...

Home Office Automation

I built a little digital Rube-Goldberg device for my office. When I turn my desk power switch on, a little microcontroller brings my workstation and stereo online. My desk has a keyboard and monitor, but no computer. The computer lives in the closet a few feet away. Also in this closet is my stereo which drives audio to for the office. This makes my desk cleaner and quieter, but makes it hard to hit the power buttons.
Read more...

Growing logstash's value

I spent a while today thinking about nerdy stuff - logstash, etc. I want to grow logstash in terms of performance, use case, deployment instances, happy users, and community. While musing about on my mental roadmap of logstash, I found most things boil down to costs and returns on investment, even with open source software. Money, time, energy, and patience are all costs. Just because something doesn’t cost any money doesn’t mean it won’t consume any time or energy.
Read more...

Puppet "pure fact-driven" nodeless configuration

Truth should guide your configuration management tools. Truth in this case is: what machines you have, properties of those machines, roles for those machines, etc. For example “foo-1.a.example.com is a webserver” is a piece of truth. Where and how you store truth is up to you and out of scope for this post. My goal is to have truth steer everything about my infrastructure. Roles, jobs, and even long-term one-offs get put into the truth source (like a machine role, etc).
Read more...

Debugging java threads with top(1) and jstack.

At work, we’re testing some new real-time bidding on ADX and are working through some performance issues. Our server is jetty + our code, and we’re seeing performance problems at relatively low QPS. The first profiling attempt used YJP, but when it was attached to our server, the system load went up quickly and looked like this: load average: 2671.04, 1653.95, 771.93 Not good; the load average while running with the profiler attached jumps to a number roughly equal to the number of application threads (3000 jetty threads).
Read more...

SSL handshake latency and HTTPS optimizations.

At work today, I started investigating the latency differences for similar requests between HTTP and HTTPS. Historically, I was running with the assumption that higher latency on HTTPS (SSL) traffic was to be expected since SSL handshakes are more CPU intensive. I didn’t really think about the network consequences of SSL until today. It’s all in the handshake. TCP handshake is a 3-packet event. The client sends 2 packets, the server sends 1.
Read more...

Headless wrapper for ephemeral X servers

For various projects I’m doing right now, I need an easy way to automatically run code in an X server that may not necessarily be the active display. This code may even run on servers in production that don’t have video cards or monitors attached. For some history on this, check out this post on xvfb and firefox. You can solve the problem in that post by simply launching firefox with the tool below, and your X server will exit when firefox exits.
Read more...

Xvfb + Firefox

Resighas a bunch of unit tests he does to make sure jQueryworks properly on whatever browser. Manually running and checking unit test results is annoying and time consuming. Let’s automate this. Update (May 2010): See this postfor more details on automating xserver startup without having to worry about display numbers (:1, :2, etc). Combine something simple like Firefox and Xvfb (X Virtual Frame Buffer), and you’ve got a simple way to run Firefox without a visible display.
Read more...