<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>I Hereby Decree</title>
<link>http://www.iherebydecree.com</link>
<description>A blog of short thoughts</description>
<atom:link href="http://www.iherebydecree.com/rss/index.php" rel="self" type="application/rss+xml" /><item>
<title>E.ggTime Open Sourced</title>
<link>http://www.iherebydecree.com/archive/id/931</link>
<description><![CDATA[A quick update to say that I put the bulk of the E.ggTimer code on Github as is. Mostly because it isn't doing much good just sitting there. Also, it will better coax me to make improvements and clean it up. <br />
<br />
<a href="http://github.com/lemieuxster/eggtimer">Check it out on Github</a><br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/931</guid>
<pubDate>Wed, 17 Apr 2013 23:18:35 -0400</pubDate></item>
<item>
<title>Family Card 2012</title>
<link>http://www.iherebydecree.com/archive/id/930</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/Card2012.jpg" width="530" height="500" alt="Responsive Design" /><br />
<em>All the different layouts. 1) Large. 2) Medium Large (iPad Horizontal). 3) Medium Small (iPad Vertical) 4) Small (iPhone)</em><br />
<br />
<br />
Continuing <a href="http://www.iherebydecree.com/archive/id/917">last years example</a> I made another <a href="http://lemieuxster.com/family/2012/card">digital family Christmas card.</a><br />
<br />
Last year I experimented with different HTML5 features including <a href="http://www.w3schools.com/tags/tag_audio.asp">audio</a> and <a href="http://www.w3schools.com/tags/ref_canvas.asp">canvas</a>. That card was JavaScript heavy.  This year I decided to try my hand at CSS and everyone's favorite buzz-work: <a href="http://en.wikipedia.org/wiki/Responsive_web_design">Responsive Design</a>. The <a href="http://lemieuxster.com/family/2012/card">result</a> is a page with a lot of rectangles and images. Clicking (or tapping) each image will flip it over with CSS 3d transitions and show new content. The JavaScript used is minimal. <br />
<br />
I had originally set out to use a framework or library like <a href="http://twitter.github.com/bootstrap/">Twitter's Bootstrap</a>. I found, however, that there was a certain amount of feature overkill for what I was trying to accomplish. <br />
<br />
I also attempted to use CSS media queries to support Retina devices, but I failed miserably. Maybe next year? <br />
<br />
I've made the code for both cards available at github. As usual, it only works in modern browsers, and even then only really in the webkit ones. I didn't want to take the time to make it compatible. Sorry.<br />
<a href="https://github.com/lemieuxster/family-card-2011">2011</a><br />
<a href="https://github.com/lemieuxster/family-card-2012">2012</a><br />
<br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/930</guid>
<pubDate>Tue, 29 Jan 2013 19:24:29 -0500</pubDate></item>
<item>
<title>From A Different Future</title>
<link>http://www.iherebydecree.com/archive/id/929</link>
<description><![CDATA[Just a story I did on Twitter.  Nothing important. <br />
<br />
Back in my day we had books. You had to pick them up and open them and turn each page by hand.— David LeMieux (@lemieuxster) <a href="https://twitter.com/lemieuxster/status/296383447189057536">January 29, 2013</a><br />
<br />
And if you wanted to know where something was you'd have to hope it was in the index or that there was even an index at all.— David LeMieux (@lemieuxster) <a href="https://twitter.com/lemieuxster/status/296383903202164738">January 29, 2013</a><br />
<br />
And from time to time certain books would be enchanted. Opening them without first saying an incantation would release all of Hell's demons.— David LeMieux (@lemieuxster) <a href="https://twitter.com/lemieuxster/status/296384408380915712">January 29, 2013</a><br />
<br />
Then you'd have to run to the warlock's house and ask him to help, but there was always a price. Your Uncle Jim gave his life for ours.— David LeMieux (@lemieuxster) <a href="https://twitter.com/lemieuxster/status/296384701957021697">January 29, 2013</a><br />
<br />
Anyway, you kids don't know how good you have it, what with these AR Contacts and cranial implants.— David LeMieux (@lemieuxster) <a href="https://twitter.com/lemieuxster/status/296385208951910400">January 29, 2013</a><br />
<br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/929</guid>
<pubDate>Tue, 29 Jan 2013 18:01:45 -0500</pubDate></item>
<item>
<title>Doing Something Different</title>
<link>http://www.iherebydecree.com/archive/id/928</link>
<description><![CDATA[For nearly as long as I've worked at Flite I've done more or less the same thing. Not just "writing code" but "writing code to do the same thing." It has been a fun challenge and actually resulted in some work I am very proud of. Recently, however, I was assigned a <a href="http://www.youtube.com/watch?v=1ppisOulgG0">new thing</a> and it has been delightfully freeing. <br />
<br />
I've worked on different projects in the past, but my main focus on all of those projects has been the <a href="http://www.flite.com/ad-innovation/platform/">ad runtime platform at Flite</a>. Now I am working on something more front-end related and the change of pace has done two things: 1) It has given me a chance to stretch different coder muscles and 2) Taking a step back from platform work, I've actually begun to get lots of creative ideas about the platform again. Previously I was feeling somewhat stuck in a loop. <br />
<br />
The stresses are different. In the platform code, I have to constantly make sure I'm not making the file size (for a file served thousands of times a minute) too large. I also have to make sure it is robust enough to work anywhere without breaking ad or webpage functionality. Not having that constant worry has been liberating. In its place are new worries - like am I writing code compatible with existing patterns and not breaking user experience - but they are new and fresh and welcome. <br />
<br />
For the one or two people who will read this: <a href="http://www.flite.com/careers/">Flite is Hiring</a> <br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/928</guid>
<pubDate>Sat, 01 Dec 2012 00:54:24 -0500</pubDate></item>
<item>
<title>Professional Skills</title>
<link>http://www.iherebydecree.com/archive/id/927</link>
<description><![CDATA[I have been with <a href="http://www.widgetbox.com">Widgetbox</a>/<a href="http://www.flite.com">Flite</a> for more than four years now and I've gained some valuable skills. I've added these skills to my LinkedIn profile. <br />
<br />
<img src="http://media.iherebydecree.com/postimages/skillz/skillzAPI.png" alt="Skillz" /> <img src="http://media.iherebydecree.com/postimages/skillz/skillzApp.png" alt="Skillz" /> <img src="http://media.iherebydecree.com/postimages/skillz/skillzGs.png" alt="Skillz" /> <img src="http://media.iherebydecree.com/postimages/skillz/skillzSummer.png" alt="Skillz" /> <img src="http://media.iherebydecree.com/postimages/skillz/skillzTweets.png" alt="Skillz" /> <img src="http://media.iherebydecree.com/postimages/skillz/skillzZune.png" alt="Skillz" /><br />
<br />
Please recommend me on <a href="http://www.linkedin.com/in/lemieuxster">LinkedIn</a>. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/927</guid>
<pubDate>Wed, 21 Nov 2012 23:33:36 -0500</pubDate></item>
<item>
<title>Dead Colors Update</title>
<link>http://www.iherebydecree.com/archive/id/926</link>
<description><![CDATA[<a href="http://media.iherebydecree.com/deadcolors.php"><img src="http://media.iherebydecree.com/postImages/deadColorsUpdate.png" border="0" width="530" alt="Dead Colors Preview"/></a><br />
<em>Updated list of DEAD colors</em><br />
<br />
Spent a few minutes to update the <a href="http://media.iherebydecree.com/deadcolors.php">DEAD Colors list</a>. Check it out. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/926</guid>
<pubDate>Tue, 13 Nov 2012 00:57:08 -0500</pubDate></item>
<item>
<title>Steam&apos;s Big Picture</title>
<link>http://www.iherebydecree.com/archive/id/925</link>
<description><![CDATA[Just a thought:<br />
<br />
Valve recently announced a beta release of <a href="http://store.steampowered.com/bigpicture/">Big Picture</a>. 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. <br />
<br />
Valve developers seem to be upset about the horizon of PC gaming. With some  <a href="http://www.zdnet.com/valve-windows-8-is-a-catastrophe-for-pcs-7000001634/">open concern about Windows 8</a> 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 <a href="http://steamcommunity.com/linux">Steam for Linux</a> 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. <br />
<br />
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.<br />
<br />
That said, this could also be seen as a <a href="http://en.wikipedia.org/wiki/Disruptive_innovation">sustaining innovation</a>. 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. <br />
<br />
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. <br />
<br />
 ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/925</guid>
<pubDate>Mon, 12 Nov 2012 23:35:38 -0500</pubDate></item>
<item>
<title>Hilariously Annoying Ringtones</title>
<link>http://www.iherebydecree.com/archive/id/924</link>
<description><![CDATA[Lately I have been experimenting with different phone ring sounds. Here are some I have found to be the most effective:<br />
<ul><br />
<li><a href="http://www.amazon.com/Whip-My-Hair/dp/B0047GL56G/ref=sr_1_1?ie=UTF8&qid=1343014756&s=dmusic&sr=1-1">Whip My Hair</a>, by Willow Smith</li><br />
<li><a href="http://www.amazon.com/Circle-Of-Life/dp/B0013JUQ6A/ref=sr_1_1?ie=UTF8&qid=1343014799&s=dmusic&sr=1-1">Circle of Life</a>, by Lebo M.</li><br />
<li><a href="http://www.amazon.com/Rappers-Delight-LP-Version/dp/B0012288VS/ref=sr_1_1?ie=UTF8&qid=1343014864&s=dmusic&sr=1-1">Rapper's Delight</a>, by The Sugarhill Gang</li><br />
</ul>]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/924</guid>
<pubDate>Sun, 22 Jul 2012 23:52:50 -0400</pubDate></item>
<item>
<title>Things on Skateboards</title>
<link>http://www.iherebydecree.com/archive/id/923</link>
<description><![CDATA[My <a href="http://www.modsandends.com">brother</a> and I have been updating a new blog. Check out <a href="http://thingsonskateboards.tumblr.com/">Things on Skateboards</a>]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/923</guid>
<pubDate>Fri, 25 May 2012 18:50:16 -0400</pubDate></item>
<item>
<title>QR Bookmarklet</title>
<link>http://www.iherebydecree.com/archive/id/922</link>
<description><![CDATA[I have been doing a lot of mobile testing lately (have you tried <a href="http://labs.adobe.com/technologies/shadow/">Adobe Shadow</a>? 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. <br />
<br />
<a href="javascript:(function(window, document, undefined) {try {var selectedText = document.getSelection().toString(); if (selectedText === ''){selectedText = window.location.href;} if(selectedText !== ''){var baseQRUrl = 'http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=' + encodeURIComponent(selectedText); window.open(baseQRUrl, '_blank', 'width=400,height=400');}} catch (e) {}})(window, document);" title="Make QR" >Make QR</a><br />
<br />
I have only tested it in Chrome, so forgive me if it doesn't work otherwise. <br />
<br />
Update: Here is the <a href="https://gist.github.com/2579060">Gist</a><br />
<br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/922</guid>
<pubDate>Mon, 30 Apr 2012 18:43:48 -0400</pubDate></item>
<item>
<title>Beeping Noise</title>
<link>http://www.iherebydecree.com/archive/id/920</link>
<description><![CDATA[<a href="http://e.ggtimer.com">E.ggTimer</a> has a new options menu, safely guarded by the word "beta". It allows you to <em>CHANGE THE SOUND</em>, which has always been the number one request. Feel free to check it out, if you can find it. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/920</guid>
<pubDate>Mon, 27 Feb 2012 00:02:15 -0500</pubDate></item>
<item>
<title>Please</title>
<link>http://www.iherebydecree.com/archive/id/919</link>
<description><![CDATA[A long while ago I decided to get my toes wet with <a href="http://www.ruby-lang.org">Ruby</a>, 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 <a href="http://en.wikipedia.org/wiki/Alias_(command)">aliases</a>. 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. <br />
<br />
<a href="https://github.com/lemieuxster/please">Please</a> is available on github and works on Mac OS X. It is also available as a ruby gem: <br />
<br />
$ gem install please-command-alias-manager<br />
<br />
although there really isn't much reusable code and therefor breaks <em>some</em> of the gem mentality/pattern. Oops. <br />
<br />
Lets say you have some long command you have to run regularly, like tail a specific log file. With please<br />
<br />
$ tail -f /Users/username/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt<br />
<br />
becomes<br />
<br />
$ please tail flash log<br />
<br />
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. <br />
<br />
$ networksetup -setairportpower airport {on/off}<br />
<br />
becomes<br />
<br />
$ please toggle wifi<br />
on/off _<br />
<br />
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: <br />
<br />
 please --add "save clipboard as audio" "pbpaste | say -v {voice} -o ~/Desktop/{filename}"<br />
<br />
This creates the command "please save clipboard as audio" and then prompts you for the voice and file name. <br />
<br />
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. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/919</guid>
<pubDate>Wed, 08 Feb 2012 23:04:52 -0500</pubDate></item>
<item>
<title>From HTML to Poster</title>
<link>http://www.iherebydecree.com/archive/id/918</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/launchPoster/launchProcess.jpg" width="530" height="353" alt="Process" /><br />
<em>NASA Image -> HTML/JS -> Poster</em><br />
<br />
Recently I used one of my <a href="http://iherebydecree.com/archive/id/912">JS/Canvas Experiments</a> to make a real poster print (through <a href="http://zazzle.com">Zazzle</a>). I started with a <a href="http://en.wikipedia.org/wiki/Public_domain">public domain image from NASA</a> of the <a href="http://en.wikipedia.org/wiki/File:STS-130_exhaust_cloud_engulfs_Launch_Pad_39A.jpg">STS-130 lifting off from the launch pad</a>.<br />
<br />
<img src="http://media.iherebydecree.com/postimages/launchPoster/launchOriginal.jpg" width="530" height="353" alt="Original" /><br />
<em>The Original</em><br />
<br />
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. <br />
<br />
Normally the output looks like this:<br />
<br />
<img src="http://media.iherebydecree.com/postimages/launchPoster/launchNoLines.jpg" width="530" height="353" alt="Regular Output" /><br />
<em>Regular Output</em><br />
<br />
But I changed the settings and removed the fills and got this:<br />
<br />
<img src="http://media.iherebydecree.com/postimages/launchPoster/launchLines.jpg" width="530" height="353" alt="Configured Output with Lines" /><br />
<em>Configured Output with Lines</em><br />
<br />
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 <a href="http://www.lemieuxster.com/dev/js/blockmaker/indexQuad.html">work in real time</a> (modern browser recommended)<br />
<br />
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. <br />
<br />
A little cropping in photoshop and I uploaded the file, sent it to the printer, and got this:<br />
<br />
<img src="http://media.iherebydecree.com/postimages/launchPoster/launchPoster.jpg" width="530" height="353" alt="Poster" /><br />
<em>Poster</em><br />
<br />
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. <br />
<br />
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. <br />
<br />
UPDATE: Here is the <a href="http://dl.dropbox.com/u/20694969/Images/launchQuadLinesBig.png">final output  (3.4Mb)</a><br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/918</guid>
<pubDate>Tue, 07 Feb 2012 14:29:26 -0500</pubDate></item>
<item>
<title>HTML5 Holiday Card</title>
<link>http://www.iherebydecree.com/archive/id/917</link>
<description><![CDATA[<a href="http://www.lemieuxster.com/family/2011/card/"><img src="http://media.iherebydecree.com/postimages/familyCard2011.png" width="530" alt="Merry Christmas!" border="0"/></a><br />
<em>Merry Christmas!</em><br />
<br />
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 <em>talk</em> about doing it, but never do it. <br />
<br />
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). <a href="http://www.lemieuxster.com/family/2011/card/">You can check it out here, make sure to have your speakers on.</a><br />
<br />
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 <a href="http://iherebydecree.com/archive/id/910">Cigar</a> and my previous <a href="http://iherebydecree.com/archive/id/912">canvas experiments</a> as well as some third-party code libraries, mostly from <a href="http://www.easeljs.com">Grant Skinner</a>. 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. <br />
<br />
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. <br />
<br />
My favorite part is the snow, and my lovely family of course. <br />
<br />
UPDATE: I added support for iOS devices now, too. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/917</guid>
<pubDate>Mon, 26 Dec 2011 11:19:15 -0500</pubDate></item>
<item>
<title>My Imaginary Site</title>
<link>http://www.iherebydecree.com/archive/id/916</link>
<description><![CDATA[Sometimes you need an invalid feed or some random artifact crucial to helping you debug and test your web application. I hope to turn <a href="http://myimaginarysite.com">My Imaginary Site</a> a resource for just that.<br />
<br />
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. <br />
<br />
Please send any suggestions my way. <br />
<br />
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. <br />
<br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/916</guid>
<pubDate>Wed, 14 Dec 2011 21:58:56 -0500</pubDate></item>
<item>
<title>An off year</title>
<link>http://www.iherebydecree.com/archive/id/915</link>
<description><![CDATA[It is with a little sadness that I admit that I did not participate in this years <a href="http://www.iherebydecree.com/archive/id/903">Trunk or Treat.</a><br />
<br />
Sigh. <br />
<br />
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. <br />
<br />
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 <a href="http://www.iherebydecree.com/archive/id/886">King of the Trunk or Treat.</a> 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. <br />
<br />
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. <br />
<br />
This has been an off year. I have gotten a lot done, but not in the areas I expected. <br />
<br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/915</guid>
<pubDate>Sun, 30 Oct 2011 15:43:25 -0400</pubDate></item>
<item>
<title>Node Knockout 2011</title>
<link>http://www.iherebydecree.com/archive/id/914</link>
<description><![CDATA[A few weekends ago I got to participate in <a href="http://nodeknockout.com">Node Knockout</a> with some friends. It was a 48 hour contest to see who could come up with something great using <a href="http://nodejs.org/">Node.js</a>. My team, myself and some coworkers, decided to try and make something like a multi-user game platform where you could use your computer screen as the output screen and a second device (mobile phone, for example) as the game controller. What we came up with was <a href="http://flite-labs.no.de/">Fly By Wire</a> <a href="http://nodeknockout.com/teams/flite-labs">(more info)</a>. <br />
<br />
It was a lot of fun but there are some pretty bad bugs. We didn't win either. But I learned a lot about Node.js, CoffeeScript, and web sockets. I hope to do it again next year. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/914</guid>
<pubDate>Thu, 08 Sep 2011 02:33:51 -0400</pubDate></item>
<item>
<title>JS/Canvas Experiments</title>
<link>http://www.iherebydecree.com/archive/id/912</link>
<description><![CDATA[I've been doing some experiments with JavaScript and the Canvas tag. Here are some results:<br />
<br />
<a href="http://www.flickr.com/photos/lemieuxster/5734307578/" title="Starry Blocks by lemieuxster, on Flickr"><img src="http://farm3.static.flickr.com/2352/5734307578_ab8f6b4751.jpg" width="500" height="313" alt="Starry Blocks"></a><br />
<em>Starry Blocks</em><br />
<br />
<a href="http://www.flickr.com/photos/lemieuxster/5733759261/" title="Launch Pad Quads by lemieuxster, on Flickr"><img src="http://farm4.static.flickr.com/3153/5733759261_696a991445.jpg" width="500" height="333" alt="Launch Pad Quads"></a><br />
<em>Launch Pad Quads</em><br />
<br />
The first just traverses an image and chunks it in to blocks of a configurable size and displays the average color for the block. The second recursively subdivides the image based on color threshold and size and then, again, displays the average color if the rules are met. <br />
<br />
You can see them compute live <a href="http://www.lemieuxster.com/dev/js/blockmaker/">here</a> and <a href="http://www.lemieuxster.com/dev/js/blockmaker/indexQuad.html">here</a>. (Google Chrome or a very modern browser recommended) <br />
<br />
The code isn't completely optimized, and I have found some interesting irregularities while working with the Canvas Context object, but in all it seems like a straightforward piece of technology. <br />
<br />
For more Canvas fun, check out <a href="http://easeljs.com/">EasleJS</a> by Grant Skinner (not used here). He has essentially taken a lot of the vocabulary and paradigms from Flash and ported them over in to a performant Canvas render engine. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/912</guid>
<pubDate>Wed, 18 May 2011 18:10:03 -0400</pubDate></item>
<item>
<title>Is Flash Dead? Part 2</title>
<link>http://www.iherebydecree.com/archive/id/911</link>
<description><![CDATA[<em><a href="http://iherebydecree.com/archive/id/895">Part 1</a></em><br />
<br />
So, its been a year and I would like to re-comment on the state of Flash. Flex/Flash consultant Jesse Warden put up <a href="http://jessewarden.com/2011/05/adobes-wowza-litigation-insecurity-prevention.html">a nice post</a> today about some current Adobe news. One thing Warden mentions is the fact that the passion behind Flash is dying, not the technology itself. I would add my voice to that same sentiment. <br />
<br />
In my own professional life (I am not a consultant) I have been using Flash less and less as time progresses. This has nothing to do with the platform or its capabilities. It has a lot to do with how <a href="http://www.flite.com">my company</a> values Flash and the time we decide to put behind it. Flash continues to be an important part of what we do, but many of our new projects are striving to be Flash-less. The reasons for this vary, but the biggest are these: 1) We are trying to be cross-device compatible, inclusing iOS. 2) We are a group of young, "hip" developers that often get caught up in the new coolness. <br />
<br />
Lets talk about reason #2 for a moment. Things like Node.js and Ruby as well as the many GitHub projects are the cool thing at the moment and are proving to be fun to play with. In an effort to say ahead of the curve and also be a part of the "bleeding edge" we sometimes pick new technologies over old ones (it is also very educational). Bottom line, we never say "lets use Flash to implement this cool new idea." <br />
<br />
So, it doesn't matter that in many cases Flash would be a great solution. <br />
<br />
There are allegedly some cool technologies coming in newer versions of Flash, but I haven't felt the need to look in to them. If I am any indication (and I don't know that I am) I would say that the trend is similar elsewhere. (Also, I've seen demos of WebOS running Flash and yet it is still nowhere to be seen.) <br />
<br />
There are a lot of cool new toys to play with, and whether because of marketing or timing or any other reason the new Flash toys just aren't as stand-out and amazing any more. It used to be that if a developer made a cool Flash library they could get some traction and some attention. Now the new hotness is putting up a new JavaScript or Ruby project on GitHub. <br />
<br />
So Flash as a technology is still not going anywhere, but it may start to disappear if the community stops caring. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/911</guid>
<pubDate>Thu, 12 May 2011 16:49:15 -0400</pubDate></item>
<item>
<title>Cigar</title>
<link>http://www.iherebydecree.com/archive/id/910</link>
<description><![CDATA[I've been working on a side project of sorts. What makes this one different is that I don't know where it will take me. I would like to introduce <a href="https://github.com/lemieuxster/cigar" title="on github, like all the cool kids">Cigar.js</a> - a JavaScript dependency importer. Basically, it acts kind of like <em>import</em> does in Java, but it works client side and it is for adding JavaScript files to your runtime environment. <br />
<br />
It works like this: After loading the Cigar.js file you can call <em>_import</em> and load javascript files from your own domain (for now, though I do hope to add the ability to do external files as well). You can chain the imports together, essentially creating a queue of files to load. At the end you can specify a callback that will be initialized once all the files have been loaded. <br />
<br />
I've had this idea in the my head for a while now, but it wasn't until I saw a <a href="http://twitter.com/jeffremer/status/55041500828016640">tweet from Jeff Remer</a> that I thought "well, Groucho always has a cigar, so I should make a js library called 'cigar'."<br />
<br />
<img src="http://media.iherebydecree.com/postimages/JeffsGrouchoTweet.png" width="530" height="259" alt="Jeff's Groucho Tweet" /><br />
<em>Yeah, it was all based on a bad pun</em><br />
<br />
What is emerging from this wandering idea of mine is that you could use this to structure your JavaScript files more like Java classes. This could be handing for creating reusable code snippets and have dependencies, but help remove all the circular references. <br />
<br />
You could have a utility "class" called "AwesomeUtility" that is used in "Object1" and "Object2". Cigar would allow you to save those in separate js files and test them independently, then you can use Cigar to import them in to your main script file and the dependency will only be loaded once. <br />
<br />
As it is, Cigar is no-where near production ready. There is still a lot to test out and play with. Also, I have know idea where this is going. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/910</guid>
<pubDate>Tue, 12 Apr 2011 00:49:04 -0400</pubDate></item>
<item>
<title>For Nosy Commuters</title>
<link>http://www.iherebydecree.com/archive/id/909</link>
<description><![CDATA[I sometimes get to work while I ride in to The City on <a href="http://bart.gov">BART</a> and I am always a little disappointed that my coding/terminal skills don't seem more hackeresque, especially when someone is looking over my shoulder. Though I certainly don't want to have my computer <a href="http://www.techdirt.com/articles/20090414/1837144515.shtml">taken away for looking suspicious</a> I decided to make my onlooker's experience more fun. <br />
<br />
Today while on BART I put together this little number:<br />
<br />
<img src="http://media.iherebydecree.com/postimages/phoneGen.png" width="530" height="560" alt="Phone Gen Screen" /><br />
<em>I'm in your phones, hacking your numbers</em><br />
<br />
What this really shows is a bash_profile alias that points to a Java thread I made that spits out a random quantity of random, not even valid, phone numbers at interchanging intervals with either a success or failed message. It then tallies the successes and outputs the success/total ratio at the end. What it <em>looks</em> like it is doing, though, is hacking all the nearby phones. <br />
<br />
Why make this? So that the people sitting next to me get mildly freaked out. I mean, to start this baby up I have to type "hack_nearby_phones". Everything Hollywood teaches us about computers allows this to make sense, so it will surely fool everyone. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/909</guid>
<pubDate>Mon, 21 Mar 2011 23:56:07 -0400</pubDate></item>
<item>
<title>Links</title>
<link>http://www.iherebydecree.com/archive/id/908</link>
<description><![CDATA[I hereby decree that the <a href="http://iherebydecree.com/links">links</a> section shall be restored.  Just visit <a href="http://iherebydecree.com/links ">http://iherebydecree.com/links</a> and see for yourself.  I started this links section a long while ago and then stopped as I found that I was user Twitter and Facebook more for sharing. Time has passed and again I find myself wanting to consolidate. <br />
<br />
For the three people that read this blog, I hope you enjoy. <br />
<br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/908</guid>
<pubDate>Wed, 09 Mar 2011 12:52:26 -0500</pubDate></item>
<item>
<title>Inception Music</title>
<link>http://www.iherebydecree.com/archive/id/907</link>
<description><![CDATA[<em>Bow chicka bow wow</em><br />
<br />
Err... wait, <a href="http://en.wikipedia.org/wiki/Inception_(film)">Inception</a>. I really enjoyed the film. It was a great action movie; intelligent and original enough to be worth watching multiple times. <br />
<br />
One aspect of the movie I really enjoyed was the musical score. In fact, I find myself keen on many of the movie soundtracks composed by <a href="http://en.wikipedia.org/wiki/Hans_Zimmer">Hans Zimmer</a> (Batman Begins/Dark Knight, Pirates of the Caribbean, Sherlock Holmes, and more).<br />
<br />
Anyway, if you've seen Inception you know that the protagonists do much of their deeds in a dream state. In fact, they induce dreams within dreams. For every level deeper they go in the dream worlds, time slows down. In other words, you have more perceived time in a second layer dream than you do in a first layer dream, even though the same real time is passing. Confused? Watch the movie. <br />
<br />
Whenever they want to be awoken from their dream state, someone has to initiate a "kick" - or some kind of semi-violent wake up call, like the feeling of falling or being hit. To signal that said "kick" is coming, they use an audible hint: The song <a href="http://www.youtube.com/watch?v=Q3Kvu6Kgp88">Non, Je Ne Regrette Rien</a> by Edith Piaf. (Seriously, if you are totally not following me go watch the movie then come back.) So that is why when I found this YouTube clip:<br />
<br />
<br />
<em>Same music, just slowed down.</em><br />
<br />
I was amazed. "What a clever trick," I thought to myself, "I wonder if it is on purpose. It has to be." It turns it was. In fact, Hans Zimmer has admitted that <a href="http://www.guardian.co.uk/music/2010/jul/29/inception-soundtrack-edith-piaf">much of the soundtrack is based on that one song.</a><br />
<br />
So, a clever movie with a subtly clever soundtrack. If you haven't seen it already, go see it. Now. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/907</guid>
<pubDate>Mon, 31 Jan 2011 23:45:15 -0500</pubDate></item>
<item>
<title>And My Bro</title>
<link>http://www.iherebydecree.com/archive/id/906</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/AndMyBro.jpg" height="930" width="310" alt="You have my sword. And my axe. And my bro." /><br />
<em>We got your back, Frodo.</em>]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/906</guid>
<pubDate>Sun, 30 Jan 2011 14:27:13 -0500</pubDate></item>
<item>
<title>JS Test Driver</title>
<link>http://www.iherebydecree.com/archive/id/905</link>
<description><![CDATA[At work I've begun to use <a href="http://code.google.com/p/js-test-driver/">JS Test Driver</a> to run JavaScript Unit and Functional tests. It was very easy to get up and running and it is more-or-less straight forward to use. <br />
<br />
Specifically, I have been using the <a href="http://code.google.com/p/js-test-driver/wiki/IntelliJPlugin">IntelliJ plug-in</a>. It was easy to install and get started, but it does seem pretty finicky and there doesn't seem to be any reliable way to determine what version of JSTestDriver the plug-in uses, only the version of the plug-in itself. <br />
<br />
I have never been big on <a href="http://en.wikipedia.org/wiki/Test-driven_development">test-driven development</a> but I am starting to be converted to its ways. Of course I would test and validate that my code worked as expected, sometimes even putting it through peer review and a light layer of function stress testing. The idea of thinking about test in a more prominent way, however, is mostly new to me. So far I've found that it can be quite helpful. <br />
<br />
My first positive experience came this week when I was writing a test for an already-in-production piece of code and the test failed. It failed on a strange edge case, but it failed nonetheless. This enabled me to fix the issue before anyone else could find in the "real world." <br />
<br />
"Of course," you say, "this is what testing is supposed to do." But I feel like it takes "ah-ha" moments such as that to reinforce a concept and I had never had one with testing before. <br />
<br />
If you are looking for a way to test your JavaScript code, give JS Test Driver a try. QUnit and JsUnit are also available though I have limited experience with the former and none with the later. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/905</guid>
<pubDate>Sat, 29 Jan 2011 16:47:14 -0500</pubDate></item>
</channel>
</rss>