Category Archives: Uncategorized

$40 USB microscope is awesome

0 minutes, 7 seconds

On an impulse, inspired by reading a blog post, I bought a 50x illuminated $40 USB microscope.  It is awesome and works driverlessly on Ubuntu .  That is all.





On ClouldFlare’s use of reCAPTCHA

1 minute, 13 seconds

I’ve been using Tor quite a bit of late.  It’s awesome!!  I encourage you to check it out today. One of the drawbacks to using Tor is that some content deliver networks (CDNs) block traffic from the Tor network by default. For example, the way CloudFlare blocks Tor is to present a captcha for Tor visitors. The Tor blog had an interesting write up of this back in August of 2014.

Inspecting the HTML of a CloudFlare reCAPTCHA on

Inspecting the HTML of a CloudFlare reCAPTCHA on

Being a web developer, I’ve implemented many captchas and, specifically, reCAPTCHA which CloudFlare uses.  Google has recently come out with v2.0 of reCAPTCHA which looks freakin awesome. That said, I think the “no captcha” term in that blog post isn’t quite accurate as you do have to click to prove you’re human in their v2.0 GUI.

Today’s post, which falls clearly into the “rambling” category, is about CloudFlare’s implementation of reCAPTCHA.  They’re using an early version, v1.0, on their site.  If you look at the customizing reCAPTCHA guide for v1.0 it clearly spells out the changes you can make on how it looks:

You must state that you are using reCAPTCHA near the CAPTCHA widget.

Though CloudFlare has the question mark icon which links to reCAPTCHA, I don’t think it follows the proper branding guides.

To wrap up this ramble, I posit:

  • CloudFlare should heed Tor’s advice on handling Tor traffic
  • CloudFlare should properly attribute reCAPTCHA

PS – the astute, Tor using reader may note that I’m using an outdated version of the Tor Browser in the above screenshot.  This has since been rectified ;)

Shibby Tomato firmware on Asus RT-N66U router via OS X plus tcpdump

2 minutes, 6 seconds

asus.routerI’ve been trying to get close to what I call “end to end open source” (you know, as opposed to encryption) which means that everything from my desktop OS to my router to my firewall should be running non-proprietary software. Though I’ll probably keep  OS X on my MacBook Air,  I already have the notes for another post on running Ubuntu on my 27″ iMac.

The first stop on my EtEOS quest was my router.  I’ve happily been running a Netgear AC1750 for some time. It runs the stock firmware. I did try the Asus RT-N66U a bit ago, but had WiFi connectivity problems that I couldn’t resolve.

A while ago I ran DD-WRT and was happy with it, so I went looking for what was the new open source hotness to run on your router. After some DuckDuckGoing, I found Tomato by Shibby. This looked great! Prior open source firmware for the Asus didn’t have full (or any?) support for the 5 GHz radio, but this guy looked to be the whole enchilada. A post over on Nelson’s Log gave me some tips about getting it to work. Take note of his warning that 5 GHz doesn’t work until a second reboot.

However, the install instructions required installing Asus Software on a Windows box. That’s silly. Chris Hardie had a post about how to do this with a Mac (or a Linux box). It worked great.

After getting the router flashed with Shibby and doing a second reboot to get 5 GHz working, I set about kicking the tires on my new rig. After enabling it, SSH didn’t seem to work, and that’s because you need to log in with user of “root” instead of “admin.” Thanks to a post on forums for that tidbit. Now that I had shell on my router, which tires should i kick? How about tcpdump? I’ve always wanted to be able to see what the apps on my phone were up to. This isn’t easy unless you capture the packets on the phone, which requires root. The other way is to capture the packets on the last hop out of your network, aka your newly rooted, shibby shimmyin’ RT-N66U.

Though it’s a bit dated, Martin Denizet’s post was great for a getting a local binary of tcpdump on my router. It was a bit shady loading an arbitrary binary onto my router, I’ll admit. Then I did some light reading on how to capture full packets compliments of a post by Noah Davis. After running tcpdump targeting the IP of my phone, I scp-ed the resulting file to my desktop and opened it up in Wireshark. Awesome! There’s all my little apps phoning home (oh, pun not intended, really) and POSTing and GETing all in the clear for me to research.

Importing and Trouble Shooting WordPress Imports

4 minutes, 3 seconds

I’ve recently achieved the life long dream of having one single WordPress instance for all my blogs and blogs I host. No more days of upgrading 15 different instances, but the forgetting that one rarely used instance and having that one instance get hacked. No more uploading the best new plugin to every which directory on the server. One install to rule them all!

However, as part of this, it meant exporting and importing a lot of content. I got pretty good at this as well as figuring out a lot of tricks along the way. Here’s some of my knowledge I gleaned that might help you if you’re faced with the same task!

Backups – Before starting down the path of any major code or data transfer, you should be sure you have backups of all your data. But, this isn’t a big deal for you, right? Right! That’s because you already back up all your blogs both on site and off. If you need help, check out WordPress Backups in the codex. Don’t forget, your backups are only as good as your restores. Be sure you test your backups to make sure they’re good!

Easy testing – Let’s say you have your WordPress network install for your fancy pants website at:  This means that, by default, to create a new site called “eatatjoes” you’ll need to:

  • Create the new “Eat At Joes” WordPress instance in the network admin site
  • Add a new ServerAlias in your apache vhost:
  • Add a new DNS entry: 60 IN CNAME
  • And finally, don’t forget to restart apache:
    apachectl graceful

That’s a whole lot of work just for an instance that you’ll likely move to and do all the steps above again.  Instead, what I did was:

  • Create a wildcard DNS entry for *  For me this was easy to do in Namecheap, my registrar and DNS host.
  • Create a wildcard server alias in your apache vhost:
    ServerAlias *
  • And finally, again, don’t forget to restart apache:
    apachectl graceful

