<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.scott.willeke.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CkMCQX0ycSp7ImA9Wx5SFkg.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966</id><updated>2010-08-12T15:01:00.399-07:00</updated><title>scott willeke's personal log</title><subtitle type="html">A programmer at heart, I love creating things for people that they find useful; I always will. Now days I’m trying to uncover the secrets of product management. You'll find more about me through &lt;a href="http://www.linkedin.com/in/scottwilleke"&gt;linkedin&lt;/a&gt;, and &lt;a href="http://feeds.scott.willeke.com/swillekenotes"&gt;my notes&lt;/a&gt;.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.scott.willeke.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.scott.willeke.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.scott.willeke.com/scottwilleke" /><feedburner:info uri="scottwilleke" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.scott.willeke.com%2Fscottwilleke" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.scott.willeke.com%2Fscottwilleke" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.scott.willeke.com/scottwilleke" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.scott.willeke.com%2Fscottwilleke" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.scott.willeke.com%2Fscottwilleke" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><entry gd:etag="W/&quot;CkMCQXs8eCp7ImA9Wx5SFkg.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-5791499401942723138</id><published>2010-08-12T15:01:00.000-07:00</published><updated>2010-08-12T15:01:00.570-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-12T15:01:00.570-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><title>FiOS vs Comcast in Kirkland WA</title><content type="html">Naturally, after my last post about switching from Comcast to FiOS I should tell you which one is better. See for yourself:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.speedtest.net/result/897820502.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://www.speedtest.net/result/897820502.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;FiOS from Frontier for ~$69.99 /mo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.speedtest.net/result/897817382.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://www.speedtest.net/result/897817382.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Comcast for $64.95&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
I have run many speed tests with both services over the last couple weeks. I would say these are pretty representative of the average speed test results.&amp;nbsp;As you can see the big difference is in upload speed. Everything else is pretty much the same.&lt;br /&gt;
&lt;br /&gt;
I don't have the fastest available service from either - Comcast tells me the speed is 15Mb/s down and 4Mb/s up. Frontier FiOS tells me my speed is 25Mb/s down and 25Mb/s up. Comcast apparently sells a 50Mb/s down and "up to" 10MB/s up for $99.95/mo. Frontier FiOS offers 50Mb/s down and 20Mb/s down for $139.95.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Bandwidth Caps&lt;/span&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aBJpigJtQzg/TFN8cHiTAdI/AAAAAAAAWyE/GLIuCElSqUw/s1600/comcast+caps.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="118" src="http://4.bp.blogspot.com/_aBJpigJtQzg/TFN8cHiTAdI/AAAAAAAAWyE/GLIuCElSqUw/s320/comcast+caps.PNG" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Yeah, I didn't use comcast much lately :)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
Comcast shows you explicitly your cap is 250GB per month on your account page. More than that and as I understand it, they cut you off.&lt;br /&gt;
&lt;br /&gt;
FiOS doesn't mention it anywhere, and&amp;nbsp;according&amp;nbsp;to many FiOS users who monitor their staggering Internet usage&amp;nbsp;&lt;a href="http://www.broadbandreports.com/forum/r21078532-What-are-the-FiOS-bandwidth-caps"&gt;apparently FiOS has no bandwidth cap&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-5791499401942723138?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=pdXFuQIkHZE:joMWxT-BHh4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=pdXFuQIkHZE:joMWxT-BHh4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=pdXFuQIkHZE:joMWxT-BHh4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=pdXFuQIkHZE:joMWxT-BHh4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=pdXFuQIkHZE:joMWxT-BHh4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=pdXFuQIkHZE:joMWxT-BHh4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/pdXFuQIkHZE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/5791499401942723138?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/5791499401942723138?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/pdXFuQIkHZE/fios-vs-comcast-in-kirkland-wa.html" title="FiOS vs Comcast in Kirkland WA" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_aBJpigJtQzg/TFN8cHiTAdI/AAAAAAAAWyE/GLIuCElSqUw/s72-c/comcast+caps.PNG" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2010/08/fios-vs-comcast-in-kirkland-wa.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ECQXs-fip7ImA9Wx5SEEk.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-4419079248440096666</id><published>2010-08-05T15:01:00.000-07:00</published><updated>2010-08-05T15:01:00.556-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-05T15:01:00.556-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><title>Fiber to My Home with Verizon/Frontier FiOS</title><content type="html">Since I cannot post a reply to the &lt;a href="http://www.dslreports.com/forum/r17679150-Howto-make-ActionTec-MI424WR-a-network-bridge"&gt;How-to: make ActionTec MI424-WR a network bridge&lt;/a&gt; thread on dslreports.com I decided I should at least write the info down here for others. &lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;A Free Router! Yea!&lt;/span&gt;&lt;br /&gt;
Verizon FiOS (&lt;a href="http://connectedplanetonline.com/independent/news/verizon-frontier-communications-deal-0513/"&gt;now Frontier FiOS in Seattle Washington area&lt;/a&gt;) brings out a wireless router when they come out to install. They first install an &lt;a href="http://en.wikipedia.org/wiki/Passive_optical_network"&gt;Optical Network Terminal&lt;/a&gt; (what you'll read referred to as an "ONT", described by dslreports more &lt;a href="http://www.dslreports.com/faq/12565"&gt;here&lt;/a&gt;) which is a surprisingly large box for the Fiber from the street to go directly into. Out of this they will run a coaxial cable into their own router. The router in my case (and many others according to my reading) is a &lt;a href="http://www.actiontec.com/products/product.php?pid=189"&gt;Actiontec MI424WR&lt;/a&gt;. It is a really nice router actually. It has 802.11g Wireless, DHCP, NAT, port forwarding, DynamicDNS, a flexible firewall and more. In short, Verizon/Frontier did a nice job in selecting the router. It's good.&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aBJpigJtQzg/TE8rD_AfxYI/AAAAAAAAWx8/dcoK4bX_vYY/s1600/IMG_0227.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_aBJpigJtQzg/TE8rD_AfxYI/AAAAAAAAWx8/dcoK4bX_vYY/s200/IMG_0227.jpg" width="150" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Fiber from the street waiting for the tech to arrive&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Except Geeks are Difficult&lt;/span&gt;&lt;br /&gt;
However, for us geeks we don't like someone else's router on our networks. We have our own stuff and don't ask why we can't use your router - we can't explain it, it just won't do. So the &lt;a href="http://www.dslreports.com/forum/r17679150-Howto-make-ActionTec-MI424WR-a-network-bridge"&gt;previously mentioned article&lt;/a&gt; explains how to put the Verizon/Frontier router into Bridge mode so you can use your own router instead. However, it is a damn shame because now you have this other router (now a bridge) that all those electrons have to jump through and that sucks more electricity all the time to run for absolutely no reason - since your own router does all the same stuff.&lt;br /&gt;
&lt;br /&gt;
First of all, I am pretty sure that the DaDragon's explanation will work fine. I meticulously read the manual and scoured the settings of the Actiontec router and it should work fine. However, I found it is surprisingly easy to get ethernet directly out of the ONT working with my own router. Basically just called Frontier and asked for it.&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aBJpigJtQzg/TFGr9Xw8ijI/AAAAAAAAWyA/mpB2q4tY9j8/s1600/DSC_4811.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_aBJpigJtQzg/TFGr9Xw8ijI/AAAAAAAAWyA/mpB2q4tY9j8/s200/DSC_4811.jpg" width="131" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The ONT&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
I called and got some unpleasent person that was adamant that I couldn't use my own router and only their router would work. I explained that this was hard for me to believe, and if this really is the case, I don't want FiOS at all. He eventually was willing -but whining and not happy- to call a "network technician" and ask if there were any options. Luckily the "network technician" was smart and told him that what I wanted to do was perfectly fine. All I had to do was power-down and unplug the Frontier/Verizon router and hook my router up to the ethernet port inside the ONT. Then the network tech at Verizon/Frontier could remotely switch the ONT's ports from coax to ethernet. &lt;br /&gt;
&lt;br /&gt;
I did this and everything immediately started working fine with my router. I did take the liberty of releasing the IP from DHCP on the Actiontec router before I unplugged it, so maybe this helped.&lt;br /&gt;
&lt;br /&gt;
Now I will return the Actiontec router to Frontier/Verizon and I have one less box in utility room and its all my own geek equipment so I can rest easily now :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
P.S. I called Frontier and they didn't want the router back. They just said it was completely free and I could keep it. Cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-4419079248440096666?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=ziSdpINnqTw:DVkDceygSvk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=ziSdpINnqTw:DVkDceygSvk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=ziSdpINnqTw:DVkDceygSvk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=ziSdpINnqTw:DVkDceygSvk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=ziSdpINnqTw:DVkDceygSvk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=ziSdpINnqTw:DVkDceygSvk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/ziSdpINnqTw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4419079248440096666?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4419079248440096666?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/ziSdpINnqTw/fiber-to-my-home-with-verizonfrontier.html" title="Fiber to My Home with Verizon/Frontier FiOS" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_aBJpigJtQzg/TE8rD_AfxYI/AAAAAAAAWx8/dcoK4bX_vYY/s72-c/IMG_0227.jpg" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2010/08/fiber-to-my-home-with-verizonfrontier.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUCQXkzfyp7ImA9Wx5TF0k.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-943981461958929756</id><published>2010-08-02T03:01:00.000-07:00</published><updated>2010-08-02T03:01:00.787-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-02T03:01:00.787-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="datadynamics" /><category scheme="http://www.blogger.com/atom/ns#" term="GrapeCity" /><category scheme="http://www.blogger.com/atom/ns#" term="ActiveReports" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Now for some Nostalgia: The Original Flyer for ActiveReports</title><content type="html">Although we've been living in the Seattle area for about a year now, we left all of our stuff in Columbus. We literally threw what we could fit in our car and drove here in a mad rush to attend the first day of our &lt;a href="http://www.pce.uw.edu/prog.aspx?id=3801"&gt;Software Product Management class at the University of Washington&lt;/a&gt;. We had no where to go but a hotel, and only essential items we could fit in the car (uh, you know, laptops :)). It was a bit hectic, but I totally recommend that everyone do that. We've loved it and wouldn't change the journey one bit.&lt;br /&gt;
&lt;br /&gt;
We decided to stay, so we've even settled in to a house here now. Just a couple weeks ago received our stuff shipped from Columbus. So we've been going through boxes and unpacking lately. One of the interesting things I found was the original flyer we created for the initial release of &lt;a href="http://en.wikipedia.org/wiki/ActiveReports"&gt;ActiveReports&lt;/a&gt; back in 1998.&lt;br /&gt;
&lt;br /&gt;
I scanned it for fun and put it up here. This was the early days of &lt;a href="http://en.wikipedia.org/wiki/Data_Dynamics"&gt;Data Dynamics&lt;/a&gt;, if we had a garage it would have literally been the&amp;nbsp;quintessential&amp;nbsp;two and a half men in a garage (the half is me). We were working day and night, did everything between the two-and-a-half of us. From coding, documentation, testing, support, and marketing and flyers like this one:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aBJpigJtQzg/TFYCXTg_xII/AAAAAAAAWyY/_T1Fcsyx5HU/s1600/ActiveReports+Original+Flyer+cica+1998+-+front.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/_aBJpigJtQzg/TFYCXTg_xII/AAAAAAAAWyY/_T1Fcsyx5HU/s640/ActiveReports+Original+Flyer+cica+1998+-+front.jpg" width="489" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Front cover of the original four-page ActiveReports flyer&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aBJpigJtQzg/TFYCXq1iH5I/AAAAAAAAWyc/5eL2i02gzdg/s1600/ActiveReports+Original+Flyer+cica+1998+-+inside+left.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_aBJpigJtQzg/TFYCXq1iH5I/AAAAAAAAWyc/5eL2i02gzdg/s400/ActiveReports+Original+Flyer+cica+1998+-+inside+left.jpg" width="305" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Inside-left page&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aBJpigJtQzg/TFYCYKzM8CI/AAAAAAAAWyg/5BBry7RmS4Q/s1600/ActiveReports+Original+Flyer+cica+1998+-+inside+right.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/_aBJpigJtQzg/TFYCYKzM8CI/AAAAAAAAWyg/5BBry7RmS4Q/s400/ActiveReports+Original+Flyer+cica+1998+-+inside+right.jpg" width="306" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Inside-right page&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aBJpigJtQzg/TFYCWnYnf2I/AAAAAAAAWyU/trv-eh7fK9I/s1600/ActiveReports+Original+Flyer+cica+1998+-+back.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/_aBJpigJtQzg/TFYCWnYnf2I/AAAAAAAAWyU/trv-eh7fK9I/s640/ActiveReports+Original+Flyer+cica+1998+-+back.jpg" width="490" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Back page&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
Those were the days.&lt;br /&gt;
Ferhat had been writing the first versions of &lt;a href="http://www.datadynamics.com/Products/ProductOverview.aspx?Product=AB"&gt;ActiveBar&lt;/a&gt; and ActiveReports nearly single-handedly while Issam and tested. I dealt with support and a bit of documentation and Issam did everything else. Tim Moffatt worked with us hand dealt with nearly everything business to make sure our lights were kept on and talking to the normal people :)&lt;br /&gt;
&lt;br /&gt;
We were working extra hard at this time because we were preparing to release both ActiveReports and ActiveBar for &lt;a href="http://books.google.com/books?id=61EEAAAAMBAJ&amp;amp;lpg=RA1-PA85&amp;amp;ots=arNgDj4oSP&amp;amp;dq=%22Visual%20Basic%20Insiders%20Technical%20Summit%22%201998&amp;amp;pg=RA1-PA85#v=onepage&amp;amp;q=%22Visual%20Basic%20Insiders%20Technical%20Summit%22%201998&amp;amp;f=false"&gt;VBITS 1998&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Incidentally, I went looking for a good link about VBITS and found &lt;a href="http://www.arcatapet.com/vbits98/"&gt;some pictures from those days&lt;/a&gt;. You should definitely check them out. It was when &lt;a href="http://www.arcatapet.com/vbits98/yosemite/yosemite404.jpg"&gt;Issam's hair was black&lt;/a&gt;, I &lt;a href="http://www.arcatapet.com/vbits98/yosemite/yosemite302.jpg"&gt;was a hippy with hair on sholders&lt;/a&gt;, and &lt;a href="http://www.arcatapet.com/vbits98/yosemite/yosemite006.jpg"&gt;Scoble was&lt;/a&gt; - well, he was pretty much the same, but I bet his kid was a lot smaller. &lt;a href="http://www.arcatapet.com/vbits98/yosemite/yosemite104.jpg"&gt;Carl Franklin&lt;/a&gt; was the same too :) Funny that you can see &lt;a href="http://www.arcatapet.com/vbits98/yosemite/yosemite101.jpg"&gt;Ferhat holding a picture of this very flyer&lt;/a&gt;. The bus trip we took to Yosemite with Scoble, &amp;nbsp;Carl Franklin and friends that year was awesome. Definitely&amp;nbsp;unforgettable, and I'm glad someone kept pictures around! Thanks to whoever did that (leave me a comment if you read this).&lt;br /&gt;
&lt;br /&gt;
I remember a particularly funny story as we were getting up to the final stretch with ActiveReports. At the last minute, we realized it didn't print. We just hadn't tested printing in a long time.&lt;br /&gt;
&lt;br /&gt;
Luckily it was an easy fix (or so Ferhat's incredible skills made it seem) and it was working in no time, but a funny thing we used to laugh about, especially considering we were originally going to call the product "ActivePrint" :)&lt;br /&gt;
&lt;br /&gt;
That was a long time ago, and particularly rewarding since both of those two products are still used by thousands of people more than ten years later today. &lt;a href="http://www.datadynamics.com/ActiveReports"&gt;ActiveReports is going stronger than ever&lt;/a&gt; now at &lt;a href="http://us.grapecity.com/powertools/"&gt;GrapeCity&lt;/a&gt; and I'm glad to be working with some of my old Data Dynamics comrades there.&lt;br /&gt;
&lt;br /&gt;
Wait until you see what we have in store next for ActiveReports. I promise you a big surprise and another "Next Generation" in reporting!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-943981461958929756?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=XY-NL6jpf8Q:74xfh6Xl9LU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=XY-NL6jpf8Q:74xfh6Xl9LU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=XY-NL6jpf8Q:74xfh6Xl9LU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=XY-NL6jpf8Q:74xfh6Xl9LU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=XY-NL6jpf8Q:74xfh6Xl9LU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=XY-NL6jpf8Q:74xfh6Xl9LU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/XY-NL6jpf8Q" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/943981461958929756?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/943981461958929756?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/XY-NL6jpf8Q/now-for-some-nostalgia-original-flyer.html" title="Now for some Nostalgia: The Original Flyer for ActiveReports" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_aBJpigJtQzg/TFYCXTg_xII/AAAAAAAAWyY/_T1Fcsyx5HU/s72-c/ActiveReports+Original+Flyer+cica+1998+-+front.jpg" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2010/08/now-for-some-nostalgia-original-flyer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EGSXk4fCp7ImA9Wx5TFU0.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-3580204690170226557</id><published>2010-07-30T03:01:00.000-07:00</published><updated>2010-07-30T10:07:08.734-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-30T10:07:08.734-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="religion" /><title>Changes in The Text</title><content type="html">While studying in preparation for the entering the &lt;a href="http://en.wikipedia.org/wiki/Textual_criticism"&gt;textual criticism&lt;/a&gt; of the Bible program at &lt;a href="http://www.bju.edu/"&gt;Bob Jones University&lt;/a&gt;, the speaker, &lt;a href="http://yushaevans.com/"&gt;Yusha Evans&lt;/a&gt;, read the bible 6-7 times straight through and in Hebrew and Greek. In&amp;nbsp;&lt;a href="http://www.youtube.com/watch?v=SEXq6VEZlxg"&gt;this YouTube video&lt;/a&gt;&amp;nbsp;he is speaking about his experience reading beyond the four &lt;a href="http://en.wikipedia.org/wiki/Canonical_gospels#Canonical_Gospels"&gt;canonical gospels&lt;/a&gt; of the New Testament and making it into the &lt;a href="http://en.wikipedia.org/wiki/New_Testament#Pauline_epistles"&gt;writings of Paul&lt;/a&gt;:&lt;br /&gt;
&lt;blockquote&gt;Not only did I notice changes in the text, but changes in the way the language was spoken. Because you can tell in...in hebrew when God is speaking, because it is an extremely eloquent speech. A speech that is not like any human speech. You can tell the difference. And then you can see when it automatically changes to almost like slang. It changes to like, uneducated speech. And it goes back and forth, back and forth... and you can see this. Someone who knows languages will see this, you can see this. It's like having a person with a PhD in English speaking and when a fourth grader is speaking. You can tell which one is which. Even if they were behind a screen and they wrote it on a piece of paper. You would tell which one is which.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-3580204690170226557?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=ja7AmD3lSIw:pF6gmOeug7M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=ja7AmD3lSIw:pF6gmOeug7M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=ja7AmD3lSIw:pF6gmOeug7M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=ja7AmD3lSIw:pF6gmOeug7M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=ja7AmD3lSIw:pF6gmOeug7M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=ja7AmD3lSIw:pF6gmOeug7M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/ja7AmD3lSIw" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/3580204690170226557?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/3580204690170226557?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/ja7AmD3lSIw/changes-in-text.html" title="Changes in The Text" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2010/07/changes-in-text.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcHQXc9eSp7ImA9Wx5TE0k.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-3053497713223589091</id><published>2010-07-28T11:33:00.001-07:00</published><updated>2010-07-28T11:33:50.961-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-28T11:33:50.961-07:00</app:edited><title>Grammar Tip: Punctuation with Interjections</title><content type="html">&lt;div&gt;Every once in a while I obsess over grammatical correctness in some particular situation. Today I learned the following:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;The position of the exclamation point is determined by the way the sentence is read: if the voice falls after the interjection, the exclamation point is used there; if there is a pause but no fall of the voice after the interjection, a comma is used there and the exclamation point comes at the end of the sentence.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-&amp;nbsp;&lt;a href="http://books.google.com/books?id=xPUAAAAAYAAJ&amp;amp;pg=PA291#v=onepage&amp;amp;q&amp;amp;f=false"&gt;http://books.google.com/books?id=xPUAAAAAYAAJ&amp;amp;pg=PA291#v=onepage&amp;amp;q&amp;amp;f=false&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-3053497713223589091?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=X2-P0YZc94U:sZNXSpC5SGo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=X2-P0YZc94U:sZNXSpC5SGo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=X2-P0YZc94U:sZNXSpC5SGo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=X2-P0YZc94U:sZNXSpC5SGo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=X2-P0YZc94U:sZNXSpC5SGo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=X2-P0YZc94U:sZNXSpC5SGo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/X2-P0YZc94U" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/3053497713223589091?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/3053497713223589091?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/X2-P0YZc94U/grammar-tip-punctuation-with.html" title="Grammar Tip: Punctuation with Interjections" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2010/07/grammar-tip-punctuation-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8EQXw9eip7ImA9Wx5TF00.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-4923791038703656902</id><published>2010-07-23T11:16:00.000-07:00</published><updated>2010-08-01T16:53:20.262-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-01T16:53:20.262-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="product management" /><category scheme="http://www.blogger.com/atom/ns#" term="project management" /><title>Should we row harder?</title><content type="html">&lt;blockquote&gt;Microsoft and IBM were in a boat race with nine people in each boat. Microsoft had eight people rowing and one person steering. IBM had one person rowing and eight people steering. After losing the race by a wide margin, IBM commissioned a three-month, two million dollar study to determine how they could win the next race. After extending the study to six months and five million dollars, they finally came to a conclusion: the one person doing the rowing needs to row harder.&lt;br /&gt;
&lt;/blockquote&gt;&lt;!-- from http://www.stevemcconnell.com/articles/art01.htm --&gt;&lt;br /&gt;
&lt;p style="text-align:right"&gt;- story circulated at Microsoft after the &lt;a href="http://en.wikipedia.org/wiki/OS/2#Breakup"&gt;OS/2 debacle ended&lt;/a&gt;.&lt;br /&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/6428426118720902966-4923791038703656902?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=lkGHqoCCkb4:IG3Ez9Y5XGc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=lkGHqoCCkb4:IG3Ez9Y5XGc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=lkGHqoCCkb4:IG3Ez9Y5XGc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=lkGHqoCCkb4:IG3Ez9Y5XGc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=lkGHqoCCkb4:IG3Ez9Y5XGc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=lkGHqoCCkb4:IG3Ez9Y5XGc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/lkGHqoCCkb4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4923791038703656902?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4923791038703656902?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/lkGHqoCCkb4/should-we-row-harder.html" title="Should we row harder?" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2010/07/should-we-row-harder.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcMRHg_fyp7ImA9WxFREUo.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-9055846988070973142</id><published>2010-04-20T01:01:00.000-07:00</published><updated>2010-04-24T23:48:05.647-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-24T23:48:05.647-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="product management" /><category scheme="http://www.blogger.com/atom/ns#" term="project management" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="scrum" /><title>Techniques for a Product Manager in Scrum: Estimating Techniques</title><content type="html">This article continues my series of articles on a Product Manager's role in Scrum that began with &lt;a href="http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html"&gt;The Role of a Scrum Product Owner&lt;/a&gt; which was followed with &lt;a href="http://blog.scott.willeke.com/2010/04/responsibilities-of-product-manager-in.html"&gt;Responsibilities of a Product Manager in Scrum&lt;/a&gt;. This time I'm discussing Estimating Techniques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When talking about estimating techniques in the context of scrum you'll hear a variety of interesting things come up, like: "We want to estimate product backlog items in T-Shirt sizes!" Or "We want to estimate product backlog items in points!" Or maybe you've heard, "For estimating, we're going to start playing planning poker." You think to yourself: What are these guys smoking?&lt;br /&gt;
&lt;br /&gt;
But, actually everything is perfectly normal. When us software engineers estimate in hours or days they're wrong anyway, so why not estimate in T-Shirt sizes, points, or with card games?&lt;br /&gt;
&lt;br /&gt;
Bare with me here...&amp;nbsp;I've worked with teams that used all of these things, and I think they're all equally successful or&amp;nbsp;unsuccessful&amp;nbsp;and at least as good as estimating in hours.&amp;nbsp;The idea here is to not get too attached to terms that have powerful associations with them like &lt;i&gt;hours&lt;/i&gt; and &lt;i&gt;days&lt;/i&gt;. In the end, it doesn't matter if they use hours or T-Shirt Sizes. You just need a way to measure the team's &lt;i&gt;velocity&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Velocity&lt;/span&gt;&lt;br /&gt;
To measure in velocity, you have the team attach some "value" to each product backlog item (e.g. points). Then each sprint, the team will accomplish a few product backlog items and you can add that value up to see how much "value" (e.g. points) they were able to accomplish. After several sprints, you should start to see that the team fairly consistently accomplishes roughly the same amount of "value" (e.g. points) each sprint. So for your scheduling, you can use the average amount of "value" that the team can accomplish in a sprint, to determine how many sprints it will take to accomplish all of the items in the product backlog.&lt;br /&gt;
&lt;br /&gt;
A great way to get started this style of estimating is with Planning Poker. There is a great site dedicated to that at&amp;nbsp;&lt;a href="http://www.planningpoker.com/"&gt;http://www.planningpoker.com&lt;/a&gt;&amp;nbsp;so I'll let you get into the details on that site.&lt;br /&gt;
&lt;br /&gt;
Some quick rules of thumb I've learned:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Early in a project, estimating in sprints. The cost here is limited of accuracy (usually due to the &lt;a href="http://www.google.com/search?q=cone+of+uncertainty"&gt;cone of uncertainty&lt;/a&gt;).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Use a &lt;a href="http://www.google.com/search?q=rough+order+of+magnitude+estimate"&gt;rough order of magnitude estimate&lt;/a&gt; when providing estimates to others.&lt;/li&gt;
&lt;li&gt;If an estimate for a product backlog item comes out “big”, work with the team to break it down into smaller ones.&lt;/li&gt;
&lt;li&gt;Planning poker is effective and fast for teams that are&amp;nbsp;hesitant to provide estimates.&lt;/li&gt;
&lt;li&gt;If everyone is rolling their eyes, use hours (and track everything so you can track velocity to get more accurate over time).&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Series&lt;/b&gt;: This article is part of a series that includes the following articles: &lt;a href="http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html"&gt;The Role of a Scrum Product Owner&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/responsibilities-of-product-manager-in.html"&gt;Responsibilities of a Product Manager in Scrum&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum.html"&gt;Techniques for a Product Manager in Scrum: User Stories&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum_20.html"&gt;Techniques for a Product Manager in Scrum: Estimating Techniques&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-9055846988070973142?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=xJmfpxFgfVg:XK1DLxlk50s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=xJmfpxFgfVg:XK1DLxlk50s:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=xJmfpxFgfVg:XK1DLxlk50s:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=xJmfpxFgfVg:XK1DLxlk50s:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=xJmfpxFgfVg:XK1DLxlk50s:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=xJmfpxFgfVg:XK1DLxlk50s:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/xJmfpxFgfVg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/9055846988070973142?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/9055846988070973142?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/xJmfpxFgfVg/techniques-for-product-manager-in-scrum_20.html" title="Techniques for a Product Manager in Scrum: Estimating Techniques" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum_20.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcNRnk6eSp7ImA9WxFREUo.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-1833297614901108831</id><published>2010-04-13T01:01:00.000-07:00</published><updated>2010-04-24T23:48:17.711-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-24T23:48:17.711-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="product management" /><category scheme="http://www.blogger.com/atom/ns#" term="project management" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="scrum" /><title>Techniques for a Product Manager in Scrum: User Stories</title><content type="html">This article will continue the series that began with &lt;a href="http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html"&gt;The Role of a Scrum Product Owner&lt;/a&gt; which was followed with &lt;a href="http://blog.scott.willeke.com/2010/04/responsibilities-of-product-manager-in.html"&gt;Responsibilities of a Product Manager in Scrum&lt;/a&gt;. In the last article, I outlined three areas of responsibility for a Product Manager working with a Scrum team:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Business Value&lt;/li&gt;
&lt;li&gt;Be Available&lt;/li&gt;
&lt;li&gt;Set Expectations&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
In this article we'll look at a few tools and techniques I've found useful for aspiring to achieve these laudable goals.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Product Backlog&lt;/span&gt;&lt;br /&gt;
Before we get into the main event for this article, I want to quickly give some homage to the product backlog. What the product backlog is is straightforward enough (read about it in &lt;a href="http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html"&gt;the first article&lt;/a&gt;). However, as I stated in &lt;a href="http://blog.scott.willeke.com/2010/04/responsibilities-of-product-manager-in.html"&gt;Responsibilities of a Product Manager in Scrum&lt;/a&gt;,&amp;nbsp;it is an incredibly powerful tool in scrum. It is your primary way for ensuring that the team is working on the right things. So &lt;i&gt;own&lt;/i&gt; the product backlog and always make sure it is up to date and product backlog items are clearly explained. Every time you add a new item to the product backlog get some feedback and reaction from the team and make sure it is clear for them. I've found that it often isn't, and needs some added explanation. So get out in front and be proactive about clearing up any confusion.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;User Stories&lt;/span&gt;&lt;br /&gt;
Now for the main event... User stories are a way of writing an item for the product backlog. They are always written as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-size: xx-large;"&gt;&lt;span style="color: grey;"&gt;As a&lt;/span&gt; &amp;lt;type of user&amp;gt;, &lt;span style="color: grey;"&gt;I want&lt;/span&gt; &amp;lt;some goal&amp;gt; &lt;span style="color: grey;"&gt;so that&lt;/span&gt; &amp;lt;some reason&amp;gt;.&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
You fill in &amp;lt;type of user&amp;gt;, &amp;lt;some goal&amp;gt;, and &amp;lt;some reason&amp;gt;. That's it. Once you've done that you have a user story. Not much of a story you say, but I say:&amp;nbsp;&lt;em&gt;Au contraire, mon frère&lt;/em&gt;...&lt;br /&gt;
&lt;br /&gt;
A user story puts incredibly important information into a very small amount of space and it does it with a simple pattern. The important information that a user story includes is answers to common questions when considering a feature:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Who benefits?&lt;/li&gt;
&lt;li&gt;Why would they want that?!&lt;/li&gt;
&lt;/ul&gt;More importantly it makes the reader (developers &lt;i&gt;and&lt;/i&gt; QA engineers) &lt;b&gt;identify with the customer's need&lt;/b&gt;. Just for a brief moment, they have to acknowledge the perspective of the customer. Priceless.&lt;br /&gt;
&lt;br /&gt;
Lets look at a quick example: You might find the following in a product backlog:&lt;br /&gt;
&lt;blockquote&gt;Add password to backups&lt;/blockquote&gt;Written as a user story, it might be written like:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="color: grey;"&gt;As a&lt;/span&gt; Dad, &lt;span style="color: grey;"&gt;I want&lt;/span&gt; to make sure my kids can’t delete my backups &lt;span style="color: grey;"&gt;so that&lt;/span&gt; I don’t loose important docs!&lt;/blockquote&gt;&lt;br /&gt;
As you can see, user stores are a painfully simple tool that are also useful. However, often times people don't like them because they're so monotonous to read. If you can get over the tediousness of reading them, they are are including incredibly invaluable information into a simple sentence. However, if you (or your team) doesn't like user stories, fine, just make sure that this other information is included in a template. So instead of writing:&lt;br /&gt;
&lt;blockquote&gt;As a &amp;lt;type of user&amp;gt;, I want &amp;lt;some goal&amp;gt; so that &amp;lt;some reason&amp;gt;.&lt;/blockquote&gt;You will write something more like:&lt;br /&gt;
&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;User / Role / Actor:&lt;/span&gt;&lt;br /&gt;
&amp;lt;type of user&amp;gt;...&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Goal:&lt;/span&gt;&lt;br /&gt;
&amp;lt;some goal&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Why is it a Goal for the User?:&lt;/span&gt;&lt;br /&gt;
&amp;lt;some reason&amp;gt;...&lt;/blockquote&gt;&lt;br /&gt;
Some people prefer templated forms to fill out, and that is fine. I like user stories because I have found that forms tend to get wordy since people want to fill them out "correctly" and use more words to show how hard they're working. Then more "required" fields get added to the template so that everyone's stroke of insight about requirements can be memorialized and eventually the forms loose their value and nobody really wants to read them anymore anyway.&lt;br /&gt;
&lt;br /&gt;
So I prefer user stories, and if needed -&lt;i&gt;and it usually is&lt;/i&gt;- I back them up with a link to a requirements page, but I think cramming all that invaluable information into a single sentence is a great way to start.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next week at this time I've got a fun article on estimating techniques prepared for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Series&lt;/b&gt;: This article is part of a series that includes the following articles: &lt;a href="http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html"&gt;The Role of a Scrum Product Owner&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/responsibilities-of-product-manager-in.html"&gt;Responsibilities of a Product Manager in Scrum&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum.html"&gt;Techniques for a Product Manager in Scrum: User Stories&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum_20.html"&gt;Techniques for a Product Manager in Scrum: Estimating Techniques&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-1833297614901108831?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Zbah8UwwfIE:LqVfKlEdQ7Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Zbah8UwwfIE:LqVfKlEdQ7Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=Zbah8UwwfIE:LqVfKlEdQ7Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Zbah8UwwfIE:LqVfKlEdQ7Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Zbah8UwwfIE:LqVfKlEdQ7Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=Zbah8UwwfIE:LqVfKlEdQ7Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/Zbah8UwwfIE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/1833297614901108831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/1833297614901108831?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/Zbah8UwwfIE/techniques-for-product-manager-in-scrum.html" title="Techniques for a Product Manager in Scrum: User Stories" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYERHY9fyp7ImA9WxFREUo.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-1727590006338476131</id><published>2010-04-07T00:51:00.000-07:00</published><updated>2010-04-24T23:48:25.867-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-24T23:48:25.867-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="product management" /><category scheme="http://www.blogger.com/atom/ns#" term="project management" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="scrum" /><title>Responsibilities of a Product Manager in Scrum</title><content type="html">Recently, I wrote &lt;a href="http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html"&gt;an article on the The Role of a Scrum Product Owner&lt;/a&gt; which was a crash course introduction to software development with a Scrum team. This article will go on to discusses the responsibilities of a Product Manager working with a Scrum team. If you haven't read the first one (and you're not a ScrumMaster) you probably should probably at least skim through it.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="mysidebar"&gt;&lt;b&gt;Update&lt;/b&gt;: I have received some comments about my usage of &lt;em&gt;Product Owner&lt;/em&gt; and &lt;em&gt;Product Manager&lt;/em&gt;. From my perspective, a Product Owner is a Scrum-specific term for the more broadly used term Product Manager. So I will tend to use the two terms interchangeably in these articles. However, it is fair to say that the responsibilities of a Product Owner are limited in scope compared to that of the typical Product Manager, as a Product Manager is usually responsible for a product's business case, marketing, competitive analysis, etc. These things are simply outside the scope of development and where Scrum is typically applied. To make a long story short, if you are currently called a &lt;em&gt;Product Manager&lt;/em&gt; and will be moving to work with a Scrum team, they might start referring to you as a &lt;em&gt;Product Owner&lt;/em&gt;.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
I think Scrum is truly all about the underlying principles. The ceremonies, roles, and artifacts are all nearly useless and often even counter-productive without an understanding of and discipline around the principles of Scrum that I outlined in my prior article. My "Principles of Scrum" are as follows:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Transparency&lt;/b&gt;:&amp;nbsp;You should have problems when using Scrum ("that's a feature, not a bug").&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Inspection&lt;/b&gt;:&lt;b&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;You cannot inspect without transparency.&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Adaption&lt;/b&gt;:&amp;nbsp;You cannot adapt if you do not inspect.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aBJpigJtQzg/S7wtMaCcvDI/AAAAAAAAUVY/vXauUab8RJs/s1600/kissing+pig+poster.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/_aBJpigJtQzg/S7wtMaCcvDI/AAAAAAAAUVY/vXauUab8RJs/s320/kissing+pig+poster.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;As a Product Manager, you'll need to understand and embrace these principles for a Scrum project to be successful. Even if you find scrum&amp;nbsp;tedious&amp;nbsp;or a little too informal, then at least try to keep in mind that these are the core&amp;nbsp;tenets&amp;nbsp;that should always be &lt;s&gt;honored&lt;/s&gt; embraced. If you embrace them, your chances of success as a Product Manager or Product Owner -and as a team- increase&amp;nbsp;dramatically.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Business Value&lt;/span&gt;&lt;br /&gt;
As you know, scrum teams work in short, rapid, iterations -"Sprints"- at the end of which the team demonstrates some useful functionality to the customer (or customer representative). The team does this by working on the highest priority items from the Product Backlog. This way the team is always working on the functionality that is the most important to the customer. In other words, the team is always working on the most &lt;i&gt;valuable&lt;/i&gt;&amp;nbsp;functionality: Business Value.&lt;br /&gt;
&lt;br /&gt;
However, this assumes that the product backlog is always prioritized accordingly.&amp;nbsp;The&amp;nbsp;Product Owner has the exclusive responsibility for always keeping the product backlog prioritized. If Product Owner does a good job of prioritizing, the team will deliver features that have the highest value to the customer. If the backlog is not well prioritized, the team's work is in vain and the customer gets little or no value. Therefore, the importance of this responsibility canot be overstated.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Be Available&lt;/span&gt;&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_aBJpigJtQzg/S7wy4MUMbzI/AAAAAAAAUVw/C88o04I4va0/s200/11_22_56---Alarm-Clock_web.jpg" width="133" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;from &lt;a href="http://www.freefoto.com/preview/11-22-56"&gt;freefoto.com&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;Scrum does not prevent questions from coming up or limit the need for reviews and feedback from the Product Manager.&amp;nbsp;However, as scrum teams work in short iterations, time is always of the essence.&amp;nbsp;So it is essential that when the team has a question or needs some guidance that the Product Owner is available to provide that guidance or feedback rapidly.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;To add a little bit of perspective: If a team works in a two-week iteration with one day of planning, that means if the PM takes one day to respond to a blocking-question from the team, the team looses 11% of their available time to their commitment. So be available!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Set Expectations&lt;/span&gt;&lt;br /&gt;
The Product Owner is the link between what customers want and what the team delivers. As such, the Product Owner is responsible for managing the expectations of both the customer and the team. Make sure that the customer is always informed and aware of what they will see at the end of the sprint. Never leave an unpleasant surprise lingering. Customers are generally understanding about delays if they know about them up front and are offered a chance to be involved with the team. But if a big surprise comes up at the end, they're less like to be understanding.&lt;br /&gt;
&lt;br /&gt;
What is maybe less intuitive is that you also are responsible for making sure that the team's expectations are aligned with the customers. This is a Product Owner's fundamental role: Making sure that the team understands the expectations of the customer. Lets read that again for emphasis: Making sure that the team understands the expectations &lt;em&gt;of the customer&lt;/em&gt;. &lt;br /&gt;
&lt;br /&gt;
Be sure that the team understands the customers needs and ultimately what they are expecting to be delivered. Work closely with the team in setting a clear unambiguous commitment to be achieved at the end of every sprint. This commitment is to ensure that what the team delivers at the end of every sprint is what you -and by association &lt;em&gt;the customer&lt;/em&gt;- is expecting.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;So how do I do all that?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
There is no easy way, and no doubt, after &amp;gt;10 years of development and several years of team leadership roles, I'm still learning myself. However, I have observed some useful techniques and practices and I've already started&amp;nbsp;writing&amp;nbsp;those up for an article next week. So stay tuned...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Series&lt;/b&gt;: This article is part of a series that includes the following articles: &lt;a href="http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html"&gt;The Role of a Scrum Product Owner&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/responsibilities-of-product-manager-in.html"&gt;Responsibilities of a Product Manager in Scrum&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum.html"&gt;Techniques for a Product Manager in Scrum: User Stories&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum_20.html"&gt;Techniques for a Product Manager in Scrum: Estimating Techniques&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-1727590006338476131?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=jD2zj16JUh0:uyIhWCnKPc4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=jD2zj16JUh0:uyIhWCnKPc4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=jD2zj16JUh0:uyIhWCnKPc4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=jD2zj16JUh0:uyIhWCnKPc4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=jD2zj16JUh0:uyIhWCnKPc4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=jD2zj16JUh0:uyIhWCnKPc4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/jD2zj16JUh0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/1727590006338476131?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/1727590006338476131?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/jD2zj16JUh0/responsibilities-of-product-manager-in.html" title="Responsibilities of a Product Manager in Scrum" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_aBJpigJtQzg/S7wtMaCcvDI/AAAAAAAAUVY/vXauUab8RJs/s72-c/kissing+pig+poster.jpg" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2010/04/responsibilities-of-product-manager-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcBQ38-eyp7ImA9WxBUFUs.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-4913384942014519290</id><published>2010-03-02T04:01:00.000-08:00</published><updated>2010-03-02T14:14:12.153-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-02T14:14:12.153-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="economics" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><title>United States Deficit &amp; Debt During Presidents from 1969-2019</title><content type="html">&lt;div style="float:right; width:115pt; padding:3pt; margin:5pt; background:GhostWhite;font-size:0.9em"&gt;What is the difference between the &lt;em&gt;Deficit&lt;/em&gt; and &lt;em&gt;Debt&lt;/em&gt; you ask? &lt;a href="http://en.wikipedia.org/wiki/United_States_federal_budget#Understanding_deficits_and_debt"&gt;Wikipedia&lt;/a&gt; and the &lt;a href="http://www.treasurydirect.gov/news/pressroom/pressroom_bpd08052004.htm"&gt;U.S. Department of the Treasury&lt;/a&gt; have good explanations.&lt;/div&gt;&lt;br /&gt;
At times my curiosity will get the best of me and I start trolling through the glorious amount of data available on the Internet. A while back I started using the awesome data published by the United States Congressional Budget Office to better understand the US Deficit and US Debt during the different presidential terms in recent history. I managed to coerce the data into a useful chart that&amp;nbsp;satisfied&amp;nbsp;my curiosity:&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aBJpigJtQzg/S4ytVWk-LJI/AAAAAAAARsU/47OPEnYpSI0/s1600-h/USA%20Debt%20&amp;amp;%20Deficit%20Chart.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="346" src="http://1.bp.blogspot.com/_aBJpigJtQzg/S4ytVWk-LJI/AAAAAAAARsU/47OPEnYpSI0/s640/USA%20Debt%20&amp;amp;%20Deficit%20Chart.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;USA CBO Deficit &amp;amp; Debt Since 1969, Projections through 2019&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
The top chart is the deficit and the bottom one is Debt held by the public.&amp;nbsp;All numbers are expressed as a percentage of GDP as this seems to be the only meaningful value over time. As the legend shows the dark blue line is actual and the light blue line is projections.&lt;br /&gt;
The actual data comes from the Congressional Budget Office Historical Budget Data report revised on June 23, 2009 and can be found at&amp;nbsp;&lt;a href="http://www.cbo.gov/budget/historical.shtml"&gt;http://www.cbo.gov/budget/historical.shtml&lt;/a&gt;. The projections data comes from "The Budget and Economic Outlook: An Update&amp;nbsp;published&amp;nbsp;in August 2009. It can be found at&amp;nbsp;&lt;a href="http://www.cbo.gov/Spreadsheets.shtml"&gt;http://www.cbo.gov/Spreadsheets.shtml&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
All of this was done as a spreadsheet in Apple Numbers '09. The spreadsheet with the raw data and the chart can be downloaded by anyone&amp;nbsp;&lt;a href="http://bit.ly/bott3q"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-4913384942014519290?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=KhjNeXao1fs:rQezm_pZDZ4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=KhjNeXao1fs:rQezm_pZDZ4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=KhjNeXao1fs:rQezm_pZDZ4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=KhjNeXao1fs:rQezm_pZDZ4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=KhjNeXao1fs:rQezm_pZDZ4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=KhjNeXao1fs:rQezm_pZDZ4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/KhjNeXao1fs" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4913384942014519290?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4913384942014519290?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/KhjNeXao1fs/united-states-deficit-debt-during.html" title="United States Deficit &amp; Debt During Presidents from 1969-2019" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_aBJpigJtQzg/S4ytVWk-LJI/AAAAAAAARsU/47OPEnYpSI0/s72-c/USA%20Debt%20&amp;amp;%20Deficit%20Chart.png" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2010/03/united-states-deficit-debt-during.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8FQX4_fSp7ImA9Wx5TF00.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-4110136929936056212</id><published>2010-02-18T18:01:00.000-08:00</published><updated>2010-08-01T16:53:30.045-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-01T16:53:30.045-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><title>Fixing the Google Buzz Feeds</title><content type="html">&lt;span style="font-size: x-large;"&gt;Buzz to Twitter is...&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://blog.scott.willeke.com/2010/02/publish-your-google-buzz-posts-to.html"&gt;Recently I showed you&lt;/a&gt; how to find your feed for Google Buzz and integrate it into FreindFeed. This allows you and your friends to see your Google Buzz posts on FriendFeed, and since FriendFeed will automatically push your updates out to twitter it gives you a way to make your Buzz posts show up in Twitter.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-large;"&gt;Cool but...&lt;/span&gt;&lt;br /&gt;
That all sounds good, but the problem is the feed from Google Buzz stinks. Every post has a title with something like "Buzz by Scott Willeke from Mobile" or "Buzz by Scott Willeke from Google Reader". So you see this in your feed over and over. Nice huh? Yeah, I didn't think so either.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-large;"&gt;Yahoo Pipes Makes it Better&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aBJpigJtQzg/S33eqMH2wbI/AAAAAAAARdc/XfifGPwwd_c/s1600-h/pipeslogo_whitebg.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aBJpigJtQzg/S33eqMH2wbI/AAAAAAAARdc/XfifGPwwd_c/s1600/pipeslogo_whitebg.png" /&gt;&lt;/a&gt;&lt;/div&gt;So I've Used the venerable Yahoo Pipes to clean this mess up for all of us. Yahoo pipes is a visual environment that makes it easy to mashup information from web pages, and is really useful to modify RSS/Atom feeds. To use it just visit &lt;a href="http://pipes.yahoo.com/activescott/googlebuzzfeed"&gt;http://pipes.yahoo.com/activescott/googlebuzzfeed&lt;/a&gt; and enter the URL to your Google profile page (see &lt;a href="http://www.google.com/support/accounts/bin/answer.py?answer=144414&amp;amp;hl=en"&gt;this page&lt;/a&gt; for help finding your Google Profile Page URL). It will return a feed that you can click on "Get as RSS" and get a magically cleaned up Google Buzz feed. &lt;br /&gt;
&lt;br /&gt;
Now, right-click on the &lt;img style="vertical-align:top" border="0" src="http://2.bp.blogspot.com/_aBJpigJtQzg/S33fHiap92I/AAAAAAAARdk/Mryuqz9qDp4/s1600/getasrss.png" alt="Get as RSS" /&gt; link and copy it. Then enter that URL in FriendFeed (&lt;a href="http://friendfeed.com/about/help#add"&gt;see friendfeed's help on this&lt;/a&gt;) and it will send much more cleanly formatted feed to FriendFeed and Twitter.&lt;br /&gt;
&lt;br /&gt;
How does it work? Well &lt;a href="http://pipes.yahoo.com/activescott/googlebuzzfeed"&gt;go see for yourself&lt;/a&gt;. Yahoo Pipes are open source by default so you can go view the pipe and see how it works and even clone a copy to play with for yourself. Cool!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-4110136929936056212?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=kXRYLbKbBKI:aLTYRvMUjWQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=kXRYLbKbBKI:aLTYRvMUjWQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=kXRYLbKbBKI:aLTYRvMUjWQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=kXRYLbKbBKI:aLTYRvMUjWQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=kXRYLbKbBKI:aLTYRvMUjWQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=kXRYLbKbBKI:aLTYRvMUjWQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/kXRYLbKbBKI" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4110136929936056212?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4110136929936056212?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/kXRYLbKbBKI/fixing-google-buzz-feeds.html" title="Fixing the Google Buzz Feeds" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_aBJpigJtQzg/S33eqMH2wbI/AAAAAAAARdc/XfifGPwwd_c/s72-c/pipeslogo_whitebg.png" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2010/02/fixing-google-buzz-feeds.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8GQ344eip7ImA9Wx5TF00.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-9070271323671510229</id><published>2010-02-09T12:13:00.000-08:00</published><updated>2010-08-01T16:53:42.032-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-01T16:53:42.032-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><title>Publish your Google Buzz Posts to Twitter with FriendFeed</title><content type="html">Visit your google profile page (e.g. mine is &lt;a href="http://www.google.com/profiles/activescott"&gt;http://www.google.com/profiles/activescott&lt;/a&gt;) and view the source. You'll find a "link" element like so: &lt;br /&gt;
&lt;pre&gt;&amp;lt;link rel="alternate" type="application/atom+xml" href="http://buzz.googleapis.com/feeds/YOUR GOOGLE BUZZ ID/public/posted"&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
Take the url you find there in the href and add it to friendfeed as one of your services using the "Custom RSS" service (see &lt;a href="http://friendfeed.com/about/help#add"&gt;friendfeed's help&lt;/a&gt;). &lt;br /&gt;
Then go to your friendfeed settings and make sure you are publishing your google buzz service entries to twitter. See &lt;a href="http://friendfeed.com/about/help#publish"&gt;this friendfeed help article&lt;/a&gt; for info on how to do that.&lt;br /&gt;
&lt;br /&gt;
Now post to google buzz and watch your posts end up in twitter!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-9070271323671510229?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=PJqO0Wbve9s:U8HZeV4X1II:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=PJqO0Wbve9s:U8HZeV4X1II:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=PJqO0Wbve9s:U8HZeV4X1II:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=PJqO0Wbve9s:U8HZeV4X1II:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=PJqO0Wbve9s:U8HZeV4X1II:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=PJqO0Wbve9s:U8HZeV4X1II:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/PJqO0Wbve9s" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/9070271323671510229?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/9070271323671510229?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/PJqO0Wbve9s/publish-your-google-buzz-posts-to.html" title="Publish your Google Buzz Posts to Twitter with FriendFeed" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2010/02/publish-your-google-buzz-posts-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYFSHk8fip7ImA9WxFREUo.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-8941926596918411310</id><published>2010-01-20T00:11:00.000-08:00</published><updated>2010-04-24T23:48:39.776-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-24T23:48:39.776-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="product management" /><category scheme="http://www.blogger.com/atom/ns#" term="project management" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="scrum" /><title>The Role of a Scrum Product Owner (and an Introduction to Scrum)</title><content type="html">&lt;h1&gt;Introduction to the Introduction&lt;/h1&gt;&lt;br /&gt;
Many of you know that I am currently a student at the University of Washington in The Software Product Management program. Overall the program is very good. My wife and I are both in the program and we chose to move from Columbus Ohio to Seattle Washington to take the course because of its special focus. Its special focus is on the specialized field of Product Management and going further it is focused on Product Management of &lt;i&gt;software&lt;/i&gt; products.&lt;br /&gt;
However, it is not narrow in scope, as we cover everything from recognizing successful ideas for products, to marketing (lots of marketing), to detailed business cases (one former alumni who holds an MBA said this course is basically a “mini MBA”), to project management and of course extensive detail on requirements. I could write much more about details of the program, and for now we’ll start with one small part of it.&lt;br /&gt;
Recently, I was asked to do a presentation on the Product Owner role in the Scrum framework. Based on feedback from the audience the presentation went well. They are all much nicer than me though, so maybe they’re being polite. I’ll count on my fellow opinionated Internet friends to give me an honest assessment. Please do.&lt;br /&gt;
So, with this pedantic introduction to a topic that has many other informative and experienced authorities that I stand on the shoulders of, lets get into my first article on The Role of a Scrum Product Owner.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-size: xx-large; text-align: right;"&gt;Before we Begin: What’s the deal with Pigs &amp;amp; Chickens?&lt;/div&gt;Before we can discuss Scrum we need to cover the deal with pigs and chickens. If you read much of anything about scrum you’ll start finding references to pigs and chicken. This comes from a little story:&lt;br /&gt;
&lt;blockquote&gt;A chicken and a pig are together when the chicken says,“Let’s start a restaurant!” &lt;br /&gt;
The pig thinks it over and says,“What would we call this restaurant?” &lt;br /&gt;
The chicken says,“Ham n’ Eggs!” The pig says,“No thanks, I’d be committed, but you’d only be involved!”&lt;/blockquote&gt;&lt;br /&gt;
The lesson is: Since the team is responsible, empower them. The practical matters are only team members estimate their work, and only team members speak in daily scrum meetings.&lt;br /&gt;
&lt;h1&gt;Introduction to Scrum&lt;/h1&gt;There is an official description of Scrum by the authority on scrum at &lt;a href="http://scrumalliance.com/"&gt;ScrumAlliance.com&lt;/a&gt;. It's short and you should read it. You will find that most of the people you talk to that are "using Scrum", practice Scrum differently than the description therein. However, due to these differences I feel it is important to give a very brief introduction to my understanding of some core elements of Scrum before we can effectively talk about the role of the Scrum Product Owner.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="mysidebar" style="float: right;"&gt;People tend to practice Scrum in a multitude of different ways. I find that often they don’t know they are using Scrum in a way that is not “official”, but many are aware of it and you’ll hear them say “We use Scrum but...” Thus we refer to these people as “Scrumbuts”, and you can &lt;a href="http://www.google.com/search?&amp;amp;q=scrumbuts"&gt;find many articles referring to Scrumbuts&lt;/a&gt;, and I think they are some of the very best articles on Scrum (ignore the condescending ones) and iterative project management in general. &lt;/div&gt;&lt;br /&gt;
&lt;h1&gt;The Sprint&lt;/h1&gt;Sprints are short iterations of work performed by the team. Key components are the following:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Begins with commitments&lt;/li&gt;
&lt;li&gt;Ends with deliverables&lt;/li&gt;
&lt;li&gt;Consistent team&lt;/li&gt;
&lt;li&gt;Consistent length&lt;/li&gt;
&lt;li&gt;Short: &amp;lt;1 month&lt;/li&gt;
&lt;/ul&gt;Every sprint must begin with commitments from the team. The team makes a commitment to deliver something of value to the project’s customers at the end of the sprint. At its essence this is what the sprint is all about: The deliverables to the customer.   &lt;br /&gt;
&lt;br /&gt;
&lt;div class="mysidebar" style="float: right;"&gt;Here, I define "customer" as the one paying for the project/product. This might be a client for a consulting engagement. For a commercial product this might be the executives sponsoring the project.&lt;/div&gt;&lt;br /&gt;
The commitment of the team cannot be understated. At the beginning of each sprint a success criteria must be defined and agreed to by the team that is crystal clear. At the end of the sprint all parties need to feel that the success/fail result of the sprint is obvious. At the end of a sprint if there is any doubt, try to define a better success criteria next time.&lt;br /&gt;
&lt;h2&gt;Consistency&lt;/h2&gt;Sprints are used as a basis for estimation. So it is important that they have a consistent length and a consistent team. This way, under normal circumstances the same team will get roughly the same amount of work done each sprint. So resist the temptation to let your sprint linger around an extra day and do whatever you can to keep the team intact. If these things change at some point just be prepared to see results that are not consistent with past results.&lt;br /&gt;
&lt;h1&gt;Scrum Roles&lt;/h1&gt;&lt;a href="http://2.bp.blogspot.com/_aBJpigJtQzg/S1a4tmW9fOI/AAAAAAAARXY/g2vyfeenXWw/s1600-h/mypig.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_aBJpigJtQzg/S1a4tmW9fOI/AAAAAAAARXY/g2vyfeenXWw/s200/mypig.png" width="178" /&gt;&lt;/a&gt;&lt;br /&gt;
Scum identifies the following roles: Team, Stakeholder, Product Owner, ScrumMaster. &lt;br /&gt;
&lt;br /&gt;
The &lt;em&gt;Scrum Team&lt;/em&gt; is the people doing the work. These are usually mostly developers and QA engineers. The team is central to Scrum. The team is permitted to make their own commitment each sprint and they are to be uninterrupted during the sprint with new tasks.&lt;br /&gt;
&lt;br /&gt;
In Scrum, a &lt;em&gt;Stakeholder&lt;/em&gt; is the customer. Usually the one paying for the project or the ones who will use it and decide whether the project’s result is successful or not (this is different than most other project management methodologies such as PMI).&lt;br /&gt;
&lt;br /&gt;
A &lt;em&gt;Product Owner&lt;/em&gt; is the person who is responsible for the business value of the project. If you’re working on a product this is usually a “Product Manager”, in some other cases this might be a representative of the client.&lt;br /&gt;
&lt;br /&gt;
The primary responsibility of the &lt;em&gt;ScrumMaster&lt;/em&gt; is to remove obstacles for the team. He/she should also make sure that the other roles work according to the scrum framework. He is a "master" of the scrum framework, not the "team". In this respect a ScrumMaster is unlike the role of project manager as he doesn’t have any particular authority over the team. However, many of the skills that a project manager uses is also useful as a ScrumMaster. These include communication, people skills, good judgement, etc. The ScrumMaster is often a member of the team, but can never be the Product Owner too.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Scrum Artifacts&lt;/h1&gt;&lt;h2&gt;Product Backlog&lt;/h2&gt;The product backlog is a prioritized list of business value that the team needs to deliver. It is not a list of tasks. “Business Value” means value to the stakeholders. Everything must be expressed in a way that, when “accomplished”, the stakeholder will experience/see a real benefit.&lt;br /&gt;
&lt;h2&gt;Sprint Backlog&lt;/h2&gt;The sprint backlog is a list of items from the product backlog that the team commits to delivering during the sprint. Additionally, each product backlog item that the team commits to deliver should be decomposed into its respective tasks during the Sprint Planning &amp;nbsp;meeting.&lt;br /&gt;
&lt;h2&gt;&lt;a href="http://1.bp.blogspot.com/_aBJpigJtQzg/S1a5Jcx5PfI/AAAAAAAARXk/2ci1qOrBQiE/s1600-h/burn.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="94" src="http://1.bp.blogspot.com/_aBJpigJtQzg/S1a5Jcx5PfI/AAAAAAAARXk/2ci1qOrBQiE/s320/burn.png" width="320" /&gt;&lt;/a&gt;Burndown Charts&lt;/h2&gt;Burndown charts are a measure of the total amount of “effort” (e.g. estimated hours of work) that is remaining during a sprint. By the end of the sprint a sprint burndown chart should show that zero effort is remaining.&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;Scrum Ceremonies&lt;/h1&gt;&lt;h2&gt;Sprint Planning Meeting&lt;/h2&gt;Before each sprint the team sits down and accomplishes two things:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Commit to delivering a selection of the highest priority items from the product backlog. This selection is made exclusively by the Team and is their commitment.&lt;/li&gt;
&lt;li&gt;Decompose the selected product backlog items into manageable tasks.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;div class="mysidebar" style="float: right;"&gt;If you want to learn more about scrum I recommend Scrum training or spending time with a passionate Scrum practitioner (not just any ol’ scrumbut Joe). However, a great book on the topic is Ken Schwaber’s &lt;a href="http://www.amazon.com/gp/product/073561993X?ie=UTF8&amp;amp;tag=activescott-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=073561993X"&gt;Agile Project Management with Scrum&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=activescott-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=073561993X" style="border: none !important; margin: 0px !important;" width="1" /&gt;. Check out it’s rating on Amazon and you will see that many others agree.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;h2&gt;Daily Scrum&lt;/h2&gt;Every day of the scrum the team meets very briefly and every team member concisely shares the following information with the rest of the team:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Accomplishments since our last scrum meeting&lt;/li&gt;
&lt;li&gt;Things I will accomplish before next meeting&lt;/li&gt;
&lt;li&gt;Obstacles to progress&lt;/li&gt;
&lt;/ul&gt;&lt;a href="http://3.bp.blogspot.com/_aBJpigJtQzg/S1a4tlbPp0I/AAAAAAAARXc/Bl9LFSksa9A/s1600-h/mychick.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_aBJpigJtQzg/S1a4tlbPp0I/AAAAAAAARXc/Bl9LFSksa9A/s200/mychick.png" width="178" /&gt;&lt;/a&gt;There should be about three accomplishments and three things to accomplish. The obstacles should be outstanding and the ScrumMaster must take responsibility for either resolving them delegating someone to resolving them. Every team member should state all three points. If he/she has no obstacles they should state that clearly: “No obstacles.”&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Sprint Retrospective&lt;/h2&gt;This is usually known as a “postmortem” but that term is often considered to morbid. Essentially it is an opportunity for the team to sit down briefly at the end of a sprint and discuss what worked well during the sprint and things they should change for the next sprint.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-size: x-large; text-align: center;"&gt;That’s it!&lt;/div&gt;&lt;br /&gt;
&lt;h1&gt;Principles of Scrum&lt;/h1&gt;As you can see Scrum is very simple. However, I like to say that Scrum is simple, but it is not simplistic. For Scrum to be successful you will need at least one person who truly understands and believes in the principals behind it. There are three principals of Scrum:&lt;br /&gt;
&lt;br /&gt;
&lt;dl&gt;&lt;dt&gt;Transparency&lt;/dt&gt;
&lt;dd&gt;You should have problems when using Scrum ("that's a feature, not a bug").        &lt;/dd&gt;&lt;dd&gt;&lt;/dd&gt;
&lt;dt&gt;Inspection&lt;/dt&gt;
&lt;dd&gt;You cannot inspect without transparency.        &lt;/dd&gt;
&lt;dt&gt;Adaption&lt;/dt&gt;
&lt;dd&gt;You cannot adapt if you do not inspect.        &lt;/dd&gt; &lt;/dl&gt;&lt;br /&gt;
The process of Scrum is designed to expose problems. You will find things like requirements that users don’t really want, that you began with not enough requirements, unrealistic estimates from dev or QA, unrealistic time constraints from stakeholders, team members that contribute significantly differently from others, lack of commitment from team members, lack of accountability, etc. That's good! Identify those things and discuss how to fix them, and &lt;em&gt;fix them&lt;/em&gt;! Remember, it’s only two weeks. So if you can identify some problems in two weeks then at least you identified them in &lt;em&gt;two weeks&lt;/em&gt; and now have the opportunity to start fixing them.&lt;br /&gt;
&lt;br /&gt;
If you have genuinely smart/effective/savvy people scrum will work well (but so will just about any other process). Unfortunately, this is rarely the case, and with an experience Scrum coach or ScrumMaster, you will be able to identify and adapt to challenges rapidly.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;For more on Scrum:&lt;br /&gt;
&lt;div style="font-size: x-large; text-align: center;"&gt;&lt;a href="http://www.scrumalliance.org/"&gt;www.scrumalliance.org&lt;/a&gt;&lt;/div&gt;&lt;div style="font-size: x-large; text-align: center;"&gt;&lt;a href="http://delicious.com/activescott/scrum"&gt;delicious.com/activescott/scrum&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Now, that this is out of the way, soon we'll talk about the role of the Product Owner in more depth.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Series&lt;/b&gt;: This article is part of a series that includes the following articles: &lt;a href="http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html"&gt;The Role of a Scrum Product Owner&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/responsibilities-of-product-manager-in.html"&gt;Responsibilities of a Product Manager in Scrum&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum.html"&gt;Techniques for a Product Manager in Scrum: User Stories&lt;/a&gt;, &lt;a href="http://blog.scott.willeke.com/2010/04/techniques-for-product-manager-in-scrum_20.html"&gt;Techniques for a Product Manager in Scrum: Estimating Techniques&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-8941926596918411310?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Zqqtzz1rVO0:5ojif4vVUD0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Zqqtzz1rVO0:5ojif4vVUD0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=Zqqtzz1rVO0:5ojif4vVUD0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Zqqtzz1rVO0:5ojif4vVUD0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Zqqtzz1rVO0:5ojif4vVUD0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=Zqqtzz1rVO0:5ojif4vVUD0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/Zqqtzz1rVO0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/8941926596918411310?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/8941926596918411310?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/Zqqtzz1rVO0/role-of-scrum-product-owner.html" title="The Role of a Scrum Product Owner (and an Introduction to Scrum)" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_aBJpigJtQzg/S1a4tmW9fOI/AAAAAAAARXY/g2vyfeenXWw/s72-c/mypig.png" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2010/01/role-of-scrum-product-owner.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMCQHw9cSp7ImA9WxBTEEo.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-6172285752801900631</id><published>2009-12-05T21:47:00.000-08:00</published><updated>2009-12-05T21:47:41.269-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-05T21:47:41.269-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lessmsi" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Updated: Lessmsi - Less Msiérables - Utility to extract files from a .msi File (Windows Installer file)</title><content type="html">A new update to the Lessmsi utility is available. Several people have requested various features and fixes and I have made several of them. There were many small updates and some of these are more tricky than they sound, but the most visible changes are as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Good support for Windows Vista and Windows 7.&lt;/li&gt;
&lt;li&gt;64-bit operating systems are working automatically now.&lt;/li&gt;
&lt;li&gt;Elevation is lo longer required / LUA is handled properly.&lt;/li&gt;
&lt;li&gt;Columns are now user-sortable for all the lists. &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Source code and compiled downloads are available at: &lt;a href="http://code.google.com/p/lessmsi/"&gt;http://code.google.com/p/lessmsi/&lt;/a&gt;&lt;br /&gt;
Everyone should update their links to point to that link as it will be the most permanent location for the project going forward. All updates will be published there from now on.&lt;br /&gt;
&lt;br /&gt;
And just because a screenshot is obligatory with any post about software :) &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aBJpigJtQzg/SxtEwzURBII/AAAAAAAAP50/rrRRqod6vSo/s1600-h/screenshot-filestab.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://3.bp.blogspot.com/_aBJpigJtQzg/SxtEwzURBII/AAAAAAAAP50/rrRRqod6vSo/s320/screenshot-filestab.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Let me know if you have any problems or -better yet- if you find it useful!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-6172285752801900631?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=aVy7d3YuYzE:ZreYDS1nLT0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=aVy7d3YuYzE:ZreYDS1nLT0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=aVy7d3YuYzE:ZreYDS1nLT0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=aVy7d3YuYzE:ZreYDS1nLT0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=aVy7d3YuYzE:ZreYDS1nLT0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=aVy7d3YuYzE:ZreYDS1nLT0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/aVy7d3YuYzE" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/6172285752801900631?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/6172285752801900631?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/aVy7d3YuYzE/updated-lessmsi-less-msierables-utility.html" title="Updated: Lessmsi - Less Msiérables - Utility to extract files from a .msi File (Windows Installer file)" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_aBJpigJtQzg/SxtEwzURBII/AAAAAAAAP50/rrRRqod6vSo/s72-c/screenshot-filestab.png" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2009/12/updated-lessmsi-less-msierables-utility.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAAQn04fSp7ImA9WxNbEUU.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-5577403107402087382</id><published>2009-11-13T22:39:00.000-08:00</published><updated>2009-11-13T22:39:03.335-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-13T22:39:03.335-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Covariance, contravariance, and C# 4.0</title><content type="html">Today I was working on some code where I came across something that seemed perfectly logical language semantics but C# didn't agree. The scenario was as follows:&lt;br /&gt;
&lt;br /&gt;
Assume we have the following types:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: csharp"&gt;class MyBaseClass
{
}

class MyDerrivedClass : MyBaseClass
{
}
&lt;/pre&gt;&lt;br /&gt;
and we have the following methods:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: csharp"&gt;static void MyMethod2(out MyDerrivedClass outArg)
{
    outArg = null;
}
&lt;/pre&gt;&lt;br /&gt;
Then I want to write the following code:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: csharp"&gt;MyBaseClass c;
MyMethod2(out c);
&lt;/pre&gt;&lt;br /&gt;
But C# tells me:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;error CS1503: Argument 1: cannot convert from 'out ConsoleApplication1.Program.MyBaseClass' to 'out ConsoleApplication1.Program.MyDerrivedClass'&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
Even the error message struck me as odd. I'm not trying to convert &lt;em&gt;from&lt;/em&gt; MyBaseClass to MyDerrivedClass (obviously that wouldn't be valid), I'm trying to convert &lt;em&gt;to&lt;/em&gt; MyBaseClass.&lt;br /&gt;
&lt;br /&gt;
If at first this doesn't seem odd consider the following method instead:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: csharp"&gt;static MyDerrivedClass MyMethod1()
{
    return null;
}
&lt;/pre&gt;&lt;br /&gt;
This method is syntactically different than the first, but semantically it is exactly the same since in both cases the signature declares a method that takes no input but accepts MyDerrivedClass as output (and &lt;em&gt;only&lt;/em&gt; as output).&lt;br /&gt;
&lt;br /&gt;
However, with this syntax I &lt;em&gt;can&lt;/em&gt; make the following call:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: csharp"&gt;MyBaseClass c;
c = MyMethod1();
&lt;/pre&gt;&lt;br /&gt;
Note that semantically, &lt;span style="font-family: monospace;"&gt;c = MyMethod1();&lt;/span&gt; is exactly the same as &lt;span style="font-family: monospace;"&gt;MyMethod2(out c);&lt;/span&gt;. Yet I can make the call to MyMethod1, but not MyMethod2. Why not?&lt;br /&gt;
&lt;br /&gt;
Well, I thought, it doesn't really matter. It is obvious that it &lt;em&gt;should&lt;/em&gt; work, the spec is just too strict and it &lt;em&gt;doesn't&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
This is some &lt;a href="http://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)#C.23"&gt;covariance&lt;/a&gt; that C# doesn't support. It is covariance, right? I always get those two backwards. Anyway, it is a bit surprising, because since generics where introduced, the C# community in general has a lot of emphasis on contravariance and covariance. So I got distracted doing some reading into contravariance, covariance, and eventually C#. I eventually ran across some plans for &lt;a href="http://code.msdn.microsoft.com/csharpfuture"&gt;C# 4.0&lt;/a&gt; which as a document named "New features in C# 4.0". Interesting... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As I'm reading, I see C# 4 features as "Dynamic lookup" (reflection/late invocation done beautifully), "Named and optional parameters" (yawn), "COM specific interop features" (I love COM, but isn't it a bit late for this -yawn-), and "Variance". Variance!? Cool!&lt;br /&gt;
&lt;br /&gt;
So yes, ladies and gentlemen some cool covariance is supported in C# 4.0. In C# 4 you can write the following bit of code you have done ugly things to avoid in the past:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: csharp"&gt;IList&amp;lt;string&amp;gt; strings = new List&amp;lt;string&amp;gt;();
IEnumerable&amp;lt;object&amp;gt; objects = strings;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Awesome, right? It does require the type -in this case IEnumerable- to declare that it will not take elements &lt;em&gt;in&lt;/em&gt; though. Obviously, we don't want someone to be able to put a non-string object into that &lt;span style="font-family: monospace;"&gt;IEnumerable&amp;lt;object&amp;gt;&lt;/span&gt; now. The declaration for this is a bit funny considering how I got here:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush: csharp"&gt;public interface IEnumerable&amp;lt;out T&amp;gt; : IEnumerable
{
    IEnumerator&amp;lt;T&amp;gt; GetEnumerator();
}
public interface IEnumerator&amp;lt;out T&amp;gt; : IEnumerator
{
    bool MoveNext();
    T Current { get; }
}
&lt;/pre&gt;&lt;br /&gt;
In the document it explains the above as:&lt;br /&gt;
&lt;blockquote&gt;The “out” in these declarations signifies that the T can only occur in output position in the interface – the compiler will complain otherwise. In return for this restriction, the interface becomes “covariant” in T, which means that an IEnumerable&amp;lt;A&amp;gt; is considered an IEnumerable&amp;lt;B&amp;gt; if A has a reference conversion to B.&lt;br /&gt;
As a result, any sequence of strings is also e.g. a sequence of objects.&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
The funny thing is, despite the fact they are using "out" to declare covariance on types (and delegates), according to the document it doesn't apply the same logic to parameters that are declared with "out". So despite the fact they've done this cool work for covariance on types, it appears the scenario I was after originally still won't work. Oh well, at least we learned about some cool stuff to come...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-5577403107402087382?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=7IRQKd1oRyo:08RmGFJpvE0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=7IRQKd1oRyo:08RmGFJpvE0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=7IRQKd1oRyo:08RmGFJpvE0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=7IRQKd1oRyo:08RmGFJpvE0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=7IRQKd1oRyo:08RmGFJpvE0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=7IRQKd1oRyo:08RmGFJpvE0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/7IRQKd1oRyo" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/5577403107402087382?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/5577403107402087382?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/7IRQKd1oRyo/covariance-contravariance-and-c-40.html" title="Covariance, contravariance, and C# 4.0" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2009/11/covariance-contravariance-and-c-40.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8CQXkyfip7ImA9WxNWF08.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-8072650668383746924</id><published>2009-10-16T14:01:00.012-07:00</published><updated>2009-10-16T14:01:00.796-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-16T14:01:00.796-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><title>Optimal IMAP Settings for GMail/Google Apps and Apple Mail</title><content type="html">I've used IMAP with Google Apps GMail accounts for some time now. It works great. I use Apple Mail but at any time and from anywhere else I can login on the web and have exactly the same view of my mailbox as I last did inside Apple Mail. When I return to Apple Mail, any changes made on the web interface are reflected instantly in Apple Mail. Perfect!&lt;br /&gt;
&lt;br /&gt;
I love having IMAP since it keeps everything in sync, and I am always using spotlight and Apple Mail's search feature to search my messages (including messages from before I started using Apple Mail and those sent/deleted only on the web interface). Of course I knew about the &lt;a href="http://mail.google.com/support/bin/answer.py?hl=en&amp;amp;answer=81379"&gt;basic settings for configuring Apple Mail with GMail/Google Apps&lt;/a&gt;, but the &lt;a href="http://mail.google.com/support/bin/answer.py?answer=78892"&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-family: inherit;"&gt;Recommended&lt;/span&gt;&lt;/i&gt; IMAP client settings&lt;/b&gt;&lt;/a&gt; had eluded me until now.&lt;br /&gt;
&lt;br /&gt;
Being able to confidently use settings like "Do &lt;strong&gt;NOT&lt;/strong&gt; save sent messages on the server" and "Do &lt;strong&gt;NOT&lt;/strong&gt; save deleted messages on the server" is great. I never really had a performance concern before, but things are even snappier now and, with over 100K messages between my IMAP+GMail accounts accounts, I'm happy to know that my mail is more optimally stored in GMail and on my mac.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-8072650668383746924?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=YIOJEdOu2W4:kym_L0l_hY0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=YIOJEdOu2W4:kym_L0l_hY0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=YIOJEdOu2W4:kym_L0l_hY0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=YIOJEdOu2W4:kym_L0l_hY0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=YIOJEdOu2W4:kym_L0l_hY0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=YIOJEdOu2W4:kym_L0l_hY0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/YIOJEdOu2W4" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/8072650668383746924?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/8072650668383746924?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/YIOJEdOu2W4/optimal-imap-settings-for-gmailgoogle.html" title="Optimal IMAP Settings for GMail/Google Apps and Apple Mail" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2009/10/optimal-imap-settings-for-gmailgoogle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMNQHc9fyp7ImA9WxNWE0Q.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-5562906357003239568</id><published>2009-10-12T18:31:00.001-07:00</published><updated>2009-10-12T18:31:31.967-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-12T18:31:31.967-07:00</app:edited><title>Здравствуйте Leon</title><content type="html">Today I took Oksana to one of her classes on the other side of town by  &lt;br&gt;bus (just to help her learn the way). After I dropped her I was on my  &lt;br&gt;way back, reading a book at yhe bus atop and heard someone speaking in  &lt;br&gt;Russian. I looked up to see an older man walking by himself who  &lt;br&gt;appeared to be speaking Russian to anyone who would listen. To his  &lt;br&gt;delight I greeted him in Russian: &amp;quot;Здравствуйте&amp;quot;.&lt;br&gt;Turns out he hasn&amp;#39;t been in the US long and doesn&amp;#39;t know much English.  &lt;br&gt;Despite the fact that his English was only slightly better than my  &lt;br&gt;very limited Russian, we smanaged to speak for about 25 minute in a  &lt;br&gt;mix of the two until my bus came.&lt;p&gt;Boy do i need the peactice! We discussed everything from the cost of  &lt;br&gt;flats, economy, education, and how nice people are in different states  &lt;br&gt;and contries. Fun stuff.&lt;p&gt;Take it easy Leon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-5562906357003239568?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Snn3kaSvz8A:df7MjdaNlV8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Snn3kaSvz8A:df7MjdaNlV8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=Snn3kaSvz8A:df7MjdaNlV8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Snn3kaSvz8A:df7MjdaNlV8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Snn3kaSvz8A:df7MjdaNlV8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=Snn3kaSvz8A:df7MjdaNlV8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/Snn3kaSvz8A" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/5562906357003239568?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/5562906357003239568?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/Snn3kaSvz8A/leon.html" title="Здравствуйте Leon" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2009/10/leon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8CQXs5eSp7ImA9WxNRFks.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-404664240432421958</id><published>2009-09-11T04:01:00.002-07:00</published><updated>2009-09-11T04:01:00.521-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-11T04:01:00.521-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Rumor Confirmed, I'm Moving to Seattle</title><content type="html">&lt;a href="http://3.bp.blogspot.com/_aBJpigJtQzg/SqnQQwUwojI/AAAAAAAAOG4/UUEdE-n4nto/s1600-h/Screen+shot+2009-09-11+at+12.19.51+AM.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aBJpigJtQzg/SqnQQwUwojI/AAAAAAAAOG4/UUEdE-n4nto/s320/Screen+shot+2009-09-11+at+12.19.51+AM.png" /&gt;&lt;/a&gt;Yes, the rumor you heard is true. I'll be moving to Seattle Washington (at least temporarily) as I have been accepted to the &lt;a href="http://www.extension.washington.edu/ext/certificates/sod/sod_gen.asp"&gt;Software Product Management Certificate Program at the University of Washington&lt;/a&gt;. I'll continue my work on our best selling reporting and business intelligence products with the &lt;a href="http://www.datadynamics.com/"&gt;ActiveReports / Data Dynamics team&lt;/a&gt; at GrapeCity. GrapeCity's US headquarters is also in Seattle so that works out too!&lt;br /&gt;
&lt;br /&gt;
I'm looking forward to this and excited about living in the Pacific Northwest, even if only temporarily. If any geeks I know in the Seattle area want to hook up drop me an email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-404664240432421958?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=3CNxoL2YNZM:hYlWSGN2Wmk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=3CNxoL2YNZM:hYlWSGN2Wmk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=3CNxoL2YNZM:hYlWSGN2Wmk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=3CNxoL2YNZM:hYlWSGN2Wmk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=3CNxoL2YNZM:hYlWSGN2Wmk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=3CNxoL2YNZM:hYlWSGN2Wmk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/3CNxoL2YNZM" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/404664240432421958?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/404664240432421958?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/3CNxoL2YNZM/rumor-confirmed-im-moving-to-seattle.html" title="Rumor Confirmed, I'm Moving to Seattle" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_aBJpigJtQzg/SqnQQwUwojI/AAAAAAAAOG4/UUEdE-n4nto/s72-c/Screen+shot+2009-09-11+at+12.19.51+AM.png" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2009/09/rumor-confirmed-im-moving-to-seattle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YGQXsyeSp7ImA9WxNRFUw.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-6267670215315987617</id><published>2009-09-09T09:52:00.000-07:00</published><updated>2009-09-09T09:52:00.591-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-09T09:52:00.591-07:00</app:edited><title>Bank Fail</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_aBJpigJtQzg/SqXkXECvxeI/AAAAAAAAOGY/fRn8TqXmzbw/s1600-h/bank_img.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_aBJpigJtQzg/SqXkXECvxeI/AAAAAAAAOGY/fRn8TqXmzbw/s200/bank_img.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span style="font-size: 11px;"&gt;&lt;span style="font-family: 'helvetica neue', helvetica, Arial, sans-serif; font-size: 15px; white-space: pre-wrap;"&gt;At the beginning of 2009 I refinanced my home loan. At the time the bank informed me my tax/insurance escrow account was way overfunded and sent me a check for ~$1K. Shortly thereafter (after I spent it), they called and said they couldn't open the new loan because there was no money to fund the new loan's escrow. I asked questions and explained the situation, but ultimately I got the "I don't know sir, that's not my department" response and I had to come up with ~$1K overnight to prevent the refinance from falling through. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'helvetica neue', helvetica, Arial, sans-serif; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="font-family: 'helvetica neue', helvetica, Arial, sans-serif; font-size: medium;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;I just opened a letter from the bank and it is a check for ~$1,044.14 with a letter explaining that the new loan's escrow account is overfunded and they're required by law to send me this check.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'helvetica neue', helvetica, Arial, sans-serif; font-size: medium;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'helvetica neue', helvetica, Arial, sans-serif; font-size: medium;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;Should I laugh or cry?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'helvetica neue', helvetica, Arial, sans-serif; font-size: medium;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-6267670215315987617?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=3hhpri0iYJ0:iQKAw9upzSQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=3hhpri0iYJ0:iQKAw9upzSQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=3hhpri0iYJ0:iQKAw9upzSQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=3hhpri0iYJ0:iQKAw9upzSQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=3hhpri0iYJ0:iQKAw9upzSQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=3hhpri0iYJ0:iQKAw9upzSQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/3hhpri0iYJ0" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/6267670215315987617?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/6267670215315987617?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/3hhpri0iYJ0/bank-fail.html" title="Bank Fail" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_aBJpigJtQzg/SqXkXECvxeI/AAAAAAAAOGY/fRn8TqXmzbw/s72-c/bank_img.jpg" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2009/09/bank-fail.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YMR3kyfyp7ImA9WxNSFkg.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-4865008055030580414</id><published>2009-08-18T01:01:00.002-07:00</published><updated>2009-08-30T09:53:06.797-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T09:53:06.797-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><title>Forwarding to Google Voice Even if they don't call your Google Voice Number</title><content type="html">I've been a fan of &lt;a href="http://bit.ly/3tJuUG"&gt;Jott.com voice mail&lt;/a&gt; as I've &lt;a href="http://bit.ly/uQ9pY"&gt;noted before&lt;/a&gt; (&lt;a href="http://bit.ly/7hpBt"&gt;a couple times&lt;/a&gt;). Recently I've been experimenting with Google Voice (gVoice) and found a problem. The key was that gVoice gives you a new phone number and gVoice doesn't work if people call the phone number you already use, in my case my AT&amp;amp;T wireless number.&lt;br /&gt;
&lt;br /&gt;
Jott has a good solution to this where they take over your AT&amp;amp;T voice mail and it automatically hands all voicemail to Jott. It's a shame that gVoice doesn't do the same.&lt;br /&gt;
&lt;br /&gt;
I got to thinking about it and decided I could use the same trick that Jott uses to take over voice mail. Essentially you enter a bunch of crazy numbers into your phone and it forwards your voice mail to Jott so you don't have to fiddle with AT&amp;amp;T voicemail anymore. The problem was that since gVoice fowards calls to my phone, I was scared to forward my phone calls right back to gVoice. Then gVoice gets the forward and forwards it to my phone again, etc., etc.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-large;"&gt;Using gVoice instead of AT&amp;amp;T Voicemail&lt;/span&gt;&lt;br /&gt;
Then I was doing some reading and in the gVoice documentation and found that gVoice always directs the caller to gVoice if the phone it forwards to does not answer within 25 seconds. Later I found &lt;a href="http://bit.ly/3zTNr7"&gt;this handy page&lt;/a&gt;&amp;nbsp;on AT&amp;amp;T's forums&amp;nbsp;where someone describes not only how to forward voicemail for AT&amp;amp;T wireless phones to a different voice mail system (like Jott does), it also describes &lt;i&gt;how to set the delay&lt;/i&gt;&lt;i&gt; before it forwards&lt;/i&gt;. The relevant part of that page is below:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;On your phone, dial *#61# and click Send.&lt;/li&gt;
&lt;li&gt;Some information should be displayed: number that the calls are being forwarded to and the delay before the forwarding engages.&lt;/li&gt;
&lt;li&gt;Write down the number (including +1)&lt;/li&gt;
&lt;li&gt;Dial **61*+1xxxyyyzzzz*11*30# and hit Send. +1xxxyyyzzzz is the number you wrote down previously, 30 is the delay in seconds. The delay can be set in 5 second increments, 30 is maximum&lt;/li&gt;
&lt;li&gt;Dial *#61# to verify that the new settings are active.&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;br /&gt;
So I setup my AT&amp;amp;T wireless number to forward to gVoice after 30 seconds. So if I don't answer for 30 seconds gVoice gets it. If someone calls my gVoice number directly though, gVoice comes into my phone and I have 25 seconds to answer before they are directed to gVoice voice mail (again because gVoice starts at 25 seconds).&lt;br /&gt;
&lt;br /&gt;
In all cases now all of my voice mail can end up in gVoice even if they don't call my gVoice number. Perfect!&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update&lt;/b&gt;:&amp;nbsp;&lt;a href="http://www.wireless.att.com/learn/basics/choosing-features-services/call-forwarding.jsp"&gt;This page&lt;/a&gt; from AT&amp;amp;T documents how to do the above and more with call forwarding features from your phone. Particularly of interest is the following few points from their instructions:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;i&gt;Busy Call Forwarding: Dial *67* plus the 10-digit number to which your calls should be forwarded and #. Press Send.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Call Forwarding No Reply: Dial *61* plus the 10-digit number to which your calls should be forwarded and #. Press Send.&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Call Forwarding Not Reachable: Dial *62* plus the 10-digit number to which your calls should be forwarded and #. Press Send.&lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;span style="font-size: x-large;"&gt;Missing Features of Google Voice&lt;/span&gt;&lt;br /&gt;
So the missing features for gVoice are:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Forwarding calls to an international number. When I travel to Russia, I have a separate local mobile SIM that I use because of AT&amp;amp;T's outrageous international rates there ($3.99 per minute). However, at this time gVoice doesn't let you forward an incoming call to an international number. Bummer. Please join me in requesting that feature from Google!&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/6428426118720902966-4865008055030580414?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=8gFGC8ASixk:9Osfc2hMUQ8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=8gFGC8ASixk:9Osfc2hMUQ8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=8gFGC8ASixk:9Osfc2hMUQ8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=8gFGC8ASixk:9Osfc2hMUQ8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=8gFGC8ASixk:9Osfc2hMUQ8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=8gFGC8ASixk:9Osfc2hMUQ8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/8gFGC8ASixk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4865008055030580414?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/4865008055030580414?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/8gFGC8ASixk/forwarding-to-google-voice-even-if-they.html" title="Forwarding to Google Voice Even if they don't call your Google Voice Number" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2009/08/forwarding-to-google-voice-even-if-they.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UCQX0yeCp7ImA9WxJbF04.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-9109728193227565060</id><published>2009-07-27T17:01:00.001-07:00</published><updated>2009-07-27T17:01:00.390-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-27T17:01:00.390-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Google Chrome for Mac now Available (sort of)</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_aBJpigJtQzg/SmzRmWvBkhI/AAAAAAAANmg/OXcnj17mhcg/s1600-h/chromiummaclogo+copy.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_aBJpigJtQzg/SmzRmWvBkhI/AAAAAAAANmg/OXcnj17mhcg/s400/chromiummaclogo+copy.png" /&gt;&lt;/a&gt;&lt;/div&gt;I don't know if I've been under a rock or what, but after my last post about Firefox, Safari, and a brief mention of the lack of Chrome for Mac,&amp;nbsp;&lt;a href="http://blog.chrisheath.us/"&gt;Chris Heath&lt;/a&gt; &lt;a href="http://blog.scott.willeke.com/2009/07/sorry-little-gecko-but-firefox-needs.html#comment-13314200"&gt;pointed out&lt;/a&gt;&amp;nbsp;that Google's Chrome Browser - aka Chromium- is&amp;nbsp;already available for mac!&lt;br /&gt;
&lt;br /&gt;
The developers that are working on the Mac version are publishing nightly builds at &lt;a href="http://build.chromium.org/buildbot/snapshots/"&gt;http://build.chromium.org/buildbot/snapshots/&lt;/a&gt; . I'm guessing that the faint of heart should not download these builds, as they are pre-pre-pre-beta no doubt. However, I've spent a little time with the browser on Mac and the little browser didn't do anything they should be&amp;nbsp;embarrassed&amp;nbsp;of at this early stage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-9109728193227565060?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=N8RseORQqWg:QyYARkwHI_E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=N8RseORQqWg:QyYARkwHI_E:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=N8RseORQqWg:QyYARkwHI_E:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=N8RseORQqWg:QyYARkwHI_E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=N8RseORQqWg:QyYARkwHI_E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=N8RseORQqWg:QyYARkwHI_E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/N8RseORQqWg" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/9109728193227565060?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/9109728193227565060?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/N8RseORQqWg/google-chrome-for-mac-now-available.html" title="Google Chrome for Mac now Available (sort of)" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_aBJpigJtQzg/SmzRmWvBkhI/AAAAAAAANmg/OXcnj17mhcg/s72-c/chromiummaclogo+copy.png" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2009/07/google-chrome-for-mac-now-available.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8CQH46fip7ImA9WxJbFEo.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-2655274535283771011</id><published>2009-07-24T15:01:00.022-07:00</published><updated>2009-07-24T15:01:01.016-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-24T15:01:01.016-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Sorry little Gecko, but Firefox needs WebKit</title><content type="html">I love &lt;a href="http://www.mozilla.com/firefox"&gt;Firefox&lt;/a&gt;. I love my &lt;a href="https://addons.mozilla.org/"&gt;extensions&lt;/a&gt; (most importantly&amp;nbsp;delicious,&amp;nbsp;AdBlock Plus, and FireBug). I love the &lt;a href="https://addons.mozilla.org/en-US/firefox/browse/type:4"&gt;search engines&lt;/a&gt; (most importantly, Google, FogBugz, Wikipedia, and Amazon), and I love the keyboard shortcuts in Firefox. I have come to love my user experience in Firefox (except the &lt;a href="http://mozillalinks.org/wp/2008/11/firefox-31-gets-tab-tearing/"&gt;tear-off tabs&lt;/a&gt;&amp;nbsp;came out quite ugly in Firefox compared to Safari). I don't care if there is a better user experience anymore, I just like Firefox's.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_aBJpigJtQzg/SmoVnHZpYeI/AAAAAAAANVg/sxDLOtti8HI/s1600-h/firefox%2Bwebkit+log.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aBJpigJtQzg/SmoVnHZpYeI/AAAAAAAANVg/sxDLOtti8HI/s400/firefox%2Bwebkit+log.png" /&gt;&lt;/a&gt;&lt;/div&gt;I like Safari. It is &lt;i&gt;blazing&lt;/i&gt; fast and there is something about the way Safari loads and renders web pages that Firefox doesn't have (i.e. &lt;a href="http://webkit.org/"&gt;WebKit&lt;/a&gt;). I can't put my finger on it, but in Safari, pages have this "crisp" feel to them that is lacking in Firefox. For the past year or two I have been compulsively switching back and forth between Safari and Firefox. As much as I have tried -and I have tried- I can't make up my mind...&lt;br /&gt;
&lt;br /&gt;
I have also tried &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt; and IE 7/8. IE just doesn't do it for me. I just can't find anything about it that makes me want to continue using it.&amp;nbsp;Chrome is nice on Windows, and has that same crisp feel to it that Safari has (again, obviously &lt;a href="http://webkit.org/"&gt;WebKit&lt;/a&gt;). But it is only on windows (&lt;a href="http://www.google.com/chrome/intl/en/mac.html"&gt;for now&lt;/a&gt;) and despite the minimalist UI that I like and the benefits of Safari, it has the same faults as Safari - I miss my extensions and keystrokes from Firefox.&lt;br /&gt;
&lt;br /&gt;
As I can't seem to settle on one, I have come up with a few proposals for the browser teams to consider:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Firefox should embed WebKit as it's rendering engine. Forgive me, I have followed &lt;a href="https://developer.mozilla.org/en/Gecko"&gt;Gecko&lt;/a&gt; development and I know this is blasphemy. I'm also a programmer and have a bit of understanding about how Firefox works, how it's chrome is rendered (not &lt;a href="http://www.google.com/chrome"&gt;that chrome&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en/Chrome"&gt;this&amp;nbsp;chrome&lt;/a&gt;) and &lt;a href="https://developer.mozilla.org/en/XUL"&gt;XUL&lt;/a&gt;, but still. It could be perfect.&amp;nbsp;Seeing how unlikely that is, I have more ideas. So don't give up on me yet...&lt;/li&gt;
&lt;li&gt;Alternatively, or maybe in addition, safari and chrome should implement hosting for Firefox's search engine's (i.e. &lt;a href="https://developer.mozilla.org/en/Creating_OpenSearch_plugins_for_Firefox"&gt;open search&lt;/a&gt;) and extensions. &lt;a href="https://jetpack.mozillalabs.com/"&gt;Mozilla's JetPack Project&lt;/a&gt; is perfect for that, but I imagine it will be a while yet before all those handy Firefox extensions are ported. So for now, just make Firefox's extensions work in the other browsers (hints: &lt;a href="https://developer.mozilla.org/En/Extensions/Firefox"&gt;1&lt;/a&gt;, &lt;a href="https://developer.mozilla.org/en/XUL"&gt;2&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Safari, Chrome, etc. should all implement keyboard profiles just like Firefox. Remember how Word used to provide keyboard mapping for WordPerfect users when WordPerfect was king? Do that for the current king of browsers.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
So if the various browser teams out there want to make me happy that's all that I ask :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-2655274535283771011?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=t9Md4J-cYX8:FUEOuYku1AM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=t9Md4J-cYX8:FUEOuYku1AM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=t9Md4J-cYX8:FUEOuYku1AM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=t9Md4J-cYX8:FUEOuYku1AM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=t9Md4J-cYX8:FUEOuYku1AM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=t9Md4J-cYX8:FUEOuYku1AM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/t9Md4J-cYX8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/2655274535283771011?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/2655274535283771011?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/t9Md4J-cYX8/sorry-little-gecko-but-firefox-needs.html" title="Sorry little Gecko, but Firefox needs WebKit" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_aBJpigJtQzg/SmoVnHZpYeI/AAAAAAAANVg/sxDLOtti8HI/s72-c/firefox%2Bwebkit+log.png" height="72" width="72" /><feedburner:origLink>http://blog.scott.willeke.com/2009/07/sorry-little-gecko-but-firefox-needs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUDR344cCp7ImA9WxJUEEk.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-1965875653245246680</id><published>2009-07-08T03:01:00.000-07:00</published><updated>2009-07-08T03:01:16.038-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-08T03:01:16.038-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Fixing another "HTTP Error 500.0 – Internal Server Error" in IIS7</title><content type="html">Today I had a problem with IIS7 on Vista while testing and ran into an elusive problem that I thought I'd share the solution to. I created a new Website and a new corresponding Application Pool and started receiving the following error message in the browser when visiting the site: "HTTP Error 500.0 – Internal Server Error" &lt;br /&gt;
As usual it was followed by the normal additional error text on the page but nothing useful was there. I found the following two event log entries were also created:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;Failed to initialize the AppDomain:/LM/W3SVC/0/ROOT&lt;br /&gt;
&lt;br /&gt;
Exception: System.ArgumentException&lt;br /&gt;
&lt;br /&gt;
Message: Value does not fall within the expected range.&lt;br /&gt;
&lt;br /&gt;
StackTrace:    at System.Web.Hosting.IProcessHostSupportFunctions.GetConfigToken(String appId)&lt;br /&gt;
at System.Web.Hosting.ISAPIApplicationHost.System.Web.Hosting.IApplicationHost.GetConfigToken()&lt;br /&gt;
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)&lt;br /&gt;
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)&lt;/blockquote&gt;&lt;br /&gt;
followed by: &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;An error occurred while trying to start an integrated application instance.&lt;br /&gt;
&lt;br /&gt;
Exception: System.ArgumentException&lt;br /&gt;
&lt;br /&gt;
Message: Value does not fall within the expected range.&lt;br /&gt;
&lt;br /&gt;
StackTrace:    at System.Web.Hosting.IProcessHostSupportFunctions.GetConfigToken(String appId)&lt;br /&gt;
at System.Web.Hosting.ISAPIApplicationHost.System.Web.Hosting.IApplicationHost.GetConfigToken()&lt;br /&gt;
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)&lt;br /&gt;
at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)&lt;br /&gt;
at System.Web.Hosting.ApplicationManager.GetAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters)&lt;br /&gt;
at System.Web.Hosting.ApplicationManager.CreateObjectInternal(String appId, Type type, IApplicationHost appHost, Boolean failIfExists, HostingEnvironmentParameters hostingParameters)&lt;br /&gt;
at System.Web.Hosting.ProcessHost.StartApplication(String appId, String appPath, Object&amp;amp; runtimeInterface)&lt;/blockquote&gt;&lt;br /&gt;
Searching Google for this information revealed nothing exactly like my problem and no solutions worked for me. - No it was not permissions!&lt;br /&gt;
&lt;br /&gt;
Creating a fresh new Application Pool, as well as many other small attempts didn't fix the problem either. None of those attempts really made sense anyway, but then again neither does the solution:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Finally on a whim I tried the following:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Visit the "Internet Information Services (IIS) Manager".&lt;/li&gt;
&lt;li&gt;Select the site and choose "Advanced Settings..."&lt;/li&gt;
&lt;li&gt;In my case the value for ID is 0.&lt;/li&gt;
&lt;li&gt;I changed that to 100 and restarted the site.&lt;/li&gt;
&lt;/ol&gt;Now when I visit the site from a browser everything works fine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-1965875653245246680?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=PPovPJF3_P8:bqNa_1_4jio:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=PPovPJF3_P8:bqNa_1_4jio:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=PPovPJF3_P8:bqNa_1_4jio:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=PPovPJF3_P8:bqNa_1_4jio:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=PPovPJF3_P8:bqNa_1_4jio:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=PPovPJF3_P8:bqNa_1_4jio:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/PPovPJF3_P8" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/1965875653245246680?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/1965875653245246680?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/PPovPJF3_P8/fixing-another-http-error-5000-internal.html" title="Fixing another &quot;HTTP Error 500.0 – Internal Server Error&quot; in IIS7" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2009/07/fixing-another-http-error-5000-internal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEDQHw_eCp7ImA9WxJVEEo.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-2692604545590521744</id><published>2009-06-26T20:13:00.003-07:00</published><updated>2009-06-26T20:17:51.240-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-26T20:17:51.240-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="travel" /><category scheme="http://www.blogger.com/atom/ns#" term="russia" /><title>Reporting from Russia 2009</title><content type="html">&lt;a href="http://2.bp.blogspot.com/_aBJpigJtQzg/SkWM7cd5P4I/AAAAAAAAMxE/kruq5XEr2tU/s1600-h/DSC_1239-forestsidewalk-small.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_aBJpigJtQzg/SkWM7cd5P4I/AAAAAAAAMxE/kruq5XEr2tU/s200/DSC_1239-forestsidewalk-small.jpg" /&gt;&lt;/a&gt;I've been here in &lt;a href="http://en.wikipedia.org/wiki/Akademgorodok"&gt;Акдемгородок&lt;/a&gt; for a about a week now and things are good. I've been walking the ~40 minute walk to work each day with a college and I really enjoy that introduction to my day - well at lest the first 30 minutes of it or so :) Great exercise, fresh air, great to be outside for as a part of a daily routine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aBJpigJtQzg/SkWPJ_XJ1vI/AAAAAAAAMxk/7boH0QZnpqQ/s1600-h/IMG_0471-iphone-top.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aBJpigJtQzg/SkWPJ_XJ1vI/AAAAAAAAMxk/7boH0QZnpqQ/s320/IMG_0471-iphone-top.png" /&gt;&lt;/a&gt;&lt;/div&gt;I got here with my carrier locked iPhone 3G and luckily it was only two days later when the venerable &lt;a href="http://blog.iphone-dev.org/"&gt;Dev Team&lt;/a&gt; allowed me unlock it with UltraSn0w. Simple, effective, brilliant. And I just love that MMS is working for me here but not for AT&amp;amp;T yet in the US. Not that I even use or need MMS, just that I /can/ and you can't. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_aBJpigJtQzg/SkWNvf5fyHI/AAAAAAAAMxc/MOH_nG4gfo8/s1600-h/loading.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_aBJpigJtQzg/SkWNvf5fyHI/AAAAAAAAMxc/MOH_nG4gfo8/s200/loading.png" /&gt;&lt;/a&gt;&lt;/div&gt;Internet connectivity is impossibly bad here for Internet-addicts like my wife and I. In the event that it is working it's incredibly slow. One web page at a time per family please!&lt;br /&gt;
It reminds me of &lt;a href="http://techblog.dallasnews.com/archives/2009/01/vladimir-putin-puts-the-smackd.html"&gt;Putin's remarks to Michael Dell a few months ago&lt;/a&gt; when Michael Dell was asking how US companies can do to help Russia with their internet connectivity. Putin snapped back explaning that Russian's can do it themselves and didn't need any help. At the time I understood Putin's position (still do in a way) and respected him for his pride and command of respect. Now I'm thinking he should suck it up for his people (and me) and get some help in here!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-2692604545590521744?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Km9hVjC7grk:DVs3mADnOsk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Km9hVjC7grk:DVs3mADnOsk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=Km9hVjC7grk:DVs3mADnOsk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Km9hVjC7grk:DVs3mADnOsk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=Km9hVjC7grk:DVs3mADnOsk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=Km9hVjC7grk:DVs3mADnOsk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/Km9hVjC7grk" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/2692604545590521744?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/2692604545590521744?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/Km9hVjC7grk/reporting-from-russia-2009.html" title="Reporting from Russia 2009" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_aBJpigJtQzg/SkWM7cd5P4I/AAAAAAAAMxE/kruq5XEr2tU/s72-c/DSC_1239-forestsidewalk-small.jpg" height="72" width="72" /><georss:point>54.8695411 83.096588</georss:point><feedburner:origLink>http://blog.scott.willeke.com/2009/06/reporting-from-russia-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQCQ34yfSp7ImA9WxJXGEg.&quot;"><id>tag:blogger.com,1999:blog-6428426118720902966.post-9020724711212597691</id><published>2009-06-12T16:00:00.004-07:00</published><updated>2009-06-12T18:59:22.095-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-12T18:59:22.095-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="economics" /><category scheme="http://www.blogger.com/atom/ns#" term="politics" /><title>Re: How to Fix the Economy</title><content type="html">Today I received a message via my personal email about fixing the economy. Recently I have heard many people complain about President Obama's "bailouts" and the way he is handling this situation. In fact I've done some complaining myself about his approach and his strategy in general. However, I don't speak up much because I think the solution is not obvious to anyone and it hasn't been long enough to judge him. Anyway, first the letter I received:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
Dear Mr. President:&lt;br /&gt;
&lt;br /&gt;
Please find below my suggestion for fixing America's economy. &lt;br /&gt;
&lt;br /&gt;
Instead of giving billions of dollars to companies that will squander the money on lavish parties and unearned bonuses, use the following plan.  &lt;br /&gt;
You can call it the Patriotic Retirement Plan:&lt;br /&gt;
&lt;br /&gt;
There are about 40 million people over 50 in the work force. Pay them $1 million each as severance for early retirement with the&lt;br /&gt;
following stipulations:&lt;br /&gt;
&lt;br /&gt;
1) They MUST retire.  Forty million job openings &lt;br /&gt;
- Unemployment fixed.&lt;br /&gt;
&lt;br /&gt;
2) They MUST buy a new American CAR.  Forty million cars ordered &lt;br /&gt;
- Auto Industry fixed.&lt;br /&gt;
&lt;br /&gt;
3) They MUST either buy a house or pay off their mortgage &lt;br /&gt;
- Housing Crisis fixed.&lt;br /&gt;
&lt;br /&gt;
4) Tons more Money they would spend on Medical care and Drugs&lt;br /&gt;
- Health care and Medicare not fixed, but better off.&lt;br /&gt;
&lt;br /&gt;
It can't get any easier than that! &lt;br /&gt;
&lt;br /&gt;
Disclosure: I might be over 50.&lt;/blockquote&gt;&lt;br /&gt;
I'm assuming this was sent in a bit of a tongue-in-cheek manner, but since it was written fairly seriously, I'll reply in the same manner. At first glance it is an interesting proposal. However, I have some concerns:&lt;br /&gt;
&lt;br /&gt;
I doubt it is possible for the federal government to borrow, earn or otherwise obtain forty-trillion dollars (40,000,000 people * $1,000,000 = $40,000,000,000,000).&lt;br /&gt;
Paying off mortgages (debt) in HUGE numbers by shifting that burden to all taxpayers is not a solution. It is yet another crisis waiting to happen.&lt;br /&gt;
In my estimation the root of the so-called "housing crisis" was caused by overly optimistic valuations of homes based in part by giving too much money to too many people (via low mortgage rates and poor vetting of borrowers incited in large part by the government's involvement via Fannie and Freddie).&lt;br /&gt;
Many of the people over fifty probably already have homes and will not need two. A temporary huge influx of cash into the housing market is not likely to make the sector sustainable. Indeed it will drive up house prices and increase sales, but how long will they stay there?&lt;br /&gt;
&lt;br /&gt;
Paying off their mortgage will remove reliable income stream from the financial system: Mortgages. Despite the talk of doom and gloom, careless valuations of mortgages and home prices in the past several years, overall I believe mortgages are a relatively safe investment.&lt;br /&gt;
&lt;br /&gt;
I understand from several respectable advisers that it is often the case that when people suddenly become wealthy they squander the money on lavish parties and unearned payments to anyone for haphazard reasons. Apparently lottery winners offer a good statistical sample of this type of behavior. So this leads me to believe that giving $1,000,000 to a bunch of people will instigate more of this unhelpful behavior.&lt;br /&gt;
&lt;br /&gt;
Now I have been told not to knock an idea unless you have an alternative. So in this area I have only a few: My ideas are to focus on education, small/innovative business and to remain calm in order to take time to make deliberate rational decisions.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Education&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
As for the auto industry, I don't have much sympathy for the &lt;i&gt;companies&lt;/i&gt;. They have been poorly run companies for a long time and they just waited too long to do anything about it. The competition has beat them at their own game. A free market is often a zero-sum game. Unfortunately, that's the deal. &lt;br /&gt;
&lt;br /&gt;
However, the dramatic consequences of those employers not being there should indeed be taken seriously. That doesn't mean the solution is to fund large poorly run companies and hope they will change. That is really not much change. Instead, I suggest we invest in educating and training those people who will essentially be unemployed due to the collapse of most of the American auto industry (keep trying Ford). I think we all want and need those people to have jobs, just not auto jobs. So educate or train them for other jobs that will be beneficial to our community as a whole (and to them personally). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Small Business&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
Furthermore, as an investor (and as a tax payer issuing a "bailout" to a company, we are just that) I would feel safer investing in other companies. If you think it's a good idea to bailout GM and Chrysler you should be buying their stock? So, do you? Are you? &lt;br /&gt;
&lt;br /&gt;
I don't, I am not. In general I'd feel safer investing in MANY small companies of all kinds rather than a fewer large companies. Off the top of my head and with no research I'd rather see some investment in companies like &lt;a href="http://en.wikipedia.org/wiki/Tesla_Motors"&gt;Tesla Motors&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Zero_Motorcycles"&gt;Zero Motorcycles&lt;/a&gt;. These companies are not revolutionary but what they're doing does take ingenuity and innovation that I personally only find in small companies (or small teams). I'm sure there are hundreds and probably thousands more out there that aren't as visible but are at last as innovative and worthy of investment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;b&gt;Remain Calm&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
In general it is companies in the pursuit of money that caused the great wealth of this country that has recently been depressed in a relatively small way (I stress relatively). This country remains incredibly prosperous and wealthy compared to generations past and much of the rest of the world. Therefore, we should trust in the greedy capitalist system that brought us to this far, understanding that there will be ups and downs along the way, but we will continue to learn and gradually improving as we proceed. It is not a perfect system but it changes evolves and largely it works. I view our current system very similarly to Winston Churchill's famous statement on Democracy "It has been said that democracy is the worst form of government except all the others that have been tried." That all gives me enough confidence to say remain calm long enough to make careful decisions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I'm not saying I'm thrilled with the president's moves, but I do think he is smart and that he has surrounded himself with smart people and he has ambitious and genuinely good intentions. We are not yet six months into it with this new guy. The last guy spent eight years digging the hole Obama is trying to climb out of. Lets give him his chance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6428426118720902966-9020724711212597691?l=blog.scott.willeke.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=k1c-9nBHSaQ:naqi_Wp_2_4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=k1c-9nBHSaQ:naqi_Wp_2_4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=k1c-9nBHSaQ:naqi_Wp_2_4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=k1c-9nBHSaQ:naqi_Wp_2_4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.scott.willeke.com/~ff/scottwilleke?a=k1c-9nBHSaQ:naqi_Wp_2_4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/scottwilleke?i=k1c-9nBHSaQ:naqi_Wp_2_4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scottwilleke/~4/k1c-9nBHSaQ" height="1" width="1"/&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/9020724711212597691?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6428426118720902966/posts/default/9020724711212597691?v=2" /><link rel="alternate" type="text/html" href="http://feeds.scott.willeke.com/~r/scottwilleke/~3/k1c-9nBHSaQ/re-how-to-fix-economy.html" title="Re: How to Fix the Economy" /><author><name>scott</name><uri>http://www.blogger.com/profile/14028029058965317837</uri><email>noreply@blogger.com</email><gd:extendedProperty name="OpenSocialUserId" value="11929643521113047794" /></author><feedburner:origLink>http://blog.scott.willeke.com/2009/06/re-how-to-fix-economy.html</feedburner:origLink></entry></feed>
