I hereby decree

by David LeMieux


Just a thought:

Valve recently announced a beta release of Big Picture. Big Picture lets you access and play your Steam library of games (or at least the compatible portions) on a large screen or TV using a console controller. Valve's main selling points for doing this are that a player doesn't have to give up all the collateral - friends, games, and achievements - when he or she decides to play video games "in the living room." A very interesting idea, but I have been wondering lately if maybe something else is going on.

Valve developers seem to be upset about the horizon of PC gaming. With some open concern about Windows 8 and what seems like a continuous march towards limitation and control from OS makers (app stores, sandboxes, etc.) it makes sense that Valve would start to explore alternate means of distribution. If you take the recent Big Picture announcement and combine it with even more recent news about Steam for Linux and add a sprinkling of desire to be free of OS overlords, it seems to me, at least, that Valve might be thinking of a future in set top devices. Or, if nothing else, linux powered machines that can run Steam powered games and allow players to play them on a large machine. Add in a controller and you've essentially created a console.

If anyone is going to disrupt the console market, I suppose Valve is in a unique position to do so. They already have the distribution and game mechanics architecture and have been learning how to scale both. They have a nice library of games, many of which already have console counter parts. Valve also has a tremendous fan and user base that would be willing to give things a go. If Valve stays consistent with their other marketing strategies, they are poised to take on the larger players.

That said, this could also be seen as a sustaining innovation. Either way, if Valve is considering a move toward set top hardware or alternate means of distribution to get around what they feel are too many OS restrictions this Big Picture beta test will give them at least a glimpse in to how users might react.

Then again, this is pure speculation. I could be 100% incorrect. I like to hope that there is at least a smidgen of truth in this thinking though, because it would be cool.


Comments (View)



Lately I have been experimenting with different phone ring sounds. Here are some I have found to be the most effective:


Comments (View)



My brother and I have been updating a new blog. Check out Things on Skateboards


Comments (View)



I have been doing a lot of mobile testing lately (have you tried Adobe Shadow? It is handy) and I find myself wishing there were a super simple way to get whatever text or url I am looking at to my phone. I haven't taken the time to look for apps or other solutions, so I made a bookmarklet that turns selected text in to a QR code for easy mobile scanning.

Make QR

I have only tested it in Chrome, so forgive me if it doesn't work otherwise.

Update: Here is the Gist


Comments (View)



E.ggTimer has a new options menu, safely guarded by the word "beta". It allows you to CHANGE THE SOUND, which has always been the number one request. Feel free to check it out, if you can find it.


Comments (View)



A long while ago I decided to get my toes wet with Ruby, feel the waters and ease myself in to an ocean of new code. To do so I made a simple command line utility to help manage repeated tasks through aliases. I called it "please" because that way when you use the command it looks like you are asking the computer to do something for you and you are being polite. Technology and decency all wrapped up in one.

Please is available on github and works on Mac OS X. It is also available as a ruby gem:

$ gem install please-command-alias-manager

although there really isn't much reusable code and therefor breaks some of the gem mentality/pattern. Oops.

Lets say you have some long command you have to run regularly, like tail a specific log file. With please

$ tail -f /Users/username/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt


$ please tail flash log

Since you can define the aliases in natural language, you don't have to worry about remembering the one-word or oft-hyphenated command from ~/.bash_profile. Here is another example.

$ networksetup -setairportpower airport {on/off}


$ please toggle wifi

on/off _

This one demonstrates that aside from simple aliasing you can also use a replacement/template like syntax to natural language prompts for command line arguments. Here is one last example:

 please --add "save clipboard as audio" "pbpaste | say -v {voice} -o ~/Desktop/{filename}"

This creates the command "please save clipboard as audio" and then prompts you for the voice and file name.

I've been using it regularly for over half a year now and I recently gem-ified it as well as added some nice new features. I figured I would let others have access to it if they wanted. Don't go looking in to it too deeply though, it is far from perfect. As always, feedback is welcome.


Comments (View)



NASA Image -> HTML/JS -> Poster

Recently I used one of my JS/Canvas Experiments to make a real poster print (through Zazzle). I started with a public domain image from NASA of the STS-130 lifting off from the launch pad.

The Original

Next I ran it through my Qaudrant algorithm with a few tweaked settings, making the output five times as large as the original image. I did this because I wanted the print to be at least 350 ppi and the output is normally 72 ppi. 72 x 5 = 360. I also added extra width to the borders to make them more apparent in the print.

