Steganography: A First Foray

There’s something satisfying about the thought of a message hidden in plain sight.  A puzzle whose very existence is the prize to find.  A maze with cheese at the end.  Good cheese.  None of that Kraft singles crap.  Gouda.

Steganography has a history stretching back to Greek philosophers.  One if its most widely used current incarnations involves the manipulation of image files.

shuttered window partially masked by flowering bush - and maybe something else?

Kodak Image 7 from the True-color Kodak test images

Gouda goes to the first commenter with the message.

Ginger Champagne 2014

Another year another batch of ginger champagne.  The 2013 batch turned out pretty well but a little sweeter than we expected.  A couple bottles didn’t carbonate but made for a decent liqueur and mixer.  Overall it was good enough that we decided to do another batch.  We adjusted the recipe in a couple of different ways.  First, we decided to make a full 5 gallon batch instead of the half batch we made last year.  We also used a mix of brown and white sugar, but less of it than last year since it turned out on the sweet side.

This was the first time we brewed a 5 gallon batch and we ran into some difficulties we didn’t anticipate.  We didn’t have a pot large enough so we ended up using multiple batches and then adding extra water after the steep.  Since we used multiple pots we needed multiple steeping bags but only had one.  Next year we’ll either buy an appropriately size pot or sterilize some water ahead of time to cool with.  Or both.

The recipe we used was basically a double batch of last year’s recipe with the following alterations:

  • 1lb 10oz ginger, peeled and grated
  • 3lbs 6oz brown sugar
  • 6lbs 12oz white sugar

We saved the ginger and zested the lemons again to make some infusion experiments.  I made ginger-lemon brandy and ginger-lemon vodka that I’m looking forward to trying out soon!

Year in Review 2013

Too much happened in 2013 and too recently for me to try and review everything that happened, so I’ll stick to the things most relevant to this blog.  Namely my projects and this blog itself.

First, some blog stats:
Articles:  7 (up 140% from last year’s 5)
Total word count:  2298, 9.1 pages* (up 127% from last year’s 1803, 7.2 pages*)
Average words per article:  328.3 words / 1.3 pages* (down 9% from last year’s 360.6, 1.4 pages*)
Views:  454 (up 142% from last year’s 318)
*250 words is roughly one page, hand written

I’m happy that I wrote more than last year, though the decrease in article length isn’t super exciting.  Articles and pageviews are both up 140% which is kind of interesting.  I imagine there’s a point at which writing more doesn’t directly translate into more pageviews, but I’m pretty sure I’ll have to break the article per month barrier before that becomes true.

In 2013 I branched out a bit and started working on some new platforms.  I wrote my first ever Firefox plugin, I wrote a quick and dirty ‘Hello World’ style app for my new Pebble watch, and got my feet wet with some home automation.

I’ve started using two new tools this year that have really helped me be more productive and organized.  I started using Beeminder in September and have found it to be a fantastic addition to my toolbox.  It’s data focused goal tracking powered by science and a team that is serious about eating their own dog food.  It’s currently helping me stay in shape, write more, and be more productive all around.  They also have an excellent data policy (you own it and can leave whenever you want to).  I also recently migrated my to do lists to Trello.  I think it’s an improvement, but I haven’t been using it long enough to tell.  I also want to give a shout out to 750words.  My one month trial just expired and I haven’t decided whether to pull the trigger on paying for it, but the trial has inspired me write more which I am very happy about.

I’m going to end this year in review on a personal note.  In November I proposed to my beautiful girlfriend Deana.  She said yes.  Don’t be surprised if you see some wedding related projects over the next year or so.

Kombucha time

I’m putting this here mostly so I don’t have to keep texting my brother for his kombucha recipe every time I want to make some.  His recipe makes a gallon but that’s a bit too much for us to go through before it starts getting too strong.  I cut it in half.

My brother’s basic recipe is as follows:

  • 8 cups water
  • 4 Tbs black tea
  • 1/2 cup sugar
  • Kombucha mama
  • Time

I have a bad habit of not finishing things.  This applies in many areas, but it’s relevant to this post because I have a lot of almost dead fancy teas.   As an exercise in finishing things I thought I’d use up a couple of teas that have been with me for an embarrassingly long time.  The recipe is in tablespoons but for Fun and Science™ I thought I’d weigh things out.  Here’s how my ‘bucha bill ended up:

  • 5 grams jasmine yin hao (from when my brother used to work for a tea distributor, I think)
  • 7 grams mango tango (from the Boulder Dushanbe Teahouse — don’t ask me when I was last in Boulder)
  • 4 grams (two tea bags) oolong tea (no story, they come in a box of 100)
Kombucha ingredients

The teas (left to right): oolong, mango tango, jasmine yin hao