Now, any time you create a instance, say irockaroundtheclock, in the network admin <BAM!> it will just work at  No editing of apache files, no updating DNS and no forgetting to bounce apache.  When testing instances and needing to delete failed import attempts to start from scratch with a different sub-domain, this made things very easy. This does assume you’re using name based hosting.

Good Prep – I’ve found that this is the checklist for successfully importing of a blog:

  • Using your new easy-to-test-a-new-instance set up from above, be sure you know how to create a new instance in the network admin interface.  You don’t want to cut your teeth learning how to create a site for the first time and then realize you’ve lost hours of work because you made a first timers mistake. Create and delete ’til you get it right!
  • Inventory all your plugins and themes on your old sites and add them to you new network site. Watch out for incompatible plugins from old sites which might throw a wrench in the works.
  • The first plugin you install in each new instance will need to be WP’s own Importer. While we’re on the topic, read up on the codex entry.
  • Create all your users before hand.  This way when you’re creating a new site or importing it’s easy to assign the existing user to be the owner. I choose to uncheck the “Send this password to new user via email” and disseminate passwords via one time secret instead.
  • You may also opt to communicate to your users that you’ll be doing some testing.  If you fat finger an import, it can email each of the authors that you just created an account for in the new instance.  See prior step as well!

Loss-less Data Imports – Having written a WordPress plugin or two, I know that plugins store their data in either the posts database table, along with your existing posts, or their own table created when the plugin was installed. If your importing data for a plugin that follows the “use the posts table” model, then you need to activate and configure this plugin before you import.  If you don’t, you’ll either lose the data for the plugin or it might be missing pieces or be corrupted. The bummer is if your plugin has its own tables outside of the posts table, it will then need to have its own export/import features.

Import Problems – If you’re having problems running the importer because it won’t finish because of errors, try turning on the debug output.  In the WordPress Importer plugin directory (WPHOME/wp-content/plugins/wordpress-importer) find the wordpress-importer.php file.  Edit this line:

/** Display verbose errors */
define( 'IMPORT_DEBUG', false);

To be true:

/** Display verbose errors */
define( 'IMPORT_DEBUG', true);

In my case the plugin complained that images imported didn’t match the size of the original:

Remote file is incorrect size

Imports failed :( When I ran strings on the imported image I saw this at the very end:

<!-- WP Super Cache is installed but broken. The constant WPCACHEHOME must be set in the file wp-config.php and point at the WP Super Cache plugin directory. -->

Going to the original, old site and disabling the Super Cache plugin fixed my import problems.  Yippee!

How I Make Coffee

0 minutes, 38 seconds


  1. Start kettle on the stove
  2. Measure 24 grams of beans
  3. Grind beans in bur grinder
  4. Wet Chemex filter
  5. Put grinds in Chemex filter
  6. Pour 30-60 grams by weight of water to bloom grinds
  7. Wait
  8. Poor a total of 240 grams by weight of water
  9. Enjoy


  • I use a scale
  • My target is 10 to 1, water to grinds. For 24 grams, I would use 240 grams of water, by weight.
  • My grinder is Kitchen Aid KPCG100OB Bur Grinder
  • I use a small Chemex
  • I get my beans from the wonderful Bica Coffee House
  • The grind is set to be as course or fine as Bica grinds their poor overs
  • I drink my coffee black
  • I try to use beans that were roasted less than 3 weeks ago
  • I store my beans in a hermetically sealed, light proof jar
  • 8oz fluid ounces of coffee per serving is just right for me!

Apple’s fancy monitor cheaper than Dell’s

0 minutes, 50 seconds

For a long time now I’ve been a fan for Dell’s monitors. I was one of the first folks at work who suggested we cut over from Apple’s expensive (and prettier) monitors to Dell’s cheaper (and more utilitarian looking) monitors. This is all due to my obsession with hi-res and large monitors.

Very recently, I noticed something odd: Apple is now cheaper than Dell in the big monitor game. The new hotness is IPS for high contrast and great viewing angles (here’s the crappy wikipedia IPS link). Yup Dell’s 27″ U2711 is $1100 or their 30″ U3011 is $1500. Apple is no longer selling (or not really trying to sell) their 30″ and their (only?) monitor, the very same one in the iMac, is a 27″ LED Cinema Display for $999. Black is white, up is down and dogs are living with cats.

This all said, you’ll have to deal with super future thinking Apple and their mini DisplayPort only monitor. However, it does come with speakers and nice webcam. For now though, I’m still gonna stick with my 24″ Dell I’ve had for the last 4 years or so. Frickin love that thing.

Old Tools, Loved Tools

0 minutes, 43 seconds

Though I’m trying to be less and less attached to my material possessions, I do have some that I love having. Two that come to mind are some of the first tools I ever got. They’re nothing fancy, they’re beat up, but I love them and every time I use them I think of all the things I’ve fixed, built and destroyed with them. I also like that the screwdriver is a bit melted from the time I learned about electricity. Pow! There goes the fuse and a chunk of my screwdriver. A few singed eyebrow hairs and I was fine. I think my fave are the dikes.

The sun was setting the other day and I had just used these two guys. I threw them down on the cement and did an ad hock photo shoot. You can see I used the screwdriver as a third leg to get a close up of the jaws of the pliers.

WordPress 3.0 Released – Time To Upgrade

0 minutes, 18 seconds

As I’ve mentioned time and time again, you should keep your WordPress instance up to date. Go upgrade today! I just did and it worked with out a catch. Ever since 2.7 when they released autoupgrade with SFTP support, It’s much more simple to keep things current. Don’t open up FTP to your server (no passwords in the clear!), but do open SFTP and make your life much easier.