<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-9310397</atom:id><lastBuildDate>Wed, 25 Sep 2024 03:52:13 +0000</lastBuildDate><category>Chasm</category><category>Concept Development</category><category>Fonzie</category><category>Happy Days</category><category>IT</category><category>Strategy</category><category>abarth</category><category>cars</category><category>down the street</category><category>ford</category><category>gt</category><category>guys</category><title>CoolBeans</title><description>Daniel Maly&#39;s blog</description><link>http://beansonrocks.blogspot.com/</link><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><generator>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-3964452098378311791</guid><pubDate>Mon, 13 Apr 2015 20:39:00 +0000</pubDate><atom:updated>2015-04-13T14:16:48.178-07:00</atom:updated><title>Context</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbtWAZ0eyv94ijF7BniV0_Q_kNVQljIWWyJLKP4dE_3j2WJbPoKo-ZzdPiQT0StMjzhPdpshZbRjuxscSzTqAw86cSMciGSjfJ5L8CWGyRo2QA38dRYbWq2E_VrIj_ypkH_zSCbQ/s1600/context.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbtWAZ0eyv94ijF7BniV0_Q_kNVQljIWWyJLKP4dE_3j2WJbPoKo-ZzdPiQT0StMjzhPdpshZbRjuxscSzTqAw86cSMciGSjfJ5L8CWGyRo2QA38dRYbWq2E_VrIj_ypkH_zSCbQ/s320/context.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5NYzcdAYFO7YwGwPBAiejXwrCGIOQn1MxwQUs0O7bDSnCOeasM08q-HNmes8p-EEuhlEl_YNwEcAxYSJaUqU74S3Vhjemq3kkBXiEtmoq6j1xocaAnxATZg6QMz_uwjTrANzihg/s1600/connected.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5NYzcdAYFO7YwGwPBAiejXwrCGIOQn1MxwQUs0O7bDSnCOeasM08q-HNmes8p-EEuhlEl_YNwEcAxYSJaUqU74S3Vhjemq3kkBXiEtmoq6j1xocaAnxATZg6QMz_uwjTrANzihg/s1600/connected.jpg&quot; height=&quot;200&quot; width=&quot;186&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
The right information at the right time. No less, no more. Only the information pertinent to me, the consumer. One step ahead of search. Control the Context to grow understanding, trust and relationships.&lt;/div&gt;
&lt;/div&gt;
</description><link>http://beansonrocks.blogspot.com/2015/04/blog-post.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbtWAZ0eyv94ijF7BniV0_Q_kNVQljIWWyJLKP4dE_3j2WJbPoKo-ZzdPiQT0StMjzhPdpshZbRjuxscSzTqAw86cSMciGSjfJ5L8CWGyRo2QA38dRYbWq2E_VrIj_ypkH_zSCbQ/s72-c/context.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-3287823189342225227</guid><pubDate>Mon, 20 Jan 2014 20:03:00 +0000</pubDate><atom:updated>2014-01-20T12:03:10.577-08:00</atom:updated><title>Man In The Arena</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;background: white; color: #454545; font-family: &amp;quot;Tahoma&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 24.0pt; line-height: 115%; mso-bidi-font-size: 18.0pt;&quot;&gt;It is not the critic who counts; not the man who points out how the
strong man stumbles, or where the doer of deeds could have done them better.
The credit belongs to the &lt;b&gt;man&lt;/b&gt; who is
actually &lt;b&gt;in the arena&lt;/b&gt;, whose face is
marred by dust and sweat and blood; who &lt;b&gt;strives&lt;/b&gt;
valiantly; who &lt;b&gt;errs&lt;/b&gt;, who comes short
again and again, because there is no effort without error and shortcoming; but
who does actually strive to &lt;b&gt;do the deeds&lt;/b&gt;;
who knows great &lt;b&gt;enthusiasms&lt;/b&gt;, the
great &lt;b&gt;devotions&lt;/b&gt;; who spends himself
in a &lt;b&gt;worthy&lt;/b&gt; cause; who at the best
knows in the end the triumph of high &lt;b&gt;achievement&lt;/b&gt;,
and who at the worst, if he fails, at least fails while daring greatly, so that
his place shall never be with those cold and timid souls who neither know
victory nor defeat.&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -Theodore
Roosevelt&lt;/span&gt;&lt;span style=&quot;font-size: 16.0pt; line-height: 115%; mso-bidi-font-size: 11.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://beansonrocks.blogspot.com/2014/01/man-in-arena.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-7166181813424021307</guid><pubDate>Mon, 16 Sep 2013 18:54:00 +0000</pubDate><atom:updated>2013-09-16T11:54:58.671-07:00</atom:updated><title>Full Steam Ahead</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHjKQyPGQ1cdgSzaEjqkgEzk5tB3KzdKVlrrBEetVvIzacvxujBDXkGa-NBPKsPosafPp_FCTUaO3jDER1lV2qlpMZTjINPaMCClSG7G3KKnXrkTS4Fw99JXaCVw5NS92JT9bPmA/s1600/brakes+are+for+cowards.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; closure_lm_519988=&quot;null&quot; height=&quot;320&quot; isa=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHjKQyPGQ1cdgSzaEjqkgEzk5tB3KzdKVlrrBEetVvIzacvxujBDXkGa-NBPKsPosafPp_FCTUaO3jDER1lV2qlpMZTjINPaMCClSG7G3KKnXrkTS4Fw99JXaCVw5NS92JT9bPmA/s320/brakes+are+for+cowards.jpg&quot; width=&quot;306&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://beansonrocks.blogspot.com/2013/09/blog-post.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHjKQyPGQ1cdgSzaEjqkgEzk5tB3KzdKVlrrBEetVvIzacvxujBDXkGa-NBPKsPosafPp_FCTUaO3jDER1lV2qlpMZTjINPaMCClSG7G3KKnXrkTS4Fw99JXaCVw5NS92JT9bPmA/s72-c/brakes+are+for+cowards.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-253847848086260119</guid><pubDate>Mon, 03 Jun 2013 20:46:00 +0000</pubDate><atom:updated>2015-04-10T11:58:31.851-07:00</atom:updated><title>The History of Programming Languages</title><description>&lt;p&gt;&lt;a href=&quot;https://info.veracode.com/state-of-software-security-report-volume5.html&quot;&gt;&lt;img src=&quot;//www.veracode.com/sites/default/files/wp-content/uploads/2013/05/History-Of-Programming-Languages-Veracode.jpg&quot; width=&quot;317&quot; title=&quot;The History of Programming Languages&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Infographic by &lt;a href=&quot;//www.veracode.com/&quot;&gt;Veracode Application Security&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;</description><link>http://beansonrocks.blogspot.com/2013/06/the-history-of-programming-languages.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-6744002369719969839</guid><pubDate>Thu, 29 Nov 2012 20:33:00 +0000</pubDate><atom:updated>2012-11-29T12:57:32.102-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Chasm</category><category domain="http://www.blogger.com/atom/ns#">Concept Development</category><category domain="http://www.blogger.com/atom/ns#">Fonzie</category><category domain="http://www.blogger.com/atom/ns#">Happy Days</category><category domain="http://www.blogger.com/atom/ns#">IT</category><category domain="http://www.blogger.com/atom/ns#">Strategy</category><title>How hard could it be?</title><description>Crossing the Chasm without Jumping the Shark&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://agilefocus.com/wp-content/uploads/2011/02/crossing-the-chasm.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;189&quot; src=&quot;http://agilefocus.com/wp-content/uploads/2011/02/crossing-the-chasm.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://forbesavenue.com/wp-content/uploads/2009/09/JumpTheShark.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://forbesavenue.com/wp-content/uploads/2009/09/JumpTheShark.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</description><link>http://beansonrocks.blogspot.com/2012/11/how-hard-could-it-be.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Toronto, ON, Canada</georss:featurename><georss:point>43.653226 -79.3831843</georss:point><georss:box>43.469412 -79.69904129999999 43.837039999999995 -79.0673273</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-8124262710247548877</guid><pubDate>Fri, 14 Sep 2012 20:12:00 +0000</pubDate><atom:updated>2012-09-14T14:22:10.603-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">abarth</category><category domain="http://www.blogger.com/atom/ns#">cars</category><category domain="http://www.blogger.com/atom/ns#">down the street</category><category domain="http://www.blogger.com/atom/ns#">ford</category><category domain="http://www.blogger.com/atom/ns#">gt</category><category domain="http://www.blogger.com/atom/ns#">guys</category><title>Good Morning!</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&amp;nbsp;Great morning for a car guy, ironically from the seat of my bicycle. First I pass by a mom loading her kid into Fiat 500 Abarth. I stop for a second to hear the car leaving the driveway - and what a sound it makes! This must be the best sounding small car there is, at the moment.&amp;nbsp;Visceral, deep and burbly with ever so present hints of effervescent sparks of crazy - sound.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://files.conceptcarz.com/img/Fiat/fiat_abarth_500_2008-03-1024.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;http://files.conceptcarz.com/img/Fiat/fiat_abarth_500_2008-03-1024.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;http://www.blogger.com/&quot;&gt;&lt;/a&gt;&lt;span id=&quot;goog_342484335&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_342484336&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;Then just around the corner, Ford GT in Gulf livery - a guy just getting in. I stop again to watch him backing into the road, stopping all the traffic behind him. The car looks absolutely mint and the guy has a bit of a hard time handling the clutch smoothly without bit of a hop, rumble and supercharger yelp. Then it slowly and&amp;nbsp;majestically&amp;nbsp;disappears around the corner hugging most of the drive lane with its width. What a sight!&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fc09.deviantart.net/fs70/f/2010/080/f/8/Ford_GT_Gulf_by_Shibbychibs.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;http://fc09.deviantart.net/fs70/f/2010/080/f/8/Ford_GT_Gulf_by_Shibbychibs.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Now&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.tumblr.com/photo/1280/gearheadsandmonkeywrenches/1394772782/1/tumblr_latrjlVhMe1qzfu0u&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://www.tumblr.com/photo/1280/gearheadsandmonkeywrenches/1394772782/1/tumblr_latrjlVhMe1qzfu0u&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Then (1968 Le Mans)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://beansonrocks.blogspot.com/2012/09/good-morning.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-4918281070199251266</guid><pubDate>Sun, 04 Jul 2010 18:50:00 +0000</pubDate><atom:updated>2010-07-05T07:28:40.926-07:00</atom:updated><title>Add Simplicity</title><description>&lt;div&gt;SIMPLICITY needs to be constantly &quot;added&quot; to software solutions. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It&#39;s very easy to create unnecessary complex solutions for variety of reasons. We engineers like to create &lt;i&gt;smart &lt;/i&gt;and &lt;i&gt;unique &lt;/i&gt;solutions, but can&#39;t always see where it is justified to do so. It can easily become an &quot;ego thing&quot; where too much of personality of author creeps into solutions. No one else then fully understands the solution, which becomes increasingly problematic with time. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today I&#39;m painting my garage. It is 30 degrees Celsius out there and all I want to do is to give the garage a new coat of paint. The builder has decided to add nice mouldings horizontally and vertically - every few feet. These mouldings while nice, increase my effort exponentially, as I have to paint them individually. 30 degrees heat is equivalent to a need to turn a project around quickly - under heat. Luckily I don&#39;t have to paint the garage that often, but I&#39;d be in serious trouble had it been my software product.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another reason for complexity can be just the development landscape. Especially enterprise software can be a mine field of complexity. Variety of implementation technologies, techniques and patterns is augmented by infrastructure as colorful as United Colors of Benetton.&lt;/div&gt;&lt;div&gt;So just to display enterprise grade &quot;Hello World&quot; - what do we need to consider? Front End? Check. Load balancers? Check. Web tier? Check. App Server? Check. Database? Check. ORM? Check. Caching? Check. MQ? Check. EMB? Check. WS-*? Check. A few obscure protocols of choice? Check. Complex transactions? Check. N-Stack for redundancy? Check. One mainframe for &quot;Hello&quot; and another for &quot;World&quot;? Check.&lt;/div&gt;&lt;div&gt;OK, there is more but I&#39;ll stop here. The point is that the landscape is complicated as it is. We should not add any more complexity (or &quot;smarts&quot;), we need to strive for the opposite. Simplify, Simplify, Simplify.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is the same outside of enterprise software. The competition is tough, you need to be constantly adding value and looking for new opportunities. You need to be nimble an light on your feet. Ability to adapt and change is more important than validity of that &quot;Great Idea&quot; you once had.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The formula to success in software business is to Add Simplicity on every step of the way. If you think your killer idea will make your solution successful - dream on. Actually, WAKE UP, you are delusional and it is hurting you. Your idea has already been thought of by someone, somewhere. The difference is in execution. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&quot;Add Lightness&quot; - &lt;a href=&quot;http://en.wikipedia.org/wiki/Colin_Chapman&quot;&gt;Colin Chapman&lt;/a&gt;&lt;/div&gt;</description><link>http://beansonrocks.blogspot.com/2010/07/add-simplicity.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-5996001064336195842</guid><pubDate>Sun, 04 Jul 2010 17:36:00 +0000</pubDate><atom:updated>2012-11-29T12:38:58.557-08:00</atom:updated><title>Software Art</title><description>Software engineering is part science, part art. The science part is all about making computers understand our instructions. Science are the algorithms, languages, execution environments and semantics. The science portion of software is fairly cut and dry and mastering that will give an ability to execute a given task. It is not a difference maker, though.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
The &quot;difference maker&quot; is the Art in software. Software Art is all about how do we translate general idea into specific instructions that computers can understand, while losing as little of the original intent as possible.&lt;br /&gt;
&lt;br /&gt;
Software Art is encompassing both &lt;i&gt;What&lt;/i&gt; are we solving and &lt;i&gt;How&lt;/i&gt; are we doing it, in &lt;i&gt;exact &lt;/i&gt;measures of each. Like a good cake recipe. Software Art is the sweet science (doh!) of the Big Picture. It has it own way to affect the final results. The most important property of Software Art is SIMPLICITY.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
To be &lt;a href=&quot;http://beansonrocks.blogspot.com/2010/07/add-simplicity.html&quot;&gt;continued &lt;/a&gt;...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcROicZjGUjj90cNKGXxNZsAxXUUJpFMPsKAoCHZEJOW1y76gnUz&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcROicZjGUjj90cNKGXxNZsAxXUUJpFMPsKAoCHZEJOW1y76gnUz&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://beansonrocks.blogspot.com/2010/07/software-art.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-8696740252871062402</guid><pubDate>Tue, 15 Jun 2010 16:01:00 +0000</pubDate><atom:updated>2010-06-15T09:19:03.929-07:00</atom:updated><title></title><description>&lt;span style=&quot;font-size:130%;color:#ff9966;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color:#ff6600;&quot;&gt;SOAP, REST, Postmen and Telephones&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Once upon a time, SOAP was Simple Object Access Protocol.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjECMoDhM4a8rRCDT3Cisnag7s_xvRyKL233qWwvIZH-m72vx_IyWJtg_ZmK-Kok2nqGhu505r2BuXm9cdu0YvEMOF6oKsVdq7LU3Ld0zQnCCz9yJATi1YeM7kModrS_PzvqxJxA/s1600/small+soap.JPG&quot;&gt;&lt;img style=&quot;WIDTH: 400px; HEIGHT: 138px; CURSOR: hand&quot; id=&quot;BLOGGER_PHOTO_ID_5483034030361929154&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjECMoDhM4a8rRCDT3Cisnag7s_xvRyKL233qWwvIZH-m72vx_IyWJtg_ZmK-Kok2nqGhu505r2BuXm9cdu0YvEMOF6oKsVdq7LU3Ld0zQnCCz9yJATi1YeM7kModrS_PzvqxJxA/s400/small+soap.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That is some 310 characters in simple enough message.&lt;br /&gt;What we &lt;u&gt;want&lt;/u&gt; to do is to execute a remote method such as:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Amount getAccountBalance (AccountNumber);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;We also wish to ask a specific endpoint:&lt;em&gt; &lt;/em&gt;&lt;br /&gt;&lt;em&gt;http://example.org/account&lt;/em&gt; for the answer.&lt;br /&gt;&lt;br /&gt;The actual ask could be encapsulated in as few as 65 characters.&lt;br /&gt;&lt;br /&gt;In this example, our question’s payload grows ~5 times. The reason is that we are not ASKING A QUESTION; we create an intermediate message that does it, including complete explanation of the intent. We than sent the message to the other side, that will do nothing upon receiving the message – there is no business meaning to receiving a message, yet. The receiver has to open the envelope, read the message and reconstruct sender’s intent. Only then can the receiver actually ANSWER the question – but it proceeds to put the ANSWER into yet another vanilla envelop and send it back to the original sender, continuing the cycle.&lt;br /&gt;&lt;br /&gt;Consider following scenario: Jane wants to ask John “What time is it?”&lt;br /&gt;A SOAP service could do something like this:&lt;br /&gt;&lt;br /&gt;Figure 1 Wait a minute Mr. Postman!&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlc9UgjjbL5NOfJOy-eysHut2X7ui_5cVGNPVbReKeKo1FHFnvYGkJMWNY3kbikNcCVUdn06olmMtXDBNbB53N-vkT96-NSder5gcdJlcaikLe7vogBVTdTHL3t3k2M4tkKBxNMg/s1600/SOAP+mailman.JPG&quot;&gt;&lt;img style=&quot;WIDTH: 400px; HEIGHT: 204px; CURSOR: hand&quot; id=&quot;BLOGGER_PHOTO_ID_5483033206983281570&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlc9UgjjbL5NOfJOy-eysHut2X7ui_5cVGNPVbReKeKo1FHFnvYGkJMWNY3kbikNcCVUdn06olmMtXDBNbB53N-vkT96-NSder5gcdJlcaikLe7vogBVTdTHL3t3k2M4tkKBxNMg/s400/SOAP+mailman.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This certainly works, but there is a significant overhead in this style of interaction. Think of all the logistic and recycling needs! Also, there are dangers lurking in the shadows: Ink may dry up. Letterhead paper may run out. Or we maybe out of stamps!&lt;br /&gt;&lt;br /&gt;It works, but we could do better..&lt;br /&gt;&lt;br /&gt;Imagine a phone conversation:&lt;br /&gt;&lt;br /&gt;Figure 2 Mr. Marconi? Hello?&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiasPo4qRJwTQcyqjh2eQppbpIJKSfpSlmH2hhya438mX7NlYdt20TihPwBsaEk4gdA8Fyc9HSLljsyQj4qZEvV5S97aSacXnEBnEvfZazjBXGfPDuyqolixMTirOzWHONzKwhSoA/s1600/rest+phone.JPG&quot;&gt;&lt;img style=&quot;MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 106px; CURSOR: hand&quot; id=&quot;BLOGGER_PHOTO_ID_5483032184657912002&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiasPo4qRJwTQcyqjh2eQppbpIJKSfpSlmH2hhya438mX7NlYdt20TihPwBsaEk4gdA8Fyc9HSLljsyQj4qZEvV5S97aSacXnEBnEvfZazjBXGfPDuyqolixMTirOzWHONzKwhSoA/s320/rest+phone.JPG&quot; /&gt;&lt;/a&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;br /&gt;&lt;br /&gt;There is no reconstruction of sender’s intent needed, the receiver reacts directly to sender&#39;s QUESTION.&lt;br /&gt;&lt;br /&gt;This is much like RESTful style&lt;br /&gt;&lt;br /&gt;HTTP GET www.john.org/time&lt;br /&gt;HTTP/1.1 OK 200&lt;br /&gt;10 AM&lt;br /&gt;&lt;br /&gt;~&lt;br /&gt;The proposition of SOAP style messaging is that it can abstract communication details. SOAP message is a SOAP message is a SOAP message. A letter can travel all around the world. It used to be that letters were the only way how to communicate remotely.&lt;br /&gt;&lt;br /&gt;But SOAP also abstracts the actual QUESTIONS. We exchange envelopes of “mysterious content” and reconstruct senders and receivers intent encapsulated within on each respective side. OVER AND OVER AGAIN.&lt;br /&gt;&lt;br /&gt;The main benefit I see is that SOAP is transport agnostic. I am not tied to HTTP for my Web services. Is it worth the price? Is the cost benefit justifiable? I don’t think so. Especially when I introduce other WS-* concerns, which snowball INTO my SOAP message, I quickly come to a need for dedicated midle ware, effective compression and transformation mechanisms etc. I’ll take SIMPLICITY, instead.&lt;br /&gt;&lt;br /&gt;In RESTful style, we can ask more direct questions. The question is expressed directly to the RESOURCE, not through auxiliary message. There’s little need to keep introducing additional, verbose, xml based mechanism “encapsulate” the QUESTION and make it generic “Message”. Understanding of a Resource IS generic already, just as Jane knows what time is, so she can ask the QUESTION about it.</description><link>http://beansonrocks.blogspot.com/2010/06/soap-rest-postmen-and-telephones-once.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjECMoDhM4a8rRCDT3Cisnag7s_xvRyKL233qWwvIZH-m72vx_IyWJtg_ZmK-Kok2nqGhu505r2BuXm9cdu0YvEMOF6oKsVdq7LU3Ld0zQnCCz9yJATi1YeM7kModrS_PzvqxJxA/s72-c/small+soap.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-5855029899990576415</guid><pubDate>Mon, 14 Jun 2010 20:36:00 +0000</pubDate><atom:updated>2010-06-14T14:28:14.263-07:00</atom:updated><title>WS - Reuse - Simplicity - Consistency</title><description>Reuse in Web Service world. I think about reuse from the perspective of two major architectural styles - Message based (SOAP) and &lt;span id=&quot;SPELLING_ERROR_0&quot; class=&quot;blsp-spelling-error&quot;&gt;RESTful&lt;/span&gt;. It seems to me that SOAP based architecture is poor fit when we aim for &lt;strong&gt;REUSE&lt;/strong&gt;, from its very foundation.&lt;br /&gt;&lt;br /&gt;Let&#39;s have a look at the building blocks of both styles (pic below), with a bit of a twist. Clearly, SOAP style  ignores the full &lt;a href=&quot;http://en.wikipedia.org/wiki/Create,_read,_update_and_delete&quot;&gt;CRUD&lt;/a&gt; &lt;span id=&quot;SPELLING_ERROR_1&quot; class=&quot;blsp-spelling-error&quot;&gt;API&lt;/span&gt; of its most usual transport protocol - &lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP&quot;&gt;HTTP&lt;/a&gt;. Instead of using full set of HTTP &lt;span id=&quot;SPELLING_ERROR_2&quot; class=&quot;blsp-spelling-error&quot;&gt;API&lt;/span&gt; - GET, POST, PUT and DELETE, it uses POST only - just as transport gimmick.&lt;br /&gt;&lt;br /&gt; There maybe some good reasons for this, but what it also inherently means is that this very CRUD capability of HTTP needs to be replicated on the service &lt;span id=&quot;SPELLING_ERROR_3&quot; class=&quot;blsp-spelling-error&quot;&gt;API&lt;/span&gt; - after all CRUD change is what we want to do with the service.&lt;br /&gt;Each service now has to re-implement a definition of CRUD capability by itself!  Just by definition of this information interchange, we mandate waste. We do not use what we have and invent something new for the same purpose.&lt;br /&gt;&lt;br /&gt;Not only is this an replication and overhead on the service provider side, it also causes an overhead on service consumer side, where each consumer pretend they do not know what they want to do, must &quot;learn&quot; (i.e. discover) the capability set of each service, map it onto their original intent, &lt;span id=&quot;SPELLING_ERROR_4&quot; class=&quot;blsp-spelling-corrected&quot;&gt;exchange&lt;/span&gt; messages with the service provider and interpret the results. So we have reimplemented the same capability, just made it more complex.&lt;br /&gt;&lt;br /&gt;Compare that with simplicity of &lt;a href=&quot;http://en.wikipedia.org/wiki/Restful&quot;&gt;&lt;span id=&quot;SPELLING_ERROR_5&quot; class=&quot;blsp-spelling-error&quot;&gt;RESTful&lt;/span&gt; &lt;/a&gt;approach. No auxiliary messages, no discovery of &lt;span id=&quot;SPELLING_ERROR_6&quot; class=&quot;blsp-spelling-error&quot;&gt;APIs&lt;/span&gt;, each service has the same set of capabilities - HTTP methods. These methods than &quot;transfer&quot; &quot;service state representations&quot; (an instance of resource) from consumer to provider. To know WHERE to transfer and to know WHAT is the relationship of resources - there are &lt;span id=&quot;SPELLING_ERROR_7&quot; class=&quot;blsp-spelling-error&quot;&gt;URIs&lt;/span&gt;, to know HOW to transfer- &lt;span id=&quot;SPELLING_ERROR_8&quot; class=&quot;blsp-spelling-error&quot;&gt;there&#39;re&lt;/span&gt; the methods of HTTP. To navigate and relate, there&#39;s hypertext. No fancy &lt;span id=&quot;SPELLING_ERROR_9&quot; class=&quot;blsp-spelling-corrected&quot;&gt;middle ware&lt;/span&gt; needed, short and sweet information exchange using the battle tested infrastructure of &lt;a href=&quot;http://en.wikipedia.org/wiki/Www&quot;&gt;WWW&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now that is some sweet &lt;strong&gt;REUSE - SIMPLICITY - CONSISTENCY!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjEXvCutTkOtWl9PnPBiHptjh_6l8KafRVzC6z7x0bPoJNEI3oBY916sL2GOkITqnjOYp5cmYyEdZ5do12RRRH3MEHJiA2kuXFg0cFgzLyUU15_HJfS9N_zSAjAXNxlkkjA6_T4g/s1600/WS-Reuse.JPG&quot;&gt;&lt;img style=&quot;MARGIN: 0px 10px 10px 0px; WIDTH: 311px; FLOAT: left; HEIGHT: 320px; CURSOR: hand&quot; id=&quot;BLOGGER_PHOTO_ID_5482731615514268130&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjEXvCutTkOtWl9PnPBiHptjh_6l8KafRVzC6z7x0bPoJNEI3oBY916sL2GOkITqnjOYp5cmYyEdZ5do12RRRH3MEHJiA2kuXFg0cFgzLyUU15_HJfS9N_zSAjAXNxlkkjA6_T4g/s320/WS-Reuse.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;</description><link>http://beansonrocks.blogspot.com/2010/06/ws-reuse-simplicity-consistency.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjEXvCutTkOtWl9PnPBiHptjh_6l8KafRVzC6z7x0bPoJNEI3oBY916sL2GOkITqnjOYp5cmYyEdZ5do12RRRH3MEHJiA2kuXFg0cFgzLyUU15_HJfS9N_zSAjAXNxlkkjA6_T4g/s72-c/WS-Reuse.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-8991271061682381625</guid><pubDate>Tue, 27 Apr 2010 18:02:00 +0000</pubDate><atom:updated>2010-05-26T09:02:06.240-07:00</atom:updated><title>Ford Flex take 2</title><description>I previously &lt;a href=&quot;http://beansonrocks.blogspot.com/2009/10/ford-flex-test-drive.html&quot;&gt;wrote&lt;/a&gt; about my experience with driving rented Ford Flex from Toronto to New York and back. There is an UPDATE ... .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2010 Ford Flex &lt;span id=&quot;SPELLING_ERROR_0&quot; class=&quot;blsp-spelling-error&quot;&gt;Ecoboost&lt;/span&gt; now finds home in my driveway. The trusty &lt;span id=&quot;SPELLING_ERROR_1&quot; class=&quot;blsp-spelling-error&quot;&gt;Duratec&lt;/span&gt; 3.5L V6 makes way to a new 3.5L &lt;span id=&quot;SPELLING_ERROR_2&quot; class=&quot;blsp-spelling-error&quot;&gt;Ecoboost&lt;/span&gt; engine. Twin turbocharged, direct injection mill is good for 355 hp and 350 lb ft of twist that is channeled to all four wheels. The ride is lower to the ground, &lt;span id=&quot;SPELLING_ERROR_3&quot; class=&quot;blsp-spelling-error&quot;&gt;susspension&lt;/span&gt; is stiffer, steering wheel feedback (&lt;span id=&quot;SPELLING_ERROR_4&quot; class=&quot;blsp-spelling-error&quot;&gt;EPAS&lt;/span&gt;) is much improved and the 6speed automatic transmission much better match with the engine than in the rented model. The dash issue of glowing see of green buttons I complained about previously is mitigated by large screen navigation system, which is also used to control the sound, climate, phone, 10G of &lt;span id=&quot;SPELLING_ERROR_5&quot; class=&quot;blsp-spelling-error&quot;&gt;HDD&lt;/span&gt; for &lt;span id=&quot;SPELLING_ERROR_6&quot; class=&quot;blsp-spelling-error&quot;&gt;entertainement&lt;/span&gt; or backup camera. Microsoft&#39;s SYNC is still doing a great job in providing voice interface to most of the features.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Features galore indeed, but you can always turn most of it off, open the sunroof, push on the steering wheel mounted paddle shifter do drop a gear, step on the gas pedal and ... GO! There&#39;s no thinking twice about it anymore, the peak 350 ft lbs of torque are on tap almost instantly (from 1500rpm), pushing you into the seat, while the sprint from 0-60mph comes in just 6.5 seconds. Very quick and effortless. And this is a large seven &lt;span id=&quot;SPELLING_ERROR_7&quot; class=&quot;blsp-spelling-error&quot;&gt;seater&lt;/span&gt; we are talking about! The speed maybe something to get used to, Flex is a very quiet and comfortable car and it is very easy to &lt;span id=&quot;SPELLING_ERROR_8&quot; class=&quot;blsp-spelling-error&quot;&gt;seamlessy&lt;/span&gt; cross into the illegal speed range if not checking the &lt;span id=&quot;SPELLING_ERROR_9&quot; class=&quot;blsp-spelling-error&quot;&gt;speedo&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Another great aspect of the car is the ability to cross large distance without tiring either the driver or &lt;span id=&quot;SPELLING_ERROR_10&quot; class=&quot;blsp-spelling-corrected&quot;&gt;passengers&lt;/span&gt;. It is a great family GT car. That kind you can pack all the camping gear into, car seats for the little ones, seat two more adults in comfort (grandparents) and go for a weekend trip without worrying if the destination is couple hundred kilometers closer or further. Or fold all the seats flat and load up half of &lt;span id=&quot;SPELLING_ERROR_11&quot; class=&quot;blsp-spelling-error&quot;&gt;IKEA&lt;/span&gt; into it. Or take all the &lt;span id=&quot;SPELLING_ERROR_12&quot; class=&quot;blsp-spelling-error&quot;&gt;sippy&lt;/span&gt; cups and toys out and go enjoying the &lt;span id=&quot;SPELLING_ERROR_13&quot; class=&quot;blsp-spelling-corrected&quot;&gt;on-ramps&lt;/span&gt; and back roads. Flex can do it all and do it very well.</description><link>http://beansonrocks.blogspot.com/2010/04/ford-flex-take-2.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-939699372532809751</guid><pubDate>Wed, 25 Nov 2009 18:31:00 +0000</pubDate><atom:updated>2009-11-25T10:31:45.808-08:00</atom:updated><title>From the pen of Jake Maly</title><description>&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size:11.0pt;font-family:Calibri&quot;&gt;I pooped well this morning. Halmony washed me up nicely.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size:11.0pt;font-family:Calibri&quot;&gt;I came downstairs sans diaper &amp;amp; pants, and decided to go to wake sleeping Harabujy up. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size:11.0pt;font-family:Calibri&quot;&gt;Harabujy pleasantly woke up by me. Since I was feeling extra happy with the nice bowel movement, I decided to sit on Harabujy’s lap on his bed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size:11.0pt;font-family:Calibri&quot;&gt;Harabujy and I were chilling. But then something strange &amp;amp; stinky happened behind me. Harabujy and I both got shocked and we started screaming together.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-size:11.0pt;font-family:Calibri&quot;&gt;Halmony seems busy today washing lots of things.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://beansonrocks.blogspot.com/2009/11/from-pen-of-jake-maly.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-1729759198535539125</guid><pubDate>Wed, 14 Oct 2009 14:55:00 +0000</pubDate><atom:updated>2009-10-14T10:41:47.409-07:00</atom:updated><title>Ford Flex Test Drive</title><description>Spec: 2010 Ford Flex, AWD Limited, 3.5l &lt;a href=&quot;http://www.twitpic.com/lhvda&quot;&gt;www.twitpic.com/lhvda&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Having an extended family of six and desire for a road trip from Toronto to NYC during Thanksgiving weekend, the trusty &#39;08 Altima was relegated to a driveway rest and we rented a Ford Flex. I was quite intrigued by the vehicle before, so I was quite happy I got to rent it for a long drive.&lt;br /&gt;&lt;br /&gt;It&#39;s a big car. It feels like a big car inside, it drives like a big car. Lot&#39;s of toys inside, Sync is fantastic, great seats, great versatility, good handling and comfort, great HID projectors up front, LEDs in the rear. So many good things that the shortcomings are even more disappointing. In sum, it feels like a two step car. Turn the wheel and wait - it shall turn. Step on the brakes and wait - it shall break. Step on the gas and wait - it shall accelerate. There is no progressin, no modulation. It&#39;s on or off. Anemic steering feel negates very solid suspension setup. Lazy (very) 6sp automatic transmition does absolutely no favors to the 262hp V6. The important instruments are too small - speedo. There&#39;s a million buttons (so it seems) on the console &lt;a href=&quot;http://twitpic.com/lhvgi&quot;&gt;http://twitpic.com/lhvgi&lt;/a&gt; and it does no favours to the driver on a long drive through the night and rain। Great functionality, good fit and finish but lacking ergonomics - I was really distracted by the flowing field of green buttons when needing to adjust temperature and fan speed (toggle+button action) after 4hrs of driving. What&#39;s with the single stick with turn signals, highbeams, lowbeams, front wipers rear wipers and windsheeld washer? Couldn&#39;t Ford fit even more functions in there :-)?&lt;br /&gt;The writeup may sound a bit negative, but I really like what this the car COULD BE as whole. Great handling, good power, great  utility and comfort in a package seating 6 people. If the next iteration fixes some of the issues and puts a bit more GT and refinement into the car (which I hope the EcoBoost version already does, to some extent), I&#39;ll put it towards the top of my shopping list for large family car, regardless of make.</description><link>http://beansonrocks.blogspot.com/2009/10/ford-flex-test-drive.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-8903878498806287042</guid><pubDate>Tue, 08 Sep 2009 18:38:00 +0000</pubDate><atom:updated>2009-09-08T12:15:31.871-07:00</atom:updated><title>Agile Done Right</title><description>&lt;span class=&quot;Apple-style-span&quot;   style=&quot;  ;font-family:Verdana;font-size:13px;&quot;&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;Agile as a software development methodology [&lt;a href=&quot;http://www.agilealliance.org/&quot;&gt;http://www.agilealliance.org/&lt;/a&gt;]. The empowering of teams, the productivity of team which surpasses combined efforts of individuals. The starter fluid to change and improvement. The results orientation. Constant iterations and reflection. All of it provides tremendous potential for an organization to deliver outstanding results.&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;It can be a tall order to influence the way an organization works. I work for a large financial institution and rigid, risk averse environments are typically hard to change. But I&#39;m proud that our own &quot;Agile Mix&quot; is successful and finding its way to broader and broader audience. I was the main advocate, proponent and preacher of Agile, at the beginning. Not so lonesome, anymore. Given trust and a seed team, we have not only developed out own &quot;Agile Mix&quot;. We have also delivered the product with zero variances detected through out QA, on time, on budget. Our plans and estimates were aggressive and REAL. The team loved working in high paced and stimulating setup. They loved owning the product. &lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;Everybody listens and learns from success stories. There is no better way to convince anybody that Agile works, other than when teams love it, while superb results are delivered.&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;Agile done right will evolve organically, with thin layer of &quot;impediments removal&quot; on top of it. The core values need to be reiterated and reflected in each team&#39;s decision. The particular flavor of Agile - &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;XP&lt;/span&gt;, Scrum, Lean doesn&#39;t quite matter. All of the different methodologies provide yet another set of tools we can choose from, with useful variation in approach to achieving the same thing. &lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;To make Agile work in any organization, you need results. Go get a team and DO IT. No matter the scale of the project, doing it is the only way to figure out what works in your environment and what doesn&#39;t. Your &quot;Agile Mix&quot; will always change and evolve - that&#39;s a good thing. Set the expectations right, be 100% transparent with all stakeholders. Apply the same rules on the process, which you&#39;d apply on the product. Iterate. Iterate. Iterate. &lt;/div&gt;&lt;/span&gt;</description><link>http://beansonrocks.blogspot.com/2009/09/agile-done-right.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-572816244056890324</guid><pubDate>Wed, 02 Sep 2009 18:13:00 +0000</pubDate><atom:updated>2012-11-29T12:46:28.449-08:00</atom:updated><title>My Work</title><description>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Craftsmanship:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;The paramount of my efforts is to be a good craftsman. Regardless if I&#39;m replacing a light bulb, designing software, doing R&amp;amp;D, strategic planning  or giving presentations and executive summaries. I want my work to be meaningful. I want to know it is making a difference. I want to keep getting better at it. Day in and Day out. [&lt;a href=&quot;http://manifesto.softwarecraftsmanship.org/&quot;&gt;http://manifesto.softwarecraftsmanship.org/&lt;/a&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;I like &lt;a href=&quot;http://www.agilealliance.org/&quot;&gt;Agile&lt;/a&gt; software development methodology very much. It helps in making good craftsmen - it makes work personal. I blog about Agile &lt;a href=&quot;http://beansonrocks.blogspot.com/&quot;&gt;here&lt;/a&gt;.  &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;The rest is some tech stuff I enjoy working with, in no particular order:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Concept Development&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Software Architecture&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Best Practices&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Software Design&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Enterprise Portals&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;J2EE&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;OOA and OOD&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;OSGi and all things modular&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;RIA&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Services and SOA&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0px; margin-top: 0px;&quot;&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;Strategy and Planning&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Verdana; font-size: 13px;&quot;&gt;And when the push comes to shove, I lead the technology SWAT team to action on large scale enterprise projects.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</description><link>http://beansonrocks.blogspot.com/2009/09/my-work.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-5251016460848638258</guid><pubDate>Wed, 19 Aug 2009 14:44:00 +0000</pubDate><atom:updated>2009-08-19T09:45:08.453-07:00</atom:updated><title>Browser as a Platform, HTML 5, WebSockets</title><description>&lt;div&gt;&lt;div&gt;In 2009 QCon London presentation &quot;Browser as a Platform&quot; Mozilla’s own Ben Galbraith and Dion Almaer &lt;a href=&quot;http://www.infoq.com/presentations/Browser-as-Platform-Galbraith-and-Almaer&quot;&gt;presented &lt;/a&gt;their view of current state and potentials for the future state-of-the art in pure browser based applications. Very enthusiastic and entertaining presentation, lots of familiar icons and visuals from many organizations, some Bespin tease, all great stuff and fun. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But it got me thinking more about aspects of HTML5 that got very limited spot light (at a bit unfortunate cost of constant comparison to Flash and other plugins) - WebSockets and Server (sent) Events. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WebSockets and Server Events should become the real game changers of the browser world. Rendering technology (HTML DOM and JavaScript) issues and browser issues (threading et al.) are mere growing pains of an infant, but it is when we start looking at (and talking about) full duplex communication capability from the browser (WebSockets) and about standardized browser &quot;PUSH&quot; Comet style (Server Events), we&#39;ll know we&#39;ve reached the maturing phase of an adolescent first class, full fledged presentation technology.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Communication is the key.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;HTTP served us great as an information exchange protocol over many years, achieved great standardization and ubiquitous penetration. It enabled new architectural styles such as SOA; it is deeply reflected in REST, among many others. It also held the information flow back a little bit, which could be good and also bad. With browsers, it held it back. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Post-back driven web applications of earlier times, even with AJAX &quot;wizardry&quot; of late have kept the browser from becoming first class player in presentation technologies. Not that there are not great examples to the contrary, there are many amazing applications delivered in plain browser client. &lt;/div&gt;&lt;div&gt;But any first class player has to be able to achieve this in a simple, easy and replicable manner. It maybe simple, it is not always easy and not very often replicable to deliver browser application where user doesn&#39;t notice there is a browser involved and is interacting with the system in natural and intuitive way. Applications need to be specially tailored, users need to be trained.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is the limited information flow paradigm that has held the browser from becoming first class player, capable of delivering of any application to all users, even more than the browser and presentation issues. After all, simpler presentation is often better and as great as Canvas and SVG (RIP?) are, their utility is centered around specialized set of applications.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But in any case, only after the information flows naturally to seamlessly enable application&#39;s flow and support user&#39;s thought process, can we present the information effectively and without technology infused stops and gaps. That is why I see the changes introduced by WebSockets and Server Events as profound and truly significant additions to the capabilities of browser based applications.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We&#39;ll still probably hear more about the presentation aspects, JavaScript Engines and threading tweaks of the next generation browser and standards, but the more we hear, talk and focus on the information flow features, the further stage has been reached on the Hype Cycle of &quot;New&quot; Technology.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://beansonrocks.blogspot.com/2009/08/browser-as-platform-html-5-websockets.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-8194915329409965109</guid><pubDate>Fri, 03 Jul 2009 20:25:00 +0000</pubDate><atom:updated>2009-07-07T07:24:41.412-07:00</atom:updated><title>OSGi Complexity?</title><description>&lt;div&gt;Functional decomposition and modularization of applications is a popular topic. Instead of building singular, monolithic applications, we can build little Bundles or Modules that represent business functions and put them together Jigsaw Puzzle style.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The idea is that any overhead of such an approach is greatly offset by the benefits of encapulations - from software development to enterprise function placement.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example, an application can &quot;Shake bread crumbs with some chicken&quot; and &quot;Bake dinner&quot;, these two concerns are agnostic of each other, but can be composed into business flow &quot;Shake &#39;N Bake&quot;. Or other business flows can be &quot;Shake &#39;N Freez&quot; or &quot;Defrost &#39;N Bake&quot;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anytime we need to add/remove/change anything in the application we know exactly the place where the logic lives - as opposed to hunting throughout large codebases of potentially manyy application. It works great for testability, enables effective refactoring and short iterations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/OSGi&quot;&gt;OSGi&lt;/a&gt; has done a terrific job in championing of the modular concerns. But OSGi implementation can get quite complicated, for a reason that is not part of its core value proposition ...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Large portion of OSGi complexity comes from the assumption that the whole system is highly dynamic - OSGi bundles can come and go during the runtime and the system needs to constantly adapt. That is great and usefull for certain applications - I imagine telco world is a great example, but for most applications, this ability introduces too much complexity. Take the stallwart of OSGi examples Eclipse - the dynamic bundle update (called Plugins) is not used everyday and most new bundles force restart of the application after update, anyway.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here&#39;s a solution: As soon as I replace &quot;highly dynamic&quot; with &quot;fairly static&quot; environment assumptions, it gets much simpler. I know that my application will either &quot;shake&quot; or &quot;bake&quot; sometime during application&#39;s runtime, &lt;span class=&quot;Apple-style-span&quot; style=&quot;text-decoration: underline;&quot;&gt;anyway&lt;/span&gt;. I can live without introducing brand new business functions (say brand new operation &quot;DeepFry&quot;) while the application is running.  Now I could concentrate on the real issue at hand - modularity and functional decomposition, which is the core reason I arrived at OSGi gates. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most of the OSGi complexity goes away with this change. It is a simple change, but it has far reaching impact. Bundles still have dynamic lifecycle, the major change is that all the Bundles are present from the start of the application and the application doesn&#39;t have to deal with Bundles exiting or brand new Bundles entering the application on a whim.  Maybe this could be called SimpleOSGi. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Thanks to Ricky Bobby and Cal Naugton Jr. for inspiration in naming business functions examples. Dear Kraft Foods, please do not sue me.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://beansonrocks.blogspot.com/2009/07/osgi-complexity.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-6159313546241778941</guid><pubDate>Fri, 03 Jul 2009 18:54:00 +0000</pubDate><atom:updated>2011-10-04T05:50:57.589-07:00</atom:updated><title>Name Things Right</title><description>&lt;span class=&quot;Apple-style-span&quot;   style=&quot; color: rgb(51, 51, 51);  font-family:&#39;trebuchet ms&#39;;font-size:13px;&quot;&gt;&lt;div class=&quot;deleteBody&quot;&gt;&lt;p class=&quot;postBody&quot;&gt;In Object Oriented languages, Class represents a definition of what will become an Object at runtime. In some languages (Smalltalk, Ruby) Class can be a runtime Object as well, in others it is more static formula (Java, C#). It always contains the prescription, the recipe. A Class may say: Add two arms, body, head and two legs to create a Person. It can also say that Person can speak. &lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;When software runs, two instances of Person Object are created and they can speak with each other.We try to model the problem domain which is the target of our software as collection of Objects that can interact with each other (i.e. two Persons can speak with each other). This added level of abstraction helps us understand the domain better – we do not primarily focus on the details of sound wave exchange that is human speech, we primarily focus on the fact that two Persons can speak with each other. This way we do not get lost in details from the start, we find a place to put appropriate logic and move on. &lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;The trick to software modeling is the ability to “Name Things Right”. If I can give names to all the actors in my domain I have created all the Classes. Then I decide what the actors (now Classes) can do in form of methods and I’m done creating my domain model. If I can not name my actors, I do not understand the problem domain enough to try to solve it with software. I have to go back and get more information, remodel and refactor. It takes several iterations before the problem domain is solved. &lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;When “Utility Classes” rear their ugly heads: Utility Classes are convenient holder of unrelated methods, often accessed statically. I’m convinced that proliferation of Utility Classes is evil in Object Oriented software. It is clear indication that we have failed to model our domain correctly and started to put methods into one size fits all bag. Strobe lights should go off and sirens should sound every time this happens – just to attract attention. “Name Things Right” and your design will be conducive for beautiful code to happen. &lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class=&quot;postBody&quot;&gt;Hat tip to Derek Zoolander for “Name Things Right” inspiration.&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;</description><link>http://beansonrocks.blogspot.com/2009/07/utility-classes-in-object-oriented.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-8162218282285039745</guid><pubDate>Fri, 26 Jun 2009 15:13:00 +0000</pubDate><atom:updated>2009-06-26T09:24:09.965-07:00</atom:updated><title>Twitter this, Twitter that II.</title><description>I found about Michael &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Jackson&#39;s&lt;/span&gt; death last night, via Twitter. RIP King of Pop. &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;Even though&lt;/span&gt; I never was a proper fan, I think he&#39;s been a major factor in the culture of late 20&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;th&lt;/span&gt; century. The music will live on.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;Suddenly&lt;/span&gt; it became a bit clearer what is the magic of Twitter, for me. Information comes to me, I do not actively come to it. I have no idea what I&#39;m going to see each time I open &lt;a href=&quot;http://en.wikipedia.org/wiki/TweetDeck&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;TweetDeck&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is also known as the &lt;a href=&quot;http://en.wikipedia.org/wiki/Hollywood_Principle&quot;&gt;Hollywood Principle&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Inversion_of_Control&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;IOC&lt;/span&gt; &lt;/a&gt;. It&#39;s used heavily  in the software world and the main benefit is the removal of coupling among systems, computers, components, classes or files. One part of system doesn&#39;t assume anything about others, it &lt;span class=&quot;Apple-style-span&quot; style=&quot;text-decoration: underline;&quot;&gt;declares&lt;/span&gt; its capabilities and lets others use it. The less coupling, the less assumptions, the less plumbing, the cleaner and simpler designs and lesser potential for mistakes. It makes it easier to develop great software. It also makes it easy to understand.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;IOC&lt;/span&gt; has caused a shift in the software development paradigms and it&#39;s also changing the way we digest information in general. Applications like Twitter are  trully &lt;b&gt;I&lt;/b&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;nverting&lt;/span&gt; the &lt;b&gt;C&lt;/b&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;ontrol&lt;/span&gt; of &lt;b&gt;I&lt;/b&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;nformation&lt;/span&gt; flow from &quot;browse and search&quot; to &quot;publish and subscribe&quot;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Twitter may come and go, but it has moved the paradigm shift along a bit. It didn&#39;t start the shift, either, there&#39;s been &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;bss&lt;/span&gt; and newsgroups and &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/RSS_(file_format)&quot;&gt;rss&lt;/a&gt;&lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/RSS_(file_format)&quot;&gt; &lt;/a&gt;feeds long before it. I used to think &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;rss&lt;/span&gt; is the greatest, just like I do about Twitter, now. Rss reader is still one of the most heavily utilized applications on my smart phone. Twitter is simpler, faster and more engaging. Search results from &lt;a href=&quot;http://search.twitter.com/&quot;&gt;search.twitter.com&lt;/a&gt;&lt;a href=&quot;http://search.twitter.com/&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#99FFFF;&quot;&gt; &lt;/span&gt;&lt;/a&gt;are great complement to Google search. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Any (web) application needs to be aware of this shift. Information access needs to be simplified, simplified, simplified. It is not that there&#39;s too much of information, it is that it&#39;s too tedious to get to. If it&#39;s not simple, I&#39;m not interested - and I&#39;ll never know how great a product you might have.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://beansonrocks.blogspot.com/2009/06/twitter-this-twitter-that-ii.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-7756712880137198464</guid><pubDate>Thu, 25 Jun 2009 15:14:00 +0000</pubDate><atom:updated>2009-06-25T08:44:29.523-07:00</atom:updated><title>What&#39;s for lunch</title><description>That&#39;s a reccuring question, every day I forget to &quot;brown bag it&quot;.  I wish there was a simple way I could be suggested what is the current soup du jour by local eateries. I don&#39;t want to perform an extensive (re)search, just recieve short notification that &quot;Wednesday Wings are 20c each @ Lawrence Wings&quot;. I wish to receive such notification only on Wednesdays, and only if I&#39;m in the vicinity of Lawrence Wings. Just that and not much else. Sounds both simple enough and exciting to do. Bit of RoR for the web front end, android extension for mobile , Twitter API for the broadcast ...  . Why don&#39;t I do it?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are many applications centered on food industry - Urban Spoon, Open Table, Yelp, Menu Palace ... and it&#39;s still a hedeache to order pizza online in Toronto (except from PizzaHut, if you are into it). Lot of great apps, but I feel that each is trying to do too many things at once, forgetting to satisfy the ONE need, first and foremost. My need is to find What&#39;s for lunch. Period.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I find myself to have lower threshold for the amount of information I&#39;m willing to digest, than I used to have. I want to find what I&#39;m looking for, not much more. I don&#39;t browse around much anymore, I search and I&#39;m gone. The one way to make me stick around (and eventually monetize on me) is to give me what I&#39;m looking for first, than weave a web of distraction around it. &lt;/div&gt;</description><link>http://beansonrocks.blogspot.com/2009/06/whats-for-lunch.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-9059701670486294867</guid><pubDate>Fri, 29 May 2009 19:25:00 +0000</pubDate><atom:updated>2009-06-25T07:41:17.996-07:00</atom:updated><title>STICK TO IT</title><description>There are many approaches to designing and developing software. There are even fancy names to each. Structured or Procedural, Data Centric, Domain Driven, Event Driven, Object and Aspect Oriented ... and more. Add any implentation language of choice to the mix and stir well. People may tell you that some are better than other, some are practical, and others are just playgrounds for theory obsessed folks wearing funny hats. Some are old school and others are the new kids on the block.  There are as many opinions on what it all means as many people get involved in discussions revolving around these topics. Books have been written, countless presentation were sat through.&lt;br /&gt;&lt;br /&gt;We still keep discussing which the best way to build software is. The answer is simple: It doesn&#39;t quite matter. Potato, Potatoe. Different hats for different heads. Different tools for ... different folks. I may have mixed up my analogies a bit. Ultimately it is the type of job that has to determine the correct approach (insert another toolbox analogy).&lt;div&gt;&lt;br /&gt;The point is once you&#39;ve chosen one approach, methodology or philosophy - for a particular task - STICK TO IT. It is the &quot;dog pretending to be a cat&quot; solution that brings out the worst in any given approach, combined. It is because each paradigm can be very different in nature, have different value system, different focus. And these do not mix well, especially if we try to make &lt;span class=&quot;Apple-style-span&quot; style=&quot;text-decoration: underline;&quot;&gt;one look like the other.&lt;/span&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The final product may look OK - on the first take, but sure won&#39;t taste great (insert the Cat and Dog making a cake tale details). It will have the worst traits from each approach involved, under such circumstances. Our OO code will be overun with inheritance, our Procedures interrupted without any apparent reason, our Domain Objects will not represent any business reality, our Pointcuts will attempt to crosscut accros dimensions.&lt;br /&gt;&lt;br /&gt;So show your colors. Wear a &#39;God thought in Erlang&#39; T-shirt. Spray paint &#39;Shuttles run on Procedural&#39; all over you cubicle. Be critical but also proud of your decision despite what is the soup du jour. Beautiful code can happen using any approach.  Choose what is the best for your team and project and STICK TO IT. Once you are done, re-evaluate your decisions, explore new teritories and get closer to the cutting edge. Then STICK TO THAT until you are done again.&lt;/div&gt;&lt;/div&gt;</description><link>http://beansonrocks.blogspot.com/2009/05/stick-to-it.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-5440049802503547611</guid><pubDate>Fri, 29 May 2009 19:12:00 +0000</pubDate><atom:updated>2009-05-29T12:22:45.723-07:00</atom:updated><title>Twitter this, twitter that</title><description>&lt;div&gt;As a believer in the goodness of disruptive nature of new *stuff (well, mostly limited tech), I&#39;ve been following Twitter for quite some time (@danielssonn).  Using a cell phone with Windows Mobile (don&#39;t ask), good Twitter client is hard to find. Now I want to try the Twikini client, and the good folks are giving &#39;em for free! All you have to do is publish a blog post, following few simple &lt;a href=&quot;http://www.trinketsoftware.com/twikini/purchase2.aspx&quot;&gt;rules.&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: rgb(80, 80, 80); font-family: Verdana; font-size: 11px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; &quot;&gt;&lt;p&gt;&lt;a href=&quot;http://www.trinketsoftware.com/Twikini&quot;&gt;Twikini&lt;/a&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.trinketsoftware.com/Images/Twikini03.gif&quot;&gt;&lt;img style=&quot;float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 322px; height: 322px;&quot; src=&quot;http://www.trinketsoftware.com/Images/Twikini03.gif&quot; border=&quot;0&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;</description><link>http://beansonrocks.blogspot.com/2009/05/twitter-this-twitter-that.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-5250229899986452401</guid><pubDate>Mon, 04 May 2009 13:55:00 +0000</pubDate><atom:updated>2009-07-03T11:42:38.786-07:00</atom:updated><title>Kids and books</title><description>&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family:Georgia;font-size:8.5pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;This morning in the neighborhood was beautiful. Sun was shinning, birds chirping and the tulips blooming in plethora of colours. The neighbour’s son was dragging his huge backpack off the front steps, on the way to school. One of the last generations to have to do this, I hope. Once the time comes for my son Jake, he’ll be travelling light. The word on the street is that Amazon is to announce textbook size Kindle, soon. In the years to come, EBook readers such as the Kindle will become ubiquitous, come down in price and serve the broadest content of written word. There’s still time for this to happen, Jake is not even two years old. But if I see him dragging his backpack full of books off the doorstep, on his way to school, I’ll give the Amish thing a try.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:48px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family:Georgia;font-size:8.5pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:16px;&quot;&gt;&lt;span style=&quot;font-family:Georgia;font-size:8.5pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;urrent Kindle model: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:Arial;&quot;&gt;&lt;a href=&quot;http://www.amazon.com/Kindle-Amazons-Wireless-Reading-Generation/dp/B00154JDAI&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;http://www.amazon.com/Kindle-Amazons-Wireless-Reading-Generation/dp/B00154JDAI&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://beansonrocks.blogspot.com/2009/05/kids-and-books.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-1138150067476572971</guid><pubDate>Wed, 29 Oct 2008 16:49:00 +0000</pubDate><atom:updated>2009-07-03T11:42:56.125-07:00</atom:updated><title>What &quot;Done&quot; means?</title><description>&lt;style&gt;@font-face {  font-family: SimSun; } @font-face {  font-family: Verdana; } @font-face {  font-family: @SimSun; } @page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; } P.MsoNormal {  FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: Verdana } LI.MsoNormal {  FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: Verdana } DIV.MsoNormal {  FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: Verdana } A:link {  COLOR: blue; TEXT-DECORATION: underline } SPAN.MsoHyperlink {  COLOR: blue; TEXT-DECORATION: underline } A:visited {  COLOR: purple; TEXT-DECORATION: underline } SPAN.MsoHyperlinkFollowed {  COLOR: purple; TEXT-DECORATION: underline } SPAN.EmailStyle17 {  COLOR: windowtext; FONT-FAMILY: Arial; mso-style-type: personal-compose } DIV.Section1 {  page: Section1 }&lt;/style&gt;&lt;span style=&quot;color: rgb(0, 0, 255);font-family:Arial;font-size:85%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Is it Done?  This topic that is constantly reoccurring in the  (agile) software development community.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Done  is a magic keyword, with different meanings for different  people.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;ul  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;For a  business owner, Done means that the product is running and serving  Customers&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;For a  project manager, Done means that the code is implemented, tested in all testing cycles and delivered&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;For a development manager, Done means the  code is implemented according to standard, commented, unit tested and deployed  in testing environment   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;For a  developer, Done often means that the tricky algorithms work, code compiles and  was checked into Source Control. The HARD part is over and the code CAN  run.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Here&#39;s  a sample definition of Done for a Task (via &lt;/span&gt;&lt;a href=&quot;http://www.scrumalliance.org/articles/37&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;scrumalliance&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;) :&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;  style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Coded/implemented&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Peer reviewed (pair programming counts  as peer review)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Code is run against current version in  source control&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Code is commented in source control  and checked in&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Code is commented&lt;/span&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;on Public/Friend methods&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Story/use case manual test plan  updated &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Unit tests written and  passing&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Build and package changes are  communicated to build master&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Task list hours are updated and task  is closed out&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;All to-do items in code are  completed&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;We  need to establish a scale of &lt;/span&gt;&lt;em&gt;&lt;strong&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Done&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;, &lt;/span&gt;&lt;/em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;so that  &lt;/span&gt;&lt;em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;/em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;we can rate our &quot;donnes&quot; clearly, just like a good stake house does.&lt;br /&gt;&lt;/span&gt;&lt;em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Oh, &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Sorry Sir, you  didn&#39;t ask for a &lt;/span&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;rare&lt;/span&gt;&lt;/u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; rib eye? My apologies, let me &lt;/span&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;fix&lt;/span&gt;&lt;/u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; it for you!  (&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;The staff in a good stake house doesn&#39;t usually point out that the  meat &lt;/span&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;is&lt;/span&gt;&lt;/u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; properly cut,&lt;/span&gt;&lt;/em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;em&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;is&lt;/span&gt;&lt;/u&gt;&lt;/em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;very well seasoned and  the &lt;/span&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;last&lt;/span&gt;&lt;/u&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; piece missing is a bit more heat. The stake is simply not  &lt;/span&gt;&lt;strong&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;done &lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;well).&lt;/span&gt;&lt;/em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;In  agile development, Team has a lot of sovereignty to make decisions and drive the  implementation of Tasks. It takes an ownership of the Tasks and makes the  implementation as good as can be.&lt;br /&gt;&lt;br /&gt;But the Team also needs to clearly communicate  the level of &lt;/span&gt;&lt;em&gt;&lt;strong&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Done&lt;/span&gt;&lt;/strong&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;,&lt;/span&gt;&lt;/em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; as different stakeholders have  different expectations. Only when the communication is clear, factual and  correct the mutual trust can foster.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; &lt;/span&gt;&lt;/div&gt; &lt;div  style=&quot;font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div  style=&quot;color: rgb(204, 204, 204);font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt; &lt;div  style=&quot;color: rgb(204, 204, 204);font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt; &lt;div  style=&quot;color: rgb(255, 255, 255);font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt; &lt;div  style=&quot;color: rgb(255, 255, 255);font-family:trebuchet ms;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span class=&quot;182203615-29102008&quot;&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;</description><link>http://beansonrocks.blogspot.com/2008/10/what-done-means.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9310397.post-6345367450395749823</guid><pubDate>Tue, 28 Oct 2008 19:41:00 +0000</pubDate><atom:updated>2009-07-03T11:43:24.305-07:00</atom:updated><title>Let the Water fall</title><description>&lt;span style=&quot;font-family:georgia;font-size:130%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;On Waterfall software development methodology&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a style=&quot;font-family: georgia; &quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMiLbkt1NxcOGGzA73_6qd7VjtaWzkpBPseb7shsPYh8b8NTm_Zeymj5kwGjG-4XuooEuVXTVCglXAMU1z6eCHM5CAZpZnlcrFkVbi3X5Y-to_rVu94SXRqq0LDubL-2v8G6EYA/s1600-h/waterfall.JPG&quot;&gt;&lt;img style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 167px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMiLbkt1NxcOGGzA73_6qd7VjtaWzkpBPseb7shsPYh8b8NTm_Zeymj5kwGjG-4XuooEuVXTVCglXAMU1z6eCHM5CAZpZnlcrFkVbi3X5Y-to_rVu94SXRqq0LDubL-2v8G6EYA/s320/waterfall.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5262293212741170594&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&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;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Fig-1 Waterfall&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; phases&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; So Waterfall is GREAT, right? It is GREAT for its risk mitigation ability, it is GREAT to produce bug free software and it is GREAT to produce mission critical software. It plays extremely well in regulatory environments. Above all, it is GREAT in maintaining of Status Quo in order to keep the aforementioned virtues of a system.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;It runs Space Shuttles and it got us to the Moon.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; Every phase is dependent on the completion of the previous phase; we do not code unless we have gathered requirements, analyzed it, and came up with design already. This gives Waterfall very SOLID structure, gives a big deal of comfort to organization that a project will be eventually completed, with all&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic; font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; Ts&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; crossed and &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic; font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Is&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; dotted.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; Auxiliary control mechanisms and directional layers and reporting structures are deployed alongside all of the phases, with very little overlap to boot. Testers do not have to care about development till the day they get the custody of the code that needs to be tested. Each phase is taken care of by a different group of people; roles and responsibilities are finely defined and distributed.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;Each phase feeds into next one and one run through the mill and we are done. Unless...&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;The Waterfall is BAD, right? It&#39;s BAD because it is HEAVY, oh so SEQUENTIAL and downright stuck in the last century.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;  All the virtues of Waterfall come at a significant cost. Many people, often many organizations collaborate during Waterfall phases. Due to the great isolation of the Waterfall phases, communication becomes an overhead and bureaucracy prospers. Cost spirals, fat grows. Each of the phases is becoming longer, synergies are absent. Evolution of the product and keeping with the times are difficult - that&#39;s the price of a great Status Quo watchdog. We do get a bug free, mission critical software, though. Unless...&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;  The most important and often overlooked aspect of Waterfall development sits right in front of our eyes. On the top of the pyramid. Basking in the sun. That&#39;s right, the REQUIREMENTS. It is the first coin we insert into the slot machine and it decides on the outcome. Crooked pennies do not need to apply. Weight of the coin needs to be precise, so does the width and diameter.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;  Waterfall assumes that requirements are exactly specified, are understood by all parties and do not change. Change the requirements and any of the phases will come to a screeching halt. Either you can restart the whole process or you take a shortcut and circumvent the rigid and fail proof process.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;  Most of the bugs in the system come from such shortcuts and firefights, negating the bug free property of the process. The system will retain the heavy cost associated with the process but will not be bug free and or fit of the mission critical label.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;  If you decide to do Waterfall, beware of change. And if there&#39;s a single change on a project it will probably be the REQUIREMENTS.&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;I&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:georgia;&quot;&gt;&lt;span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt;f&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; there ever is a mission critical project with ZERO chance for requirements change, deep well of resources in a highly regulatory environment, I wouldn&#39;t hesitate subscribing to the Waterfall process. But I hear they&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#333333;&quot;&gt; are retiring the space shuttles ...&lt;/span&gt;&lt;/span&gt;</description><link>http://beansonrocks.blogspot.com/2008/10/let-water-fall.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMiLbkt1NxcOGGzA73_6qd7VjtaWzkpBPseb7shsPYh8b8NTm_Zeymj5kwGjG-4XuooEuVXTVCglXAMU1z6eCHM5CAZpZnlcrFkVbi3X5Y-to_rVu94SXRqq0LDubL-2v8G6EYA/s72-c/waterfall.JPG" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>