It’s been a while since I last made Kombucha and our SCOBY had dried out a bit.  I gave it some more water and a bit of sugar to perk it up while the water boiled.   I poured 7 cups of boiling water on the tea ball and let it steep for two minutes.  Then I added the the last cup of water cold to help bring the temperature down.  Normally I would use less hot water so it wouldn’t take as long to cool but 7 cups was how much it took to submerge the tea ball in the crock I used.  Once the temperature cooled down enough (comfortably warm, not hot) I added the mother and covered the crock with a cloth.  It should take about a week to ferment.  When it’s ready I’ll be back with an update and let you know how it turned out.

Hello Birfday!

My birthday was this past week and Deana got me an excellently geeky gift: a Pebble! After playing around with watchfaces and installing apps, I did what any self-respecting nerd would do: I decided to write myself a birthday app.  It’s just Hello World with a birthday twist, but I had a lot of fun and was impressed with how easy it was to get started.

I’m currently between dev machines (my last laptop died a gruesome bootloadery death) so I spent a while trying to get things set up on my Windows box.  There’s a VM you can use with all the dev tools already setup so I started installing Vagrant and VirtualBox.  Once I got to actually pulling down the VM image I hit a roadblock.  With my crappy Clear connection it was going to take ~4 hours to download.  It was already past 3 in the morning at this point and I wanted to get this done before going to bed.  Enter CloudPebble. It’s an online Pebble IDE.  It’s fantastic.  You make your code changes, you hit compile, it gives you a nice short URL you can visit from your phone to download the pbw file so you can install it on your phone and watch.  I’m a huge fan.  You can even hook it up to GitHub so you can push/pull to a repo from the site.

Once I made it to CloudPebble it was smooth sailing.  I did a Hello World tutorial and started tweaking to get things right.  I replaced “Hello World” with “Happy Birthday Avner!” which didn’t quite fit on the watch’s screen (watchface?).  I broke up the sentence into two text layers and offset them from each other. Ta da!

Check out the Hello Birfday source if you want to see what Pebble apps look like.

Chicago Food Inspections Explorer

As a first foray into playing with some of Chicago’s public data I decided to take a look at the food inspections data.  I started off by making a proof of concept — a basic web form for searching by address or restaurant name.  On the face of it, this isn’t a whole lot more useful than the search on Chicago’s data portal site, though it does cull some of the less immediately interesting columns.   The next step was building a Firefox Add-on that activates when you go to yelp (install the xpi or check out the source code).  When you visit a restaurant’s page it automatically inserts the latest inspection data in a collapsible box underneath the restaurant’s star rating.


Before expanding the actual inspections.


After. Note, don’t use this on any fast food restaurants you want to keep eating at. Taco Bell wasn’t chosen by accident.

This was my first time writing a Firefox Add-on and figuring out where to start turned out to be a little more complicated than I expected.  There are a couple of different ways to extend Firefox, and while Mozilla has some fantastic documentation, there were a lot more choices that needed to be made up front than I realized (such as do you use the Add-on builder vs. the Add-on SDK).  I decided to use the Add-on builder, Mozilla’s in-browser IDE for developing Add-ons that only need access to high level APIs.

Obviously this is still alpha software.  There’s bound to be bugs, and I can guarantee you that the inspection data could look prettier. If you do decide to give it a whirl, please let me know of any bugs you find on the issues page or via email.

Be Careful What You Wish For

A couple  summers ago I went on a lovely bike ride through the forest preserves to the Botanical Garden with my girlfriend Deana.  As we usually do on such an outing, we packed a picnic like it was a brown bag lunch for an eight year old.  String cheese, peanut butter and jelly and, of course, juice boxes (she likes the dumb 100% juice kind, I’m a hi-c man).  While we were eating lunch, Deana remarked in an off hand way that the only way the day could be better was if she had someplace to put her juice box so she could drink it while we rode.  Fast forward to her birthday in December:

Bike mounted juice box holder

Of course she had no recollection of that conversation.

That’s actually the second of three iterations.  The first one broke before it was even mounted on her bike.  The second vibrated to pieces after a couple rides.  By making the side slats wider and applying a bit of super glue I was able to fix both problems.  The second version also didn’t do a very good job of actually keeping the juice box from flying out when you hit a bump, so I added a bit of elastic to hold it down.

Bill of materials:

1 1′ x2′ 1/4″ thick piece of wood for laser cutting (that’s just the size of the laser cutter’s bed at PS: One)
4 3″ long #10-32 bolts
4 #10-32 acorn nuts
super glue

The broken first version

The first iteration.  Ouch.

I’m currently working on a new version since the alternating slats are a little delicate for the kind of beating riding Chicago’s streets all year puts this thing through.  Shout out to Deana for being such a champ and putting up with the necessary revisions.  Stay tuned for updates!



September 2014
« Mar    


Get every new post delivered to your Inbox.

Join 753 other followers