Normally the output looks like this:

Regular Output
Regular Output

But I changed the settings and removed the fills and got this:

Configured Output with Lines
Configured Output with Lines

The image processing recursively divides the image in to quadrants and if a given quadrant meets a certain color-similarity threshold it will make that quadrant the average or most common color within. The effect is that areas with more detail (defined by more color) get smaller, more details boxes. It is really effective at tracing clouds. You can watch it work in real time (modern browser recommended)

It turns out that Google Chrome has a hard time managing large image data url strings (the output from the manipulated canvas image) and so the 5x increase would often times crash my browser. To make it work I would output the data url string to the console (this, too, would tax the system, a 4.5Mb string is a beast to manage it would seem) and then I copied it in to a separate file. I then used the file contents and ran it through a PHP script which then rendered the final image as output.

A little cropping in photoshop and I uploaded the file, sent it to the printer, and got this:


Aside from cropping I did no re-touching in photoshop. When I do it again I might adjust the brightness/contrast for a better print. I might also try to calibrate my monitor so I get a better feel for it. I might also use glossy poster paper instead of matte.

Overall I am satisfied. There is something nice about having a physical object. I plan on trying more, perhaps with different printers or options and sizes.

UPDATE: Here is the final output (3.4Mb)


Comments (View)



Merry Christmas!
Merry Christmas!

Valerie and I don't often remember to send out holiday cards. You know the type, the ones with a picture of the family and sometimes a note recapping the year's activities. We always talk about doing it, but never do it.

This year on Christmas Eve I had an idea to make a digital card. The original idea was something like an 8-bit snow-globe but I knew the first thing Val would say would be "but our picture doesn't look very clear" (or something along those lines) so I came up with a little trick. The picture starts out clear, but then as the 8-bit carol plays and the holiday greeting appears from the bottom, the picture is blocked in to a more 8-bit-like image (not true 8-bit, of course). You can check it out here, make sure to have your speakers on.

I have been doing a lot of Flash programming at work so for this card I decided to use just HTML, Javascript and CSS. I took advantage of some of the code libraries I made this year, like Cigar and my previous canvas experiments as well as some third-party code libraries, mostly from Grant Skinner. I tested the card in Chrome, Safari, and Firefox (all the latest version) and I took a glance at it in IE. The only major difference was that I still haven't gotten the font-face to work in IE.

In theory it should work on mobile safari or any html5 compliant mobile browser but it doesn't because of restrictions in place by those browsers (e.g. no sound loading unless dictated by user action). I could have added more support for those devices, but I put this together in about three hours late Christmas Eve and any more time spent would have meant it wouldn't have been ready for Christmas Day. It almost wasn't as it is.

My favorite part is the snow, and my lovely family of course.

UPDATE: I added support for iOS devices now, too.


Comments (View)



Sometimes you need an invalid feed or some random artifact crucial to helping you debug and test your web application. I hope to turn My Imaginary Site a resource for just that.

I've owned the domain for long enough now. I purchased it as a kind of personal inside joke. Now I want to make something useful of it. I have been ever-so-slowly filling it in, and it is still really sparse.

Please send any suggestions my way.

Keep in mind that this isn't meant to be some amazing end-all be-all resource. I just want a quick index of all those things you find yourself needing in application development. "Man, I really wish I had a way to load a feed url that timed out after 'n' number of seconds." - I will soon have a link for that up on the site. So that kind of thing.


Comments (View)



It is with a little sadness that I admit that I did not participate in this years Trunk or Treat.


I had an awesome idea and about a month ago I got started on the beginning work for it. Somewhere along the way, though, it became apparent that I wouldn't be able to complete it and unfortunately after that I never switched to another, perhaps easier, idea.

The creative process is interesting. Not every idea takes off and of the ones that do not many are ever completed. I am not upset that I wasn't able to participate this year and protect my reign as King of the Trunk or Treat. In fact, it was relaxing to just take my kids and enjoy the evening. But when I am not making things I feel like I am just sitting around twiddling my thumbs. It isn't a feeling I like.

That is why I am such a proponent of just doing things. Have an idea? Work on it in some small way. A sketch. A list. Initial research.

This has been an off year. I have gotten a lot done, but not in the areas I expected.


Comments (View)