<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5266306673596536007</id><updated>2011-12-13T08:56:57.930-08:00</updated><category term='virtualization'/><category term='Etch-A-Sketch'/><category term='Milan'/><category term='DryerFox'/><category term='MAKE magazine'/><category term='Bug Quash 2009'/><category term='VMware Fusion'/><category term='7-11'/><category term='NoMokin'/><category term='XKCD'/><category term='Deployment'/><category term='date bug'/><category term='Papervision3D'/><category term='WebKit'/><category term='Fireworks'/><category term='systemChrome'/><category term='OS X'/><category term='Pirate'/><category term='Apollo'/><category term='Embedded'/><category term='Duane Nickull'/><category term='Flash Player 10'/><category term='Arduino'/><category term='Vancouver'/><category term='Browser Hack'/><category term='Business Objects'/><category term='C code'/><category term='UI Resource Center'/><category term='Flex Builder'/><category term='sound effects'/><category term='EffectiveUI'/><category term='Apu'/><category term='WorkSpace'/><category term='Flex'/><category term='Red Bull'/><category term='Cowbell Hero'/><category term='Parallels Desktop'/><category term='Adobe Air'/><category term='Ted Patrick'/><category term='Freescale'/><category term='Theft'/><category term='AIR'/><category term='Design'/><category term='Pixton'/><category term='Nerd test'/><category term='Open Screen Project'/><category term='SDK'/><category term='Badge Installer'/><category term='Boot Camp'/><category term='Flugtag'/><category term='transparency'/><category term='Zune'/><category term='Mashups'/><category term='Eclipse'/><category term='Jerk'/><category term='Out Of The Box'/><category term='SWFObject'/><category term='360|Flex'/><category term='Kwik-E-Mart'/><category term='VFFUG'/><category term='Silverlight'/><title type='text'>Old Doug, New Tricks!</title><subtitle type='html'>A 40-something's lame attempt to keep up with web technology</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-8698479492784999741</id><published>2009-04-03T22:59:00.001-07:00</published><updated>2009-04-04T08:35:19.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bug Quash 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='VFFUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='SDK'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe Air'/><title type='text'>w00t! 2009 World Champion Flex Bug Quasher!</title><content type='html'>So I "won" the Flex &lt;a href="http://www.bugquash.com/"&gt;Bug Quash&lt;/a&gt; in Seattle last weekend.&lt;br /&gt;&lt;h3&gt;Shouldn't Adobe fix their own bugs? Why work for free?&lt;/h3&gt;I don't. Adobe doesn't. I get paid to deliver engaging user experiences for our clients, and most of my development work is Flex based. I have benefitted from the great community of Flex developers and it's time to pay it forward a bit.&lt;br /&gt;&lt;br /&gt;I use a fair bit of open source software in my work, and I think contributing to the source code base is a good thing. Plus, I also used the opportunity to fix a couple of bugs that had been causing me pain in past projects. So it was self-serving open source work?&lt;br /&gt;&lt;h3&gt;Road Trip!&lt;/h3&gt; I help organize the monthly &lt;a href="http://flash.meetup.com/110/"&gt;Vancouver Flash Platform Meetup&lt;/a&gt; with &lt;a href="http://www.flashinvan.com/"&gt;Ross Ladell&lt;/a&gt;. During a recent lunch, nay, drink we realized that the Bug Quash event was being hosted in Seattle, rather than in the Bay area like I had assumed. So we declared it road trip worthy, and I rented a van for the day. Well, EffectiveUI rented the van, aren't corporate cards wonderful?&lt;br /&gt;&lt;br /&gt;A bunch of us Vancouver geeks drove down to the Adobe Seattle office to represent Canada. It was a pretty quick drive (border hassles not included) and a fun way (what a geek!) to spend a Saturday. Ross met us down there and the folks from &lt;a href="http://www.activenetwork.com/"&gt;The Active Network&lt;/a&gt; were also there. So about 10 of the 30-ish bodies in Seattle were from Vancouver. Nice.&lt;br /&gt;&lt;h3&gt;I win!!! Umm ... define "win"&lt;/h3&gt;All of this hinges on a very loose &amp;amp; liberal definition of what "win" means. I submitted the most patches that day, 5 in total. So given that metric, I won.&lt;br /&gt;&lt;br /&gt;A former boss told me to remember that "fair" and "simple" are at opposite ends of the spectrum. Simple systems usually aren't fair, and fair systems usually are complex.&lt;br /&gt;&lt;br /&gt;So counting the number of patches submitted was the easiest thing for the Bug Quash organizers to do, they were already doing it so that we could all watch the big numbers go up as patches were submitted throughout the day.&lt;br /&gt;&lt;br /&gt;But submitting a bunch of patches doesn't mean that I'm did a lot of work. I don't think I was the most productive quasher there. I'd much rather see a few really hard problems fixed in the SDK than have some submit a bunch of executable semi-colons.&lt;br /&gt;&lt;h3&gt;So what did I fix?&lt;/h3&gt;But I really couldn't describe my contributions as huge or high visibility. I just stayed focused in one area of the SDK (DateFormatter and some related classes) and knocked out some low hanging fruit.&lt;br /&gt;&lt;h4&gt;1) DateFormatter "HH" shows 24 not 00 &lt;/h4&gt;&lt;a href="https://bugs.adobe.com/jira/browse/SDK-16076"&gt;SDK-16076&lt;/a&gt; - This didn't even require a code change. It wasn't a bug. The "HH" pattern shows hours in 1-24, the "JJ" pattern shows hours in 0-23.&lt;br /&gt;&lt;br /&gt;All the comments said "Not a bug. close it". So I submitted an empty patch with a comment of "then CLOSE it already!". My patch was was rejected as a bit of an abuse of patch submission system, but the bug was closed anyway. I wasn't trying to be a jerk, but there wasn't any other clear way to mark/flag the bug for review. I'm not fond of bug lists that contain a lot of noise.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Total bugs quashed:&lt;/b&gt; 1&lt;br /&gt;&lt;b&gt;Total lines of code changed:&lt;/b&gt; 0&lt;br /&gt;&lt;h4&gt;2) Make DateFormatter.parseDateString() a static public method&lt;/h4&gt;&lt;a href="https://bugs.adobe.com/jira/browse/SDK-16902"&gt;SDK-16902&lt;/a&gt; - Yup. All this involved was changing "protected" to "public". +2 for me!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Total bugs quashed:&lt;/b&gt; 2&lt;br /&gt;&lt;b&gt;Total lines of code changed:&lt;/b&gt; 1&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;3) Fixed CalendarLayoutChangeEvent ctor&lt;/h4&gt;&lt;a href="https://bugs.adobe.com/jira/browse/SDK-18567"&gt;SDK-18567&lt;/a&gt; - I hit this bug a couple of weeks ago, while writing a custom calendar control. The constructor for the CalendarLayoutChangeEvent was ignoring some of its parameters (like the new date, ouch!) so the net effect was that you had to set the date property manually, after the event was constructed. This class was only used once inside the SDK and the flow of control through that method meant that the date property was always being set after the event was created. So the SDK was (inadvertently, I think) working around this bug.&lt;br /&gt;&lt;br /&gt;In addition to this two line fix, I also reviewed the SDK code for all the other classes in mx.events.*, just to be sure that this pattern wasn't repeated elsewhere. Nope. That was the only gotcha I could find. Which makes sense, since the other event classes are heavily used within the framework and bugs like that would have been caught early on.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Total bugs quashed:&lt;/b&gt; 3&lt;br /&gt;&lt;b&gt;Total lines of code changed:&lt;/b&gt; 3&lt;br /&gt;&lt;h4&gt;4) Fixed parsing of GMT+x date string&lt;/h4&gt;&lt;a href="https://bugs.adobe.com/jira/browse/SDK-13650"&gt;SDK-13650&lt;/a&gt; - This one took a bit more digging, and a whole lot more thinking. The patch I submitted on BugQuash day was rightfully rejected the first time. It actually wasn't until I wrote this post that I noticed that my original patch was rejected.&lt;br /&gt;&lt;br /&gt;The original test case was using the AdvancedDataGrid class, which is part of the closed-source data visualization library. That meant I couldn't test the fix with the 3.x branch, since there was no 3.x datavisualization.swc to link in.&lt;br /&gt;&lt;br /&gt;So I punted and did a HailMary commit. Which broke. Ugh.&lt;br /&gt;&lt;br /&gt;Thankfully, Alex posted a much simpler test case, one that didn't require the closed-source SWC, so I quickly fixed my fix (I had neglected to escape the plus-sign in a regular expression) and submitted a new patch.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Total bugs quashed:&lt;/b&gt; 4&lt;br /&gt;&lt;b&gt;Total lines of code changed:&lt;/b&gt; 4 (see the method to my madness yet?)&lt;br /&gt;&lt;h4&gt;5) Programatic HTML markup of Labels gets lost when truncateToFit() triggers&lt;/h4&gt;&lt;a href="https://bugs.adobe.com/jira/browse/SDK-14982"&gt;SDK-14982&lt;/a&gt; - This is a bug I hit and reported about a year ago. When I reported the bug, I also included a fix. If you've set any markup via the htmlText property and the label needs to be truncated, all the formatting gets lost. The fix still isn't 100% but it is better than before and it is not any slower in the success case.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Total bugs quashed:&lt;/b&gt; 5&lt;br /&gt;&lt;b&gt;Total lines of code changed:&lt;/b&gt; 19&lt;br /&gt;&lt;h3&gt;Did I deserve to win? Don't get me wrong. I like trophies!&lt;/h3&gt;Oh, I'm keeping the title belt. I'm claiming the (self-assigned) title of "2009 World Champion Flex Bug Quasher", at least until someone else comes along to push me off the top of the hill, attention-whore that I am.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Thanks to all the little people!&lt;/h3&gt;Thanks to Adobe for putting on the event.&lt;br /&gt;Thanks to all the fun folks we got to hang out with at the Seattle offices.&lt;br /&gt;Thanks to the Vancouver devs for kicking ass and claiming "first blood" (way to go &lt;a href="http://www.myot.ca/"&gt;Myo!&lt;/a&gt;).&lt;br /&gt;Thanks to &lt;a href="http://twitter.com/karljensen"&gt;Karl&lt;/a&gt; for helping me setup my dev environment so I could finally build the SDK properly.&lt;br /&gt;Thanks to the US Border Patrol officers who joined in our let's-bash-MSoft-fest at the border (nice to get the lads with the sense of humor for a change).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-8698479492784999741?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/8698479492784999741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=8698479492784999741' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/8698479492784999741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/8698479492784999741'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2009/04/w00t-2009-world-champion-flex-bug.html' title='w00t! 2009 World Champion Flex Bug Quasher!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-3300004766116998897</id><published>2009-03-14T15:36:00.000-07:00</published><updated>2009-03-14T15:45:11.445-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bug Quash 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='SDK'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe Air'/><title type='text'>Feed your inner ninja!</title><content type='html'>Have you registered yet for the Flex SDK Bug Quash on Saturday March 28th? That's just 2 weeks away.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://flash.meetup.com/110/calendar/9932142/"&gt;Vancouver Flash platform user's group&lt;/a&gt; is taking a road trip down to Seattle, so we can pwn in person!&lt;br /&gt;&lt;br /&gt;You don't have to show up in person, you can also register online. Regardless, once you register, make sure you download the pre-event kit (link sent once you register) so that you are fully prepared and good-to-go when the event starts.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bugquash.com/promos/seattle09.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 244px; height: 244px;" src="http://bugquash.com/promos/seattle09.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Looking forward to meeting more geeks and squashing some annoying bugs. Oh, and likely consuming a beverage or two.&lt;br /&gt;&lt;br /&gt;More info available at &lt;a href="http://www.bugquash.com/"&gt;http://www.bugquash.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-3300004766116998897?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/3300004766116998897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=3300004766116998897' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/3300004766116998897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/3300004766116998897'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2009/03/feed-your-inner-ninja.html' title='Feed your inner ninja!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-7729771229828925858</id><published>2009-01-24T13:06:00.000-08:00</published><updated>2009-02-07T11:55:34.276-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash Player 10'/><category scheme='http://www.blogger.com/atom/ns#' term='UI Resource Center'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Screen Project'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe Air'/><title type='text'>Flash Player 10 &amp; AIR for embedded devices - Adobe Open Screen Project FTW!</title><content type='html'>I recently had a chance to interview Adobe's Anuk Murarka about the &lt;a href="http://www.openscreenproject.org/"&gt;Open Screen Project&lt;/a&gt;, which aims to deploy Flash Player 10 and AIR 1.5 to a number of embedded platforms: Mobile, set-top-boxes, kiosks, and more.&lt;br /&gt;&lt;br /&gt;The interview is &lt;a href="http://uiresourcecenter.com/rich-internet-applications/articles/inside-the-open-screen-project.html?s=2_1"&gt;available here&lt;/a&gt;, at the &lt;a href="http://uiresourcecenter.com"&gt;UI Resource Center&lt;/a&gt; site. Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: John Dowdell wrote &lt;a href="http://blogs.adobe.com/jd/2009/02/the_work_of_the_osp.html"&gt;a very concise summary&lt;/a&gt; of the interview here, for those of you with ADHD. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-7729771229828925858?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/7729771229828925858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=7729771229828925858' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/7729771229828925858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/7729771229828925858'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2009/01/flash-player-10-air-for-embedded.html' title='Flash Player 10 &amp; AIR for embedded devices - Adobe Open Screen Project FTW!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-1203349123644479986</id><published>2008-12-31T18:17:00.000-08:00</published><updated>2008-12-31T18:38:46.738-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zune'/><category scheme='http://www.blogger.com/atom/ns#' term='date bug'/><category scheme='http://www.blogger.com/atom/ns#' term='MAKE magazine'/><category scheme='http://www.blogger.com/atom/ns#' term='Freescale'/><category scheme='http://www.blogger.com/atom/ns#' term='C code'/><title type='text'>Happy New Year! And welcome back, Zune-sters!</title><content type='html'>Amazingly, someone has already determined the flaw causing &lt;a href="http://www.cnn.com/2008/TECH/12/31/zune.player.failures/index.html"&gt;all those Zunes to lock up&lt;/a&gt; today.&lt;br /&gt;&lt;br /&gt;When I checked &lt;a href="http://blog.makezine.com/archive/2008/12/cause_of_zune_leapyear_problem_free.html?CMP=OTC-0D6B48984890"&gt;this MAKE magazine article&lt;/a&gt; describing the bug (part of the free runtime library provided by Freescale), all the code was rendered as left-aligned text in my browser.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;year = ORIGINYEAR; /* = 1980 */&lt;br /&gt;&lt;br /&gt;while (days &gt; 365)&lt;br /&gt;{&lt;br /&gt; if (IsLeapYear(year))&lt;br /&gt; {&lt;br /&gt;  if (days &gt; 366)&lt;br /&gt;  {&lt;br /&gt;   days -= 366;&lt;br /&gt;   year += 1;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;  days -= 365;&lt;br /&gt;  year += 1;&lt;br /&gt; }&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I couldn't see the flaw. Can you?&lt;br /&gt;&lt;br /&gt;I reformatted the code in &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;, and the problem became apparent.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;year = ORIGINYEAR; /* = 1980 */&lt;br /&gt;&lt;br /&gt;while (days &gt; 365)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;if (IsLeapYear(year))&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (days &gt; 366)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;days -= 366;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;year += 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;days -= 365;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;year += 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Can you see it now? Thought so. I wonder how many people will complain about their Zombie-Zunes on Dec 31, 2012?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-1203349123644479986?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/1203349123644479986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=1203349123644479986' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1203349123644479986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1203349123644479986'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/12/happy-new-year-and-welcome-back-zune.html' title='Happy New Year! And welcome back, Zune-sters!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-6450199122865325241</id><published>2008-12-08T09:23:00.001-08:00</published><updated>2008-12-08T09:34:28.719-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Vancouver'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Duane Nickull'/><category scheme='http://www.blogger.com/atom/ns#' term='Boot Camp'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe Air'/><title type='text'>Free Flex and AIR resources? We can haz!</title><content type='html'>&lt;p&gt;&lt;span style="font-size:130%;"&gt;Free AIR and Flex training. Bring it on!&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;Fellow Vancouverite &lt;a href="http://technoracle.blogspot.com/"&gt;Duane Nickull&lt;/a&gt; informed me that the sessions he was running at both MAXen (MAXes? What is that the correct pluralization? Where's &lt;a href="http://nubyonrails.com/tools/pluralize"&gt;RubyOnRails&lt;/a&gt; when you need it!) are now available online.&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;The &lt;a href="http://technoracle.blogspot.com/2008/11/adobe-max-2008-air-boot-camp-course.html"&gt;AIR Boot Camp&lt;/a&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt; session is intended to give you an overview of how you can leverage your existing Web developer tools to create desktop apps using the AIR platform, including the recently released AIR 1.5 runtime.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;The &lt;a href="http://technoracle.blogspot.com/2008/12/building-service-clients-with-flex-and.html"&gt;Building Flex service clients&lt;/a&gt; session gives you an overview of consuming web services from a Flex app, with links to preconfigured WAMP and MAMP stacks to test against.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Also, make sure to check out the great &lt;a href="http://flex.org/tour"&gt;Tour De Flex&lt;/a&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;app, available both as a standalone AIR app, and an eclipse/FlexBuilder plugin.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Don't be fooled by the default view in Tour De Flex. At first glance Tour De Flex looks like a less full-featured version of the &lt;a href="http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html"&gt;Flex Style Explorer&lt;/a&gt;, but check out that combo box that says "Flex Core Components". Other choices will reveal live apps and sample code for consuming well over a dozen popular clouds APIs like Twitter, Flickr, and Amazon, as well as demos/samples for Google/Yahoo/Mapquest maps.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;Got something cool to share? Submit it to the &lt;a href="http://flex.org/2008/10/31/submit-component-tour-de-flex"&gt;Flex.org form&lt;/a&gt; and it may show up in the next publish phase.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-6450199122865325241?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/6450199122865325241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=6450199122865325241' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/6450199122865325241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/6450199122865325241'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/12/free-flex-and-air-resources-we-can-haz.html' title='Free Flex and AIR resources? We can haz!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-2228871547166535901</id><published>2008-10-17T11:00:00.000-07:00</published><updated>2008-10-17T11:15:56.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Quickly change the font size in Eclipse: Handy for presentations!</title><content type='html'>The internet fairies were kind to me today.&lt;br /&gt;&lt;br /&gt;Over a year ago &lt;a href="http://olddougnewtricks.blogspot.com/2007/08/wanted-eclipse-ide-widget-to-quickly.html"&gt;I whined in this blog&lt;/a&gt; about how much time was wasted in conferences / presentations / code walkthroughs while trying to change the font size of the text editor in the IDE so that people at the back could see.&lt;br /&gt;&lt;br /&gt;And last night, out of the blue (the interwebs are blue, right?), I received an email from &lt;a href="http://smallwiki.unibe.ch/adriankuhn/"&gt;Adrian Kuhn&lt;/a&gt; in Switzerland saying "Wish granted!"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://smallwiki.unibe.ch/fontsizebuttons/fontsizebuttons.png/?action=MimeView"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://smallwiki.unibe.ch/fontsizebuttons/fontsizebuttons.png/?action=MimeView" alt="" border="0" /&gt;&lt;/a&gt;Download &lt;a href="http://smallwiki.unibe.ch/fontsizebuttons/"&gt;the jar Adrian has posted here&lt;/a&gt; and copy it to your Eclipse/FlexBuilder plugins folder and restart your IDE.&lt;br /&gt;&lt;br /&gt;Ta-frickin-da!&lt;br /&gt;&lt;br /&gt;Now you can quickly increase/decrease the font size of both the editor and the console window without interrupting the flow of a presentation. It's a small thing, for sure, but it's a beautiful small thing.&lt;br /&gt;&lt;br /&gt;Apparently this has been tested on Eclipse 3.3+ and Java 1.5+. Works for me!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-2228871547166535901?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/2228871547166535901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=2228871547166535901' title='88 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2228871547166535901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2228871547166535901'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/10/quickly-change-font-size-in-eclipse.html' title='Quickly change the font size in Eclipse: Handy for presentations!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>88</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-2707847650494644413</id><published>2008-04-28T19:20:00.000-07:00</published><updated>2008-04-28T19:37:27.681-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EffectiveUI'/><category scheme='http://www.blogger.com/atom/ns#' term='Vancouver'/><category scheme='http://www.blogger.com/atom/ns#' term='Papervision3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>C U @ PV3D Vancouver this weekend!</title><content type='html'>I'm excited to get some &lt;a href="http://www.richmediainstitute.com/training/papervision_chi/"&gt;Papervision3D training this weekend&lt;/a&gt; from John Grden. We might decide to make him an honourary Canadian and buy him an extra vowel or two for his last name.&lt;br /&gt;&lt;br /&gt;Obviously, the appropriate Canadian letter would be a 'U', since we have so many of them lying around these days. "Color?" Never heard of it. "Colour?" Yeah, baby. That's more like it!&lt;br /&gt;&lt;br /&gt;Anyway, if you're from out-of-town and want to blend in, the correct pronounciation is "Vang-couver". Yup, us locals add a nearly silent "g" into the city's name.&lt;br /&gt;&lt;br /&gt;I hope to see you there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-2707847650494644413?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/2707847650494644413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=2707847650494644413' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2707847650494644413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2707847650494644413'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/04/c-u-pv3d-vancouver-this-weekend.html' title='C U @ PV3D Vancouver this weekend!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-6474333701666355902</id><published>2008-03-15T20:34:00.000-07:00</published><updated>2008-03-15T20:47:45.313-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='360|Flex'/><title type='text'>Boo-hoo! I have to miss 360|Flex Milan</title><content type='html'>Unfortunately (for me, at least), I've had to pull out of my Cowbell Hero session @ &lt;a href="http://www.360flex.com/360flex_europe/"&gt;360|Flex Milan&lt;/a&gt;. I can't make the conference any longer, and I'm feeling very, very sheepish (as opposed my usual "moose-ish") for canceling so close the conference.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://360conferences.com/blog/2007/04/about-us.html"&gt;Tom and John&lt;/a&gt; have been great about it. They really have the coolest conference going these days.&lt;br /&gt;&lt;br /&gt;But just because I can't go, it doesn't mean you shouldn't (my absence might even be *more* of a reason to go!).  You simply will not find a better value for your 360 Euros than in Milan, April 7-9.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Doug&lt;br /&gt;&lt;br /&gt;PS: Cowbell Hero is still a go, and I'll be posting details on this blog as development progresses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-6474333701666355902?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/6474333701666355902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=6474333701666355902' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/6474333701666355902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/6474333701666355902'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/03/boo-hoo-i-have-to-miss-360flex-milan.html' title='Boo-hoo! I have to miss 360|Flex Milan'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-69193899618766247</id><published>2008-03-04T12:25:00.000-08:00</published><updated>2008-03-04T15:42:57.172-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Milan'/><category scheme='http://www.blogger.com/atom/ns#' term='Cowbell Hero'/><category scheme='http://www.blogger.com/atom/ns#' term='Arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='360|Flex'/><title type='text'>Come see Cowbell Hero @ 360|Flex Europe!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6JaaEqFT5bo/R822VQVotDI/AAAAAAAAAEE/4QpFc9bVE40/s1600-h/LaVictoriaArduinoEspresso.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_6JaaEqFT5bo/R822VQVotDI/AAAAAAAAAEE/4QpFc9bVE40/s320/LaVictoriaArduinoEspresso.jpg" alt="" id="BLOGGER_PHOTO_ID_5173992023197791282" border="0" /&gt;&lt;/a&gt;I'm excited to be presenting at &lt;a href="http://www.360flex.com/360flex_europe/"&gt;360|Flex Europe&lt;/a&gt; in Milan, Apr 7-9.&lt;br /&gt;&lt;br /&gt;When I first talked with Tom &amp;amp; John about the Milan gig last August, I said that I had wanted to present something that integrates hardware and physical interaction with the Flash platform.&lt;br /&gt;&lt;br /&gt;So over the past year I've been working on a number of home projects centered around the &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt;, a low-cost open source hardware platform, which fittingly was designed in Italy.&lt;br /&gt;&lt;br /&gt;The Arduino is a 16 Mhz Atmel microcontroller with a USB interface and a number of digital I/Os and analog inputs. You can &lt;a href="http://store.makezine.com/SearchResults.asp?Cat=43"&gt;purchase a fully assembled Arduino controller for less than $40&lt;/a&gt;. And open source IDE is available for Mac/Windows/Linux.&lt;br /&gt;&lt;br /&gt;So $40 plus a few spare LEDs and simple components can yield some interesting stuff.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6JaaEqFT5bo/R83drAVotHI/AAAAAAAAAEk/Xv1cIT5Q4og/s1600-h/ArduinoDiecimila400.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6JaaEqFT5bo/R83drAVotHI/AAAAAAAAAEk/Xv1cIT5Q4og/s320/ArduinoDiecimila400.jpg" alt="" id="BLOGGER_PHOTO_ID_5174035277813429362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;Cowbell Hero with an Arduino&lt;/h2&gt;This Christmas my son got an Xbox 360, and I got Guitar Hero. Now my son (15) and daughter (11) routinely kick my butt at this game (but at least they unlocked &lt;a href="http://www.youtube.com/watch?v=ZpQmtjfsZU4"&gt;Trogdor&lt;/a&gt;! for me).&lt;br /&gt;&lt;br /&gt;When I was planning for 360 Milan, I was trying to think of a fun way to engage the audience, and I thought it would be fun to create game in AIR. Natuarally, this game had to be Cowbell Hero.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6JaaEqFT5bo/R83dPgVotFI/AAAAAAAAAEU/TxmfiI2xZYY/s1600-h/CowbellHeroMobile3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6JaaEqFT5bo/R83dPgVotFI/AAAAAAAAAEU/TxmfiI2xZYY/s320/CowbellHeroMobile3.png" alt="" id="BLOGGER_PHOTO_ID_5174034805367026770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We'll be hooking up my Mac to the projector, the Arduino, and the sound system, and rocking out like &lt;a href="http://www.c-eye.net/flash/WalkenCowbellSB.html"&gt;Bruce Dickinson&lt;/a&gt; would want.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6JaaEqFT5bo/R83dbwVotGI/AAAAAAAAAEc/e-GyvTvtDWw/s1600-h/CowbellDemotivator.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6JaaEqFT5bo/R83dbwVotGI/AAAAAAAAAEc/e-GyvTvtDWw/s320/CowbellDemotivator.jpg" alt="" id="BLOGGER_PHOTO_ID_5174035015820424290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So sign up now for 360 Flex Europe, and I'll see you in Milan!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-69193899618766247?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/69193899618766247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=69193899618766247' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/69193899618766247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/69193899618766247'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/03/come-see-cowbell-hero-360flex-europe.html' title='Come see Cowbell Hero @ 360|Flex Europe!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6JaaEqFT5bo/R822VQVotDI/AAAAAAAAAEE/4QpFc9bVE40/s72-c/LaVictoriaArduinoEspresso.jpg' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-1630721103771525729</id><published>2008-01-31T20:13:00.001-08:00</published><updated>2008-01-31T20:26:31.727-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Objects'/><category scheme='http://www.blogger.com/atom/ns#' term='Ted Patrick'/><category scheme='http://www.blogger.com/atom/ns#' term='Pixton'/><category scheme='http://www.blogger.com/atom/ns#' term='VFFUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Duane Nickull'/><title type='text'>Pixton revealed at Vancouver Flex/AIR tour</title><content type='html'>&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;The fine folks at &lt;a href="http://www.businessobjects.com/"&gt;Business Objects&lt;/a&gt; hosted the the recent Vancouver stop of the &lt;a href="http://flash.meetup.com/110/"&gt;Flex3/AIR Prerelease Tour&lt;/a&gt;. Local Adobe Evangelist &lt;a href="http://technoracle.blogspot.com/"&gt;Duane Nickull&lt;/a&gt; was bravely demoing a 4-hour-old build of Flex Builder, showing off the new features to a crowd of of about 60+ developers / designers. About half were new to the Flash platform (welcome to the party!).&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Duane's quote of the night came at the &lt;a href="http://www.markjamesgroup.com/yaletown.html"&gt;Yaletown Brew Pub&lt;/a&gt; afterwards: After telling him that I think that Flex is the crack-cocaine of programming languages, Duane quipped "Adobe considers Flex to be the gateway-drug to AIR". Brilliant.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Star of the evening - &lt;a href="http://www.pixton.com/"&gt;Pixton&lt;/a&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pixton.com/img/pixton-logo.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 138px; height: 54px;" src="http://www.pixton.com/img/pixton-logo.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Local developer &lt;a href="http://www.goodinson.com/"&gt;Clive Goodinson&lt;/a&gt; demoed a new online comic site called Pixton. This super awesome site was created by Clive in just two months, and includes a Flash CS3 front end married to a PHP back end. Pixton is incredibly visually appealing, plus it has very immerisive and intuitive editing capabilities. Drag a character's arm to reposition it, and the joints all move correspondingly, in a very natural manner.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;You can also remix the content of other Pixton comics, if the original author permits. Duane has already used Pixton to mock co-worker &lt;a href="http://www.onflex.org/"&gt;Ted Patrick&lt;/a&gt;. Most excellent.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-1630721103771525729?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/1630721103771525729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=1630721103771525729' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1630721103771525729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1630721103771525729'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/01/pixton-revealed-at-vancouver-flexair.html' title='Pixton revealed at Vancouver Flex/AIR tour'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-9183156628519534593</id><published>2008-01-31T08:10:00.001-08:00</published><updated>2008-01-31T08:14:47.904-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='Mashups'/><title type='text'>My new mashups book is out!</title><content type='html'>&lt;p&gt;Please help support this blog and buy this book. It was &lt;a href="http://www.oreillymaker.com/link/9515/mashup-20/" title="Amazon.com: Tech Bestsellers Top20: Mashup 2.0 - Doug Schmidt"&gt;seconds&lt;/a&gt; in the making!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;img src="http://www.dryerfox.com/blog/Mashup2Book.png" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-9183156628519534593?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/9183156628519534593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=9183156628519534593' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/9183156628519534593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/9183156628519534593'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/01/my-new-mashups-book-is-out.html' title='My new mashups book is out!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-1738437517697299449</id><published>2008-01-12T11:34:00.000-08:00</published><updated>2008-01-13T00:07:05.548-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EffectiveUI'/><category scheme='http://www.blogger.com/atom/ns#' term='NoMokin'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><title type='text'>Labels everywhere often means that the design sucks</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6JaaEqFT5bo/R4kjCEsAA9I/AAAAAAAAADM/-prc9xw1YIU/s1600-h/IcronElevator.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer;" src="http://4.bp.blogspot.com/_6JaaEqFT5bo/R4kjCEsAA9I/AAAAAAAAADM/-prc9xw1YIU/s320/IcronElevator.jpg" alt="" id="BLOGGER_PHOTO_ID_5154689767027246034" border="0" /&gt;&lt;/a&gt;This blurry picture is a camera-phone snap (scratched lens! grrr!) of the elevator control panel at my previous gig, before I joined &lt;a href="http://www.effectiveui.com/" title="Da site"&gt;EffectiveUI&lt;/a&gt;. The pic is blurry, but you can still make out the details.&lt;br /&gt;&lt;br /&gt;There is just no affordance or discoverability in this button layout. I was working onsite for a couple of months, and I saw &lt;strong&gt;everybody&lt;/strong&gt; continue to struggle to figure this thing out. I'm not talking just visitors (who also struggled), but people who had been working there for years! I was also tricked by the strange layout a couple of times a week.&lt;br /&gt;&lt;br /&gt;Now, to be fair, the building was a little oddly shaped. It was built into a steep hill, and was terraced. An elevation perspective looked like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;    +---+&lt;br /&gt;    | 2 |&lt;br /&gt;    +---+--+&lt;br /&gt;Gnd | 1    |&lt;br /&gt;----+------+&lt;br /&gt;    |      |     Patio&lt;br /&gt;    +------------------+  Ground level&lt;br /&gt;    | Parking P3       |-------\&lt;br /&gt;    +------------------+        \&lt;br /&gt;    | Parking P2       |&lt;br /&gt;    +------------------+&lt;br /&gt;    | Parking P1       |&lt;br /&gt;    +------------------+&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Things I found bad about this design:&lt;p&gt;&lt;/p&gt;&lt;pre&gt;"Main" (1)  (2)&lt;br /&gt;       (P3) (M) "Roof Garden"&lt;br /&gt;       (P1) (P2)&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;This panel is &lt;strong&gt;ordered right-to-left&lt;/strong&gt;, instead of left-to-right. The standard layout (at least in North America) is for two-column panels to start with the top floor on the upper-left, and then decrement floor-by-floor in a left-to-right, top-to-bottom sequence.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Floor 1 (street level entry) is also labeled "Main", but there is an "M" button!&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The mezzanine floor has the confusing "M" button, which everyone thought was the main level. "M" should only be for main.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;To fix the above, the mezzanine floor is labeled "Roof Garden". Roof? In the middle of the building? Call it a patio and avoid the confusion already!&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The parking levels are not ordered according to the standard. Underground parking levels should start with P1 being the level &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;just below&lt;/span&gt;&lt;span style="font-size:100%;"&gt; the main floor. So P3 should be floor furthest down, not at the top.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:100%;"&gt;It's a tough design problem, for sure, but I think that the person responsible for this just gave &lt;span style="font-family:georgia;"&gt;up and said "This will do", thereby condeming all future occupants to confusion.&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:Helvetica;font-size:12px;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:georgia;font-size:12px;"&gt;&lt;span style="font-size:100%;"&gt;How would you solve the layout problem?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;p   style="margin: 0px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; font-size-adjust: none; font-stretch: normal;font-family:Helvetica;font-size:12px;"&gt;&lt;span style="font-size:100%;"&gt;(PS: Can you tell I love ASCII art?)&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-1738437517697299449?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/1738437517697299449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=1738437517697299449' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1738437517697299449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1738437517697299449'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/01/labels-everywhere-often-means-that.html' title='Labels everywhere often means that the design sucks'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6JaaEqFT5bo/R4kjCEsAA9I/AAAAAAAAADM/-prc9xw1YIU/s72-c/IcronElevator.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-651956951923977216</id><published>2008-01-12T09:47:00.000-08:00</published><updated>2008-01-12T12:27:23.443-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XKCD'/><title type='text'>No, I haven't died in a blogging accident</title><content type='html'>&lt;p&gt;Just in case any of you were wondering. Man, you gotta love &lt;a href="http://xkcd.com/369/" title="Dangers"&gt;XKCD&lt;/a&gt;. Too many fluff posts like this are &lt;a href="http://slashdot.org/article.pl?sid=08/01/12/1312258" title="XKCD inadvertant Google-bomb"&gt;skewing the results&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-651956951923977216?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/651956951923977216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=651956951923977216' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/651956951923977216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/651956951923977216'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/01/no-i-haven-died-in-blogging-accident.html' title='No, I haven&amp;#39;t died in a blogging accident'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-4279843761641737354</id><published>2008-01-02T10:19:00.001-08:00</published><updated>2008-01-02T10:59:09.222-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='SWFObject'/><category scheme='http://www.blogger.com/atom/ns#' term='Badge Installer'/><title type='text'>DryerFox - Updated for Flex 3 Beta 3</title><content type='html'>I made a few minor tweaks to DryerFox a few weeks ago, but I thought I should post them.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Updated the code to resolve breaking changes.&lt;br /&gt;&lt;br /&gt;The WebKit control was reworked a fair bit for Beta 3. mx.controls.HTML no longer delegates the heavy lifting to flash.html.HTMLControl. So this meant a code sweep to change snippets like:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;html.htmlControl.historyBack()&lt;/code&gt; becomes &lt;code&gt;html.historyBack()&lt;/code&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;html.htmlControl.window.document.title&lt;/code&gt; becomes &lt;code&gt;html.domWindow.window.document.title&lt;/code&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;code&gt;HTMLUncaughtJavascriptExceptionEvent&lt;/code&gt; becomes &lt;code&gt;HTMLUncaughtScriptExceptionEvent&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Updated the &lt;code&gt;-app.xml&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Another beta, another &lt;code&gt;-app.xml&lt;/code&gt; schema.&lt;br /&gt;&lt;br /&gt;All the same values are set, but the precise location and names within the XML have changed again. I can see in the SDK that there is a template for these in sdk/templates/air/descriptor-template.xml. I just wish that Flex Builder provided a config panel interface to set this stuff, just like it does for the HTML wrappers.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Updated the badge installer&lt;br /&gt;&lt;br /&gt;This beta included another update to the badge installer, so I have included this in the source update.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added the new EverythingFlexAIR.SWC library&lt;br /&gt;&lt;br /&gt;DryerFox was already using Rich Tretola's UpdateManager class, and Rich has now packaged this (and other useful goodies) in a SWC, available &lt;a href="http://blog.everythingflex.com/2007/12/18/announcing-everythingflexair1swc/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Updated SWFObject to v2 RC1&lt;br /&gt;&lt;br /&gt;SWFObject has moved to a release candidate, so I updated my copy. No other changes required.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Source for the latest DryerFox can be found &lt;a href="http://www.dryerfox.com/blog/DryerFox/DryerFox.AirBeta3/srcview/index.html"&gt;here&lt;/a&gt;. App can be installed via the "Install Now" button at the top of the sidebar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-4279843761641737354?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/4279843761641737354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=4279843761641737354' title='21 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4279843761641737354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4279843761641737354'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2008/01/dryerfox-updated-for-flex-3-beta-3.html' title='DryerFox - Updated for Flex 3 Beta 3'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>21</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-4057064943627478898</id><published>2007-12-22T20:49:00.000-08:00</published><updated>2007-12-22T20:54:00.856-08:00</updated><title type='text'>I am older than the *nix epoch</title><content type='html'>&lt;p&gt;This fact dawned on me this week, during a discussion of UTC time handling in particular, and time/date handling in Flex in general.&lt;/p&gt;I don't know why I fixated on it. OK, I do know why. I'm terribly vain, *and* I'm the oldest guy in the company. At least I'm not the most mature!&lt;br /&gt;&lt;h3&gt;Random Fun Facts&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;The &lt;a href="http://en.wikipedia.org/wiki/Unix_time"&gt;UNIX epoch&lt;/a&gt; is defined as midnight, UTC, Jan 1, 1970.&lt;/li&gt;&lt;li&gt;I'm 42 years old, born just after the Earth finished cooling in July 1965, so that makes me about -4.5 years from the epoch.&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Coordinated_Universal_Time"&gt;UTC&lt;/a&gt; is not technically an acronym, since the letters don't stand for anything. Instead, the letters represent an interesting compromise between the French TUC (temps universel coordonné) and the English CUT (coordinated universal time).&lt;/li&gt;&lt;li&gt;I think the &lt;a href="http://en.wikipedia.org/wiki/Year_2038_problem"&gt;year 2038 problem&lt;/a&gt; is much more likely to be a big issue than the non-event that was Y2K.&lt;/li&gt;&lt;li&gt;Man, this date/time stuff is a difficult problem to solve precisely.&lt;/li&gt;&lt;li&gt;Did you know that the Unix epoch of Jan 1, 1970 is not the same as the UTC epoch of Jan 1, 1972?&lt;/li&gt;&lt;li&gt;Did you know that the official UTC spec includes leap seconds, but Unix time doesn't?&lt;/li&gt;&lt;li&gt;All of this makes me think of &lt;a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?playlistId=265625949&amp;amp;s=143455&amp;amp;i=265625982"&gt;this Chicago song&lt;/a&gt;. Which is also &lt;a href="http://en.wikipedia.org/wiki/Does_Anybody_Really_Know_What_Time_It_Is%3F"&gt;older than the Unix epoch&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-4057064943627478898?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/4057064943627478898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=4057064943627478898' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4057064943627478898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4057064943627478898'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/12/i-am-older-than-nix-epoch.html' title='I am older than the *nix epoch'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-262783261162963979</id><published>2007-10-03T11:44:00.000-07:00</published><updated>2008-01-07T10:27:13.740-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='SWFObject'/><category scheme='http://www.blogger.com/atom/ns#' term='Badge Installer'/><title type='text'>DryerFox - Moxie Beta 2 Upgrade Completed</title><content type='html'>This post updates a couple of earlier posts about &lt;a href="http://olddougnewtricks.blogspot.com/2007/07/dryerfox-updated-for-new-air-runtime.html"&gt;DryerFox&lt;/a&gt; in particular and how to &lt;a href="http://olddougnewtricks.blogspot.com/2007/08/using-swfobject-and-air-install-badge.html"&gt;deploy AIR apps with a seamless install&lt;/a&gt; from your web page.&lt;p&gt;Click on the "Install Now" button in the sidebar to get the latest DryerFox executable, or click &lt;a href="http://www.dryerfox.com/blog/DryerFox/DryerFox.AirBeta2/srcview/index.html"&gt;here for the source&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Updating from AIR Beta 1 to AIR Beta 2&lt;/h3&gt;This step was pretty straight forward. The &lt;span style="font-style: italic;"&gt;foo&lt;/span&gt;-app.xml schema has changed (again!) in FB3B2, so the simplest thing to do (and the sequence recommended in the release notes) was:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new AIR project&lt;/li&gt;&lt;li&gt;Cut-n-paste the few project descriptors and icon paths from the old project to the new project. The same information exists in both projects, but the location of each XML node has changed.&lt;/li&gt;&lt;/ol&gt;So far, each public beta of AIR has changed the app.xml schema, so this seems to be an &lt;span style="font-style: italic;"&gt;area of churn&lt;/span&gt;. Not a biggie though. It took about 3 minutes to do this.&lt;br /&gt;&lt;br /&gt;Once DryerFox was compiling in FB3B2, I found that the &lt;code&gt;stage.window&lt;/code&gt; property was renamed to &lt;code&gt;stage.nativeWindow&lt;/code&gt;, so I have to update the startMove(), minimize(), and close() handlers. That took another 5 minutes, and then DryerFox was up and running again.&lt;br /&gt;&lt;h3&gt;Adding UpdateManager&lt;/h3&gt;This was quite straightfoward. Kudos to Rich at the EverythingFlex blog for &lt;a href="http://blog.everythingflex.com/2007/10/01/air-update-manager/"&gt;posting this&lt;/a&gt; useful class.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I copied the com.everythingflex.air.managers.UpdateManager.as class to my project.&lt;/li&gt;&lt;li&gt;I created a &lt;a href="http://www.dryerfox.com/blog/DryerFox/version.xml"&gt;version.xml&lt;/a&gt; that matched the new version in -app.xml&lt;/li&gt;&lt;li&gt;Added the following two lines to the onAppInit() method:&lt;/li&gt;&lt;/ol&gt;&lt;pre name="code" class="actionscript"&gt;&lt;br /&gt;import com.everythingflex.air.managers.UpdateManager;&lt;br /&gt;var um:UpdateManager = new UpdateManager("http://www.dryerfox.com/blog/DryerFox/version.xml");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h3&gt;Seamless Installation update (imageurl is gone!)&lt;br /&gt;&lt;/h3&gt;I followed the instructions in the &lt;a href="http://labs.adobe.com/wiki/index.php/AIR:Release_Notes#Seamless_Installation_Update"&gt;AIR release notes&lt;/a&gt;, and updated my install badge to the latest version bundled in the SDK. This folder can be found at "&lt;span style="font-style: italic;"&gt;installRoot&lt;/span&gt;/Adobe Flex Builder 3/sdks/3.0.0/samples/badge".&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6JaaEqFT5bo/Rwq5JC4JOGI/AAAAAAAAADE/bV0iddoIA8M/s1600-h/Screenshot_8.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6JaaEqFT5bo/Rwq5JC4JOGI/AAAAAAAAADE/bV0iddoIA8M/s320/Screenshot_8.png" alt="" id="BLOGGER_PHOTO_ID_5119107491502307426" border="0" /&gt;&lt;/a&gt;In doing so I found that the new badge.fla no longer attempts to frame a supplied image with the button. I quite liked the embedded, so I just updated my older badge flash project &lt;a href="http://download.macromedia.com/pub/labs/air/air_b1_badge_062607.zip"&gt;from here&lt;/a&gt;, simply replacing older install.as with the newer, more robust version included in FB3B2.&lt;br /&gt;&lt;br /&gt;Feel free to steal my backwards-compatible &lt;a href="http://www.dryerfox.com/blog/DryerFox/DryerFox.AirBeta2/badge.swf"&gt;badge.swf&lt;/a&gt; if you want something you can just drop in as a replacement. Also note that Adobe now recommends setting Flash 8 as the minimum flash version. Since Flash 9 has well over 90% market penetration, that's a pretty reasonable setting.&lt;br /&gt;&lt;h3&gt;SWFObject 2.0&lt;/h3&gt;Geoff Stearns and Bobby van der Sluis have been busy improving their individual SWF-hosting efforts into a combined project, just released on &lt;a href="http://code.google.com/p/swfobject/"&gt;Google code&lt;/a&gt;. I've updated my "Install Now" button to use the SWFObject 2.0 script, and it seems to be working well. There is a syntax change from the previous use case, but it is still pretty simple to use.&lt;br /&gt;&lt;br /&gt;Here's the new syntax:&lt;br /&gt;&lt;pre name="code" class="javascript"&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="swfobject.js"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="dryerfox_flashcontent"&amp;gt;&lt;br /&gt;Whoa. You need to install &amp;lt;a href="http://www.adobe.com/go/flashplayer"&amp;gt;Adobe Flash Player&amp;lt;/a&amp;gt;.&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;var flashvars = {&lt;br /&gt; appname:  "DryerFox",&lt;br /&gt; appurl:  "DryerFox.air",&lt;br /&gt; imageurl:  "dryerfox_badge.jpg",&lt;br /&gt; airversion:  "1.0.M5",&lt;br /&gt; buttoncolor: "008811",&lt;br /&gt; messagecolor: "000000"&lt;br /&gt;};&lt;br /&gt;swfobject.embedSWF( "badge.swf", "dryerfox_flashcontent", "217", "180", "8", "expressInstall.swf", flashvars );&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;The first two sections are unchanged. Include the swfobject.js script in a &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag, and your app's alternate content in a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tag. Then use a &lt;code&gt;swfobject.embedSWF()&lt;/code&gt; method call to replace the alternate content with your SWF and viola!&lt;br /&gt;&lt;h3&gt;DryerFox demoed at Best Buy!&lt;/h3&gt;&lt;p&gt;Thanks for reading this far. I just thought I'd send a shout out to the techs at &lt;a href="http://www.bestbuy.ca/"&gt;Best Buy&lt;/a&gt; (is that still &lt;a href="http://www.geeksquad.ca/"&gt;Geek Squad&lt;/a&gt;?) for leaving their Vista demo systems wide open. On the weekend I was able to install DryerFox on a &lt;a href="http://www.bestbuy.ca/catalog/proddetail.asp?sku_id=0926INGFS10090809&amp;amp;catid=20217&amp;amp;PCName=desktop%5FHPCompaq&amp;amp;logon=&amp;amp;langid=EN"&gt;sweet HP 19" touchscreen system&lt;/a&gt;, and associate DryerFox with the .HTML file extension. Who sets up demo accounts with admin privileges?&lt;/p&gt;&lt;p&gt;Oh well, it was fun to drag the dryer around with my finger.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-262783261162963979?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/262783261162963979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=262783261162963979' title='35 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/262783261162963979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/262783261162963979'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/10/dryerfox-moxie-beta-2-upgrade-completed.html' title='DryerFox - Moxie Beta 2 Upgrade Completed'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6JaaEqFT5bo/Rwq5JC4JOGI/AAAAAAAAADE/bV0iddoIA8M/s72-c/Screenshot_8.png' height='72' width='72'/><thr:total>35</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-5948074187578258335</id><published>2007-10-02T22:55:00.000-07:00</published><updated>2007-10-02T23:20:11.029-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='SWFObject'/><category scheme='http://www.blogger.com/atom/ns#' term='Badge Installer'/><title type='text'>DryerFox - Maintenance mode</title><content type='html'>The DryerFox code is getting a wee bit stale, so it's time for an update. Rather than make incremental changes, I thought I'd lump in the following tweaks:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Build it with &lt;a href="http://labs.adobe.com/technologies/flex/flexbuilder3/"&gt;Flex Builder 3 (Moxie) Beta 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Add in Rich Tretola's &lt;a href="http://blog.everythingflex.com/2007/10/01/air-update-manager/"&gt;UpdateManager&lt;/a&gt; class&lt;/li&gt;&lt;li&gt;Deploy it with the new badge installer (now called &lt;a href="http://labs.adobe.com/wiki/index.php/AIR:Release_Notes#Seamless_Installation_Update"&gt;Seamless Installation&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Wrap the Install Now badge using &lt;a href="http://www.swffix.org/devblog/?p=14"&gt;SWFObject 2.0&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Four framework upgrades at once. What could possibly go wrong? ;-)&lt;br /&gt;&lt;br /&gt;Stay tuned ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-5948074187578258335?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/5948074187578258335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=5948074187578258335' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/5948074187578258335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/5948074187578258335'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/10/dryerfox-maintenance-mode.html' title='DryerFox - Maintenance mode'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-1066477262960871105</id><published>2007-09-26T11:43:00.000-07:00</published><updated>2007-09-26T11:49:42.037-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jerk'/><category scheme='http://www.blogger.com/atom/ns#' term='WorkSpace'/><category scheme='http://www.blogger.com/atom/ns#' term='Theft'/><title type='text'>To Catch A Thief</title><content type='html'>Or at least, to catch a buyer of hot items. :-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.schadendouche.com"&gt;Mr. Flickr-fied&lt;/a&gt; &lt;a href="http://www.canada.com/globaltv/bc/story.html?id=6db9bed3-87db-4640-b1fb-a00cffbb20ac&amp;amp;k=91553"&gt;turned the stolen iMac into Victoria police&lt;/a&gt; (that's a 2hr ferry ride away from Vancouver), on the advice of his lawyer. He had "bought it from a friend who bought it from someone else". Apparently our friend is "known to police" and the investigation is ongoing.&lt;br /&gt;&lt;br /&gt;I think we should chip in and get the iMac tattooed for easy identification next time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-1066477262960871105?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/1066477262960871105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=1066477262960871105' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1066477262960871105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1066477262960871105'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/09/to-catch-thief.html' title='To Catch A Thief'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-3182308010478766049</id><published>2007-09-24T14:08:00.000-07:00</published><updated>2007-09-24T14:43:42.603-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jerk'/><category scheme='http://www.blogger.com/atom/ns#' term='WorkSpace'/><category scheme='http://www.blogger.com/atom/ns#' term='Theft'/><category scheme='http://www.blogger.com/atom/ns#' term='Pirate'/><title type='text'>It wasn't me! I didn't do it! You can't prove anything!</title><content type='html'>OK, so this post is off-topic, but it is too sweet to not blog about.&lt;br /&gt;&lt;br /&gt;Our Vancouver office space is at the lovely &lt;a href="http://www.abetterplacetowork.com/"&gt;WorkSpace&lt;/a&gt; in Gastown. Last Tuesday night there was a break-in, and the thugs stole some computers, including a public-use iMac that lived near the espresso bar.&lt;br /&gt;&lt;br /&gt;That stolen iMac had the great &lt;a href="http://www.otierney.net/flickrbooth/"&gt;FlickrBooth&lt;/a&gt; plugin installed and today someone posted a few interesting pics of themselves to the &lt;a href="http://www.flickr.com/photos/workspace/1431892021/"&gt;WorkSpace Flickr&lt;/a&gt; account. Nice tats dude!&lt;br /&gt;&lt;br /&gt;40 minutes ago, one of the Flickr admins called WorkSpace owner &lt;a href="http://billmacewen.com/blog"&gt;Bill MacEwen&lt;/a&gt; with the IP address used to upload today's photos. I sure hope the cops nail this guy.&lt;br /&gt;&lt;br /&gt;At the time of the heist, I was in Denver, at the &lt;a href="http://www.effectiveui.com/"&gt;EffectiveUI&lt;/a&gt; main office. Since it was international &lt;a href="http://www.talklikeapirate.com/"&gt;Talk-Like-A-Pirate&lt;/a&gt; day, I was required by law to dress up. Today I noticed that my fake tats and bloated face make me look similar to the person of interest.&lt;br /&gt;&lt;br /&gt;I'm thankful I have a rock solid alibi.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6JaaEqFT5bo/RvgvMS4JOEI/AAAAAAAAAC0/AC9vm0V8IBc/s1600-h/Screenshot_1.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_6JaaEqFT5bo/RvgvMS4JOEI/AAAAAAAAAC0/AC9vm0V8IBc/s320/Screenshot_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5113889265151457346" border="0" /&gt; &lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6JaaEqFT5bo/RvgvUy4JOFI/AAAAAAAAAC8/lyky6pYl0TQ/s1600-h/Screenshot_2.jpg"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_6JaaEqFT5bo/RvgvUy4JOFI/AAAAAAAAAC8/lyky6pYl0TQ/s320/Screenshot_2.jpg" alt="" id="BLOGGER_PHOTO_ID_5113889411180345426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now go get him, boys!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-3182308010478766049?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/3182308010478766049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=3182308010478766049' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/3182308010478766049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/3182308010478766049'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/09/it-wasnt-me-i-didnt-do-it-you-cant.html' title='It wasn&apos;t me! I didn&apos;t do it! You can&apos;t prove anything!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6JaaEqFT5bo/RvgvMS4JOEI/AAAAAAAAAC0/AC9vm0V8IBc/s72-c/Screenshot_1.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-7769593802236659092</id><published>2007-09-08T23:17:00.001-07:00</published><updated>2007-09-08T23:17:50.411-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nerd test'/><title type='text'>I am a Nerd King! How about you?</title><content type='html'>&lt;a href="http://www.nerdtests.com/nt2ref.html"&gt;&lt;br /&gt;&lt;img src="http://www.nerdtests.com/images/badge/nt2/83d6bae09afa0f19.png" alt="NerdTests.com says I'm a Nerd King.  What are you?  Click here!"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-7769593802236659092?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/7769593802236659092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=7769593802236659092' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/7769593802236659092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/7769593802236659092'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/09/i-am-nerd-king-how-about-you.html' title='I am a Nerd King! How about you?'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-8840258426740427097</id><published>2007-08-26T20:18:00.000-07:00</published><updated>2007-08-26T20:24:10.096-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Etch-A-Sketch'/><title type='text'>Etch-A-Sketch Technical Support</title><content type='html'>I can't really describe how I found myself there, but this &lt;a href="http://everything2.com/index.pl?node_id=77515"&gt;Etch-A-Sketch FAQ&lt;/a&gt; gave me quite a laugh today.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nostalgiacentral.com/images_pop/etchasketch_05.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.nostalgiacentral.com/images_pop/etchasketch_05.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-8840258426740427097?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/8840258426740427097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=8840258426740427097' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/8840258426740427097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/8840258426740427097'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/08/etch-sketch-technical-support.html' title='Etch-A-Sketch Technical Support'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-877716207077512367</id><published>2007-08-22T21:29:00.000-07:00</published><updated>2007-08-22T21:49:37.690-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='360|Flex'/><title type='text'>Wanted: Eclipse IDE widget to quickly change the editor font size</title><content type='html'>Does anyone know of an existing &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; widget / plugin that puts a quick font-size dropdown on the IDE toolbar? If so, please share and the Flex presenter / speaker community will give you a hug.&lt;h3&gt;Can y’all see this in the back?&lt;/h3&gt;&lt;p&gt;Changing the font size of the Eclipse text editor is a royal pain. It is a completely undiscoverable feature. It seemed that all the &lt;a href="http://www.360conferences.com/360flex/"&gt;360 Flex&lt;/a&gt; sessions I attended had the same scene:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Presenter:&lt;/strong&gt; OK, let’s look at some code now. &lt;span style="font-style: italic;"&gt;(switches to the IDE, either Flex Builder or full-blown Eclipse)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Guy At The Back Of The Room:&lt;/strong&gt; Umm. Can you increase the font size so that we can read it back here?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Presenter:&lt;/strong&gt; Oh, OK, no problem. &lt;span style="font-style: italic;"&gt;(fiddles with Eclipse for a few seconds)&lt;/span&gt; Umm. Anyone know the secret handshake?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;GATBOTR:&lt;/strong&gt; Preferences —&amp;gt; General —&amp;gt; Appearance —&amp;gt; Color And Fonts —&amp;gt; Text Font —&amp;gt; Change …&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Presenter:&lt;/strong&gt; Whut?&lt;/p&gt;&lt;p&gt;&lt;strong&gt;GATBOTR:&lt;/strong&gt; &lt;span style="font-style: italic;"&gt;(louder and more slowly, as if talking to one's great Aunt Ethel)&lt;/span&gt; Preferences —&amp;gt; General —&amp;gt; Appearance —&amp;gt; Color And Fonts —&amp;gt; Text Font —&amp;gt; Change …&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Presenter:&lt;/strong&gt; &lt;span style="font-style: italic;"&gt;(kinda sorta fiddles some more, and eventually stumbles onto the right path)&lt;/span&gt; OK, got it.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;GATBOTR:&lt;/strong&gt; Thanks.&lt;/p&gt;&lt;p&gt;I think the brain is wired to immediately forget such painful experiences. It almost made me long for the intuitiveness of &lt;a href="http://en.wikipedia.org/wiki/Control-Alt-Delete" title="3-finger salute!"&gt;Ctrl-Alt-Delete&lt;/a&gt; again. As the conference progressed, some of the presenters got wise early, and had pre-configured their IDE for “presenter mode”, but if they were like me, they still had a hard time finding it buried in the UI. I had to search the Eclipse online help the night before my presentation in order to find the setting.&lt;/p&gt;&lt;h3&gt;Turn down the suck&lt;/h3&gt;&lt;p&gt;Now, I’m not trying to bash Eclipse here. Really. I like Eclipse. I have &lt;a href="http://en.wikipedia.org/wiki/Eclipse_%28album%29"&gt;all&lt;/a&gt; &lt;a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?playlistId=159667926&amp;s=143455&amp;amp;i=159668089"&gt;their&lt;/a&gt; &lt;a href="http://www.youtube.com/watch?v=oIaz6zBz1go" title="This is so awesome. They are my new favourite band!"&gt;albums&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I’m just guessing that this UI just sort of grew unwieldy over time, rather than by design. Maybe it is already scheduled to be fixed in the 4.x codebase. But the current experience sucks.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6JaaEqFT5bo/Rs0RUMDTP_I/AAAAAAAAAB8/A9p7WuBU10w/s1600-h/Screenshot_3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6JaaEqFT5bo/Rs0RUMDTP_I/AAAAAAAAAB8/A9p7WuBU10w/s400/Screenshot_3.png" alt="" id="BLOGGER_PHOTO_ID_5101752991410765810" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Preferences —&amp;gt; General —&amp;gt; Appearance —&amp;gt; Color And Fonts —&amp;gt; Text Font —&amp;gt; Change …&lt;/p&gt;&lt;p&gt;I'm counting seven clicks (7!!!) until I see a familiar font size selection dialog. There are at least three glaring issues at play:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;The "Colors and Fonts" category is too long, and by default is clipped to "Colors an". So I can't even just use the tree control to expand and navigate the categories. I have to click each expanded item to see if its full name gives me some clue about what it controls.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Once selected, the "Colors and Fonts" panel displays the list of settings, and the "Text Font" entry is selected (it is highlighted in blue), but there are no obvious controls that suggest "click me to change the font".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6JaaEqFT5bo/Rs0RmMDTQAI/AAAAAAAAACE/dn4ESgd3IPo/s1600-h/Screenshot_2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6JaaEqFT5bo/Rs0RmMDTQAI/AAAAAAAAACE/dn4ESgd3IPo/s400/Screenshot_2.png" alt="" id="BLOGGER_PHOTO_ID_5101753300648411138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;So now you click the already-selected entry "Text Font" and viola! The "Change" and "Reset" buttons appear like magic.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;OK, I know I said 3 issues not 4. I'll concede that this one might just be me. Grouping colors together with fonts doesn't make sense to me. I assume that each language controls its own syntax highlighting, so I just don't expect to be setting colors when I'm setting fonts.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;How to help&lt;/h3&gt;&lt;p&gt;A savvy Java developer (ie. not me) can probably create a wee widget to sit in the IDE toolbar and add a font size dropdown. No font face changes, no color changes, just make the existing font bigger for the text editor (or better yet, the text editor and any console/output/trace buffer windows).&lt;/p&gt;&lt;p&gt;There now. Assuming this saves 2 minutes of a 60 minute session, the widget you’ve just created has increased the productivity of the presenter by 3%. Not bad! U R AWESOME!!!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-877716207077512367?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/877716207077512367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=877716207077512367' title='48 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/877716207077512367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/877716207077512367'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/08/wanted-eclipse-ide-widget-to-quickly.html' title='Wanted: Eclipse IDE widget to quickly change the editor font size'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6JaaEqFT5bo/Rs0RUMDTP_I/AAAAAAAAAB8/A9p7WuBU10w/s72-c/Screenshot_3.png' height='72' width='72'/><thr:total>48</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-2244539485472740763</id><published>2007-08-19T11:30:00.001-07:00</published><updated>2007-09-06T09:43:41.234-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='Deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='SWFObject'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='360|Flex'/><title type='text'>Using SWFObject and the AIR install badge for easy deployment</title><content type='html'>&lt;p&gt;One of the topics I spoke on at &lt;a href="http://www.360conferences.com/360flex/"&gt;360|Flex&lt;/a&gt; was how to add an "Install Now" button to a page, using the AIR install badge from Adobe. This is very easy to do, even though this post is long-ish. Explaining what is happening takes longer than the dozen lines of JavaScript required to get this to work.&lt;/p&gt;&lt;p&gt;I have an example "Install Now" button for &lt;a href="http://olddougnewtricks.blogspot.com/2007/07/dryerfox-updated-for-new-air-runtime.html"&gt;DryerFox&lt;/a&gt; in the blog sidebar. This button will provide a one-click install experience for your users.&lt;/p&gt;&lt;h3&gt;Quick-n-dirty summary for adding an "Install Now" button.&lt;/h3&gt;&lt;p&gt;Copy &lt;code&gt;foo.air&lt;/code&gt; to your web folder. This is your app's AIR application bundle.&lt;/p&gt;&lt;p&gt;Create a 215 x 100 image of your app, and save it as &lt;code&gt;foo_badge.jpg&lt;/code&gt; in your web folder.&lt;/p&gt;&lt;p&gt;Copy &lt;code&gt;swfobject.js&lt;/code&gt; to your web folder. Thanks to Geoff Stearns for the fabulous &lt;a href="http://blog.deconcept.com/swfobject"&gt;SWFObject&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Copy &lt;a href="http://download.macromedia.com/pub/labs/air/air_b1_badge_062607.zip"&gt;badge.swf&lt;/a&gt; to your web folder.&lt;/p&gt;&lt;p&gt;Add the following HTML snippet to your page:&lt;br /&gt;&lt;/p&gt;&lt;pre class="codebox"&gt;&amp;lt;script type="text/javascript" src="swfobject.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="foo_flashcontent"&amp;gt;&lt;br /&gt;Whoa. You need to install &amp;lt;a href="http://www.adobe.com/go/flashplayer"&amp;gt;Adobe Flash Player&amp;lt;/a&amp;gt;.&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;var so = new SWFObject("badge.swf", "badge", "217", "180", "6.0.65", "#FFFFFF");&lt;br /&gt;so.addVariable( "appname", "Foo" );&lt;br /&gt;so.addVariable( "appurl",   "foo.air" );&lt;br /&gt;so.addVariable( "imageurl", "foo_badge.jpg" );&lt;br /&gt;so.addVariable( "airversion", "1.0.M4" );&lt;br /&gt;so.addVariable( "buttoncolor", "008811" );&lt;br /&gt;so.addVariable( "messagecolor", "000000" );&lt;br /&gt;so.write("foo_flashcontent");&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;Details - Under the hood&lt;/h3&gt;&lt;p&gt;The SWFObject script will replace the &amp;lt;div&amp;gt; section labeled "foo_flashcontent" with the badge SWF, and populate its required Flashvars with your apps resources. Note that it is important to include some sort of fallback text in the &amp;lt;div&amp;gt; in case no Flash player is found.&lt;br /&gt;&lt;table border="1"&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;th&gt;Flashvar name&lt;/th&gt;&lt;br /&gt;&lt;th&gt;Description&lt;/th&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;appname&lt;/td&gt;&lt;td&gt;The name of your app. This name will be displayed by the badge in various messages below the "Install Now" button. Messages like "In order to install FooApp, the AIR runtime will also be installed".&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;appurl&lt;/td&gt;&lt;td&gt;The URL of your app's AIR bundle. The URL can be relative to the same folder as the page, or can be an absolute URL pointing to some other domain.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;imageurl&lt;/td&gt;&lt;td&gt;The URL of the 215 x 100 image (JPG/PNG) to display inside the badge. As with the app URL, this URL can be relative or absolute.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;airversion&lt;/td&gt;&lt;td&gt;The version of the AIR runtime required by your app, as specified in Foo-app.xml. For Moxie beta 1, this is "1.0.M4".&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;buttoncolor&lt;/td&gt;&lt;td&gt;The color of the "Install Now" text in hex RRGGBB format.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;messagecolor&lt;/td&gt;&lt;td&gt;The hex RRGGBB color of the message text displayed below the badge.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Clicking the badge will do the following:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Auto-update the Flash player.&lt;/strong&gt; The user's current Flash player version is examined and the script will update to the latest Flash Player if required. This bootstrap works as far back as Flash player 6.0.65 (released in December 2002), so that gives pretty good coverage. Will a 2002-era computer run a useful AIR app? Hmm. Probably not.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Auto-install the AIR runtime.&lt;/strong&gt; Verify that the AIR runtime required by your app is installed, and auto-install it when missing. Each AIR app is tied to a specific runtime release, and the install badge knows how to deal with this correctly.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Auto-install your AIR app.&lt;/strong&gt; This is, of course, what you really wanted to do in the first place.&lt;/p&gt;&lt;h3&gt;Security Issues&lt;/h3&gt;&lt;p&gt;Just to be clear, all of the above installation operations take place in the context of the active operating system user account. No OS security restrictions are bypassed, so the user will need admin or install privileges to succeed. This is a good thing.&lt;/p&gt;&lt;h3&gt;Churn, Churn, Churn&lt;/h3&gt;&lt;p&gt;The badge.swf example was added to the Flex SDK as part of the &lt;a href="http://labs.adobe.com/technologies/flex/flexbuilder3/"&gt;Flex 3 (Moxie) public prerelease&lt;/a&gt;, but that version of badge.swf was rather buggy. Adobe quickly &lt;a href="http://download.macromedia.com/pub/labs/air/air_b1_badge_062607.zip"&gt;released a patch&lt;/a&gt; and you will need to use the patch and avoid the one included in the SDK. I'm sure this will be fixed in the next public code drop. For now, avoid the code in &lt;code&gt;INSTALLROOT/sdks/moxie/samples/badge&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Update:&lt;br /&gt;Also make sure your web server is configured to know the mime-type of .air files. (*.air=application/vnd.adobe.apollo-application-installer-package+zip) More detail on the mime type is found in &lt;a href="http://www.mikechambers.com/blog/2007/03/18/setting-the-mime-type-in-your-web-server-for-apollo-applications/"&gt;Mike Chamber's post here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Resources:&lt;/h3&gt;Tom Cornilliac's &lt;a href="http://www.cornilliac.com/machblog/index.cfm?event=showEntry&amp;amp;entryId=BB5967F0-3048-7802-93A814E581EB8CEB"&gt;excellent post on the AIR install badge&lt;/a&gt;. (It is just missing the SWFObject example)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-2244539485472740763?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/2244539485472740763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=2244539485472740763' title='39 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2244539485472740763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2244539485472740763'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/08/using-swfobject-and-air-install-badge.html' title='Using SWFObject and the AIR install badge for easy deployment'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-8668074567419603985</id><published>2007-08-17T19:49:00.000-07:00</published><updated>2007-08-17T19:59:40.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='EffectiveUI'/><category scheme='http://www.blogger.com/atom/ns#' term='360|Flex'/><title type='text'>So here's the downside of having a dozen designers on staff</title><content type='html'>So I'm in Seattle for the &lt;a href="http://www.360conferences.com/360flex/" title="360 | Flex Seattle"&gt;360 Flex&lt;/a&gt; conference, speaking about &lt;a href="http://olddougnewtricks.blogspot.com/2007/07/dryerfox-updated-for-new-air-runtime.html" title="Le fox de dryer"&gt;DryerFox&lt;/a&gt; yet again, and the "Your Mom" jokes start flying fast &amp; furious from the entire &lt;a href="http://www.effectiveui.com/" title="Da site"&gt;EffectiveUI&lt;/a&gt; team.&lt;p&gt;Saying "your mom" to an EUI-er is like saying &lt;span style="font-style: italic;"&gt;Aloha&lt;/span&gt; to a Hawaiian. You can use it as a greeting, as a goodbye, or in place of whitespace or punctuation.&lt;/p&gt;&lt;p&gt;So I'm feeling a little &lt;span style="font-style: italic;"&gt;punchy&lt;/span&gt; at the end of a day and I spam this silly self-portrait to the entire company.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6JaaEqFT5bo/RsZeyMDTP9I/AAAAAAAAABs/DcsG70oYZrc/s1600-h/MyPicture.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_6JaaEqFT5bo/RsZeyMDTP9I/AAAAAAAAABs/DcsG70oYZrc/s320/MyPicture.jpg" alt="" id="BLOGGER_PHOTO_ID_5099867844365205458" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Suddenly, our president &lt;a href="http://anthonyfranco.wordpress.com/"&gt;Anthony&lt;/a&gt; spams back with "$20 to the best Photoshop of Doug's pic by Friday". Everyone knows that designers are completely shameless when a twenty is waved in front of them so now I've got the equivalent of &lt;a href="http://www.somethingawful.com/d/photoshop-phriday/index.php"&gt;Something Awful&lt;/a&gt;'s PS forum descending like vultures on my boyish good looks.&lt;/p&gt;&lt;p&gt;I'm not the judge of this contest, but I'm pretty sure Patrick will win with this entry, which I absolutely love!&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6JaaEqFT5bo/RsZfKcDTP-I/AAAAAAAAAB0/uL48Jd8iBmI/s1600-h/CanaDoug.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6JaaEqFT5bo/RsZfKcDTP-I/AAAAAAAAAB0/uL48Jd8iBmI/s400/CanaDoug.png" alt="" id="BLOGGER_PHOTO_ID_5099868260977033186" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Out of respect for you Patrick, I will always say "Your Mother". :-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-8668074567419603985?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/8668074567419603985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=8668074567419603985' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/8668074567419603985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/8668074567419603985'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/08/so-heres-downside-of-having-dozen.html' title='So here&apos;s the downside of having a dozen designers on staff'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6JaaEqFT5bo/RsZeyMDTP9I/AAAAAAAAABs/DcsG70oYZrc/s72-c/MyPicture.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-2420080445596170425</id><published>2007-08-17T14:03:00.001-07:00</published><updated>2007-08-18T12:03:09.033-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EffectiveUI'/><title type='text'>var office:Office = new Office( "EffectiveUI" );</title><content type='html'>&lt;p&gt;I've been offline for longer than I wanted, and now I've got too many blog post ideas and not enough time.&lt;/p&gt;&lt;p&gt;So first things first, I'm happy to announce that I've joined the crazy folks at &lt;a href="http://www.effectiveui.com/" title="Da site"&gt;EffectiveUI&lt;/a&gt;, a rich internet app services company, with headquarters in Denver, Colorado. Some of the cooler public projects we've worked on include the &lt;a href="http://www.projectsandimas.com/"&gt;San Dimas&lt;/a&gt; project for eBay and the &lt;a href="http://health.discovery.com/centers/cancer/cancer-collage/collage.html"&gt;Cancer Collage &lt;/a&gt;for Discovery Channel.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;We opened up an Vancouver office a month ago (me and two other buddies) in the funky Gastown space offered by &lt;a href="http://abetterplacetowork.com/" title="WorkSpace"&gt;WorkSpace&lt;/a&gt;, home of the best barista in town (thanks Dane!)&lt;/p&gt;&lt;p&gt;The team down in Denver ("down" in longitude, but "up" in elevation) is a very creative and fun bunch, and I'm hoping that we can build an equally impressive team and culture here in Lotus Land.&lt;/p&gt;&lt;p&gt;I'm definitely gonna need to be riding my bike to work more often, since all the excellent restaurants nearby seem to be keeping me extra well fed.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-2420080445596170425?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/2420080445596170425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=2420080445596170425' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2420080445596170425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2420080445596170425'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/08/var-officeoffice-new-office.html' title='var office:Office = new Office( &amp;quot;EffectiveUI&amp;quot; );'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-7208465940824651848</id><published>2007-07-18T21:23:00.000-07:00</published><updated>2007-07-18T21:41:47.360-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='WebKit'/><title type='text'>DryerFox - Updated for new AIR runtime</title><content type='html'>I've finally updated my DryerFox hack for the Adobe AIR runtime. The conversion from the alpha version of AIR to the public beta was pretty straightforward.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6JaaEqFT5bo/Rp7rWusi7oI/AAAAAAAAABk/W2_W-o8ZuUU/s1600-h/dryerfox_mashable.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6JaaEqFT5bo/Rp7rWusi7oI/AAAAAAAAABk/W2_W-o8ZuUU/s200/dryerfox_mashable.jpg" alt="" id="BLOGGER_PHOTO_ID_5088763404699758210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;One-click Install&lt;/span&gt;&lt;br /&gt;I've added "Install DryerFox Now" badge in the sidebar, which should provide a one-click install experience, installing the AIR runtime if required, and then installing DryerFox.&lt;br /&gt;&lt;br /&gt;I haven't logged too many test hours on the install badge, so please let me know if you have any problems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Geek links&lt;/span&gt;&lt;br /&gt;The source for DryerFox is available &lt;a href="http://www.dryerfox.com/blog/DryerFoxAir/DryerFoxAir.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;The AIR file (the DryerFox executable) is available &lt;a href="http://www.dryerfox.com/blog/DryerFoxAir/DryerFoxAir.air"&gt;here&lt;/a&gt;, in case the "Install Now" button gives you trouble. You might need need the &lt;a href="http://labs.adobe.com/downloads/air.html"&gt;AIR runtime&lt;/a&gt; too, if "Install Now" chokes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-7208465940824651848?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/7208465940824651848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=7208465940824651848' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/7208465940824651848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/7208465940824651848'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/07/dryerfox-updated-for-new-air-runtime.html' title='DryerFox - Updated for new AIR runtime'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6JaaEqFT5bo/Rp7rWusi7oI/AAAAAAAAABk/W2_W-o8ZuUU/s72-c/dryerfox_mashable.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-1068962212092342083</id><published>2007-07-02T10:32:00.001-07:00</published><updated>2007-07-02T10:37:37.506-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apu'/><category scheme='http://www.blogger.com/atom/ns#' term='Kwik-E-Mart'/><category scheme='http://www.blogger.com/atom/ns#' term='7-11'/><title type='text'>Please come again! Props to Apu!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://en.wikipedia.org/wiki/Image:Apu.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px;" src="http://en.wikipedia.org/wiki/Image:Apu.png" alt="" border="0" /&gt;&lt;/a&gt;Hah.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.7-eleven.com/kem_vbc.asp"&gt;7-11 near my home&lt;/a&gt; is one of only 12 stores across North America to be &lt;a href="http://slashdot.org/article.pl?sid=07/07/02/0620245&amp;amp;from=rss"&gt;temporarily transformed into a Kwik-E Mart&lt;/a&gt; as part of the upcoming Simpsons Movie promotion. I saw the 7-11 under construction the other day, but I haven't been back to see the final product.&lt;br /&gt;&lt;p&gt;Hopefully, it will be close to the &lt;a href="http://flickr.com/photos/rdr07/sets/72157600590001691/with/686842536/"&gt;this 7-11 in Burbank, CA&lt;/a&gt;, which has been profiled on Flickr.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://img218.imageshack.us/img218/1186/apu3mh.png" /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-1068962212092342083?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/1068962212092342083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=1068962212092342083' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1068962212092342083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1068962212092342083'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/07/please-come-again-props-to-apu.html' title='Please come again! Props to Apu!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-4793898534082757249</id><published>2007-06-24T09:53:00.001-07:00</published><updated>2007-06-24T09:53:13.014-07:00</updated><title type='text'>Get on the bus, Gus! Come say hi in Vancouver July 11th</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.mikechambers.com/blog/" title="Mr. Mesh himself!"&gt;Mike Chambers&lt;/a&gt; was kind enough to offer me a chance to speak at the &lt;a href="http://onair.adobe.com/schedule/cities/vancouver.php" title="Get on the bus, Gus!"&gt;Vancouver leg&lt;/a&gt; of the Adobe onAIR bus tour. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I'm just doing a small session on my 15-minutes-of-fame-are-now-over &lt;a href="http://olddougnewtricks.blogspot.com/2007/04/dryerfox-its-like-firefox-but-inside.html" title="Oh, that old thing."&gt;DryerFox&lt;/a&gt; hack, as an example of no-chrome (or would that be self-chromed) app development.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;This is a free event, and everyone is invited, but you need to &lt;a href="http://www.eventsadobe.com/adobeonair/user_info.asp"&gt;register&lt;/a&gt;. I'm expecting the schwag-o-meter to be pretty high, so it will be worth it. I hope to see you there. Did I mention the free-as-in-beer beer? 'Nuf said.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/Adobe Air" rel="tag"&gt;Adobe Air&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/DryerFox" rel="tag"&gt;DryerFox&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Flex" rel="tag"&gt;Flex&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/WebKit" rel="tag"&gt;WebKit&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-4793898534082757249?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/4793898534082757249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=4793898534082757249' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4793898534082757249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4793898534082757249'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/06/get-on-bus-gus-come-say-hi-in-vancouver.html' title='Get on the bus, Gus! Come say hi in Vancouver July 11th'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-1134421192577285278</id><published>2007-06-23T22:23:00.001-07:00</published><updated>2007-06-24T00:47:13.441-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Out Of The Box'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Gee, I wonder how Silverlight will work on my Mac? Oh ... never mind</title><content type='html'>&lt;p&gt;I was keen to check out some of the &lt;a href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt; capabilities on my MacBook Pro. I heard that our friends in Redmond were doing all their demos on a Mac first. Apparently none of them were running the latest 10.4 release.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is my out of the box experience ... Doh!&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6JaaEqFT5bo/Rn4A1A5M4oI/AAAAAAAAABc/50fYFOuFpOc/s1600-h/Screenshot_1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6JaaEqFT5bo/Rn4A1A5M4oI/AAAAAAAAABc/50fYFOuFpOc/s400/Screenshot_1.png" alt="" id="BLOGGER_PHOTO_ID_5079498340493484674" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;What, is the installer just doing a string compare on the versions?&lt;br /&gt;Since when is 10.4.10 &lt; 10.4.8?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;OK, so it's a beta, and they'll probably have a patch soon, but it's a pretty nasty out-of-the-box experience.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Oh well, back to &lt;a href="http://labs.adobe.com/technologies/air/"&gt;AIR&lt;/a&gt;-land.&lt;/p&gt;&lt;span style="font-size:85%;"&gt;[Update] There is a &lt;a href="http://silverlight.net/forums/p/2258/5888.aspx#5888"&gt;workaround&lt;/a&gt; posted on the MS-site, but it is clunky.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-1134421192577285278?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/1134421192577285278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=1134421192577285278' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1134421192577285278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1134421192577285278'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/06/gee-i-wonder-how-silverlight-will-work.html' title='Gee, I wonder how Silverlight will work on my Mac? Oh ... never mind'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6JaaEqFT5bo/Rn4A1A5M4oI/AAAAAAAAABc/50fYFOuFpOc/s72-c/Screenshot_1.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-5200414278385581082</id><published>2007-06-10T22:22:00.000-07:00</published><updated>2007-06-11T13:18:20.805-07:00</updated><title type='text'>I'm an Airhead now!</title><content type='html'>&lt;p&gt;&lt;br /&gt;... but my &lt;a href="http://seejayneknit.blogspot.com"&gt;wife&lt;/a&gt; could have told you that a long time ago. :-)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Adobe has renamed the Apollo runtime as "Air" (Adobe Integrated Runtime), and I like the new name. Apollo was a good code name, and "Air" is a nice product name. It also helps that the file format for Apollo bundles was already called a ".AIR" file.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I've been involved with enough products over the years to see my fair share of silly product names ending up with "designed by committee" feel to them. (Ironically, best described by this &lt;a href="http://www.youtube.com/watch?v=EUXnJraKM3k&amp;amp;search=microsoft%20ipod"&gt;in-house Microsoft ad parody&lt;/a&gt;).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Congrats to the Air team.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;New stuff on Adobe labs today:&lt;br /&gt;&lt;br /&gt;Air beta installer:  http://labs.adobe.com/downloads/air.html&lt;br /&gt;&lt;br /&gt;Flex 3 beta: http://labs.adobe.com/technologies/flex/flexbuilder3/&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align:right;font-size:10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/Adobe Air" rel="tag"&gt;Adobe Air&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Apollo" rel="tag"&gt;Apollo&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-5200414278385581082?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/5200414278385581082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=5200414278385581082' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/5200414278385581082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/5200414278385581082'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/06/i-airhead-now.html' title='I&amp;#39;m an Airhead now!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-3853571322173141773</id><published>2007-05-21T21:07:00.000-07:00</published><updated>2007-05-21T21:14:04.513-07:00</updated><title type='text'>Ah! Movies the way I remember them ...</title><content type='html'>If you're as old as me, then you remember what movies were like when the first came out (right after the earth finished cooling).&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OvHmy9v1CwY"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/OvHmy9v1CwY" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-3853571322173141773?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/3853571322173141773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=3853571322173141773' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/3853571322173141773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/3853571322173141773'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/05/ah-movies-way-i-remember-them.html' title='Ah! Movies the way I remember them ...'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-5479345248819320126</id><published>2007-05-13T09:16:00.000-07:00</published><updated>2007-05-13T09:28:14.043-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='WebKit'/><category scheme='http://www.blogger.com/atom/ns#' term='Apollo'/><category scheme='http://www.blogger.com/atom/ns#' term='360|Flex'/><title type='text'>See you at 360|Flex in August</title><content type='html'>Apparently there is a bit of interest in pointless app development. I'll be presenting &lt;a href="http://olddougnewtricks.blogspot.com/2007/04/dryerfox-its-like-firefox-but-inside.html"&gt;DryerFox&lt;/a&gt; at the upcoming &lt;a href="http://www.360conferences.com/360flex/"&gt;360|Flex&lt;/a&gt; conference in Seattle.&lt;br /&gt;&lt;p&gt;&lt;img src="http://www.360conferences.com/360flex/images/360Flex-Seattle-Badge.gif" /&gt;&lt;br /&gt;And while presenting is a nice boost for my ego, what I really hope to accomplish is:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Stimulate discussion for the creative use of the WebKit HTML control.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Encourage other Flex or Apollo n00bs to give it a try. I wasn't a Flex or Java developer before I started DryerFox, and I had it up and running in a few days. I think that speaks volumes for the short learning curve.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Consume some good espresso and good micro-brew (but not at the same time).&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;I hope to see you there. Drop me a note if you plan on attending.&lt;span style="font-size:0;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align: right; font-size: 10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/360%7CFlex" rel="tag"&gt;360|Flex&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Apollo" rel="tag"&gt;Apollo&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/DryerFox" rel="tag"&gt;DryerFox&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Flex" rel="tag"&gt;Flex&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Browser%20Hack" rel="tag"&gt;Browser Hack&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/WebKit" rel="tag"&gt;WebKit&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-5479345248819320126?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/5479345248819320126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=5479345248819320126' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/5479345248819320126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/5479345248819320126'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/05/see-you-at-360flex-in-august.html' title='See you at 360|Flex in August'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-875340633716371297</id><published>2007-05-13T08:23:00.000-07:00</published><updated>2007-05-13T08:25:52.919-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Red Bull'/><category scheme='http://www.blogger.com/atom/ns#' term='Flugtag'/><title type='text'>Busy, busy, so here's a timewaster ...</title><content type='html'>&lt;p&gt;&lt;br /&gt;I've been swamped over the past couple of weeks, so I thought I'd post a re-run link to a video I made from the recent Red Bull Flugtag event in Vancouver.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I condensed the 3 hour event into a 3 minute music video. I still think the best vehicle was the giant boombox.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/l_tZc3Ol0jQ"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/l_tZc3Ol0jQ" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align: right; font-size: 10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/Red%20Bull" rel="tag"&gt;Red Bull&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Flugtag" rel="tag"&gt;Flugtag&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-875340633716371297?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/875340633716371297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=875340633716371297' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/875340633716371297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/875340633716371297'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/05/busy-busy-so-here-timewaster.html' title='Busy, busy, so here&amp;#39;s a timewaster ...'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-6631715703518542297</id><published>2007-05-07T16:59:00.000-07:00</published><updated>2007-05-09T20:06:08.944-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='WebKit'/><title type='text'>I'd like to thank the members of the academy ...</title><content type='html'>&lt;span style="color: rgb(0, 0, 255); text-decoration: underline;font-family:Verdana;" &gt;http://mashable.com/2007/05/07/apollo-apps/&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;There is &lt;a href="http://olddougnewtricks.blogspot.com/2007/04/dryerfox-its-like-firefox-but-inside.html"&gt;DryerFox&lt;/a&gt; sitting at #6! w000000000000000000000000t! I rule!!!!!!!!!!!!!!!!!!&lt;br /&gt;&lt;br /&gt;Nothing warms my heart more than the comments of “useless, but I like it!” or “There’s no sense in explaining it; suffice to say that it’s absolutely useless, but we just had to mention it.”&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:18;"  &gt;Hooray for pointless endeavors!&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Verdana;"&gt;&lt;br /&gt;DryerFox even beat out Scout from Adobe Labs! (#9 on the list, and an excellent web developer tool in its own right. I used Scout to help me hack-out DryerFox).&lt;br /&gt;&lt;br /&gt;It looks like my blog is getting quite a viewer spike from all of this. More than half of its traffic &lt;/span&gt;&lt;span style="font-family:Verdana;"&gt;&lt;em&gt;ever&lt;/em&gt;&lt;/span&gt;&lt;span style="font-family:Verdana;"&gt; is from the last 6 hrs.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6JaaEqFT5bo/Rj_wotaW4sI/AAAAAAAAABM/h1XbMkSUXBk/s1600-h/Screenshot_1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6JaaEqFT5bo/Rj_wotaW4sI/AAAAAAAAABM/h1XbMkSUXBk/s320/Screenshot_1.png" alt="" id="BLOGGER_PHOTO_ID_5062029088363307714" border="0" /&gt;&lt;/a&gt;[Update 2007/04/09] Wow. I've had nearly 3000 unique visits over the past 2 days. Way more than the 150 visits from the previous 2 months!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6JaaEqFT5bo/RkKLQ9aW4tI/AAAAAAAAABU/tMuQ4NHkiLU/s1600-h/Screenshot_2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_6JaaEqFT5bo/RkKLQ9aW4tI/AAAAAAAAABU/tMuQ4NHkiLU/s320/Screenshot_2.png" alt="" id="BLOGGER_PHOTO_ID_5062762054597141202" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:Verdana;"&gt;Cheers,&lt;br /&gt;Doug&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-6631715703518542297?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/6631715703518542297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=6631715703518542297' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/6631715703518542297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/6631715703518542297'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/05/i-like-to-thank-members-of-academy.html' title='I&amp;#39;d like to thank the members of the academy ...'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6JaaEqFT5bo/Rj_wotaW4sI/AAAAAAAAABM/h1XbMkSUXBk/s72-c/Screenshot_1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-7710008928936807170</id><published>2007-04-21T18:14:00.001-07:00</published><updated>2007-04-21T18:14:48.420-07:00</updated><title type='text'>Mama don't take my MODA 'phones away!</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;a href="http://a248.e.akamai.net/7/248/2041/1247/store.apple.com/Catalog/US/Images/tm028zma_unified.jpg" onclick="window.open('http://a248.e.akamai.net/7/248/2041/1247/store.apple.com/Catalog/US/Images/tm028zma_unified.jpg','popup','width=165,height=233,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"&gt;&lt;img src="http://a248.e.akamai.net/7/248/2041/1247/store.apple.com/Catalog/US/Images/tm028zma_unified.jpg" height="100" width="70" border="1" hspace="4" vspace="4" alt="Tm028Zma Unified" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I ordered a set of &lt;a href="http://www.v-moda.com/collection/modaphones/vibe.aspx"&gt;V-MODA Vibe&lt;/a&gt; earphones on eBay last week for $70 US, and I've been trying them out on my &lt;a href="http://www.apple.com/ca/ipodshuffle/"&gt;iPod Shuffle&lt;/a&gt;, comparing them to the original Apple earbuds.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;All I can say is "Wow"!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Having designed &lt;a href="http://www.izcorp.com/mainframe.asp"&gt;professional audio gear&lt;/a&gt; in a previous life, I knew the original Apple earbuds weren't anything spectacular, but after A/B ing the V-MODAs against the original PodBuds, I'm hooked.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The difference is incredible, even for an old guy like me. Bass exists once more, huzzah! I wear my iPod while cycling, and I was afraid that the silicon fittings would block out all the road noise, but that's not the case. Road noise is definitely muted, but still noticeable, so I'm still aware of my surroundings.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;And now I can turn down the volume on my iPod and still hear more of the music than before. Yay!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Highly recommended (especially at the eBay price!)&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-7710008928936807170?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/7710008928936807170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=7710008928936807170' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/7710008928936807170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/7710008928936807170'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/04/mama-don-take-my-moda-away.html' title='Mama don&amp;#39;t take my MODA &amp;#39;phones away!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-1517893113156333833</id><published>2007-04-21T12:40:00.000-07:00</published><updated>2007-04-21T12:48:44.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallels Desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualization'/><category scheme='http://www.blogger.com/atom/ns#' term='Boot Camp'/><category scheme='http://www.blogger.com/atom/ns#' term='VMware Fusion'/><title type='text'>3GB in my MacBook: Best $300 spent ever!</title><content type='html'>&lt;p&gt;&lt;br /&gt;I've had my MacBook Pro since late December (Merry Christmas), and I ordered it with 2GB of RAM, thinking that would be enough. And it was, for a while.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Virtually Home Free&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://images.apple.com/macosx/bootcamp/images/partition080806.jpg" onclick="window.open('http://images.apple.com/macosx/bootcamp/images/partition080806.jpg','popup','width=310,height=234,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"&gt;&lt;img src="http://images.apple.com/macosx/bootcamp/images/partition080806.jpg" alt="Partition080806" border="1" height="100" hspace="4" vspace="4" width="132" /&gt;&lt;/a&gt; &lt;a href="http://www.parallels.com/files/upload/box_desktop.gif" onclick="window.open('http://www.parallels.com/files/upload/box_desktop.gif','popup','width=96,height=140,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"&gt;&lt;img src="http://www.parallels.com/files/upload/box_desktop.gif" alt="Box Desktop" border="1" height="100" hspace="4" vspace="4" width="68" /&gt;&lt;/a&gt; &lt;a href="http://tbn0.google.com/images?q=tbn:sFYE-03YlwZtcM:http://mac.sillydog.org/archives/pic/ss_fusion.jpg" onclick="window.open('http://tbn0.google.com/images?q=tbn:sFYE-03YlwZtcM:http://mac.sillydog.org/archives/pic/ss_fusion.jpg','popup','width=127,height=83,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"&gt;&lt;img src="http://tbn0.google.com/images?q=tbn:sFYE-03YlwZtcM:http://mac.sillydog.org/archives/pic/ss_fusion.jpg" alt="Ss Fusion" border="1" height="100" hspace="4" vspace="4" width="153" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;However, I'm now at a 4-week gig where I need to be running Windoze. I have a 20 GB &lt;a href="http://www.apple.com/macosx/bootcamp/"&gt;Boot Camp&lt;/a&gt; partition running WinXP. I have both &lt;a href="http://www.parallels.com/en/products/desktop/"&gt;Parallels Desktop&lt;/a&gt; (paid for) and &lt;a href="http://www.vmware.com/products/beta/fusion/"&gt;VMWare Fusion&lt;/a&gt; (beta) installed, and both allow me to run a virtual machine using my Boot Camp partition. I've configured my VM to use 1GB of RAM for Windows, leaving the rest for OS X to do its stuff.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;So now I can either boot direct to Windows and get the full power of my MacBook to run Windows, or I can run Windows-in-a-window using one of my virtualization tools.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;The problem is that running the 1GB VM on a 2GB Mac just ends up bogging down OS X to the point where I can't run anything else. Not Firefox, not Entourage, nottin'!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Solution - Just add money!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;So I decided to max-out my MacBook's RAM, swapping out one of the two 1GB SODIMMs for a 2GB SODIMM, giving me a total of 3GB.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I ordered from &lt;a href="http://www.canadaram.com/macram.html"&gt;CanadaRAM.com&lt;/a&gt;. They had a great price for a 2GB module ($299 Cdn) and they shipped overnight. With shipping and taxes, everything came to about $360 Cdn. I had other Mac stores in town quoting me between $600 and $800 (before taxes), but I've had good experiences with CanadaRAM before.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Wow. What a difference that extra 1GB makes. OS X is back to its old snappy self when running a Windows VM. All the Dock effects, Expose, and Dashboard apps make lovely smooth transitions, and the OS is no longer paging to disk like crazy.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Right now, I'm running my Windows VM, plus OS X is running Entourage, Excel, Flex Builder 2, Firefox, ecto, and Acrobat Reader. Everything is happy-n-snappy.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Plus I should be able to resell the extra 1GB SODIMM for about $150 on craigslist, making the deal even sweeter!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Which VM tool to run?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I had previously been running &lt;a href="http://www.parallels.com/en/products/workstation/"&gt;Parallels Workstation&lt;/a&gt; on my PC, so I bought Parallels Desktop when I got my Mac, so that I could reuse the same VMs on either host platform. When VMware announced their Fusion product for Mac, I just let it go and kept using Parallels. But my experience with later versions of Parallels has seen quite a large slow down. VMs just didn't seem snappy, no matter what the configuration was.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;So I installed the Fusion beta and gave it a try. It is great so far. The biggest advantage so far over Parallels is that Fusion will present 2 virtual CPUs to the guest OS, letting my Windows VM take full advantage of any unused cycles.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;As part of the Fusion beta tester agreement, I'm not allowed to post any public claims about the performance of the product. I don't want to violate that agreement. But I am running VMware Fusion exclusively now, so I'll let you draw your own conclusions. :-)&lt;br /&gt;&lt;/p&gt;&lt;!-- technorati tags start --&gt;&lt;p style="text-align: right; font-size: 10px;"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/Boot%20Camp" rel="tag"&gt;Boot Camp&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/OS%20X" rel="tag"&gt;OS X&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/VMware%20Fusion" rel="tag"&gt;VMware Fusion&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/Parallels%20Desktop" rel="tag"&gt;Parallels Desktop&lt;/a&gt;, &lt;a href="http://www.technorati.com/tag/virtualization" rel="tag"&gt;virtualization&lt;/a&gt;&lt;/p&gt;&lt;!-- technorati tags end --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-1517893113156333833?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/1517893113156333833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=1517893113156333833' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1517893113156333833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/1517893113156333833'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/04/3gb-in-my-macbook-best-300-spent-ever.html' title='3GB in my MacBook: Best $300 spent ever!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-6560898737920418553</id><published>2007-04-17T08:50:00.000-07:00</published><updated>2007-04-17T22:27:35.835-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='WebKit'/><category scheme='http://www.blogger.com/atom/ns#' term='Apollo'/><title type='text'>Inside DryerFox - Part 3: Using WebKit</title><content type='html'>The &lt;a href="http://olddougnewtricks.blogspot.com/2007/04/dryerfox-its-like-firefox-but-inside.html"&gt;DryerFox&lt;/a&gt; hack was accomplished by a few basic ActionScript3 stunts.&lt;br /&gt;&lt;h3&gt;Get Thee Behind Me, HTML!&lt;/h3&gt;When the application starts, it creates an HTML component beneath the image of the drum window, and slightly smaller than the window, so that event when rotated at 45 degrees, no parts of the HTML control "peek out" from behind the graphics.&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Match the size &amp; location of the drum image&lt;/span&gt;&lt;br /&gt;html.x        = dryerDrumImage.x + 10;&lt;br /&gt;html.y        = dryerDrumImage.y - 10;&lt;br /&gt;html.width    = dryerDrumImage.width - 20;&lt;br /&gt;html.height   = dryerDrumImage.height - 20;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;// Now add the html control to the beginning of the display list&lt;/span&gt;&lt;br /&gt;application.addChildAt( html, 0 );&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;h3&gt;Allow mouse events to flow through&lt;/h3&gt;Since the dryer frame and the drum window are in front of the HTML control, we need to allow mouse events to flow through to the HTML control. This is done by setting the mouseEnabled and mouseFocusEnabled properties of the mx:Image components to false.&lt;br /&gt;&lt;h3&gt;Browser events&lt;/h3&gt;Now that the HTML control can respond to mouse and keyboard events, the control can now load web pages and respond to user input. Just to make things fun, I wired up some event handlers to start the drum rotation and sound FX when a page starts loading, plus another handler to stop the drum and sound when the page is fully rendered.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;WebKit limitations&lt;/h3&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://webkit.org/images/icon-gold.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 83px; height: 67px;" src="http://webkit.org/images/icon-gold.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;mx:image&gt;The Apollo HTML control is based on the open source &lt;/mx:image&gt;&lt;a href="http://webkit.org/"&gt;WebKit&lt;/a&gt; engine. This is the HTML engine used for Apple's Safari browsers, and others too, including the &lt;a href="http://www.s60.com/life"&gt;Nokia S60&lt;/a&gt; mobile platform. So yeah, maybe I should have called the app SurfinSafari, but I thought DryerFox was more catchy.&lt;br /&gt;&lt;br /&gt;The WebKit control is capable of handling most HTML and JavaScript, but I've found a few things it won't do.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The mouse cursor doesn't change from an arrow to a hand when you mouse over a hyperlink, nor do the links change color to indicate they can be clicked. Some pages contain JavaScript snippets to perform similar animations (like changing the background color), and those appear to work. Even if the HTML control dispatched some sort of event like ON_LINK_ENTER and ON_LINK_EXIT, then an app could add a bit more &lt;span style="font-style: italic;"&gt;affordance&lt;/span&gt; that most people expect from a browser.&lt;/li&gt;&lt;li&gt;There is no control over a right-click menu for the control, again something that most browsers offer.&lt;/li&gt;&lt;li&gt;Ironically, the WebKit control does not run Flash apps. If a web page attempts to load a .SWF, the page thinks that Flash is not installed. Maybe this is a security sandbox issue, but it doesn't seem to work.&lt;/li&gt;&lt;li&gt;There are no events raised for page-load timeouts or server-not-found.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Maybe these issues will be fixed by the time the Apollo runtime gets out of beta.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-6560898737920418553?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/6560898737920418553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=6560898737920418553' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/6560898737920418553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/6560898737920418553'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/04/inside-dryerfox-part-3-using-webkit.html' title='Inside DryerFox - Part 3: Using WebKit'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-3041441131471754066</id><published>2007-04-17T07:48:00.000-07:00</published><updated>2007-04-17T09:48:21.145-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='systemChrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Apollo'/><category scheme='http://www.blogger.com/atom/ns#' term='transparency'/><title type='text'>Inside DryerFox - Part 2: Web 2.0 is all about transparency</title><content type='html'>&lt;h3&gt;Transparent System Chrome&lt;/h3&gt;Yeah, that sounds like something that Scotty might complain about to captain Kirk. &lt;span style="font-style: italic;"&gt;"We've run out of transparent system chrome, captain!"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I wanted to make &lt;a href="http://olddougnewtricks.blogspot.com/2007/04/dryerfox-its-like-firefox-but-inside.html"&gt;DryerFox&lt;/a&gt; run without a normal window frame and live as a dryer/browser mashup floating on the desktop. It just seemed funnier that way.&lt;br /&gt;&lt;br /&gt;In Apollo-speak, the outer window that contains the app is called the &lt;span style="font-style: italic;"&gt;chrome&lt;/span&gt;. The chrome window behaviour is OS dependent, but it usually includes the window title, plus buttons for closing, moving, and minimizing the app.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6JaaEqFT5bo/RiTlygGk9yI/AAAAAAAAABE/i0U_x_amraw/s1600-h/WeatherStationScreenSnapz001.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_6JaaEqFT5bo/RiTlygGk9yI/AAAAAAAAABE/i0U_x_amraw/s320/WeatherStationScreenSnapz001.png" alt="" id="BLOGGER_PHOTO_ID_5054417337590282018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;An Apollo application has a choice of either using the OS chrome (default behaviour), or disabling the system chrome completely. If you disable the system chrome, your app will need to handle window movement, sizing, and closing in some other way.&lt;br /&gt;&lt;br /&gt;Thankfully, the Apollo samples include the WeatherStation app as an example of how to do this.&lt;br /&gt;&lt;h3&gt;Hidden Gotchas&lt;/h3&gt;If you skim the documentation, it seems like all you need to do is tweak the -app.xml file to remove the system chrome, but it is a little more subtle than that.&lt;br /&gt;&lt;br /&gt;Here are the steps I used:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new Apollo project in the Flex Builder IDE. Let's assume the app is called "NoChrome".&lt;/li&gt;&lt;li&gt;Edit the NoChrome-app.xml file generated by the IDE. Change the &lt;span style="font-style: italic;"&gt;systemChrome&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;transparent&lt;/span&gt; attributes of the &lt;span style="font-family:courier new;"&gt;&lt;rootcontent&gt;&lt;/rootcontent&gt;&lt;/span&gt; node. &lt;span style="font-family:courier new;"&gt;&lt;rootcontent systemchrome="standard" transparent="false"&gt;&lt;/rootcontent&gt;&lt;/span&gt; should be changed to &lt;span style="font-family:courier new;"&gt;&lt;rootcontent style="font-weight: bold;"&gt;="none&lt;/rootcontent&gt;&lt;/span&gt;" transparent&lt;span style="font-weight: bold;"&gt;="true"&lt;/span&gt; ...&gt;.&lt;/li&gt;&lt;li&gt;Run the app. Hey! &lt;span style="font-weight: bold;"&gt;It still has chrome&lt;/span&gt;! WTF? (why the frown *cough*)&lt;/li&gt;&lt;li&gt;I was stuck at the previous step for about 30 minutes until I read the comments in the -app.xml file and remembered that &lt;a href="http://weblogs.macromedia.com/mesh/"&gt;Mike Chambers&lt;/a&gt; had said "now pay attention to this" in one of his ApolloCamp sessions..&lt;/li&gt;&lt;li&gt;Change the type of the root application component from &lt;span style="font-family:courier new;"&gt;&lt;mx:apolloapplication&gt;&lt;/mx:apolloapplication&gt;&lt;/span&gt; to &lt;span style="font-family:courier new;"&gt;&lt;mx:application&gt;&lt;/mx:application&gt;&lt;/span&gt; (from which ApolloApplication derives). Then you're good to go.&lt;/li&gt;&lt;li&gt;I also duplicated the Application sytle sheet from the WeatherStation app, but I'm not 100% sure if this is required.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;blockquote style="font-family: courier new;"&gt;&lt;mx:style&gt;        Application  {&lt;br /&gt;    /* make app window transparent */&lt;br /&gt;               background-color:"";&lt;br /&gt;               background-image:"";&lt;br /&gt;               padding: 0px;&lt;br /&gt;       &lt;/mx:style&gt;}&lt;br /&gt;&lt;/blockquote&gt;Perhaps later releases of the Flex Builder Apollo extensions will provide an easier way of switching between systemChrome and noChrome modes. For an alpha release, it's still a pretty kick-ass offering.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-3041441131471754066?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/3041441131471754066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=3041441131471754066' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/3041441131471754066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/3041441131471754066'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/04/inside-dryerfox-part-2-web-20-is-all.html' title='Inside DryerFox - Part 2: Web 2.0 is all about transparency'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6JaaEqFT5bo/RiTlygGk9yI/AAAAAAAAABE/i0U_x_amraw/s72-c/WeatherStationScreenSnapz001.png' height='72' width='72'/><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-2723851591886460113</id><published>2007-04-16T20:10:00.000-07:00</published><updated>2007-04-17T08:04:48.810-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DryerFox'/><category scheme='http://www.blogger.com/atom/ns#' term='sound effects'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='Fireworks'/><title type='text'>Inside DryerFox - Part 1: Creating the media assets</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Artwork&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6JaaEqFT5bo/RiRvcQGk9vI/AAAAAAAAAAs/DMY7eGIoEwE/s1600-h/DryerFox_small_320x320.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 197px; height: 197px;" src="http://4.bp.blogspot.com/_6JaaEqFT5bo/RiRvcQGk9vI/AAAAAAAAAAs/DMY7eGIoEwE/s320/DryerFox_small_320x320.png" alt="" id="BLOGGER_PHOTO_ID_5054287212966115058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6JaaEqFT5bo/RiRoXQGk9tI/AAAAAAAAAAc/27M0nLmenrc/s1600-h/BigDryer.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_6JaaEqFT5bo/RiRoXQGk9tI/AAAAAAAAAAc/27M0nLmenrc/s200/BigDryer.jpg" alt="" id="BLOGGER_PHOTO_ID_5054279430485374674" border="0" /&gt;&lt;/a&gt;Just in case my &lt;a href="http://olddougnewtricks.blogspot.com/2007/04/dryerfox-its-like-firefox-but-inside.html"&gt;DryerFox&lt;/a&gt; post didn't make it apparent, I'm not a graphic artist. But I can hack away with Adobe Fireworks with the best of them, so that's what I did. I googled for the biggest image I could find of a front loading dryer, and I found the image on the left.&lt;br /&gt;&lt;br /&gt;Here's what I did to get the one on the right:&lt;br /&gt;&lt;br /&gt;I spent a bunch of time learning &amp; fiddling with Fireworks. At least 50% of this project time was due to my lack of design skillz.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The black background was easy to turn transparent.&lt;/li&gt;&lt;li&gt;I then split the image into 4 layers: the control panel, the lid, the frame, and the drum.&lt;/li&gt;&lt;li&gt;I stretched the lid and frame to make the dryer more squarish.&lt;/li&gt;&lt;li&gt;I repositioned the unstretched control panel appropriately.&lt;/li&gt;&lt;li&gt;I made the drum as large as possible, even making the rim thinner, to maximize the portion of the browser window that will show inside the drum.&lt;/li&gt;&lt;li&gt;I got rid of the squarish reflection on the glass bubble. I used the "magic wand" selector in Fireworks to find all the similar connected pixels, and then I just lowered the brightness.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Then I realized that the image was actually a &lt;span style="font-style: italic;"&gt;top-load washer&lt;/span&gt;, not a dryer. Agh! Darn you inaccurate search engine metadata! But my result looked pretty, so on I went ...&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Sound Effects&lt;/span&gt;&lt;br /&gt;OK, now I that I had graphics, I needed some decent sound FX. Here I have a bit more of a background, having spent 6 years designing digital audio equipment. Normally, I'd hop on over to &lt;a href="http://www.sounddogs.com/"&gt;Sound Dogs&lt;/a&gt; (think iStockPhoto, but for sounds), since they have such a huge library.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6JaaEqFT5bo/RiR0zQGk9xI/AAAAAAAAAA8/HPfCBYMFfIs/s1600-h/System+PreferencesScreenSnapz001.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_6JaaEqFT5bo/RiR0zQGk9xI/AAAAAAAAAA8/HPfCBYMFfIs/s320/System+PreferencesScreenSnapz001.png" alt="" id="BLOGGER_PHOTO_ID_5054293105661245202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;But one of the main inspirations for this project is the nagging sound of my own dryer, which is right next to my home office. So I just brought my MacBook Pro into the laundry room and recorded it directly using the built-in mic.&lt;br /&gt;&lt;br /&gt;I needed to disable the "Use ambient noise reduction" setting, since ambient noise was exactly what I was after.&lt;br /&gt;&lt;br /&gt;I cranked up the input volume and recorded a 40 second run of good heavy load of towels, complete with the wonderful &lt;span style="font-style: italic;"&gt;clunk&lt;/span&gt; of the relays kicking in when the dryer shut off.&lt;br /&gt;&lt;br /&gt;Alrighty, I had all my media assets, so then it was off to Flex Builder to create the app, covered in the next post.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-2723851591886460113?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/2723851591886460113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=2723851591886460113' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2723851591886460113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/2723851591886460113'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/04/inside-dryerfox-part-1-creating-media.html' title='Inside DryerFox - Part 1: Creating the media assets'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6JaaEqFT5bo/RiRvcQGk9vI/AAAAAAAAAAs/DMY7eGIoEwE/s72-c/DryerFox_small_320x320.png' height='72' width='72'/><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-4425814183824334064</id><published>2007-04-16T14:43:00.000-07:00</published><updated>2007-05-13T22:27:51.024-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex Builder'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='WebKit'/><category scheme='http://www.blogger.com/atom/ns#' term='Apollo'/><title type='text'>DryerFox - It's like Firefox, but inside a dryer!</title><content type='html'>Long-time listener, first-time coder! Here's my first Apollo app ...&lt;br /&gt;&lt;br /&gt;I was lucky enough to attend the original &lt;a href="http://labs.adobe.com/wiki/index.php/Apollo:Camp"&gt;ApolloCamp&lt;/a&gt; event in March, and I've been spending the last while learning the Flex &amp; Apollo environments.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://webkit.org/images/icon-gold.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 83px; height: 67px;" src="http://webkit.org/images/icon-gold.png" alt="" border="0" /&gt;&lt;/a&gt;One of the cooler things about the Apollo framework is the addition of an HTML control based on the &lt;a href="http://webkit.org/"&gt;WebKit&lt;/a&gt; engine. This is the HTML engine used for Apple's Safari browsers, and others too, including the &lt;a href="http://www.s60.com/life"&gt;Nokia S60&lt;/a&gt; mobile platform.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Since the Apollo mx:HTML component is rendered as part of the Flash display list, this allows any Flash effects to be applied to an active web page. Blurs, tweens, rotations, it all works.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Presenting ... DryerFox!&lt;/span&gt;&lt;br /&gt;I knew I wanted to do something fun with HTML, but the question was: do what? Inspriration hit las Thursday, and I decided to create DryerFox - A rotating browser window wrapped by a dryer image.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6JaaEqFT5bo/RiRu_gGk9uI/AAAAAAAAAAk/4USwsyo2FOM/s1600-h/DryerFox_logo_320x320.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6JaaEqFT5bo/RiRu_gGk9uI/AAAAAAAAAAk/4USwsyo2FOM/s320/DryerFox_logo_320x320.png" alt="" id="BLOGGER_PHOTO_ID_5054286719044876002" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;You can type any URL into the app, and the page will be loaded and rendered. As the page is loading, the dryer's drum turns, and therefore so does the page. You can also manually rotate the drum using push buttons. The page remains fully interactive, no matter what the rotation. You can read your webmail, surf the net, or whatever. There is even a button to reset the drum rotation back to normal, so that you don't strain your neck.&lt;br /&gt;&lt;h3&gt;Installing the demo&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Install the &lt;a href="http://labs.adobe.com/downloads/apolloruntime.html"&gt;Apollo runtime&lt;/a&gt; framework on your Mac or PC, if you haven't already done so. It is an alpha release, but still pretty solid.&lt;/li&gt;&lt;li&gt;Download the DryerFox &lt;a href="http://www.dryerfox.com/blog/DryerFox/DryerFox.air"&gt;demo&lt;/a&gt; .AIR file. (.AIR is the extension for Apollo apps, but it is just a ZIP file)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Double-click the downloaded .AIR file, and the Apollo runtime will lead you through the rest of the installation process.&lt;/li&gt;&lt;/ol&gt; The source for the hack is available &lt;a href="http://www.dryerfox.com/blog/DryerFox/DryerFox.zip"&gt;here&lt;/a&gt;, in case you want to hack it further yourself. You'll need the Flex development environment to do that.&lt;br /&gt;&lt;br /&gt;I'll describe the making of DryerFox in a future post, but I wanted to get this out there for feedback.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_6JaaEqFT5bo/RiP9FwGk9sI/AAAAAAAAAAU/BJ0ttNoTQdY/s1600-h/DryerFoxScreenSnapz001.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_6JaaEqFT5bo/RiP9FwGk9sI/AAAAAAAAAAU/BJ0ttNoTQdY/s200/DryerFoxScreenSnapz001.png" alt="" id="BLOGGER_PHOTO_ID_5054161482093491906" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-4425814183824334064?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/4425814183824334064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=4425814183824334064' title='280 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4425814183824334064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4425814183824334064'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/04/dryerfox-its-like-firefox-but-inside.html' title='DryerFox - It&apos;s like Firefox, but inside a dryer!'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_6JaaEqFT5bo/RiRu_gGk9uI/AAAAAAAAAAk/4USwsyo2FOM/s72-c/DryerFox_logo_320x320.png' height='72' width='72'/><thr:total>280</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5266306673596536007.post-4023166868613888034</id><published>2007-04-16T14:21:00.000-07:00</published><updated>2007-04-16T14:40:47.225-07:00</updated><title type='text'>printf( "Hello world!\n" );</title><content type='html'>Why do I have the nagging feeling that blogging has suddenly become unhip?&lt;br /&gt;&lt;br /&gt;Thanks for showing up anyway. I hope to use this blog to write up some of the fun things I'm learning as I make the leap from diehard C++ developer&lt;span style="font-size:85%;"&gt;&lt;/span&gt; to a Web 2.0 GUI guy.&lt;br /&gt;&lt;br /&gt;I've recently started developing rich internet apps running on the Flash platform, using Adobe's &lt;a href="http://www.adobe.com/products/flex/"&gt;Flex Builder 2&lt;/a&gt; and the &lt;a href="http://labs.adobe.com/technologies/apollo/"&gt;Apollo&lt;/a&gt; desktop framework. I'm especially intrigued by how easy it is to develop useful apps using Flex.&lt;br /&gt;&lt;br /&gt;There is a great body of Flex &amp;amp; Flash work online, and I hope I can contribute some worthwhile stuff as well. Some of that contribution depends on your, dear reader, so let's try and make this blog into a useful conversation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5266306673596536007-4023166868613888034?l=olddougnewtricks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://olddougnewtricks.blogspot.com/feeds/4023166868613888034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5266306673596536007&amp;postID=4023166868613888034' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4023166868613888034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5266306673596536007/posts/default/4023166868613888034'/><link rel='alternate' type='text/html' href='http://olddougnewtricks.blogspot.com/2007/04/printf-hello-worldn.html' title='printf( &quot;Hello world!\n&quot; );'/><author><name>Doug Schmidt</name><uri>http://www.blogger.com/profile/15320865990041483011</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://upload.wikimedia.org/wikipedia/en/thumb/2/28/Underdog.jpg/200px-Underdog.jpg'/></author><thr:total>5</thr:total></entry></feed>
