<?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>Twitter &amp; Facebook</title>
<link>http://www.iherebydecree.com/archive/id/899</link>
<description><![CDATA[I think I finally figured it out. Based on the way I manage my friends/followers I have this weird dichotomy going on with Twitter and Facebook. Twitter is all the people I like to keep tabs on but we never say anything useful. Facebook is all the people I feel obligated to connect with but am mostly uninterested in. <br />
<br />
Now, if I could get all my Twitter friends to be my Facebook friends and then have real, meaningful social conversations we would be on to something. <br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/899</guid>
<pubDate>Wed, 04 Aug 2010 17:34:33 -0400</pubDate></item>
<item>
<title>New Rules</title>
<link>http://www.iherebydecree.com/archive/id/898</link>
<description><![CDATA[I hereby decree that the following rules shall be in effect immediately. <br />
<ul><br />
<li>If you want to be a tough guy with a questionable past you have to carry a worn picture of your family or offspring.</li><br />
<li>"Hot" girls will no longer carry their lunches in Victoria Secret bags. (inspired by <a href="http://twitter.com/gpenston/status/20268348624">Penston</a>)</li><br />
<li><a href="http://www.youtube.com/watch?v=TG1lq_Hvfmg">Or get your degree</a> shall be the last item on every bulleted list.</li><br />
</ul>]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/898</guid>
<pubDate>Tue, 03 Aug 2010 22:17:36 -0400</pubDate></item>
<item>
<title>E.ggTimer and HTML5</title>
<link>http://www.iherebydecree.com/archive/id/897</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/eggPalmPre.png" width="320" height="480" alt="E.ggTimer in the Palm Pre Browser"/><br />
<em>The WebOS Browser is surprisingly compliant.</em><br />
<br />
Over the weekend I made a port of the basic functionality of <a href="http://e.ggtimer.com">E.ggTimer</a> from Flash to <a href="http://en.wikipedia.org/wiki/HTML5">HTML5</a>. By basic I mean that things like titles and sequences are still missing, though I intend to add those soon, for full parity. And when I say HTML5 I really mean that I used the HTML5 doctype and new, proposed tags. Specifically, I used the <a href="https://developer.mozilla.org/en/canvas_tutorial">canvas tag</a> and the <a href="http://www.w3schools.com/html5/tag_audio.asp">audio tag</a>. I also used some new CSS and JavaScript features. <br />
<br />
<strong>The End Result</strong><br />
In the end, it works pretty well on desktop browsers as well as on the iPhone, iPad, Android, and WebOS browsers with some interesting differences. As far as I can tell, the beep sound at the end only really works on the Pre, so props to Palm for supporting audio. You can try it out here: <a href="http://e.ggtimer.com/m/3min">http://e.ggtimer.com/m/3min</a>. <br />
<br />
Next, while Safari supports <a href="http://ejohn.org/blog/web-workers/">Workers</a>,  you can currently only post messages as <a href="http://en.wikipedia.org/wiki/String_(computer_science)">Strings</a>. When I first implemented the Worker to do the date calculation I was passing objects. Since I got lazy and didn't want to refactor my code I just disabled the Workers for Safari. <br />
<br />
As I tried the new code out on various devices I came to realize that the ability to leave the timer running in the background (WebOS, Android) really made it a nice feature. It works on the "i" devices, but you have to leave it open. A native app would take care of that, but I am hoping that in some future update the browser will be able to run in the background (and have sound). <br />
<br />
For now, if you hit E.ggTimer (or the new domain, <a href="http://c.ountdown.com">C.ountDown.com</a>, and start a timer you will be redirected to the HTML5 code if you are using a mobile device. If for some reason you just hate <a href="http://www.adobe.com/products/flash">Flash</a> you can use the "/m" site and be Flash Free(tm). On the desktop it works best in <a href="http://www.google.com/chrome">Google Chrome</a>.<br />
<br />
<strong>Conclusion</strong><br />
The transition from Flash to HTML5 was pretty straight forward and I believe that those Flash developers that can stop worrying and actually play around with the new stuff will quickly find it suites them well. It isn't an end-all, be-all solution and it has a long way to go before we have full cross-browser interoperability, but it is pretty slick. I come away less stressed about the whole ordeal. <br />
<br />
I also removed the affiliate banner stuff since it was performing poorly. I replaced it with a nice update section and a small donate button. Cheers. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/897</guid>
<pubDate>Wed, 09 Jun 2010 01:09:02 -0400</pubDate></item>
<item>
<title>Section 3.3.1</title>
<link>http://www.iherebydecree.com/archive/id/896</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/order3.3.1.jpg" width="580" height="299" alt="Exectute Section 3.3.1" /><br />
<em>The Emperor is not pleased.</em><br />
<br />
Inspired by <a href="http://twitter.com/gpenston">@gpenston's</a> <a href="http://twitter.com/gpenston/status/12059996866">tweet.</a>]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/896</guid>
<pubDate>Tue, 27 Apr 2010 17:21:22 -0400</pubDate></item>
<item>
<title>Is Flash Dead?</title>
<link>http://www.iherebydecree.com/archive/id/895</link>
<description><![CDATA[<em>This is a re-post of a guest blog entry I did for <a href="http://blog.widgetbox.com/2010/03/is-flash-dead/">Widgetbox</a></em><br />
<br />
When Apple, Inc. announced that the iPad would not support Adobe's Flash Player, the developer community began to talk. The debate about Flash as a web technology is not new, but the decreasing amount of support for Flash-enabled websites on mobile devices has made the issue more prominent.<br />
<br />
When talking about the lack of Flash support on devices like the iPhone, iPod Touch, and the iPad, people are generally talking about Flash Player, the runtime piece of the Flash Platform. As more people start using internet-capable mobile devices, fewer people are able to consume Flash content on the web. At its peak, Flash enjoyed a 98% market penetration. Now some websites are reporting that the number of Flash-enabled browsers visiting has dropped to as low as 88%. Websites that are built entirely in Flash are now at a disadvantage when it comes to the mobile web.<br />
<br />
There are other technologies that are also called by the name "Flash." The Flash authoring environment (e.g. Flash CS4) is the tool created and sold by Adobe that enables development for Flash Player. Flash Video (flv) is a file format used to deliver video through Flash Player. High profile video websites like YouTube and Hulu depend on Flash Video. Its ubiquitous nature means that it is simple to deploy video to a wide range of users using different Internet browsers and computer operating systems. Flash also comes with a built in protection system, making it harder for people to pirate the video they are watching. Web video is possible today because of Flash. That said, there are some drawbacks. Flash Video is a proprietary format made by Adobe. You can only use Flash Video in Flash Player. That means that nearly all the video on the Internet is controlled by one company.<br />
<br />
Flash also has performance issues. While it claims to be interoperable between different systems, there are some noted differences. Flash Player on OS X based machines performs slower and takes more processing power than its Windows counterpart. New technologies, like HTML5 are helping to combat this issue and remove our dependency on Flash for video. HTML5 video will be less processor intensive. It will also make video a native part of the web instead of an optional, separately-installed plug-in. For now though, the major browser vendors haven't decided on what the default video format should be. This indecision essentially removes any interoperability that would otherwise be inherent. Format wars notwithstanding, look for HTML5 and the new "video" tag to soon start replacing Flash as the go-to video solution.<br />
<br />
But Flash Player can do more than play video. Video is at the heart of the discussion, but other features like animation, hardware acceleration, and device access have made Flash what it is today. HTML5, even when combined with the web programming language JavaScript, does not currently have such an advanced feature set. JavaScript and ActionScript (the Flash programming language) share a common ancestor, ECMAScript. Unlike ActionScript, however, JavaScript has not been seriously updated in a long time. JavaScript is periodically updated, but those updates are not all supported in every browser, again taking away the interoperability.<br />
<br />
In conclusion&mdash;Flash is not dead. It may be past its prime, but until browser makers and the web developer community can form a more-solid set of features and standards and get nearly ubiquitous market penetration, Flash will still be around. Flash Video will be the first to go, unless media companies don't see HTML5 video as a safe (i.e. pirate proof) solution. Flash as a development platform may never die. Adobe is already broadening the platform's reach with products like AIR which will make it possible to use the Flash authoring tool to create application for the iPhone and Nexus devices. Flash Player 10.1 will be available on a large set of mobile devices. As long as developers use the right tools for the job (i.e. don't make a 100% Flash website) and follow best practices it won't matter what technologies are around. That said, if you are Flash developer and you've never heard of HTML5 you may want to start looking in to it, right now.]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/895</guid>
<pubDate>Fri, 19 Mar 2010 12:51:30 -0400</pubDate></item>
<item>
<title>HTML5 Script Tag Async Attribute</title>
<link>http://www.iherebydecree.com/archive/id/894</link>
<description><![CDATA[The current <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/">HTML5 working spec</a> gives the script tag some <a href="https://developer.mozilla.org/En/HTML/Element/Script">interesting new attributes</a>. The first is "defer" which tells the browser to wait until the page is ready to run the script. The second is "async" which tells the browser to, when possible, run the script without blocking, or asynchronously. While the benefits of using "defer" may be more-readily perceived, asynchronous JavaScript is a little harder to grasp. <br />
<br />
To implement the async attribute, you must add is as an empty string or with the value "async". Even though it is a boolean attribute, the value "true" is not accepted, though different browsers may be kind in that regard. The async attribute can only be used when the "src" attribute is also being used. Inline JavaScript cannot be asynchronous. A script tag with async turned on would look like this:<br />
&lt;script src="code.js" async&gt;&lt;/script&gt; or<br />
&lt;script src="code.js" async="async"&gt;&lt;/script&gt;<br />
The same implementation is used for "defer". <br />
<br />
You should not use document.write in your asynchronous JavaScript. Because the browser does not block, and because you cannot be sure the DOM is complete, doing so may break or completely remove the DOM. <br />
<br />
To see async in action you need a modern browser. <a href="http://www.getfirefox.com">Firefox 3.6</a> will do the trick. <br />
<br />
I have put together a couple of examples on using the async attribute and decided it would be best to demonstrate them in video. The following video shows the script running in regular, blocking mode, and then with async turned on. I am using Firebug to dramatize the difference. <br />
<br />
<br />
<em>Sorry for the bad audio quality.</em><br />
<br />
So, what if you still need to do document.write? Well, you can use a regular JavaScript call to insert whatever you need on to the page, then add a script tag to the head with the async attribute to act upon the items you have inserted. In this way you can have a lightweight script that ads a few small things to the DOM, then the browser can load the async script and run it as it will. <br />
<br />
Some things to note: <br />
1) If loading JavaScript asynchronously, you may need to be sure that you don't have code elsewhere that depends on that script being loaded. It may not always load before you need it. <br />
<br />
2) Currently it seems as though it will load multiple JavaScript files asynchronously, but in order. Some have reported that as currently implemented that is not the case. It may depend on the browser, so again beware if you have multiple files that rely on a shared library. <br />
<br />
This change will most likely be beneficial for things like ads or widgets that have self-contained scripts that run on the page. That way the ad and widget code won't block the rest of the site if it is slow to load. <br />
<br />
Here is the code used in my video demo:<br />
<a href="http://www.lemieuxster.com/dev/js/asyncTest.html">http://www.lemieuxster.com/dev/js/asyncTest.html</a><br />
<a href="http://www.lemieuxster.com/dev/js/asyncTest2.html">http://www.lemieuxster.com/dev/js/asyncTest2.html</a><br />
<a href="http://www.lemieuxster.com/dev/js/asyncTest.js">http://www.lemieuxster.com/dev/js/asyncTest.js</a><br />
<a href="http://www.lemieuxster.com/dev/js/contentInsert.js">http://www.lemieuxster.com/dev/js/contentInsert.js</a><br />
<br />
On a semi-related note, I recently finished <a href="http://oreilly.com/catalog/9780596517748"><em>JavaScript: The Good Parts</em></a> and I recommend it to anyone that does any amount of JavaScript coding. Especially if you are like me and have learned JavaScript through mostly trial and error. It lays down a solid foundation upon which to build JavaScript expertise. It is not a book for beginners, but it does cover the fundamentals. <br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/894</guid>
<pubDate>Sat, 13 Mar 2010 18:38:56 -0500</pubDate></item>
<item>
<title>Mobile Sites</title>
<link>http://www.iherebydecree.com/archive/id/893</link>
<description><![CDATA[<a href="http://www.widgetbox.com">Widgetbox</a>, my current employer (full disclosure), recently introduced a slick <a href="http://www.widgetbox.com/mobile/make/">mobile site builder.</a> It works much like our popular <a href="http://www.widgetbox.com/make/feed">Blidget</a> product. You take Internet feeds and other content sources and include them in to a mobile-compatible web site. It literally takes minutes to get a basic site up and running and it works really well. My hats off to the team at Widgetbox that put it all together. I got to help a little, but I have been working on another project.<br />
<br />
One really nice feature of the mobile site is that Widgetbox gives you a JavaScript snippet to put on your normal site that will redirect mobile users to your new mobile site. I put a mobile site together for myself and now whenever you visit this site or my portfolio from a mobile phone (iPhone, Android 2.0, or webOS) you will see my mobile site. For those of you on a non-mobile computer, it looks a lot like this: <br />
<br />
<img src="http://media.iherebydecree.com/postimages/lemieuxiphone.jpg" width="580" height="1055" alt="David LeMieux Mobile Site" /><br />
<em>This Is Huge!</em><br />
<br />
You can also go take a look at <a href="http://m.wbx.me/lemieux">http://m.wbx.me/lemieux</a> if you use Safari or Chrome. <br />
<br />
As I stated before, in a parenthetical, the mobile sites currently work best on the iPhone and Android 2.0+ phones. The sites work decently on webOS phones, but the webOS browser isn't as feature rich. webOS 1.4 did improve things quite a bit, however. <br />
<br />
For those interested in the technology we are using, it is mostly based on <a href="http://jqtouch.com/">JQTouch</a> though I know the team made some enhancements and other changes.<br />
<br />
I encourage anyone interested to <a href="http://www.widgetbox.com/mobile/make/">give it a try.</a> Especially since having a mobile presence is becoming increasingly important. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/893</guid>
<pubDate>Tue, 09 Mar 2010 22:41:56 -0500</pubDate></item>
<item>
<title>Theory of Imminent Probability</title>
<link>http://www.iherebydecree.com/archive/id/891</link>
<description><![CDATA[Let X equal the amount of time since an event, E, has occurred. Let Op equal the predicted occurrences of E over the lifespan of the event's perpetrator measured in time, L, and let Ok equal the known occurrences of E. <br />
<br />
The probability of E increases as X increases according to:<br />
<br />
P(E) = (X(Op - Ok))/L<br />
<br />
*thanks to Steve Astle for the inspiration.<br />
**this is also known as the <a href="http://en.wikipedia.org/wiki/Gambler%27s_fallacy">Gambler's Fallacy</a><br />
***I love <a href="http://www.theonion.com/articles/cornell-drains-fun-out-of-cinderella-run-by-explai,17149/">The Onion</a>]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/891</guid>
<pubDate>Mon, 08 Mar 2010 15:21:49 -0500</pubDate></item>
<item>
<title>Amazon Egg-ffiliate</title>
<link>http://www.iherebydecree.com/archive/id/890</link>
<description><![CDATA[I added a not-so-subtle <a href="http://www.amazon.com">Amazon</a> affiliate link to <a href="http://e.ggtimer.com">E.ggTimer</a>. Why? Ever since closing up shop at <a href="http://www.iherebydecree.com/archive/id/880">WidgetNest</a> my web projects have been a drain on resources instead of self sustaining. Also, I really want a new bicycle (my old bike was stolen). <br />
<br />
The last time I tried something like this I got about $20 over a two year span. We'll see how well it works out this time. <br />
<br />
I had intended to use <a href="http://google.com/adsense">Google AdSense</a> but they didn't think my site was cool enough. Actually, at first my account was stuck in some never-ending black hole of not being able to sign up because I already had an account, but not being able to use my account because I hadn't actually signed up. When that was finally resolved I applied and got denied. The official reason is because E.ggTimer "looks like it is under construction." I took that as meaning they couldn't find any content that would be relevant to advertise against. I don't blame them. It really is just a utility site, so there isn't much there in the way of content. <br />
<br />
As far as making my sites self-sustaining goes, I at least have the luxury of being able to afford decent web hosting. That said, why not strive to have a product that can keep itself afloat? If I can break even I'll consider it a success. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/890</guid>
<pubDate>Sun, 07 Mar 2010 16:40:04 -0500</pubDate></item>
<item>
<title>On Flash and the Death Thereof</title>
<link>http://www.iherebydecree.com/archive/id/889</link>
<description><![CDATA[If you have any interest at all in the current "Is Flash Dead?" debate (<a href="http://isflashdead.com">http://isflashdead.com</a>) then you might want to read the following:<br />
<ul><br />
<li><a href="http://daringfireball.net/2010/01/apple_adobe_flash">Apple, Adobe, and Flash</a></li><br />
<li><a href="http://www.zeldman.com/2010/02/01/flash-ipad-standards/">Flash, iPad, Standards</a></li><br />
<li><a href="http://www.suntimes.com/technology/ihnatko/2017907,ihnatko-ipad-hands-on-012810.article">Hands-on with the iPad - it does make sense</a></li><br />
<li><a href="http://daringfireball.net/2010/01/blue_boxes">Who Can Do Something About Those Blue Boxes?</a></li><br />
<li><a href="http://stevenf.tumblr.com/post/359224392/i-need-to-talk-to-you-about-computers-ive-been">I need to talk to you about computers...</a></li><br />
<li><a href="http://blogs.adobe.com/flashplatform/2010/01/building_ipad_apps.html">Building iPad Applications with Flash</a></li><br />
<li><a href="http://theflashblog.com/?p=1703">The iPad provides the ultimate browsing experience?</a></li><br />
<li><a href="http://theflashblog.com/?p=1698">HTML 5 and Flash video</a></li><br />
<li><a href="http://blogs.adobe.com/conversations/2010/02/open_access_to_content_and_app.html">Open Access to Content and Applications</a></li><br />
<li><a href="http://www.gskinner.com/blog/archives/2010/02/my_thoughts_on.html">My Thoughts on the Future of Flash</a></li><br />
<li><a href="http://x264dev.multimedia.cx/?p=292">Flash, Google, VP8, and the future of internet video</a></li><br />
</ul><br />
That is all, for now. While I wrap my whole head around this one thing definitely sticks out: there is a lot of pent up animosity toward Flash for some reason. I continue to love Flash, but I've never intentionally pigeon-holed myself to it. I will continue to build cool things with whatever technology I see as the best fit. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/889</guid>
<pubDate>Mon, 01 Feb 2010 22:51:27 -0500</pubDate></item>
<item>
<title>I Was Santa</title>
<link>http://www.iherebydecree.com/archive/id/888</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimage/iWasSanta.jpg" width="580" height="400" alt="Me as Santa with the Fam" /><br />
<em>My own kids were afraid of me!</em><br />
<br />
<strong>Or</strong> <em>How I used candy to get children to sit on my lap and tell me their deepest desires.</em><br />
<br />
Due to a last-minute schedule conflict, the designated Santa was unable to make it to the Christmas party. I was asked to fill in. I resisted at first, but then I had fun. The beard made me gag. <br />
<br />
Huzzah!]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/888</guid>
<pubDate>Sun, 13 Dec 2009 17:33:04 -0500</pubDate></item>
<item>
<title>J.otDown Updates</title>
<link>http://www.iherebydecree.com/archive/id/887</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/jotMergeConflict.gif" width="580" height="200" alt="Merge Conflict Popup" /><br />
<em>Oops, you are so two thousand and late.</em><br />
<br />
<a href="http://j.otdown.com">J.otDown</a> got a small update this weekend. As I work to improve J.otDown and enable multi-user collaboration and editing (which is going to take while, I am busy!) I have been trying to take small steps. The first finished step is alerting the user that changes have been made. Now when you try and save the Jot, if it is out of date you will be alerted. You can then get the latest (and lose your changes) or save the file and overwrite whatever was there. It isn't perfect. In fact it may even be confusing, but it is a step in the right direction, I feel. <br />
<br />
]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/887</guid>
<pubDate>Sun, 13 Dec 2009 17:27:10 -0500</pubDate></item>
<item>
<title>Car Trunk Photo Booth</title>
<link>http://www.iherebydecree.com/archive/id/886</link>
<description><![CDATA[<strong>Or</strong> <em>How I lured children to my car with candy then took their pictures.</em><br />
<br />
Every year my church congregation holds a Halloween activity called "Trunk or Treat." The premise is simple, it is like Trick-or-Treating except it is done in a parking lot from car trunk to car trunk. It is a fun activity with games, candy, and some friendly competition.<br />
<br />
Last year I totally spaced the event and with less than half an hour before starting <a href="http://iherebydecree.com/archive/id/838">I whipped up an "award winning" design.</a> We won the "Cutest Car" prize. This was satisfying, but part of me wondered if I could win "Most Awesome Car" or "Super Deluxe Ninja Car of Extreme Skill and Coolness" (I don't even know if that is a real category, but it should be). Anyway, I more or less forgot about it until this last September, 2009. That is when I came up with a plan.<br />
<br />
<img src="http://media.iherebydecree.com/postimages/pb_carrbackfull.jpg" width="580" height="435" alt="A Photobooth in a car trunk." /><br />
<em>Look at all that technology!</em><br />
<br />
I was working on <a href="http://picturenest.net">PictureNest</a> at the time as a fun side project when it struck me that it would be super awesome to make a real photo booth. Around that same time people at church began to talk about the upcoming Trunk or Treat activity. Genius struck. I would make a real photo booth in the back of my car and crush the competition. No more "Cutest Car" for me. I was going to make a trunk so awesome that the Super Ninja category would be invented for my sake.<br />
<br />
<br />
<strong>The Parts:</strong><br />
<br />
<em>The Photo Application:</em> This came easily. Mostly because I took what I had already made for PictureNest and turned it in to an AIR application. I added a few new features and tested it thoroughly for memory leaks and performance.<br />
<br />
<em>The Print Service:</em> I wanted the user experience to be that when someone got their photos taken at the end the photos would print immediately and without having to confirm printing. AIR, unfortunately (and for good reason) does not allow this. My solution was to save the photos in a known directory then asynchronously read that folder and print whatever was inside of it. Not 100% fool-proof, but since I would be running it myself I could be sure that things were set up properly. I turned to Java for my printing needs. I wrote a handy Java print service (which only worked on Windows, more on that later) that would scan a given directory for images then print them to a chosen printer. It worked wonderfully. Again, I tested this service for memory leaks and performance over time and with high capacity.<br />
<br />
<em>The Computer:</em> I had originally planned on using my work laptop to run everything. It is small, and would travel well. It would not, however, print. Apparently, and obviously I suppose, the print services aren't the same on Windows and OS X. I was developing on Windows but I figured that because I was using AIR and Java that moving to a new operating system would be cinch. I was mistaken. The AIR app worked perfectly, so props to Adobe. I didn't take the time to try and figure things out, and so I suppose the Java printing issues could have been worked out.<br />
<br />
<em>The Printer:</em> My trusty nine-year-old Ink Jet worked like a charm. I used HP Photo Paper, cut to 3 by 8 inch strips.<br />
<br />
<em>The Booth aka Car:</em> The back of my car, a hatchback, was big and roomy and perfect for a photo booth. I used a Gorilla Torch  to light the backdrop. The backdrop itself was made of some bargain fabric from the local fabric store and a hat rack I rigged to hold the fabric like a projector screen. I used a folding camping chair for people to sit upon.<br />
<br />
<br />
<strong>The Set Up</strong><br />
<br />
With all the parts planned out I had one major obstacle to overcome. If I was going to run a computer, monitor, web cam, and printer in the back of my car with lighting I was going to need power. I researched every conceivable battery/generator/car-adapter method I could think of. When it came down to it, though, unless I wanted to spend a ton of money on a probably noisy power generator I was going to have to plug my car in. But where? I searched the entire perimeter of the parking lot we were going to be in and eventually found one outlet. Just one power outlet! Luckily it was fairly close to a parking spot but it meant two things. First, I had to get to the spot early to make sure I could get it. Second, since I didn't have anything to test it with, I was going to put a whole lot of work in to something that might not  even be able to turn on.<br />
<br />
<img src="http://media.iherebydecree.com/postimages/pb_decorations.jpg" width="580" height="584" alt="Our home made sign" /><br />
<em>Claire helped me do the signage.</em> <br />
<br />
The day of the Trunk or Treat went so smoothly that I thought nothing could go wrong. I got home in time, I took the car to the church and got the perfect parking spot and I double and triple checked my supplies. I was ready. When it was party time, we walked over to the church building and had a generally fun time. Our kids were pretty cute (Tinker Bell and Peter Pan, in case you were wondering). Then I went out to the car to set things up.<br />
<br />
I got to the car, opened up the trunk and got out the extension cord. I plugged it in to the equipment in the back and then rolled it out to the wall. I was three feet short. I almost started to cry. I had estimated that a 50 foot cord would do but apparently I needed 53 feet. Did I let three feet stop me? No. I was prepared to drive my car up on the curb if need be. That said, I had a bit of serendipity as I saw some other people taking down the haunted house portion of the party and I got to borrow another extension cord. I ended up with 47 feet too much.<br />
<br />
Disaster averted, at least until I started to set up the backdrop and a crucial piece of hardware went missing. I wasn't going to be able to put up the backdrop but then I spotted the hardware underneath a neighboring car. After that I got everything set up and turned on the computer and started the program. Then I unplugged the keyboard and mouse and plugged in an external keypad I had bought to use as the starting mechanism. All you had to do was hit "ENTER" and away it went!<br />
<br />
<br />
<strong>The Crowds</strong><br />
<br />
My proximity to the outlet was important for functionality, but one thing I hadn't counted on was that everyone with cool trunks would conspire against me and park on the opposite side of the parking lot. In theory, anywhere in the parking lot was game, but by some weird coincidence (or unspoken rule) everyone parked in one area. So no-one came by for a while until a group of more adventurous older kids came over. They were impressed. The first group left and then soon returned with even more of their friends. Then, as time went on and the word got out there was a line. Lots of people, and groups, wanted to get their pictures taken. Unfortunately my printer, stalwart as it is, was not very fast. So towards the end people were waiting as long as 10 minutes for their prints. This fact drove people away, I think. I ended up having 50 people use the booth though more might have done pictures if not for the long wait time. I tried to be upfront with people as best I could. I even encouraged leaving and coming back later to pick up your photo, but not very many people listened. A good crowd of people surrounded my car the rest of the night.<br />
<br />
<img src="http://media.iherebydecree.com/postimages/pb_printtest.jpg" width="580" height="361" alt="Printer Test." /><br />
<em>What the pictures looked like, mostly.</em><br />
<br />
<br />
<strong>The Award</strong><br />
<br />
So, as I had hoped I was given an award. "Cutest Trunk" - can you believe it? The judges said they loved my trunk but didn't know what category to put it under and "most awesome" wasn't a category. (I don't know what the categories were, but I am imagining something like "spookiest" and "best candy")<br />
<br />
<img src="http://media.iherebydecree.com/postimages/pb_award.jpg" width="580" height="331" alt="Cutest Trunk Award" /><br />
<em>Cutest Car? Again? COME ON!</em><br />
<br />
<br />
<strong>The Code</strong><br />
<br />
I want to make the code for this available, but I am currently in the process of moving from Windows Vista to Windows 7 and have not yet reinstalled my development tools. Once I do that I will make the code available, but as you can see it has taken over a month to write this blog post about it, so lets see how long it will take me to get the code up.<br />
<br />
<br />
<strong>What's Missing</strong><br />
<br />
I didn't get many pictures of the actual event, ironically. Nor of the final setup.<br />
<br />
<strong>PictureNest:</strong> <a href="http://www.picturenest.net">http://www.picturenest.net</a>]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/886</guid>
<pubDate>Sat, 05 Dec 2009 18:06:55 -0500</pubDate></item>
<item>
<title>October 8th, 2009 - (DavidLeMieux)</title>
<link>http://www.iherebydecree.com/archive/id/885</link>
<description><![CDATA[I hereby decree that with every new update to <a href="http://en.wikipedia.org/wiki/WebOS">webOS</a> on my <a href="http://www.palm.com/us/products/phones/pre/">Palm Pre</a> the more happy I am with the phone. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/885</guid>
<pubDate>Thu, 08 Oct 2009 14:42:35 -0400</pubDate></item>
<item>
<title>Road Map</title>
<link>http://www.iherebydecree.com/archive/id/884</link>
<description><![CDATA[First off...<br />
<br />
<img src="http://media.iherebydecree.com/postimages/photostrip.png" width="170" height="505" alt="PictureNest Photo Strip" /><br />
<em>Awesome!</em><br />
<br />
So I made an online photo booth and put it up at <a href="http://picturenest.net">PictureNest.net.</a> I already owned the domain so I decided to go ahead and use it. It isn't as complete as I want it to be, and there are still some other "phases" but this is the end of phase 1 and so I am letting people know about it. <br />
<br />
That is the last of my "new" ideas I plan to work on for a while. My more immediate plans include finishing the aforementioned phases of PictureNest and then some sweet updates to e.ggtimer and j.otdown that I hope to have done by the end of the year.<br />
<br />
You don't know it yet, but it is all coming together. Believe me. It is going to be awesome.]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/884</guid>
<pubDate>Mon, 14 Sep 2009 18:48:31 -0400</pubDate></item>
<item>
<title>OS X Snow Leopard&apos;s New Welcome Video</title>
<link>http://www.iherebydecree.com/archive/id/883</link>
<description><![CDATA[]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/883</guid>
<pubDate>Sat, 29 Aug 2009 17:44:38 -0400</pubDate></item>
<item>
<title>Why Boy/Girl Robots?</title>
<link>http://www.iherebydecree.com/archive/id/882</link>
<description><![CDATA[I hereby decree that it is weird that people make "boy" and "girl" robots. Do we want them to be able to reproduce? I am pretty sure we are creating our own robotic uprising, they won't even have to become self aware.<br />
<br />
Seriously though, why do we try and make humanoid robots that have male or female characteristics? First of all, aren't robots supposed to be more efficient than us? Then why give them the same range of motion and physical obstacles that we ourselves face? Adding some kind of gender makes even less sense. What would differentiate a male robot from a female one? Would they have different skills? Why should they? I will come out right now and say that I think that it is in our nature to have different roles as men and women in society (roles NOT being defined as rights). But robots? Come one. <br />
<br />
I suppose robots are designed and build for different tasks, but if we are making humanoid robots why not just build one that can do the whole range of tasks. Why would we ever need to build different "gender" types? (I put gender in quotes because robots wouldn't have a biological sex).<br />
<br />
/random thought.]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/882</guid>
<pubDate>Thu, 20 Aug 2009 17:58:06 -0400</pubDate></item>
<item>
<title>/WidgetNest</title>
<link>http://www.iherebydecree.com/archive/id/881</link>
<description><![CDATA[I turned off WidgetNest this morning. Now it is time to turn my attention to other things.]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/881</guid>
<pubDate>Sat, 15 Aug 2009 14:03:19 -0400</pubDate></item>
<item>
<title>Thank You, WidgetNest</title>
<link>http://www.iherebydecree.com/archive/id/880</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/goodbyewidgetnest.jpg" width="580" height="430" alt="Goodbye WidgetNest" /><br />
<em>WidgetNest, 2007 - 2009</em><br />
<br />
I hereby decree that <a href="http://widgetnest.net">WidgetNest</a> will always hold a soft spot in my heart. WidgetNest was formed by my friends <a href="http://minorsoft.com">Jared</a>, <a href="http://chrishallmedia.com">Interaction Designer Chris Hall</a>, and <a href="http://www.lemieuxster.com">me</a> in early 2007 with basically one idea in mind. We would make we widgets and see if we could get people to pay us for them. <br />
<br />
I am a little sad to say that for all intents and purposes WidgetNest is now dead, but I take comfort in knowing that while it may not be what it once was it was definitely a success. The experience, knowledge, and inspiration that came from that project got me where I am today. Within a month of inception we had people calling us from Google, Netscape, Brides.com, and other high-traffic websites wanting to talk to us about widgets. We were able to do lots of fun work and learn a lot about business and software development along the way. <br />
<br />
WidgetNest widgets are still viewed millions of times a week (if not per day!). We aren't doing any more client work so we don't have the inflow of money we need to keep the servers alive for too much longer, so the end is coming soon. I will try and keep things running for as long as I can. Our most popular widgets have already been transferred to more reliable hosting, so no worries there, but as it is we have already had to cut back on what is available. <br />
<br />
I would like to thank Jared, Chris, my wife Val, and all the people we talked with and worked with along the way. WidgetNest was one of the best decisions I ever made.]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/880</guid>
<pubDate>Wed, 29 Jul 2009 00:46:12 -0400</pubDate></item>
<item>
<title>Fake Martial Arts Ads</title>
<link>http://www.iherebydecree.com/archive/id/879</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/invisible_promo_tease.jpg" width="580" height="130" alt="Invisible Tease" /><br />
<br />
A few weekends ago my brother needed some help with a homework assignment. He was supposed to have made a magazine of sorts with articles and advertisements focused on a certain topic for an English class. He hadn't finished it and needed some help. I volunteered to help make the ads. <br />
<br />
The topic of his magazine was <a href="http://en.wikipedia.org/wiki/Mixed_martial_arts">Mixed Martial Arts.</a> He decided that he wanted at least one of the ads to promote a made up MMA supply company called "Endure." Here are the ads I came up with. <br />
<ul><br />
<li><a href="http://media.iherebydecree.com/invisble_promo.jpg">Invisible Man</a></li><br />
<li><a href="http://media.iherebydecree.com/fly_promo.jpg">Fly</a></li><br />
<li><a href="http://media.iherebydecree.com/powerpowder_promo.jpg">Power Powder</a></li><br />
</ul><br />
Sorry I don't include the actual images here. They would be pretty big in this post and also I am lazy.  ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/879</guid>
<pubDate>Sun, 14 Jun 2009 17:18:16 -0400</pubDate></item>
<item>
<title>Showers</title>
<link>http://www.iherebydecree.com/archive/id/878</link>
<description><![CDATA[I try to be a time-conscience, eco-friendly, on-time kind of a guy, but I can't seem to avoid taking longer-than-needed showers. I realize that no-one but me needs to know this, but I don't care. It is time for another segment of things you didn't need to know.<br />
<br />
This is a conversation I have with myself almost every morning:<br />
<br />
Me: I am going to just take a quick shower.<br />
(turns on shower, feels how nice it is, takes too long)<br />
Me: Oh no! I took too long again!<br />
<br />
Somewhere between having that thought and turning the water handle (about 0.5 seconds) I get so distracted that I forget my goal. Maybe I should write it on the shower wall with a dry erase marker. <br />
<br />
-And this concludes another segment of things you didn't need to know. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/878</guid>
<pubDate>Sun, 14 Jun 2009 17:06:52 -0400</pubDate></item>
<item>
<title>The Problem With Local Connection 2, Electric Boogaloo</title>
<link>http://www.iherebydecree.com/archive/id/877</link>
<description><![CDATA[I would suggest starting here: <a href="http://iherebydecree.com/archive/id/836">The Problem With Local Connection</a><br />
<br />
At the end of the above-linked post I said "In the mean time we are working on a solution using <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/SharedObject.html">SharedObject</a> and timed polling [to replace <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/LocalConnection.html">LocalConnection</a>]." So it should be no surprise to announce that we have successfully done so. <br />
<br />
<strong>We replaced LocalConnection with SharedObject</strong><br />
<br />
<em>How is it done?</em><br />
The premise is a simple one, instead of directly calling a method on another swf file as you would with LocalConnection, we have created a polling system that uses SharedObject to relay messages from one swf to another. SharedObject is like a cookie that Flash Player can use on a users machine. Taking that in to consideration we built a controller that uses SharedObject to save and retrieve data at timed intervals and in that way shares commands between different swf files. <br />
<br />
<em>Here is a basic rundown of what happens:</em><br />
SWF One - writes an instruction to the SharedObject using the controller. <br />
<br />
SWF Two - is set up to listen for changes of the SharedObject and then parse new values for instructions. <br />
<br />
<em>There are some "gotchas"</em><br />
First, if you have lots of SWFs on the page you don't want them to accidentally overwrite any previously set but unread value. Because the sending isn't instantaneous it is very possible that multiple instructions could be send before the receiver had a chance to poll for more of them. To overcome this we implemented a basic multi-thread like system of mutexes and semaphores. Essentially, different actions (reading and writing, depending on the circumstance) block others and the controller knows how to queue up commands. The controller also knows how to interpret queued commands. <br />
<br />
Second, there are people who don't allow memory for SharedObject on their machines. In this case we had to build in a LocalConnection backup. This is ironic because we build the SharedObject controller to replace LocalConnection, but it is more of a Plan B than a surefire backup. <br />
<br />
Third, related to the first, there can be some lag between when a command is sent and when it is received. Fractions of a second (in our case) but still lag nonetheless.<br />
<br />
Fourth, because of the way we implemented queuing sometimes there can be a high increase in CPU usage. We are working on tweaking this. <br />
<br />
<em>How can you do it yourself?</em><br />
That is a very excellent question. We are currently stress testing our solution and are about to launch it on an even larger scale. We now have a very scalable solution for sending messages to multiple swfs on a page. We have tested <strong>hundreds of swfs on a page communicating with one another</strong> with a 100% success rate. Comparing that to the small range (5-12 or so) of LocalConnection successes and I feel like we have a real winner on our hands. <br />
<br />
I cannot say if we will ever release the code and we wouldn't currently because of how new and untested it is (and undocumented and still needing refinement and a million other reasons). I do wish to say we have found a solution, however, and that If you familiarize yourself with SharedObject and think about it for a while you will be able to come up with your own solution. Our controller is literally around 50-100 lines of code; not very big.<br />
<br />
If you come up with something you would like to share please do. I am also willing to answer questions if they arise. <br />
<br />
Best of luck. ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/877</guid>
<pubDate>Sun, 24 May 2009 00:55:47 -0400</pubDate></item>
<item>
<title>Stay Tuned</title>
<link>http://www.iherebydecree.com/archive/id/876</link>
<description><![CDATA[I hereby decree that you should all stayed tuned for the next exciting installment of <a href="http://iherebydecree.com/archive/id/836">"The Problem With Local Connection."</a> Will David ever find a way to fix the shortcomings of LocalConnection? Can Flash Player meet the challenge? Is Deborah dead? Find out all this and more, soon!<br />
<br />
... and I am back from an unintentional blog/link hiatus. Huzzah!]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/876</guid>
<pubDate>Tue, 12 May 2009 23:11:43 -0400</pubDate></item>
<item>
<title>Work Lately</title>
<link>http://www.iherebydecree.com/archive/id/875</link>
<description><![CDATA[Here is a blog post and video from <a href="http://www.widgetbox.com">Widgetbox</a> that outlines what I have been working on lately: <a href="http://blog.widgetbox.com/2009/04/widgetboxs-new-image-cropper-video-tutorial/">A simple Flash image cropper for use with our Blidget Pro product.</a> ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/875</guid>
<pubDate>Mon, 20 Apr 2009 23:29:10 -0400</pubDate></item>
<item>
<title>My Son&apos;s Baby Announcement, Part 1</title>
<link>http://www.iherebydecree.com/archive/id/874</link>
<description><![CDATA[<img src="http://media.iherebydecree.com/postimages/space-announcement.jpg" width="580" height="435" alt="Isaac's Baby Announcement"><br />
<br />
A month ago our second child, Isaac, was born. We are now in the middle of creating and sending out baby announcements. My wife wants to do this for some reason. Anyway, just as I <a href="http://iherebydecree.com/archive/id/778">offered my excellent and unmatched skill to my brother (check out all 10 parts)</a>, I will be helping out my wife by designing the baby announcement. Here is a first pass. <br />
<br />
Welcome, Isaac, to this planet we call home! ]]></description>
<guid isPermaLink="true">http://www.iherebydecree.com/archive/id/874</guid>
<pubDate>Sat, 04 Apr 2009 18:12:48 -0400</pubDate></item>
</channel>
</rss>