<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;Dk4MRH8zeip7ImA9WhVTEk0.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290</id><updated>2012-02-25T14:23:05.182-07:00</updated><title>A Buddhist Software Engineer</title><subtitle type="html">This blog is about my perspectives as a Buddhist and it's effect on my performance as software engineer.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://toddblackley.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/ABuddhistSoftwareEngineer" /><feedburner:info uri="abuddhistsoftwareengineer" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;Dk4MRH8yeip7ImA9WhVTEk0.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-5565577716956460939</id><published>2012-02-25T14:21:00.002-07:00</published><updated>2012-02-25T14:23:05.192-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-25T14:23:05.192-07:00</app:edited><title>Words (they are really all we have)</title><content type="html">Words are simple, short and yet can evoke so many emotions. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-K9vS81dcyC4/T0lOpXm6i5I/AAAAAAAAAMo/9MB6G_AxXYk/s1600/hand.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="214" src="http://2.bp.blogspot.com/-K9vS81dcyC4/T0lOpXm6i5I/AAAAAAAAAMo/9MB6G_AxXYk/s320/hand.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Case in point (from the way back files) : &amp;nbsp;The words "Won't Fix". &amp;nbsp;This originated from a QA engineer that has created an issue for modification to how a feature operated.&amp;nbsp; Fair enough. &amp;nbsp;The request was talked about and decided that this modification would not be implemented. &amp;nbsp;The issue was closed with the QA engineer using the words, "Won't Fix". &lt;br /&gt;
&lt;br /&gt;
Simple words but they express much about the perception of the QA engineer. &amp;nbsp;"Won't Fix" seems to indicate that 1) the feature is broken and 2) the development engineer is ignoring a known error. &amp;nbsp;Of course the perception from development engineer may have been that 1) the feature operates as expected and 2) making the suggested change would not be beneficial to the product.&lt;br /&gt;
&lt;br /&gt;
So much in a simple word.&lt;br /&gt;
&lt;br /&gt;
So how simple can a word be and still contain so much subjectivity and emotion behind it?&lt;br /&gt;
&lt;br /&gt;
"Hacked" - That code is "hacked" together.&lt;br /&gt;
"Best Practice" - My solution is the "Best Practice".&lt;br /&gt;
"Buggy" - That code is "Buggy".&lt;br /&gt;
&lt;br /&gt;
These words tend to shutdown and prevent discussion of the issue at hand, as they try to promote a position as fact to direct a conversation in a specific direction (per the speaker). &amp;nbsp;In some cases the above statements may be true, but they are also overused by developers to promote a specific (and many times very subject) viewpoint.&lt;br /&gt;
&lt;br /&gt;
Words are tied to emotions and beliefs, with even the use of very simple words exposing the human behind the conversation. &amp;nbsp;It's not that some engineers do this, it's that all humans do this. &amp;nbsp;The trick is to accept that we do this and work to both minimize this behavior in ourselves and work around this when it comes from others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-5565577716956460939?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8lP9vVdXY3p6Cs_xMV6UIxERvQk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8lP9vVdXY3p6Cs_xMV6UIxERvQk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8lP9vVdXY3p6Cs_xMV6UIxERvQk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8lP9vVdXY3p6Cs_xMV6UIxERvQk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/2BSHSd7GjBI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/5565577716956460939/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2012/02/words.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/5565577716956460939?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/5565577716956460939?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/2BSHSd7GjBI/words.html" title="Words (they are really all we have)" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-K9vS81dcyC4/T0lOpXm6i5I/AAAAAAAAAMo/9MB6G_AxXYk/s72-c/hand.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2012/02/words.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YGQXw7cCp7ImA9WhRaF00.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-1826960990554344228</id><published>2012-02-19T17:13:00.002-07:00</published><updated>2012-02-19T19:32:00.208-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-19T19:32:00.208-07:00</app:edited><title>The Call to Teaching Programming</title><content type="html">Lately there has been a call by governments to teach computer programming to more students and at an earlier age. &amp;nbsp;This is coming from both the UK and the US and I can understand this concern with an emerging workforce lacking the skills required to compete with it's business demands.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-92gG31-0p6k/T0GPLX2J41I/AAAAAAAAAMg/cDRTTi69eU8/s1600/gear.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://1.bp.blogspot.com/-92gG31-0p6k/T0GPLX2J41I/AAAAAAAAAMg/cDRTTi69eU8/s320/gear.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
I understand this goal, as you always want the most educated and creative population as possible. &amp;nbsp;Knowledge is always beneficial to individuals, &amp;nbsp;communities and countries. &amp;nbsp;Every student will not have the aptitude for programming, but it should not be scary to them either. &lt;br /&gt;
&lt;br /&gt;
Teaching software development is not the same as a trade school with the goal of lesson drills and testing for repeating those lessons. &amp;nbsp;As with any good education the ability to understand and apply what has been learned in new conditions and solve problems is the real goal. &lt;br /&gt;
&lt;br /&gt;
Teaching 1 million Visual Basic programmers would not go far to increasing our technology workforce. Teaching 1 million knowledgable creative, understanding programmers would. &amp;nbsp;The goal is true but the difficulty is in the implementation. &amp;nbsp;With the focus on the mechanical logic, testing and measuring results, I'm not sure this will get very far. &amp;nbsp;First of all I'm not sure we really know how to teach software development. &amp;nbsp;We have the languages, the lessons, it just feels that there is so much that we are missing. &lt;br /&gt;
&lt;br /&gt;
I tend to think of creating software is a mixture of logic, knowledge, emotions and physiology with so much not being explored on how human goals effect development. &amp;nbsp;With the web filled with technology knowledge of how to program with specifics on every possible behavior and operation, what is there to teach? &amp;nbsp;Well, the web is filled with information, but it needs to be placed in the context of human lives and the dynamic interaction of a complete development project. &amp;nbsp;These web islands need to combine into a complete and integrated world that the students can navigate through. &amp;nbsp;Thats what we could teach.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
(Do you know what the photo is of?)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-1826960990554344228?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oVNT7PAfcHNvX20ZtWpmpoq-dKE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oVNT7PAfcHNvX20ZtWpmpoq-dKE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oVNT7PAfcHNvX20ZtWpmpoq-dKE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oVNT7PAfcHNvX20ZtWpmpoq-dKE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/QI9c7zKURd8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/1826960990554344228/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2012/02/call-to-teaching-programming.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/1826960990554344228?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/1826960990554344228?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/QI9c7zKURd8/call-to-teaching-programming.html" title="The Call to Teaching Programming" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-92gG31-0p6k/T0GPLX2J41I/AAAAAAAAAMg/cDRTTi69eU8/s72-c/gear.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2012/02/call-to-teaching-programming.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4CR3Y8eyp7ImA9WhRaEEo.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-4012288536758397869</id><published>2012-02-12T11:19:00.001-07:00</published><updated>2012-02-12T13:02:46.873-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-12T13:02:46.873-07:00</app:edited><title>Breast Cancer &amp; Software</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-kGPV5ScKeTM/Tzf_g3LaqSI/AAAAAAAAAMI/IPYjWx8JK90/s1600/People.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-kGPV5ScKeTM/Tzf_g3LaqSI/AAAAAAAAAMI/IPYjWx8JK90/s320/People.jpg" width="214" /&gt;&lt;/a&gt;&lt;/div&gt;The Susan G. Komen "Stomp for the Cure" was last weekend. &amp;nbsp;I've been doing this event for about the last 8 years as it covers both my love for snowshoeing and supporting breast cancer research. &amp;nbsp;But this year has been different with the fiasco of Komen cutting off and then restoring funding of Planned Parenthood, in what was viewed as a very political move by some of it's leadership. &lt;br /&gt;
&lt;br /&gt;
What does this have to do with Software. &amp;nbsp;Well it's about how an organization can confuse it's mission for it's self. &amp;nbsp;There was no confusion for their donors, the mission was women's health and not the Komen foundation. &amp;nbsp;The talk at the snowshoe was all about how they would not have participated if the funding was not restored, with many still very ticked off at Komen.&lt;br /&gt;
&lt;br /&gt;
Back to software. &amp;nbsp;I suspect this is the same thing that happened to Microsoft in the mobile market. &amp;nbsp;They used to own the smartphone segment and being Microsoft, it appears they expected the market and developers to stay with Microsoft. &amp;nbsp;They didn't. &amp;nbsp;The iPhone was easier to use, beautiful and provided a larger benefit to users. &amp;nbsp;When the developer tools were released developers flocked to create apps for it. &amp;nbsp; Even though developers needed to learn a new language, libraries and framework (Objective-C, Cocoa, etc) they flocked to it. &amp;nbsp;Microsoft mobile fortunes dried up.&lt;br /&gt;
&lt;br /&gt;
What was Microsoft's mission in mobile? &amp;nbsp;It appeared to be "because we are Microsoft" which does not mean a lot to consumers or developers. &amp;nbsp;Apple's mission appears to make products that are easy to use and beautiful to look at and hold. &amp;nbsp;Beauty evokes is a strong emotional response, you don't see may weeds in vases for valentines day.&lt;br /&gt;
&lt;br /&gt;
So what is Google's mission statement. &amp;nbsp;Surely it must be more than "not Apple and not Microsoft". &amp;nbsp;And RIM? &amp;nbsp;They used to be enterprise security and communications, but that appears to be not enough anymore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-4012288536758397869?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pQhW8fP_7NgH6t1RqRoL2LGZ8kM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pQhW8fP_7NgH6t1RqRoL2LGZ8kM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pQhW8fP_7NgH6t1RqRoL2LGZ8kM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pQhW8fP_7NgH6t1RqRoL2LGZ8kM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/NMrZj8PR28I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/4012288536758397869/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2012/02/breast-cancer-software.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4012288536758397869?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4012288536758397869?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/NMrZj8PR28I/breast-cancer-software.html" title="Breast Cancer &amp; Software" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-kGPV5ScKeTM/Tzf_g3LaqSI/AAAAAAAAAMI/IPYjWx8JK90/s72-c/People.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2012/02/breast-cancer-software.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMMQ3Y_eCp7ImA9WhRbFEs.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-8022514627386860417</id><published>2012-02-05T11:20:00.001-07:00</published><updated>2012-02-05T11:28:02.840-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-05T11:28:02.840-07:00</app:edited><title>What Apple Means To Me</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-D1Y0J0ub5eE/Ty7D00_9p4I/AAAAAAAAAL0/drnhZ0Sj9qM/s1600/stop.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-D1Y0J0ub5eE/Ty7D00_9p4I/AAAAAAAAAL0/drnhZ0Sj9qM/s320/stop.jpg" width="214" /&gt;&lt;/a&gt;&lt;/div&gt;Yes, I have an iMac and iPad at home but I work in a world of Windows and Linux. &amp;nbsp;Apple for me is not a religion but opportunity. &amp;nbsp;Not in the monetary sort of way but in mental or opening up of ideas and thoughts. &lt;br /&gt;
&lt;br /&gt;
I've lived with the grey windowing boxes for so long following the needs of the enterprise that nothing seemed to really change. &amp;nbsp;Faster processors, bloated software and frankly the same terrible UI that me and everyone developed. &amp;nbsp;Yuck. &amp;nbsp;The web has helped open up the options but it was still confined to the philosophy of mouse and menus. &amp;nbsp;Even the new Ribbon toolbars in Office is a feeble attempt to break out of the same tired UI that has trapped us all. &amp;nbsp;This tells you just how stuck MS thinking is. &amp;nbsp;It's changing of late but I'm not convinced they can make their vision stick.&lt;br /&gt;
&lt;br /&gt;
Event the news this week of Android royalty telling developers to ditch the menu button in their apps is another nail in the coffin of old UI's.&lt;br /&gt;
&lt;br /&gt;
Apple has open the door to not only touch UI's but what it means for a personal computer. &amp;nbsp;You hold it in your hand, you use your hand (and voice) to interact with it and it does not run Office. &amp;nbsp;If Office is released on the iPad it will sale tons, but Office is an application of the old guard enterprise and the iPad is personal. &amp;nbsp;This is not just a different form factor that contains the same business software, it has nothing to do with the enterprise and that confuses the old guard. &lt;br /&gt;
&lt;br /&gt;
It's always been going in this direction. &amp;nbsp;From main frames, to desktops, to laptops to phones, except Apple decided to ignore business and skip getting businesses (aka IT's) permission and cut to the chase. &amp;nbsp; People where so confused by what the iPad was for, when just holding it you hands would tell you. &amp;nbsp;It's yours alone to do what ever you want.&lt;br /&gt;
&lt;br /&gt;
Even Google has a problem with this whole notion. &amp;nbsp;What the heck is Chrome OS for? &amp;nbsp;It's not personal as you can't use it anywhere (try standing up and use it) and it's appears still tied to working with business and IT. &amp;nbsp;In fact the whole notion of providing Office type applications is, well still old guard thinking. &amp;nbsp;People are not businesses, they need different tools in their life.&lt;br /&gt;
&lt;br /&gt;
To me apple provides me with an opportunity to explore the tech world unshackled by IT and the past.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-8022514627386860417?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jZr0BblQyFRdKlo50XSJLNaLhx4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jZr0BblQyFRdKlo50XSJLNaLhx4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jZr0BblQyFRdKlo50XSJLNaLhx4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jZr0BblQyFRdKlo50XSJLNaLhx4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/SdrSgSeSZeI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/8022514627386860417/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2012/02/what-apple-means-to-me.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/8022514627386860417?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/8022514627386860417?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/SdrSgSeSZeI/what-apple-means-to-me.html" title="What Apple Means To Me" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-D1Y0J0ub5eE/Ty7D00_9p4I/AAAAAAAAAL0/drnhZ0Sj9qM/s72-c/stop.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2012/02/what-apple-means-to-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4NQHs9eip7ImA9WhRUF0w.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-3373466262291937362</id><published>2012-01-27T15:24:00.001-07:00</published><updated>2012-01-27T18:09:51.562-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-27T18:09:51.562-07:00</app:edited><title>Research and The Cycle of Life and Death</title><content type="html">I've been going thought a learning phase this year. &amp;nbsp;There have been so many new (at least to me) tools and products that finding time to research them and deciding if should spend my precious time on using them is a challenge. &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-s-Dfl44UrVk/TyMaC0BrBzI/AAAAAAAAALs/n_yz8TbKZ9s/s1600/Kami.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-s-Dfl44UrVk/TyMaC0BrBzI/AAAAAAAAALs/n_yz8TbKZ9s/s320/Kami.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
What I'm looking at now....&lt;br /&gt;
&lt;br /&gt;
iBook Author. &amp;nbsp;I'm currently (slowly) working on an eBook project and I'm using Pages as my writing tool because 1) I already have it and know it and 2) it can export directly to the ePub format. &lt;br /&gt;
&lt;br /&gt;
Now Apple comes along and creates their TextBook format along with the iBook Author tool which uses their own extensions. &amp;nbsp;The draw for me is the media inclusion in the book of dynamic content. &amp;nbsp;The map images, photos and videos are simple and know content types. &amp;nbsp;What caught my eye was the HTML content is in the form of DashCode apps / widgets. &amp;nbsp;This had led me down a different trail of finding out more about DashCode as it's dual use for iBook 2 and Safari mobile apps. &amp;nbsp;I always like it when I can double my use for knowledge I've gained. &amp;nbsp;My first book project would be free so the license issues with iBook 2 would not prevent me from distributing the book to other ebook distributers. &amp;nbsp;There may be a iOS customer that could benefit from a lightweight (quick / cheap) DashCode mobile app. &amp;nbsp;This is on going study.&lt;br /&gt;
&lt;br /&gt;
My other research area are for REST WebServices that are lightweight. &amp;nbsp;I've used many implementations of these but I've seen a couple of articles on Node.js so I did a wee bit of research on this. &amp;nbsp;My first contact with Node.js articles stated it was "the next Ruby On Rails", which really turned me off. &amp;nbsp;When ROR first appeared on the radar ROR was really hyped up. &amp;nbsp;So much so that it's claims almost extended to brining back the dead. &amp;nbsp;It took a few years but the hype has been gone and ROR saw it's peak years ago with almost no press today. &amp;nbsp;It could never live up to it's expectations and other shinny objects drew attention of early adopters. &amp;nbsp;Back to Node.js. &lt;br /&gt;
&lt;br /&gt;
Right now I do not feel that I'll continue my research on Node.js. &amp;nbsp;It feels like a solution in search of a problem with it's main attraction being the use of JavaScript on both the client and the server. &amp;nbsp;It's not that I'm against running JavaScript on the server, I'm not, but 1) JavaScript was not designed for the server in the first place and 2) Node.js touts it's own webServer for Node.js operation. &lt;br /&gt;
&lt;br /&gt;
Just like ROR had it's own WebServer so does Node.js, and these should be used instead of Apache or JBoss that are scaleable, secure, mature and documented? &amp;nbsp;Yeah, so we wrap the Node.js server under Apache, then we have increased the complexity a bit. &amp;nbsp;Then there are no dev/debugging tools for this yet (yeah you can alway patch something together, but you get my point). &amp;nbsp;ROR spent years trying to convince everyone that it could scale with every release being so much better. &amp;nbsp;Now Node.js is claiming it can scale with it's lightweight processes. &amp;nbsp;Most of the information does state that Node.js is best for a specific usage of short WS requests (and they do state this which is great), but please don't compare it to ROR and follow in it's mistakes.&lt;br /&gt;
&lt;br /&gt;
Node.js will not make it past my research phase. &amp;nbsp;It's tools are too immature (I'm not that early of an adopter) and I'll not sure that it will make it out of the early adopter usage.&lt;br /&gt;
&lt;br /&gt;
I don't know if DashCode will gain wide adoption. &amp;nbsp;The IDE for it has not been updated for a couple of years but it may find life in a different form (iBooks). &amp;nbsp;As for Node.js, I'll wait and see. &amp;nbsp;ROR rocketed so high and burned out, not unlike a number of technologies in the past (Wicket, AOP anyone?), so may Node.js. &amp;nbsp; The lifecycle of technology is not unlike those of introduced species, some fill a niche and some don't make it. &lt;br /&gt;
&lt;br /&gt;
It's life, just in a different form.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-3373466262291937362?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8Mm-wcPP04yx8n7hRBz0V27nEiE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8Mm-wcPP04yx8n7hRBz0V27nEiE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8Mm-wcPP04yx8n7hRBz0V27nEiE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8Mm-wcPP04yx8n7hRBz0V27nEiE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/j7MCiqxBw_A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/3373466262291937362/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2012/01/cycle-of-life-and-death.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/3373466262291937362?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/3373466262291937362?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/j7MCiqxBw_A/cycle-of-life-and-death.html" title="Research and The Cycle of Life and Death" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-s-Dfl44UrVk/TyMaC0BrBzI/AAAAAAAAALs/n_yz8TbKZ9s/s72-c/Kami.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2012/01/cycle-of-life-and-death.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUCRXg9fyp7ImA9WhRVEEk.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-3368391763490922394</id><published>2012-01-08T11:44:00.000-07:00</published><updated>2012-01-08T11:44:24.667-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T11:44:24.667-07:00</app:edited><title>Striving to be Happy</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ky6ZHz0CgT4/Twnbj3azL-I/AAAAAAAAALQ/FDKybOMRiFY/s1600/Happiness.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://2.bp.blogspot.com/-ky6ZHz0CgT4/Twnbj3azL-I/AAAAAAAAALQ/FDKybOMRiFY/s320/Happiness.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Happiness comes from within. &amp;nbsp;When creating software for a living there are many times that I would rather be coding in a different language, designing a different app or at home with my slippers on an a Hot cocoa when working on my computer. &amp;nbsp;But most of the time I'm not. &amp;nbsp;I get paid for creating programs that others need, in the language that the project requires and in a place that is not my home.&lt;br /&gt;
&lt;br /&gt;
So how can I stay happy? &amp;nbsp;Well, first I get paid, but more than that, they appreciate what I can provide for them and this provides me with much happiness. &amp;nbsp;This takes me a long way, but not all the way all of the time.&lt;br /&gt;
&lt;br /&gt;
I need variety, new knowledge and something I can call my own. &amp;nbsp;For software developers, our applications, our code has a limited lifespan. &amp;nbsp;Sometimes we will work on a project and it's never used. &amp;nbsp;We will have worked on a project for months or even a year and it's thrown away. &amp;nbsp; Other times our code lives for a few years, to be replaced when needs change or it gets re-written. &amp;nbsp;We never really get the sense of benefits to the users. &amp;nbsp;We can feel out of touch. &amp;nbsp;I'm sure most users would never even think of the lives of the developers that created their applications (except when there are bugs) and what they put into it.&lt;br /&gt;
&lt;br /&gt;
So what are we to do? &amp;nbsp;We do nothing. &amp;nbsp;We change jobs. &amp;nbsp;We slow down at work. &amp;nbsp;We try to change the language we use at work. &amp;nbsp;We try to change the process we use at work. &amp;nbsp;We get depressed. &amp;nbsp;We yell at others. &amp;nbsp;We do all sorts of things, that from an outside perspective, are not beneficial to us or others around us.&lt;br /&gt;
&lt;br /&gt;
There is no one right answer to making yourself happy, but each person needs to look at themselves and ask themselves what would make them happy. &amp;nbsp;This can take lots of time, but it's only something that you can answer. &lt;br /&gt;
&lt;br /&gt;
Forcing others to switch languages or process to make you happy should not be high on the list. &amp;nbsp; You would not want others telling you what to do to make them happy, so why should you?&lt;br /&gt;
&lt;br /&gt;
Changing jobs may work, if (make sure it's the right if), this is truly what will make you happy and not just a pattern of change. &amp;nbsp;I've been in positions where it appears the company is really working hard to make their employees un-happy.&lt;br /&gt;
&lt;br /&gt;
Slowing down and doing less (or worse) at work may be a self fulling prophecy, so you feel you have to leave. &amp;nbsp;It's hard to see how that would make anyone happy.&lt;br /&gt;
&lt;br /&gt;
It can be hard not to strike out at others when your not happy. &amp;nbsp;But understand that this is a sympton and not a cure.&lt;br /&gt;
&lt;br /&gt;
I'm still striving on what makes me happy. &amp;nbsp;I work on it all the time. &amp;nbsp;I find that focusing on small accomplishments are a big win. &amp;nbsp;I have a number of side projects going on that are not meant to bring in much value other that to make me happy. &amp;nbsp;Some I know I will never finish, others may only take one hour, but they make me happy and that suites me fine.&lt;br /&gt;
&lt;br /&gt;
At work I find pleasure in finishing some aspect of what I'm working on. &amp;nbsp;It could be a design, a feature, a bug or talking with a co-worker and understanding how something works (talking to others is under rated). &amp;nbsp;It's the small things for me. &amp;nbsp;I don't worry too much about the bigger issues as they tend to get smaller as I attend to the smaller aspects.&lt;br /&gt;
&lt;br /&gt;
In the end, I find I can be happy with small aspects of life. &amp;nbsp;If I look at all that is going around the world, then that is when I get over whelmed with it all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-3368391763490922394?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vPWg6DZST1YH2wPO-SFnuwcWrlw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vPWg6DZST1YH2wPO-SFnuwcWrlw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vPWg6DZST1YH2wPO-SFnuwcWrlw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vPWg6DZST1YH2wPO-SFnuwcWrlw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/Auxi_hajCX0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/3368391763490922394/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2012/01/striving-to-be-happy.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/3368391763490922394?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/3368391763490922394?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/Auxi_hajCX0/striving-to-be-happy.html" title="Striving to be Happy" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ky6ZHz0CgT4/Twnbj3azL-I/AAAAAAAAALQ/FDKybOMRiFY/s72-c/Happiness.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2012/01/striving-to-be-happy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMNRXs_cCp7ImA9WhRWFU4.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-4290010080807154003</id><published>2012-01-02T12:01:00.002-07:00</published><updated>2012-01-02T13:01:34.548-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-02T13:01:34.548-07:00</app:edited><title>Is Software Folk Art?</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/-hXGRh2PGkes/TwH3Pm6VVXI/AAAAAAAAAKw/4l1mfRuuwxg/s1600/FolkArt.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-hXGRh2PGkes/TwH3Pm6VVXI/AAAAAAAAAKw/4l1mfRuuwxg/s320/FolkArt.jpg" width="214" /&gt;&lt;/a&gt;Just got back from a trip to the northern California Coast area, Guerneville to be exact, and ran into some folk art (on purpose) by the artist of Partick Amiot in Sebastopal. &amp;nbsp;This is one of his pieces on the right. &amp;nbsp;Very cool to see out in a yard. &amp;nbsp;I then ran into another piece of somewhat practical (unintentional) folk art on a walk (see below). &amp;nbsp;What a hoot to see something that was created for a practical purpose (lighting and holding up the mail box), but could also be placed as folk art. &amp;nbsp;This made my day. &amp;nbsp;I was just imagining what the owner was thinking when they put this together.&lt;br /&gt;
&lt;br /&gt;
Seeing this I of course got thinking if this somehow equates to software and it's development. &lt;br /&gt;
&lt;br /&gt;
OK, lets compare the creation of folk art and software.&lt;br /&gt;
&lt;ul&gt;&lt;a href="http://3.bp.blogspot.com/-7rpI1sPfNWM/TwH588xovPI/AAAAAAAAALI/bqAJuVr3Paw/s1600/Lamp.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-7rpI1sPfNWM/TwH588xovPI/AAAAAAAAALI/bqAJuVr3Paw/s320/Lamp.jpg" width="214" /&gt;&lt;/a&gt;
&lt;li&gt;If you have two different software groups create an application with only vague design or requirements, how different would the resulting applications be?&lt;/li&gt;
&lt;li&gt;How much of of the developers personality and perceptions be projected into the code, language, operation, UI, features, stability, etc?&lt;/li&gt;
&lt;li&gt;How maintainable would the code be? &amp;nbsp;(Seeing as most of a projects life is spent in maintaining, would this be a concern?)&lt;/li&gt;
&lt;li&gt;Would the different teams refer to their work as "Engineering" and how would they justify this?&lt;/li&gt;
&lt;li&gt;At the completion of the applications (or after a set period of time), what would prospective buyers (customers) pay for the applications and what would their comments be? &amp;nbsp;&lt;/li&gt;
&lt;li&gt;How do you build a business on developing software like this? and getting customers to pay big money for it?&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;I love folk art. &amp;nbsp;I get a different view of the world and my take on it. I even like Folk software development once in a while and the freedom and creativity it brings.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;However there is the time and place for folk art and not every business can support it. &amp;nbsp;For the times when detail designs, requirements, timetables and expected results must be attained, folk software development may not be the best choice.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;But the world needs both.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-4290010080807154003?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aaNZC6WKS2kn6L65X0M-bvXKZ6U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aaNZC6WKS2kn6L65X0M-bvXKZ6U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aaNZC6WKS2kn6L65X0M-bvXKZ6U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aaNZC6WKS2kn6L65X0M-bvXKZ6U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/nyBnvihGBGo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/4290010080807154003/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2012/01/is-software-folk-art.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4290010080807154003?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4290010080807154003?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/nyBnvihGBGo/is-software-folk-art.html" title="Is Software Folk Art?" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-hXGRh2PGkes/TwH3Pm6VVXI/AAAAAAAAAKw/4l1mfRuuwxg/s72-c/FolkArt.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2012/01/is-software-folk-art.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEABQ3o8cSp7ImA9WhRXFE4.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-8754921579106675049</id><published>2011-12-20T20:05:00.001-07:00</published><updated>2011-12-20T20:05:52.479-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-20T20:05:52.479-07:00</app:edited><title>Causing Myself Pain</title><content type="html">The basic beliefs of Buddhism is that there is much suffering in life and much of the suffering is self inflicted. &amp;nbsp;There are many things that have caused me pain and strife in my life, but I really work on not adding to the amount of strife that I'll already endure. &amp;nbsp;My developing software is always a source of self-induced strife and I look for reducing my self punishment as much as possible. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-9bQNfqQC4sg/TvFEMBnT6hI/AAAAAAAAAKM/OsZJD6Xhs4A/s1600/BlueDoor.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-9bQNfqQC4sg/TvFEMBnT6hI/AAAAAAAAAKM/OsZJD6Xhs4A/s320/BlueDoor.JPG" width="240" /&gt;&lt;/a&gt;If you have been in this business a long time then you have been approached by friends or associates to create some software for free. &amp;nbsp;It's a hard choice sometimes, but the best answer maybe 'no'. &amp;nbsp;Software takes time, the lifecycle is long (how long to maintain?) and it can distract time from your family and happiness. &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Does this apply to companies as well? &amp;nbsp;I would think so. &amp;nbsp;Let me explain what I see is currently occurring in mobile developement.&lt;br /&gt;
&lt;br /&gt;
Knowing both iOS and Android development, I've noticed a divergence of benefit to the developers and to the respective companies. &amp;nbsp;iOS is only on two form factors (iPhone and iPad). &amp;nbsp;Android is on a range of form factors from 3" to 10" and above, each with varying screen ratios. &amp;nbsp;For the most part, the general development was the same. &lt;br /&gt;
&lt;br /&gt;
You could handle the UI controls and layout in code (lowest level), create views for each screen on a screen (controller / activity) by screen basis. &amp;nbsp;So far these have been the same for both platforms.&lt;br /&gt;
&lt;br /&gt;
For iOS you had the option of having two different views (nib files) for each controller, one for iPhone and one for iPad. &amp;nbsp;The different views could both access the same (or different) controllers for sharing code. &amp;nbsp; Almost all UI could be created using the Interface Builder which is a big help. &amp;nbsp;The down side was IB had a learning curve that can throw developers off the iOS platform.&lt;br /&gt;
&lt;br /&gt;
For Android you basically had multiple layouts possible for each activity. &amp;nbsp;This was basically the same as iOS. &amp;nbsp;The main difference was that most everything with the layout was hand rolled XML with references to other XML files and resources. &amp;nbsp;Lots of references and Ids to keep track of. &amp;nbsp;Yes there is a UI Builder but they could use a lot of work, so I've found it's just easier to edit the layouts by hand.&lt;br /&gt;
&lt;br /&gt;
Now the divergence..&lt;br /&gt;
&lt;br /&gt;
Android did not handle tablets, so a new pattern was added to the mix of Activities and Layouts. &amp;nbsp;These are the Fragment classes. &amp;nbsp;This will work but adds to the burden of the developer and increases the complexity and permutation of activities, layouts and now fragments to try to provide workable solutions for the wide range of form factors. &amp;nbsp;All this while not providing any additional tools to handle this added complexity. &amp;nbsp;It's still all XML, references and resources basically by hand. &amp;nbsp;So as a developer do you make a decision that all forms from 3"-7" get the phone version and the 8"+ get the tablet version, or do you try to create layouts and fragments for even more sizes to provide better screen usage? &amp;nbsp;It's not looking good.&lt;br /&gt;
&lt;br /&gt;
iOS on the other hand has made life easier for developers. &amp;nbsp;You can still create nib files for each controller, but the preferred method is now the storyboard. &amp;nbsp;Instead of multiple nib files there is now a single storyboard file for each form factor. &amp;nbsp;It contains all the views, controls, segues and transitions for all the views for the complete app. &amp;nbsp;This is all laid out in a single screen in Xcode for the developer to work with and provide a single screen view of the complete app. &amp;nbsp;Navigation, Tab, SplitView, Modal and others UI patterns are all supported. &amp;nbsp;Each view within the storyboard can then be assigned to a specific Controller with the UI controls wired up to controllers objects. &amp;nbsp;For a universal app there would be one storyboard for iPhone and one for iPad, each showing the complete workflow and operation and without any code, xml, references or Ids. &amp;nbsp;Apple has provided a solution that has reduced the complexity of the code and made it easier for the developer while still providing an optimal solution for the user.&lt;br /&gt;
&lt;br /&gt;
Apple appears to be limiting choice, with benefits to its developers, users (better apps) and themselves, where they can continue to move forward with tools and platform without too much technical debt.&lt;br /&gt;
&lt;br /&gt;
Google appears to be heading in the opposite direction. &amp;nbsp;With the possible permutations from all the different form factors, increased complexity of the Activity/Fragment/Layout pattern, along with developed less likely to provide solutions for all options, a case could be made that Google is hurting themselves, their developers and users.&lt;br /&gt;
&lt;br /&gt;
Which path reduces my future pain?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-8754921579106675049?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lsPULUuNHkdjRnEJsKlNzHO9Z5s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lsPULUuNHkdjRnEJsKlNzHO9Z5s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lsPULUuNHkdjRnEJsKlNzHO9Z5s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lsPULUuNHkdjRnEJsKlNzHO9Z5s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/YgaH8xeGmSY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/8754921579106675049/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/12/causing-myself-pain.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/8754921579106675049?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/8754921579106675049?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/YgaH8xeGmSY/causing-myself-pain.html" title="Causing Myself Pain" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-9bQNfqQC4sg/TvFEMBnT6hI/AAAAAAAAAKM/OsZJD6Xhs4A/s72-c/BlueDoor.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/12/causing-myself-pain.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQCSHY9eCp7ImA9WhRXEE0.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-2388394397963308661</id><published>2011-12-15T19:26:00.000-07:00</published><updated>2011-12-15T19:26:09.860-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-15T19:26:09.860-07:00</app:edited><title>Sybil and The State of Computers</title><content type="html">I just finished reading "Sybil Exposed" which I found fascinating on multiple levels. &amp;nbsp;On one side it was about how much &amp;nbsp;a single person can influence a profession (for better or in this case for worse) and how the progression of the Psychotherapy field, evolved over time, with some truly bazaar concepts and methodology.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-mkdOetoTpeA/TuqkaCE3Z_I/AAAAAAAAAKA/jU_7s9COjXA/s1600/same.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="130" src="http://3.bp.blogspot.com/-mkdOetoTpeA/TuqkaCE3Z_I/AAAAAAAAAKA/jU_7s9COjXA/s320/same.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;This evoloution is not unique to this field but I'm using it to illustrate my points.&lt;br /&gt;
&lt;br /&gt;
At any moment in time, the actions, concepts and beliefs for any field may appear to be correct and normal. But when viewed in hindsight many years later, can be seen for what they are, bazaar and narrow minded.&lt;br /&gt;
&lt;br /&gt;
The concepts of Freud with the fixation on parenting and sex. &amp;nbsp;The use of drugs and hyponosis induced states to reveal memorys that never existed, was a common and accepted practiced. &amp;nbsp;Some viewed this as normal, but not now. &amp;nbsp;Today we know the detrimental effects of these therapies had and would not dare to revert back to those practices. &amp;nbsp;We've changed and learned.&lt;br /&gt;
&lt;br /&gt;
Flash forward to today with software and computers. &amp;nbsp;The notion of going into a room or a desk where the computer is located, appears normal. &amp;nbsp;Likewise the need for a physical keyboard and mouse to act as a intermediary to interfacing with the computer, is normal.&lt;br /&gt;
&lt;br /&gt;
When the iPad was released I was one of the first in line. &amp;nbsp;I did not know where this was going to head up but I knew that it was the start of a big change in computers. &amp;nbsp; Plenty of nay sayers. &amp;nbsp;Plenty of fad callers. &amp;nbsp;But think about it as if you where from the future. &amp;nbsp;Why would "you" have to go to the computer, why don't you just take it with you? &amp;nbsp;Why do we have to work in "cubes"? &amp;nbsp;Because that is where the phone and computer are? &amp;nbsp;Yeah, right. &lt;br /&gt;
&lt;br /&gt;
Now the nay sayers state that tablets are great at consuming content but not for production. &amp;nbsp;To that I say wait. &amp;nbsp;Tablets will keep chipping away at desktops until the majority are not desktops. &amp;nbsp;Apple has already done this years ago in their stores. &amp;nbsp;So how many other businesses really need a desktop?&lt;br /&gt;
&lt;br /&gt;
I can't think of any applications that I've written...ever...that could not be used on a tablet or phone with providing greater benefit to the user in the process. &lt;br /&gt;
&lt;br /&gt;
Security may be an issue with tablets and mobile devices (both for mobility and networking) but security is being forced to change how they view these devices. &amp;nbsp;You can't stop progress, but the nay sayers would like to.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-2388394397963308661?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tHJbhOjxiK1Mqqc5aALugMPncyQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tHJbhOjxiK1Mqqc5aALugMPncyQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tHJbhOjxiK1Mqqc5aALugMPncyQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tHJbhOjxiK1Mqqc5aALugMPncyQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/nerTbcoJAEM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/2388394397963308661/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/12/sybil-and-state-of-computers.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/2388394397963308661?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/2388394397963308661?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/nerTbcoJAEM/sybil-and-state-of-computers.html" title="Sybil and The State of Computers" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-mkdOetoTpeA/TuqkaCE3Z_I/AAAAAAAAAKA/jU_7s9COjXA/s72-c/same.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/12/sybil-and-state-of-computers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQNQ344cCp7ImA9WhRQEEk.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-8701159815297486814</id><published>2011-12-04T13:37:00.002-07:00</published><updated>2011-12-04T16:13:12.038-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-04T16:13:12.038-07:00</app:edited><title>Multi-Tasking (in Android &amp; iOS)</title><content type="html">This post is not about how-to perform multi-tasking for Android and iOS, it's about my thinking related to how I handle threading issues in Android and iOS.&lt;br /&gt;
&lt;br /&gt;
I've written multi-threading code for decades (in C/C++ and Java) before I got into mobile development. &amp;nbsp;Threading was one of those issues that used to be a black art. &amp;nbsp;You needed to handle and understand all of the semaphores, mutating and memory issues to provide a robust threaded application. &amp;nbsp;It's a lot easier now in both Android and iOS. &amp;nbsp;Clear examples and simplified code make threading quick and easy, but there is still complexity underlying the concept of threading for the UI.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://2.bp.blogspot.com/-wBz0lQHmGek/TtvRgbbU5eI/AAAAAAAAAJ4/suVgH50zCQc/s1600/Multitasking.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-wBz0lQHmGek/TtvRgbbU5eI/AAAAAAAAAJ4/suVgH50zCQc/s320/Multitasking.JPG" width="320" /&gt;&lt;/a&gt;My biggest insight when switching to mobile threads is the pattern of placing the threading inside of the activity or controller. &amp;nbsp;This is a big plus for simplicity and ease of use for development. &amp;nbsp;The thread is right there where it's needed and the thread has access to the Activities (or Controller's) data members for updating the UI when it's safe. &amp;nbsp;Cool, very cool. &amp;nbsp;Nice, neat and local to it's usage. &amp;nbsp;Threading for the masses.&lt;br /&gt;
&lt;br /&gt;
For most of my threading issues this is what I use. &amp;nbsp;But this local pattern is not suited for all needs and is where the patterns for Android and iOS diverge.&lt;br /&gt;
&lt;br /&gt;
One of my biggest issues with Android is the destruction of the Activity on rotation. &amp;nbsp;Not a big deal when doing Android phone development where the user is primary expected to to use a single orientation, but tablets are more rotatable. &amp;nbsp;The screen ratio is closer to not have a single preference and &amp;nbsp;different uses prefer different orientation (books -vs- movies, etc.). &amp;nbsp;With such a large screen to present on, it's expected that the tablets will be rotated and the app should support it and this has an impact on threading in Android.&lt;br /&gt;
&lt;br /&gt;
The pattern of having the thread local in the Activity is great except when the device is rotated, the app supports it and a local Activity thread is running. &amp;nbsp;The thread will still be running, but the local UI data members that need to be updated will be for the pre-rotated Activities. &amp;nbsp;In short, it will not work in all cases, it's one of those timing things, sometimes it will work, sometimes it won't. &amp;nbsp;The local pattern will fail as it's too tightly coupled to that instance of the Activity. &amp;nbsp;For this case the thread needs to be changed to couple loosely to the Activity when updates need to occur. &amp;nbsp;I'm not going to cover solutions for this (they are not very hard, just different, i.e., observer pattern) but to express my thoughts of the Android threading for Tablet applications that should be rotatable. &lt;br /&gt;
&lt;br /&gt;
I view the ability of tablet apps to support rotation as important as it impacts the tablet's usage. &amp;nbsp;Don't force the user to rotate the tablet when switching from reading a book to going to the App marketplace.&lt;br /&gt;
&lt;br /&gt;
On iOS the threading issues for local threads inside of a Controller as much the same as Android except when the device is rotated there is no destruction of class instances and the same local thread pattern will always work. &amp;nbsp;The local threading block still has access to the controllers data members for updates on completion on the Event thread. &amp;nbsp; In iOS GCD (Grand Central Dispatch) the level of control other the threads is also much greater. &amp;nbsp;The queue's that can be used used, the processing order (serial or parallel) allows control that does not exist (easily) in Android. &amp;nbsp;I'll be using mostly the local pattern for my threads in iOS. &amp;nbsp;This is switch from my non-mobile apps where the threaded tasks are contained in their own class and packages.&lt;br /&gt;
&lt;br /&gt;
My bottom line is that I've switched the location and implementation of my threads to use the local pattern of placing the threads inside of the Activity and Controllers. &amp;nbsp;It's just too nice of a pattern to miss out on. &amp;nbsp;My exceptions are for 1) Android apps that are rotatable and 2) longer running threads that impact multiple Activities or Controllers (I use MVC notifications for those).&lt;br /&gt;
&lt;br /&gt;
It's been enjoyable working with threads for mobile apps and understanding the local pattern. &amp;nbsp;It makes my life easier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-8701159815297486814?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/bXeDJ1U_I1K7TfeinGsYqNZ9Foo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bXeDJ1U_I1K7TfeinGsYqNZ9Foo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/bXeDJ1U_I1K7TfeinGsYqNZ9Foo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/bXeDJ1U_I1K7TfeinGsYqNZ9Foo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/9T8syYhooMw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/8701159815297486814/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/12/multi-tasking-in-android-ios-code.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/8701159815297486814?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/8701159815297486814?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/9T8syYhooMw/multi-tasking-in-android-ios-code.html" title="Multi-Tasking (in Android &amp; iOS)" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-wBz0lQHmGek/TtvRgbbU5eI/AAAAAAAAAJ4/suVgH50zCQc/s72-c/Multitasking.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/12/multi-tasking-in-android-ios-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4HRnszeip7ImA9WhRRFkw.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-1868996923032760103</id><published>2011-11-29T19:08:00.000-07:00</published><updated>2011-11-29T19:08:57.582-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T19:08:57.582-07:00</app:edited><title>Self-Deception</title><content type="html">Yup, we all do it. &amp;nbsp;I know when I do it. &amp;nbsp;I feel bad about it because I'm tring to fool myself and that only makes me the fool.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-3HS7_FJhMYc/TtWPNa1hpVI/AAAAAAAAAJw/naDYfl7szpw/s1600/Stairs.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-3HS7_FJhMYc/TtWPNa1hpVI/AAAAAAAAAJw/naDYfl7szpw/s320/Stairs.JPG" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;This came out of reading an article in New Scientist (Oct 8th 2011 issue, page 32 if you still use print) about biologist Robert Trivers. &amp;nbsp;Great interview that was right on (for me at least). &amp;nbsp;He was not talking about programming, but you know how it applies. &amp;nbsp;We are debugging a very difficult issue and we try to convince ourselves of what the cause is. &amp;nbsp;Yeah, right. &amp;nbsp;Facts are facts but that does not stop use from deceiving ourselves in so many ways. &amp;nbsp;Convincing ourselves that a bug is really a cool feature. &amp;nbsp;That we really know how the users will use the product. &amp;nbsp;On and on and on it goes.&lt;br /&gt;
&lt;br /&gt;
One of the most interesting points in the interview is even knowing that we are deceiving ourselves, we still go ahead and do it! &amp;nbsp;Robert knows it and still does it! &amp;nbsp;Life hard enough and then we do this to ourselves? &amp;nbsp;Yuck. &lt;br /&gt;
&lt;br /&gt;
The positive side to all of this is because we do know this, we can take action (abet after the fact) to correct ourselves. &amp;nbsp;There is no shame in admitting we just lied to ourselves, tough yes, but come on, we can take it, it's us we are taking about.&lt;br /&gt;
&lt;br /&gt;
See how many times this week you have tried to deceive yourself. &amp;nbsp;Be honest. &amp;nbsp;You don't have to tell anyone but yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-1868996923032760103?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PwwUhP0N4Okbei1wVGjxMVOyglU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PwwUhP0N4Okbei1wVGjxMVOyglU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PwwUhP0N4Okbei1wVGjxMVOyglU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PwwUhP0N4Okbei1wVGjxMVOyglU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/-s9ol8JAnvI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/1868996923032760103/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/11/self-deception.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/1868996923032760103?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/1868996923032760103?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/-s9ol8JAnvI/self-deception.html" title="Self-Deception" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-3HS7_FJhMYc/TtWPNa1hpVI/AAAAAAAAAJw/naDYfl7szpw/s72-c/Stairs.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/11/self-deception.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YMR347cSp7ImA9WhRSGEw.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-5999222131396640821</id><published>2011-11-20T10:46:00.000-07:00</published><updated>2011-11-20T10:46:26.009-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-20T10:46:26.009-07:00</app:edited><title>Fun With Android</title><content type="html">Been wanting to post about my perspectives on Android development. &amp;nbsp;This is not a Android -vs- iOS blog but just what I see as my perspective of Android development.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-GSNRPRpY_yo/Tsk7aPkErFI/AAAAAAAAAJo/5baMU4lTdI4/s1600/Breakfast.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://1.bp.blogspot.com/-GSNRPRpY_yo/Tsk7aPkErFI/AAAAAAAAAJo/5baMU4lTdI4/s320/Breakfast.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Android feels easy. &amp;nbsp;Java feels like a well broken in shoe that slip on in the morning and can wear all day, so Android development feels easy for me. &amp;nbsp;I understand the attraction of the Intents and Activities for the providing of multiple filters for handling common features (select you email, photo editors, etc), but I view this as more of a benefit for geeks rather than most consumers. &amp;nbsp; What kind of support is there for uses that download apps only to be presented with selecting providers for comment activities, only to want to revert to the built in provider (yeah you can clear the selection but they need to know where).&lt;br /&gt;
&lt;br /&gt;
The destruction of the activity on rotation and on config changes feels like it's un-needed but exists because of legacy issues. &amp;nbsp;The save/restore of activities values are simple but feel like it's best for simpler applications where limited amounts of data are shared / passed to Activities through Intents. &amp;nbsp;It feels like the rotation feature was bolted on when it was introduced into Android (Android did not handle any rotation for multiple releases).&lt;br /&gt;
&lt;br /&gt;
The roots of Android was for small devices and it's been expanded and grown to handle more complex applications and devices. &amp;nbsp;To me this shows in the Intent / Activities pattern use though out Android. &amp;nbsp;Small data, Activities and screens that worked well for small apps with low complexity but would would cause their own complexity if expanding for much richer and complex applications. &amp;nbsp;A case is the Menu and Back buttons / actions. &amp;nbsp;Yeah the buttons are gone in ICS, but the behavior still exists. &amp;nbsp;I can see where these were of value in small devices (like the old Palm) and apps with there operation on the Activity stack, but with full featured applications in tablets, this may have limited use. &amp;nbsp;The same for the data patterns of Intents as mostly the means of passing data to/from Activities. &amp;nbsp;(This pattern is good for Activities outside of your applications scope, so it's more like an API in that usage). &amp;nbsp;Internally in an app this pattern may be limiting with more complex data (updating multiple activities based on external data changes, async operations, etc.).&lt;br /&gt;
&lt;br /&gt;
The fragmentation is a real issue with the slow rollout of updates from carriers, the multiple screen sizes and planning of base supported API's for my apps is a real concern.&lt;br /&gt;
&lt;br /&gt;
The last issue is the simulator. &amp;nbsp;It's badly in need of an update. &amp;nbsp;The table version is so bad it drove me back to the phone version. &amp;nbsp;Not good.&lt;br /&gt;
&lt;br /&gt;
My bottom line on Android? &amp;nbsp;I like it, it's fun and easy but some of Androids roots need to be considered in my applications designs so as not be limited by the Intents and data handling. &lt;br /&gt;
&lt;br /&gt;
On the iOS front, I'll be going over the new iOS / Xcode 4.2 storyboard feature. &amp;nbsp;Looks cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-5999222131396640821?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_9DTxZK54rmHc7NibVcK71rHq10/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_9DTxZK54rmHc7NibVcK71rHq10/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_9DTxZK54rmHc7NibVcK71rHq10/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_9DTxZK54rmHc7NibVcK71rHq10/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/7QLBcxDwcDs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/5999222131396640821/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/11/fun-with-android.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/5999222131396640821?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/5999222131396640821?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/7QLBcxDwcDs/fun-with-android.html" title="Fun With Android" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-GSNRPRpY_yo/Tsk7aPkErFI/AAAAAAAAAJo/5baMU4lTdI4/s72-c/Breakfast.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/11/fun-with-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAHSXczfCp7ImA9WhRTGEQ.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-5516277095188763638</id><published>2011-11-09T19:31:00.004-07:00</published><updated>2011-11-09T21:18:58.984-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-09T21:18:58.984-07:00</app:edited><title>Bored?</title><content type="html">Saw a posting on Slashdot today about a programmer being bored at work and asking what to do about it.&lt;br /&gt;
&lt;br /&gt;
Well, Slashdot readers being as they are, mostly responded with some not helpful suggestions (but some where). &amp;nbsp;Seeing as I've been in the development field or such a long time and had my share of periods of boredom (and almost every other emotion) I thought that I add my response. &amp;nbsp;Here goes.&lt;br /&gt;
&lt;br /&gt;
The first thing to find out is what you are bored with. &amp;nbsp;It may not be so easy to tell. &amp;nbsp;Is it the same coding, no designing, no attention, lack of social interaction, gotten into a rut? &amp;nbsp;It basically comes down to needing some kind of change. &amp;nbsp;New job always comes to mind, but is that the easiest and riskiest method of forcing change on yourself, never mind that jobs may not be easy to come by. &amp;nbsp;Change is needed but what and how?&lt;br /&gt;
&lt;br /&gt;
For myself, I find I get bored if :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;I'm not doing anything new&lt;/li&gt;
&lt;li&gt;I'm not keeping myself busy (I love getting things completed).&lt;/li&gt;
&lt;li&gt;I've run out of goals for myself&lt;/li&gt;
&lt;/ul&gt;The first thing I do is, doing something different every day. &amp;nbsp;It does not really matter what it is but it needs to be different. &amp;nbsp;Different lunch, different web sites to visit, different clothes. &amp;nbsp;Along with this I create a very simple ToDo list. &amp;nbsp;Mind you it may only have one item on it, but it's something that I have not done before. &amp;nbsp;It should be something of our my normal routine and can be accomplished in one sitting (so I can feel like I accomplished something). &amp;nbsp;When I've done that one item, then add a new item and then maybe another. &amp;nbsp;Starting making little goals to look forward to that do not involve your normal work.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-v0kyEC7Opew/Trs3gXJUYEI/AAAAAAAAAJY/75AxliGJmVo/s1600/Reality.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-v0kyEC7Opew/Trs3gXJUYEI/AAAAAAAAAJY/75AxliGJmVo/s320/Reality.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Some of the things I have done to break up my daily patterns are:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Make pancakes (any cooking) in the morning instead of cereal.&lt;/li&gt;
&lt;li&gt;Find some podcasts to listen to that is NOT on programming.&lt;/li&gt;
&lt;li&gt;Go read a book (not a programing book) and reserve time to read it.&lt;/li&gt;
&lt;li&gt;Do not listen to news.&lt;/li&gt;
&lt;li&gt;Do not watch TV (or at least reduce it. &amp;nbsp;No reality shows).&lt;/li&gt;
&lt;li&gt;Go for a walk during lunch or when you get home (only about 15min worth).&lt;/li&gt;
&lt;li&gt;Start a Blog (but be nice about it).&lt;/li&gt;
&lt;li&gt;Have dinner with friends during the week.&lt;/li&gt;
&lt;li&gt;Get another dog (but please don't go over 3).&lt;/li&gt;
&lt;li&gt;Paint a room a strong color (no pastels please).&lt;/li&gt;
&lt;li&gt;Read up on some aspect of history that you know nothing about.&lt;/li&gt;
&lt;li&gt;Watch a TED video (ted.com).&lt;/li&gt;
&lt;/ul&gt;&amp;nbsp;All of these suggestions are to get you to change your mind set. &amp;nbsp; It may be your job but first give changing your mindset first. &amp;nbsp;It can be easier to change almost anything but your mind. &amp;nbsp;People change jobs, locations and partners, all to avoid that it may be themselves that they need to change. &amp;nbsp;All these little change suggestions are really just the seed of change that you can build upon and it will take time. &amp;nbsp;Don't just change one thing and repeat, change, then change again and repeat.&lt;br /&gt;
&lt;br /&gt;
Do something different, enjoy life more.&lt;br /&gt;
&lt;br /&gt;
P.S. &amp;nbsp;One thing to look out for is depression. &amp;nbsp;Please search the web for information on depression and it's signs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-5516277095188763638?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/peQdZ5qtf8Kih9-LpAQjsnfyW5I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/peQdZ5qtf8Kih9-LpAQjsnfyW5I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/peQdZ5qtf8Kih9-LpAQjsnfyW5I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/peQdZ5qtf8Kih9-LpAQjsnfyW5I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/eUiHCeYDOUU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/5516277095188763638/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/11/bored.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/5516277095188763638?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/5516277095188763638?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/eUiHCeYDOUU/bored.html" title="Bored?" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-v0kyEC7Opew/Trs3gXJUYEI/AAAAAAAAAJY/75AxliGJmVo/s72-c/Reality.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/11/bored.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cAQ308fip7ImA9WhRTFk8.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-6748709215367290912</id><published>2011-11-06T09:45:00.001-07:00</published><updated>2011-11-06T17:17:22.376-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-06T17:17:22.376-07:00</app:edited><title>When is it Done?</title><content type="html">Words, they can be hard to come by, misleading (on purpose or mistake) and costly. &amp;nbsp; The word "Done" means many things to different people during the software development process, with most of them not-really correct or helpful.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Software Engineer says "it's Done" - The code may have been written but not tested. &amp;nbsp;Or written but not working, or done "except for some details", or if they told the client it's done, then what does that mean?&lt;/li&gt;
&lt;li&gt;Project manager says "it's Done" - This depends on whom they are saying this to. &amp;nbsp;Saying this to a client means that they should expect it in their hands NOW. &amp;nbsp;If it's the CEO then it means, to appease, to inform, to CYA, etc.?&lt;/li&gt;
&lt;li&gt;QA says it's "Done" - Then it means it's clear of bugs, ready to ship?&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-HN9gXidO60M/Tra27pA3pBI/AAAAAAAAAJQ/WyAEvoIG_mY/s1600/Done.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-HN9gXidO60M/Tra27pA3pBI/AAAAAAAAAJQ/WyAEvoIG_mY/s320/Done.JPG" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Done only means "Done" when the client has it in their hands, installed it and it works as promised. &amp;nbsp;We have all seen or heard to people using the work "Done" to describe, what they perceive as their involvement, in the process of getting a product done. &amp;nbsp;This word being heard or being used to the wrong person can lead to misleading information (at best) or mistrust (at not best). &amp;nbsp;I'm sure the stories of shipping blank software to clients to meet a deadline of being done are true (I've seen this in the past). &amp;nbsp;How is this helpful?&lt;br /&gt;
&lt;br /&gt;
Lets view this from a more lethal point of view and replace the software development context with that of a surgery room and replay the statements.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The Surgeon was done with the procedure. &amp;nbsp;Did the surgeon close up, did the staff count the supplies?&lt;/li&gt;
&lt;li&gt;The hospital told the family that the doctor was done. &amp;nbsp;What does this mean about the outcome?&lt;/li&gt;
&lt;li&gt;The Post-Op recovery was done. &amp;nbsp;Did the patient wake up? &amp;nbsp;Is there a complication that will require follow up?&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;What does this mean for the patient? &amp;nbsp;The patient only really cares that the everything is completed and there is a successful outcome (they can go on living).&amp;nbsp;&lt;/div&gt;&lt;br /&gt;
All involved in the surgery can not and should not assume that because their direct involvement is over that there is a successful outcome. &amp;nbsp;Only the end result will satisfy the "Done" statement.&lt;br /&gt;
&lt;br /&gt;
So why is the implication, if not the actual word used so much in not the proper context? &amp;nbsp;Because the same thoughts, fears and feelings are involved in everyone involved. &amp;nbsp;The boss that does not accept "no" for an answer, the reward / penalty system linked to workers pay that encourages this to the desire to be accepted, impress, etc. &amp;nbsp;There are a hundreds of ways to renforce behavior that is not beneifitial to others or ourselves. &lt;br /&gt;
&lt;br /&gt;
(These can exists in cycles until the end)&lt;br /&gt;
------&lt;br /&gt;
Design&lt;br /&gt;
Development&lt;br /&gt;
QA&lt;br /&gt;
-------&lt;br /&gt;
Shipping&lt;br /&gt;
-------&lt;br /&gt;
Installed and Reviewed&lt;br /&gt;
Done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-6748709215367290912?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GtKXl4g9l6fic90NVcCcxCskTPs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GtKXl4g9l6fic90NVcCcxCskTPs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GtKXl4g9l6fic90NVcCcxCskTPs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GtKXl4g9l6fic90NVcCcxCskTPs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/LdbKrNPNKgQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/6748709215367290912/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/11/when-is-it-done.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/6748709215367290912?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/6748709215367290912?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/LdbKrNPNKgQ/when-is-it-done.html" title="When is it Done?" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-HN9gXidO60M/Tra27pA3pBI/AAAAAAAAAJQ/WyAEvoIG_mY/s72-c/Done.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/11/when-is-it-done.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcFSHczcSp7ImA9WhRTEUQ.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-776695064174376380</id><published>2011-11-01T19:23:00.000-06:00</published><updated>2011-11-01T19:23:39.989-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T19:23:39.989-06:00</app:edited><title>Why No Code?</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dW8trIyriBk/TrCUeDasi0I/AAAAAAAAAJA/6j2V7i2cowI/s1600/horse.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-dW8trIyriBk/TrCUeDasi0I/AAAAAAAAAJA/6j2V7i2cowI/s320/horse.jpg" width="227" /&gt;&lt;/a&gt;&lt;/div&gt;There are tons of blogs that provide sample code on the web and I've found them so helpful to providing insight to answers I've been looking for. &amp;nbsp;I would like to thank every one.&lt;br /&gt;
&lt;br /&gt;
But my blog does not provide code. &amp;nbsp;I've been tackling a different side of software development. &amp;nbsp;The side that is filled not with code, but how we think about code, think about why we do what we do. &lt;br /&gt;
&lt;br /&gt;
About source code. &amp;nbsp;Sooooooo subjective. &amp;nbsp;It's lifespan is limited to the development process and is soon turned into byte code by a compiler, never to be seen by anyone outside of development. &amp;nbsp;Source code is like shared painting where everyone has a vision. &amp;nbsp;The locations of brackets, spaces, names of functions, variable, etc. may instill heated debates from almost any group of developers. &lt;br /&gt;
&lt;br /&gt;
My guidelines (only) for myself are:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Stay close to what ever standard your company uses. &amp;nbsp;It's not that big of a deal.&lt;/li&gt;
&lt;li&gt;Don't reformat others code. &amp;nbsp;You would not want them to reformat yours and it really messes up version control duff's.&lt;/li&gt;
&lt;li&gt;Don't enforce a strict format as it can lead to unwarranted confrontation (someone is bound to use a different format).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;When working on others code and providing bug fixes, use their style.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;You can tell by looking at source code if the engineer is competent and has interest in the issue. &amp;nbsp;You can also tell if an engineer is not really "into" the issue at hand. &amp;nbsp;Maybe they don't try to mesh with the style or operation being worked on. &amp;nbsp;Maybe they provide a high rate of one-off solutions that degrade the stability of the feature. &amp;nbsp;There are tons of issues with code that is written but for the most part, the only way to change code is written is by changing the way the developer thinks about it and that is a personal issue. &amp;nbsp;People will do almost anything to avoid changing how they think.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;For myself it's almost a daily if not hourly review of what I'm doing. &amp;nbsp;My personal review contains simple thoughts&amp;nbsp;like:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Coding in a non-harmfull way.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Seeing the code for what is really does (rather than what you want it to do).&lt;/li&gt;
&lt;li&gt;Being mindful of that changes / additions that you do make. &amp;nbsp;Thinking of others.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Just like in fixing bugs where you need to locate the root of the problem, writing code does not start with typing on the keyboard, it starts in your thoughts, desires, problems and hopes. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;This is why I do not provide any code in this blog.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-776695064174376380?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Wjj_qvNUI5NTnBH0NE-wTflm3vQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wjj_qvNUI5NTnBH0NE-wTflm3vQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Wjj_qvNUI5NTnBH0NE-wTflm3vQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wjj_qvNUI5NTnBH0NE-wTflm3vQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/22i2rO3w64g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/776695064174376380/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/11/why-no-code.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/776695064174376380?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/776695064174376380?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/22i2rO3w64g/why-no-code.html" title="Why No Code?" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-dW8trIyriBk/TrCUeDasi0I/AAAAAAAAAJA/6j2V7i2cowI/s72-c/horse.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/11/why-no-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMEQHYyfSp7ImA9WhdaFUw.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-5927182061325193572</id><published>2011-10-24T21:13:00.000-06:00</published><updated>2011-10-24T21:13:21.895-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-24T21:13:21.895-06:00</app:edited><title>Software as Art</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-vP4lPybJjwU/TqYlazTzIKI/AAAAAAAAAIs/pfWTbFsLo_4/s1600/leaves.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="214" src="http://1.bp.blogspot.com/-vP4lPybJjwU/TqYlazTzIKI/AAAAAAAAAIs/pfWTbFsLo_4/s320/leaves.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;When you work with developing UI code as much as I do, you run into the issue of UI as Art. &amp;nbsp;It's (mostly) subjective. &amp;nbsp;People have built up mental maps of their life, surroundings and how they expect life should be and why doesn't everyone think like I do?&lt;br /&gt;
&lt;br /&gt;
I do it all the time, but now I try to seek out and enjoy the differences instead of working to avoid these conflicts of vision. &amp;nbsp;Unless a UI design is specified before hand, I have to come up with a visual implementation that I feel suits the needs best. &amp;nbsp;Sometimes it works, sometimes it doesn't. &amp;nbsp;It kind of depends on who is playing the bills and what their vision of the issues are.&lt;br /&gt;
&lt;br /&gt;
In this sense software is like art. &amp;nbsp;Not just the UI elements, but the internal design and structure of software as well. &amp;nbsp;Everyones internal bias get exposed when writing and looking at code. &amp;nbsp;Different code may do the same thing but be completely different internally. &amp;nbsp;Look at Android and iOS development, nothing a like but the end result is not all that different.&lt;br /&gt;
&lt;br /&gt;
Now here is where it's painful to write software. &amp;nbsp;Artist create art for themselves and are free to express their vision (except maybe commercial artists). &amp;nbsp;Software developers are technical artists but are judged, praised, punished and rewarded on how they express or repress their own vision. &amp;nbsp;This can be tough on a ego.&lt;br /&gt;
&lt;br /&gt;
I wonder if this is a limiting factor in the professional lifespan of a software engineer?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-5927182061325193572?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wQJI-xQW2aeCmuB-V-7NxdTIhCc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wQJI-xQW2aeCmuB-V-7NxdTIhCc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wQJI-xQW2aeCmuB-V-7NxdTIhCc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wQJI-xQW2aeCmuB-V-7NxdTIhCc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/oufd3Xv8enk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/5927182061325193572/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/10/software-as-art.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/5927182061325193572?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/5927182061325193572?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/oufd3Xv8enk/software-as-art.html" title="Software as Art" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-vP4lPybJjwU/TqYlazTzIKI/AAAAAAAAAIs/pfWTbFsLo_4/s72-c/leaves.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/10/software-as-art.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcNQ3g5fyp7ImA9WhdaEEo.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-4543916583633005620</id><published>2011-10-19T20:34:00.000-06:00</published><updated>2011-10-19T20:34:52.627-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-19T20:34:52.627-06:00</app:edited><title>Personal Anti-Patterns</title><content type="html">Software patterns are well know (Singleton, MVC, etc) as are anti-patterns (cut/pasting of code, etc.), but do developers ever think of their own personal patterns or anti-patterns?&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-uExqJjy3QKk/Tp-G-7nL7ZI/AAAAAAAAAIU/l-eVwzgY0Ng/s1600/Athena.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://4.bp.blogspot.com/-uExqJjy3QKk/Tp-G-7nL7ZI/AAAAAAAAAIU/l-eVwzgY0Ng/s320/Athena.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Just as tool sets can vary from project to project and technology changes over time, personal patterns can turn to anti-patterns based on the project. &lt;br /&gt;
&lt;br /&gt;
I know Java but I would not use Java on an iOS mobile device. &amp;nbsp;The quality of the product would suffer vs using native tools. &amp;nbsp;The same goes for trying to use Microsoft tools (does Mono come to mind?) on linux servers. &amp;nbsp;But this is not about tools but about how you (as a developer) think about your role in development and how you personally effect it. &amp;nbsp;If your pattern is thinking that Java is the perfect tool for any project, then that can become an anti-pattern if the project is on iOS. &lt;br /&gt;
&lt;br /&gt;
The interaction between team members can also be effected by personal anti-patterns. &amp;nbsp;Not asking questions is a personal anti-pattern, so is not making decisions or hiding errors. &amp;nbsp;All behaviors that are not beneficial to you or your projects.&lt;br /&gt;
&lt;br /&gt;
Take some time one of these days and just look at your self and see if you can spot any anti-patterns that you may have. &amp;nbsp;Once you spot them (if you have any) see if you can not use them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-4543916583633005620?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6FA_dXyXsYydWq7VBj_R2chjwSE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6FA_dXyXsYydWq7VBj_R2chjwSE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6FA_dXyXsYydWq7VBj_R2chjwSE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6FA_dXyXsYydWq7VBj_R2chjwSE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/r8LAgdPCu2M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/4543916583633005620/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/10/personal-anti-patterns.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4543916583633005620?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4543916583633005620?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/r8LAgdPCu2M/personal-anti-patterns.html" title="Personal Anti-Patterns" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-uExqJjy3QKk/Tp-G-7nL7ZI/AAAAAAAAAIU/l-eVwzgY0Ng/s72-c/Athena.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/10/personal-anti-patterns.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQEQHwzfip7ImA9WhdbEkQ.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-8025139391812848465</id><published>2011-10-10T19:41:00.000-06:00</published><updated>2011-10-10T19:41:41.286-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T19:41:41.286-06:00</app:edited><title>Not In Your Face (except this time)</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-oGChccCjKCE/TpOdnELn0SI/AAAAAAAAAIM/_e471qNqKz8/s1600/InYourFace.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="263" src="http://1.bp.blogspot.com/-oGChccCjKCE/TpOdnELn0SI/AAAAAAAAAIM/_e471qNqKz8/s320/InYourFace.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;You may be asking yourself where are the Buddhist teachings in my posts? &amp;nbsp;Well, I try to hide them in my topics but I don't want to be in your face as well. &amp;nbsp;The reason for my posts are not to teach you how to be a Buddhist software engineer, but how I've faced software engineering. &amp;nbsp;Which means facing myself, warts, insights, relationships and all.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span"&gt;Here is the "in your face" part: A good understanding of Buddhism can be found at&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Buddhism"&gt;Wikipedia.org&lt;/a&gt;&amp;nbsp;to start with.&amp;nbsp; There are so many books and web sites that you can explore that are only a Google away. &amp;nbsp;The good step to understand Buddhism is The Four Noble Truths and I have found this to be so key to my life. &amp;nbsp;Don't just read the Wikipedia page, please get a book by the Dala Lama on&amp;nbsp;&lt;a href="http://www.amazon.com/Dalai-Lamas-Book-Wisdom/dp/072253955X/ref=sr_1_1?ie=UTF8&amp;amp;qid=1318296581&amp;amp;sr=8-1"&gt;Amazon&lt;/a&gt;&amp;nbsp;(or any of his books), read it and see how it relates to your life and maybe, to your philosophy&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&amp;nbsp;of software development.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This is one of the questions I like to ask prospective new hires, "What is your philosophy on software development?". &amp;nbsp;There is no right answer but it may provide insight into how the person will fit into your project.&lt;br /&gt;
&lt;br /&gt;
Now to drift onward. &amp;nbsp;I'll be in Nashville this next week at the Southern Festival of Books fair. &amp;nbsp;I hope to return with some interesting photos and topics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-8025139391812848465?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SPm98M6G1WhMIJB6XhM-sgIqPxI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SPm98M6G1WhMIJB6XhM-sgIqPxI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SPm98M6G1WhMIJB6XhM-sgIqPxI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SPm98M6G1WhMIJB6XhM-sgIqPxI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/TFIlZ6Pmorg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/8025139391812848465/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/10/not-in-your-face-except-this-time.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/8025139391812848465?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/8025139391812848465?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/TFIlZ6Pmorg/not-in-your-face-except-this-time.html" title="Not In Your Face (except this time)" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-oGChccCjKCE/TpOdnELn0SI/AAAAAAAAAIM/_e471qNqKz8/s72-c/InYourFace.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/10/not-in-your-face-except-this-time.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MASHk4fSp7ImA9WhdbEkQ.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-81504156224830950</id><published>2011-10-08T14:32:00.001-06:00</published><updated>2011-10-10T19:10:49.735-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T19:10:49.735-06:00</app:edited><title>Why I Enjoy Working on U.I. Code</title><content type="html">I've worked in all aspects of code from libraries, DB design, Web/API-services, requirements and everything else, but I've happily fallen into being very strong in the design of User Interfaces. &amp;nbsp;It's not that I'm artsy (I'm not) but I have a knack of being able to architect UI code so that the artsy presentation skin can be added easily without effecting the functionally of the UI.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-74cOsQrqDmY/TpCxmJxiRuI/AAAAAAAAAII/8fJ3X1tCKXw/s1600/UI.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://2.bp.blogspot.com/-74cOsQrqDmY/TpCxmJxiRuI/AAAAAAAAAII/8fJ3X1tCKXw/s320/UI.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Unlike other layers of an application / service (or whatever layer), there are discreet operations and parameters with expected results. &amp;nbsp;Code can be written and tests created to the expected behavior. &amp;nbsp;It's the same with DB operations but will a bit more complexity based on relationships, triggers and transactions.&lt;br /&gt;
&lt;br /&gt;
Not so easy with UI code.&lt;br /&gt;
&lt;br /&gt;
Write code to show a form, easy. &amp;nbsp;Add validation and error handling and it gets a bit busier. &amp;nbsp; Add related actions, operations, state tracking for enabling / visibility, mix with async operations for data streams and any gee-wiz widget behavior and it can get overwhelming. &amp;nbsp;If these behaviors could be coded independently and then coupled together for final implementation that would be great, but they can't. &amp;nbsp; They are interrelated in their behavior and operation. &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
This is why writing Unit tests for U.I. code generally does not exist. &amp;nbsp;The logic required for unit tests would modify the code (thus changing it's behavior), not handle the related states and behaviors so that what ends up being tested are the tests and not the U.I. &amp;nbsp;The side effect is to make the U.I. even more complex to update, modify and maintain. &amp;nbsp;Not a good place to be.&lt;br /&gt;
&lt;br /&gt;
With some good behavioral and design patterns this can all be mitigated. &amp;nbsp;The working with multiple "behavior" balls in the air and making sure that the design patterns I have in place cover the U.I. needs. &lt;br /&gt;
&lt;br /&gt;
This is what I find fun and challenging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-81504156224830950?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TOnk2BUUZQZcQ2Zx_SGxKIbYb84/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TOnk2BUUZQZcQ2Zx_SGxKIbYb84/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TOnk2BUUZQZcQ2Zx_SGxKIbYb84/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TOnk2BUUZQZcQ2Zx_SGxKIbYb84/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/oTTR_xpW1yA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/81504156224830950/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/10/why-i-like-working-on-ui-code.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/81504156224830950?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/81504156224830950?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/oTTR_xpW1yA/why-i-like-working-on-ui-code.html" title="Why I Enjoy Working on U.I. Code" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-74cOsQrqDmY/TpCxmJxiRuI/AAAAAAAAAII/8fJ3X1tCKXw/s72-c/UI.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/10/why-i-like-working-on-ui-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8EQXw8fyp7ImA9WhdUGEs.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-873803840434027585</id><published>2011-10-05T20:23:00.002-06:00</published><updated>2011-10-05T20:23:20.277-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-05T20:23:20.277-06:00</app:edited><title>Sad</title><content type="html">Sad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-873803840434027585?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b0Kz9bflk7xklFnvCHnPUArH7h8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b0Kz9bflk7xklFnvCHnPUArH7h8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/b0Kz9bflk7xklFnvCHnPUArH7h8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b0Kz9bflk7xklFnvCHnPUArH7h8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/yIjd1qjAYx0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/873803840434027585/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/10/sad.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/873803840434027585?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/873803840434027585?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/yIjd1qjAYx0/sad.html" title="Sad" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/10/sad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcBQHg6eCp7ImA9WhdUFUQ.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-4498490004873505347</id><published>2011-10-02T15:45:00.002-06:00</published><updated>2011-10-02T16:20:51.610-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-02T16:20:51.610-06:00</app:edited><title>A Quick Look Back</title><content type="html">Cleaned out the garage this weekend and found some old development software that I had used "back in the day". &amp;nbsp;The things that struck me were :&lt;br /&gt;
- The emotions that get evoked when I think about them -and-&lt;br /&gt;
- The core of development changes very slowly but the tools / technology churns away.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Jpih7AZm3Hg/TojbYw7QY_I/AAAAAAAAAIE/G7Xvq1pQxLE/s1600/LookBack.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="214" src="http://3.bp.blogspot.com/-Jpih7AZm3Hg/TojbYw7QY_I/AAAAAAAAAIE/G7Xvq1pQxLE/s320/LookBack.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;The first product was Symantec's "Visual Cafe" (1996). &amp;nbsp;This was an early Java 1.0/1.1 IDE that was a big hit for a short amount of time. &amp;nbsp;Back then it costs $299.00 when very few Java IDE's even existed. &amp;nbsp;Java is still here but Visual Cafe is long gone.&lt;br /&gt;
&lt;br /&gt;
The other product (1996) was IBM / Apples "OpenDoc" technology along with SOM and it's implementation of CORBA. &amp;nbsp;Whew, what a mouthful. &amp;nbsp;This was a response to Microsoft's COM/DCOM and embedded technology used in Office (think Excel inside of a word document). &amp;nbsp;Terribly complex stuff that 1) failed to be adopted by a critical mass of developers and 2) supplanted by the internet. &lt;br /&gt;
&lt;br /&gt;
Wow, what a time trip finding this stuff. &amp;nbsp;So what technology are you using today that will be extinct in a few years?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-4498490004873505347?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MLG-7GlBmpCtqMY6FzFYRK7GE9c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MLG-7GlBmpCtqMY6FzFYRK7GE9c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MLG-7GlBmpCtqMY6FzFYRK7GE9c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MLG-7GlBmpCtqMY6FzFYRK7GE9c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/gL_WFQIfG1o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/4498490004873505347/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/10/quick-look-back.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4498490004873505347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4498490004873505347?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/gL_WFQIfG1o/quick-look-back.html" title="A Quick Look Back" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-Jpih7AZm3Hg/TojbYw7QY_I/AAAAAAAAAIE/G7Xvq1pQxLE/s72-c/LookBack.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/10/quick-look-back.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4CRXc-eSp7ImA9WhdUFE4.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-4153533514932871377</id><published>2011-09-30T19:24:00.002-06:00</published><updated>2011-09-30T19:36:04.951-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-30T19:36:04.951-06:00</app:edited><title>Twitter</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PFS8XBrwWA8/ToZrboRUUyI/AAAAAAAAAIA/tyUV1vG5xXo/s1600/twitter.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-PFS8XBrwWA8/ToZrboRUUyI/AAAAAAAAAIA/tyUV1vG5xXo/s1600/twitter.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;I'm now on Twitter! &amp;nbsp;It's been awhile and I'm exploring how best to network with others interesting in Buddhist Software Development (or just Software Development).&lt;br /&gt;
&lt;br /&gt;
I'm also revamping my www.BlueFootedBoobie.com web site that contains my MySines iPad and iPhone/iTouch applications. &amp;nbsp;The changes will also include information on how to setup and work with developers from a management point of view.&lt;br /&gt;
&lt;br /&gt;
My handle is #ToddBlackley.&lt;br /&gt;
&lt;br /&gt;
My tweets maybe questions that I've axed myself many times that get me thinking, comments of the day or just a quick observation. &amp;nbsp;I hope you find them helpful.&lt;br /&gt;
&lt;br /&gt;
See ya in Twitter-sphere ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-4153533514932871377?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EfRuG0eqZdkTn0cSn6rMh7ewlkE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EfRuG0eqZdkTn0cSn6rMh7ewlkE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EfRuG0eqZdkTn0cSn6rMh7ewlkE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EfRuG0eqZdkTn0cSn6rMh7ewlkE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/2P70i6hfyEs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/4153533514932871377/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/09/twitter.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4153533514932871377?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4153533514932871377?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/2P70i6hfyEs/twitter.html" title="Twitter" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-PFS8XBrwWA8/ToZrboRUUyI/AAAAAAAAAIA/tyUV1vG5xXo/s72-c/twitter.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/09/twitter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUARnY7fSp7ImA9WhdVFEU.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-4088140804229872740</id><published>2011-09-19T20:04:00.000-06:00</published><updated>2011-09-19T20:04:07.805-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-19T20:04:07.805-06:00</app:edited><title>When Do You Stop Dancing?</title><content type="html">We don't always stop dancing when the music stops and our song is over. &amp;nbsp;We learn to love our ruts, our comfort zones and fail to notice that the music has stopped and it's time to change.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yUoM5qFFco4/Tnfu27sa8mI/AAAAAAAAAGc/Qsr8XW5D0Xs/s1600/FlowerHonnyBucket.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://4.bp.blogspot.com/-yUoM5qFFco4/Tnfu27sa8mI/AAAAAAAAAGc/Qsr8XW5D0Xs/s320/FlowerHonnyBucket.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
But it's change that we should always be planning for. &amp;nbsp;The world is not static and neither are companies, projects or even ourselves, so why are we so surprised when the music stops?&lt;br /&gt;
&lt;br /&gt;
We see this all the time with friends changing jobs, moving away, marriages breaking and always try to come up with what went wrong, what reason is there for this occurring.&lt;br /&gt;
&lt;br /&gt;
That's the wrong question. &amp;nbsp;The real question is why does it not occur more often? &amp;nbsp;When should we reject change and when should we adopt it? &amp;nbsp;Too much change and we spin our wheels with undirected motion, too little and the world moves on without us.&lt;br /&gt;
&lt;br /&gt;
Then the music stops. &amp;nbsp;Maybe you did not even notice it and you are still dancing. &amp;nbsp;Maybe when you where dancing you should have learning some other songs or other steps. &amp;nbsp;Did you ever think that it's you and not the song that needed to change?&lt;br /&gt;
&lt;br /&gt;
I myself have gone through a number of major changes (all good, mostly painful) in my life but I've always knew there would be other dances. &amp;nbsp;I don't know when my music will stop (I figure it will be years away), but I'm planning on it.&lt;br /&gt;
&lt;br /&gt;
But right now it's a pretty good song.&lt;br /&gt;
&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-4088140804229872740?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4Wt22jyZTlc4TqvYaOpUU0EuFuQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4Wt22jyZTlc4TqvYaOpUU0EuFuQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4Wt22jyZTlc4TqvYaOpUU0EuFuQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4Wt22jyZTlc4TqvYaOpUU0EuFuQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/eJm27T2ISVo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/4088140804229872740/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/09/when-do-you-stop-dancing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4088140804229872740?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/4088140804229872740?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/eJm27T2ISVo/when-do-you-stop-dancing.html" title="When Do You Stop Dancing?" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-yUoM5qFFco4/Tnfu27sa8mI/AAAAAAAAAGc/Qsr8XW5D0Xs/s72-c/FlowerHonnyBucket.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/09/when-do-you-stop-dancing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AAQ38_eCp7ImA9WhdWFEw.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-9150633506993667213</id><published>2011-09-05T20:20:00.001-06:00</published><updated>2011-09-07T12:22:22.140-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-07T12:22:22.140-06:00</app:edited><title>Are You and Expert?</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-f5JJmigR-NY/TmV6vLxU15I/AAAAAAAAAGU/1PIaV0ZTdLE/s1600/Hats.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-f5JJmigR-NY/TmV6vLxU15I/AAAAAAAAAGU/1PIaV0ZTdLE/s320/Hats.jpg" width="214" /&gt;&lt;/a&gt;&lt;/div&gt;
If you have been in the software development field for any length of time you've had to wear many different types of hats. &amp;nbsp;There the DB, API creation, Web design, Web code/JS, remoting / streaming, UI, Requirements, Architect, Help system, Error handling, Customer service and a zillion other types of hats that are required for a typical project in our field.&lt;br /&gt;
&lt;br /&gt;
I enjoy all of these different roles that I've needed to perform, however it does not make me an expert in them all. &amp;nbsp;I'm good in most of them, expert even in a number of them, but I know where my strength and weakness lay. &amp;nbsp;I must still learn from others.&lt;br /&gt;
&lt;br /&gt;
In my youth I wanted to be an expert in everything. &amp;nbsp;Learn something new then I would quickly become an expert. &amp;nbsp;Well, not so fast, wanting and being are not the same and I needed to learn that. &lt;br /&gt;
&lt;br /&gt;
I first needed to become an expert at myself and that took time. &amp;nbsp;I needed to understand what I knew, what I did not know and when it's helpful for me to provide comments and opportunity to learn.&lt;br /&gt;
&lt;br /&gt;
I have found (and this is just my opinion) youth wants to be involved. &amp;nbsp;It's fair, when we are young the world is our oyster and our own self knowledge may be overstated but our enthusiasm is not. &amp;nbsp;Later in a career the perspective may be reversed. &amp;nbsp;Our knowledge may be greater but we now know how much more there is too learn and, this is very important, when we should provide input on what we do know. &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://4.bp.blogspot.com/-Wn4BpRILhoQ/TmWA3Jz8yDI/AAAAAAAAAGY/5xgeUyClUPw/s1600/Rings.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-Wn4BpRILhoQ/TmWA3Jz8yDI/AAAAAAAAAGY/5xgeUyClUPw/s320/Rings.jpg" width="214" /&gt;&lt;/a&gt;I'll give some examples that you may have seen before :&lt;br /&gt;
&lt;br /&gt;
- If you are in a meeting where everyone has strong viewpoints and wants (demands?) to be heard, you may want to take a look around the room. &amp;nbsp;Is everyone in the room an expert on the topic? &amp;nbsp;What is the age group represented in the room? &amp;nbsp;Is the discussion calm or anxious? &amp;nbsp;I've been in so many meetings of this type early in my career that it's a wonder how anything got decided.&lt;br /&gt;
&lt;br /&gt;
- If you are in a meeting where there is a calm flow of thoughts and ideas between a few of the participants with a smattering of "stupid" questions that re-focus or re-base the topic at hand then you may be meeting nirvana. &amp;nbsp;The primary discussion is between the topic experts with the "stupid" questions coming from the non-topic experts working to learn more. &amp;nbsp;The "stupid" questions are not stupid at all, but are an active part of the questioning that is used to attach the current topic thread to a foundation where others can provide valid input. &amp;nbsp;It's a learning process in action and a path to becoming an expert (after your 10,000 hours, more or less).&lt;br /&gt;
&lt;br /&gt;
Asking what I call "stupid" questions can seem like exposing your lack of knowledge, and it does, but it also exposes the current topic thread of not being based on reality or facts. &amp;nbsp;It can add a breather to the flow to provide a quick re-evaluation of the issue and validation that it's on the correct path. &amp;nbsp;You may be surprised at the path change that can occur after the question.&lt;br /&gt;
&lt;br /&gt;
The becoming an expert in yourself is for 1) knowing what you are and are not an expert in and 2) when you can provide valuable input in a discussion and learn from others. &amp;nbsp;Without this knowledge you risk thinking you are an expert when you are not.&lt;br /&gt;
&lt;br /&gt;
The risk of thinking you are an expert can be detrimental to yourself, your career and to projects that you are involved with. &amp;nbsp;You can fool yourself into believing almost anything, but you can not fool others involved in the project or your customers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-9150633506993667213?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/74SLKrf-iGdfhmA5Qw7UuUY54BA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/74SLKrf-iGdfhmA5Qw7UuUY54BA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/74SLKrf-iGdfhmA5Qw7UuUY54BA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/74SLKrf-iGdfhmA5Qw7UuUY54BA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/wFLCZ7B3Sy0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/9150633506993667213/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/09/are-you-and-expert.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/9150633506993667213?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/9150633506993667213?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/wFLCZ7B3Sy0/are-you-and-expert.html" title="Are You and Expert?" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-f5JJmigR-NY/TmV6vLxU15I/AAAAAAAAAGU/1PIaV0ZTdLE/s72-c/Hats.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/09/are-you-and-expert.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcNSHg5fyp7ImA9WhdWEkg.&quot;"><id>tag:blogger.com,1999:blog-3595395211853286290.post-1966575536789284982</id><published>2011-08-29T20:35:00.001-06:00</published><updated>2011-09-05T14:54:59.627-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-05T14:54:59.627-06:00</app:edited><title>Generic -vs- Specific Code</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-gPjyMZbvGNY/TlxH1MCUsiI/AAAAAAAAAGQ/dLfhk462gJQ/s1600/GenericVan.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="214" src="http://1.bp.blogspot.com/-gPjyMZbvGNY/TlxH1MCUsiI/AAAAAAAAAGQ/dLfhk462gJQ/s320/GenericVan.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
The bottom line for me is to provide something that others (we shall call them Users) find beneficial . &amp;nbsp;We take generic tools (languages, DB, logic) and hopefully turn it into a specific tool that solves some problem. &lt;br /&gt;
&lt;br /&gt;
The basic software stack contains the most generic code on the bottom with subsequent higher layers getting more specific (through business logic and APIs) until the most specific code resides in the UI, that hopefully solves a specific problem. &lt;br /&gt;
&lt;br /&gt;
The problem is that, as good little OOD engineers we just love re-use and generic all-purpose code. &amp;nbsp;We are always looking to making our logic, features and code as generic as possible because we just know that we may re-use it sometime in the future (yeah sure!). &amp;nbsp;Sometimes we try to push the generic code up through the layers and expose them in the UI, you know, because we love re-use and such. &amp;nbsp;It's in our nature. &amp;nbsp;Because we are sure the user will understand and love our code too. &amp;nbsp;We just have to convince them what a great feature it is and how it benefits them.&lt;br /&gt;
&lt;br /&gt;
We add complex syntax, tools and options galore so they can do almost anything, except solve their problem out of the box. &amp;nbsp;Simple for the developer, lousy for the user.&lt;br /&gt;
&lt;br /&gt;
We don't just do this to our users either, we do it to other developers too. &amp;nbsp;Ask for an API to do X and we may get an API back that does (a+b+c+z) so that we can get to X, because it's more generic, it's better. &amp;nbsp;The closer the code is to the end feature (UI, Service API, presentation, etc.) the more specific it should be. &amp;nbsp;At this top most level we should not be trying to write the next great tool or concept, but a solution for the user on the other side.&lt;br /&gt;
&lt;br /&gt;
This is yet another area where you have to separate your desires from what your users need. &amp;nbsp;Your personal goals != User needs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3595395211853286290-1966575536789284982?l=toddblackley.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yagwKeZESJBVGKaUY8QcjSr4zMQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yagwKeZESJBVGKaUY8QcjSr4zMQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yagwKeZESJBVGKaUY8QcjSr4zMQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yagwKeZESJBVGKaUY8QcjSr4zMQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/ABuddhistSoftwareEngineer/~4/RXMh_OVbkak" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://toddblackley.blogspot.com/feeds/1966575536789284982/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://toddblackley.blogspot.com/2011/08/generic-vs-specific.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/1966575536789284982?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3595395211853286290/posts/default/1966575536789284982?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/ABuddhistSoftwareEngineer/~3/RXMh_OVbkak/generic-vs-specific.html" title="Generic -vs- Specific Code" /><author><name>A Buddhist Software Developer</name><uri>http://www.blogger.com/profile/07195015036906435168</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_9pI6HAODi8Q/Sujn9dOhYUI/AAAAAAAAAAY/iYOsTVhjHqk/S220/IMG_1594.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-gPjyMZbvGNY/TlxH1MCUsiI/AAAAAAAAAGQ/dLfhk462gJQ/s72-c/GenericVan.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://toddblackley.blogspot.com/2011/08/generic-vs-specific.html</feedburner:origLink></entry></feed>

