This image contains a hidden audio track

This image contains a hidden audio track which you’re very familiar with. Well, it used to. We’d bet we messed up the careful encoding that [Chris McKenzie] used to hide data within an image when we resized the original.

He’s using a method called Steganography to hide a message in plain sight. Since digital images use millions of colors, you can mess with that color data just a bit and the eye will not really be able to pick up any difference. Each pixel has had the eight least significant bits swapped out for the data [Chris] is hiding. Since the image uses 24-bit color, the largest possible change (going from 0 to 255) in those bottom eight bits will only result in a color change of about 0.15%. And that’s only for one pixel; in most cases the change will be much less.

He shows his work, both decoding and encoding using Ruby, and even provides a one-liner which lets you playback the audio without downloading anything (just make sure you’ve got all of the dependencies installed). Never gonna give, you, up…

[via Reddit]

Spamming a label printer with #cookiehammer

[John] has always loved stock ticker machines. These machines are highly collectible, so short of finding one that wasn’t hurled from a Manhattan skyscraper in 1929, a stock ticker is out of reach for the casual enthusiast. There is another way to get a stock ticker-like device though: hack a label printer to print out stuff from Twitter.

The build is really quite simple. A Dymo thermal label printer was modified to accept standard 2.25″ point of sale receipt paper. Now that the printer can shoot out line after line of text, [John] wrote a little bit of Ruby code using a Twitter API, RMagick for graphics processing and a Dymo printer driver.

Every 30 seconds, the code does a Twitter search for a specific hashtag and prints those tweets. #cookiehammer was the first thing that came to mind, so it stuck. Right now there’s a few tweets for #cookiehammer, but we expect [John] will have to put a new roll of paper in his printer fairly soon.

It may not be as informative as a stock ticker machine, but we think [John]’s twitter printer build sure beats watching CNN. Check out the walk through after the break.

Continue reading “Spamming a label printer with #cookiehammer”

ATtiny Hacks: Simple USB temperature probe

ATtiny Hacks Theme Banner

[Dan’s] office is awfully hot, but he needed some real temperature numbers that he could show the building management office to justify opening a maintenance ticket. He had seen some simple temperature probe examples online, and decided to build his own using a small AVR chip.

Based off a similar temperature monitoring example called EasyLogger, his temperature probe uses an LM34 temperature sensor, which is wired to an ATtiny45. The ATtiny communicates with his computer using the Ruby-USB library in conjunction with a bit of Ruby code he put together. Once the data is obtained, all of the temperature measurements are logged and graphed using RubyRRDTool.

As you can see by in the image above, his office is far hotter than it should be, so we’re pretty sure he’s happy to have actual measurements to back up his claims.

If you are looking to make a small temperature probe of your own, his code, schematics, and links to all of the tools he used in the project are available on his site.

Distributed computing in JavaScript


We’ve heard about the idea of using browsers as distributed computing nodes for a couple years now. It’s only recently, with the race towards faster JavaScript engines in browsers like Chrome that this idea seems useful. [Antimatter15] did a proof of concept JavaScript implementation for reversing hashes. Plura Processing uses a Java applet to do distributed processing. Today, [Ilya Grigorik] posted an example using MapReduce in JavaScript. Google’s MapReduce is designed to support large dataset processing across computing clusters. It’s well suited for situations where computing nodes could go offline randomly (i.e. a browser navigates away from your site). He included a JavaScript snippet and a job server in Ruby. It will be interesting to see if someone comes up with a good use for this; you still need to convince people to keep your page open in the browser though. We’re just saying: try to act surprised when you realize Hack a Day is inexplicably making your processor spike…

[via Slashdot]

Manual protocol analysis


As a followup to last week’s post on automated protocol analysis, [Tod Beardsley] has written up how to start analyzing a protocol manually. He walks through several examples to show how to pull out the interesting bits in binary protocols. His first step was sending 10 identical select statements and capturing the outbound packets. He used the Ruby library PacketFu to help with the identification. It compared the ten packets and highlighted one byte that was incrementing by four with each packet, probably a counter. Looking at the response indicated a few other bytes that were also incrementing at the same rate, but at different values. Running the same query on two different days turned up what could be a timestamp. Using two different queries helped identify which byte was responsible for the statement length. While you may not find yourself buried in HEX on a daily basis, the post provides good coverage of how to think critically about it.

Generating MIDI with Ruby

[Giles Bowkett] has been working on a music library for Ruby called Archaeopteryx. He describes it as a “Ruby MIDI DJing/live-coding thing“. In the video above, He’s using it to generate and then morph rhythms. The Ruby code is directly controlling the step sequencer in Reason. It’s an interesting approach to music development. The video above gives a full intro to the probability approach to generation. To really get a feel for the library, we suggest you watch his presentation from RubyFringe. It shows him playing music by editing a live block of code. Check out his Vimeo feed for many more demo videos.

[via CDM]

Why I Hate Django

[Cal Henderson] delivered a keynote titled Why I Hate Django at the first annual DjangoCon. Django is an open source BSD licensed web framework written in Python. Google has posted the keynote in its entirety to YouTube, which you can find embedded above. While the talk is humorous (and takes many jabs at Rails developers) it does provide insight into what makes a good web framework. [Cal] is Director of Engineering at Flickr and is an authority on how to make websites scale. He points out that most frameworks are designed to get projects off the ground quickly, but are lacking when it comes to building an even larger service. He talks about several things in Django that need work and improvements that could be made. It’s really an interesting look at what it takes to go big. Continue reading “Why I Hate Django”