<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-976694052988749620</id><updated>2011-08-01T13:20:00.439-06:00</updated><title type='text'>The Creepy Floating Head</title><subtitle type='html'>It's about programming.&lt;br&gt;But sometimes it's about broader subjects, such as programming.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-4974114190246991434</id><published>2010-06-29T12:19:00.001-06:00</published><updated>2010-06-29T12:19:46.665-06:00</updated><title type='text'>Xml Commander Beta Begins</title><content type='html'>This is a project I've been working on in my spare time for a few months now. &lt;br /&gt;&lt;br /&gt;If you've ever used XML Notepad to edit XML files, you may have found it a bit lacking. So I decided to roll my own XML editor with the same hierarchical editing format, but with an often asked for feature thrown in: namely tabbed editing.&lt;br /&gt;&lt;br /&gt;This software is far from complete, so it might not technically qualify as a beta. Let's call it "very beta". You can download a 30-day trial from &lt;a href="http://kevinlaity.zxq.net/apps.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-4974114190246991434?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/4974114190246991434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2010/06/xml-commander-beta-begins_29.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/4974114190246991434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/4974114190246991434'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2010/06/xml-commander-beta-begins_29.html' title='Xml Commander Beta Begins'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-7285850364979825499</id><published>2010-04-19T08:31:00.000-06:00</published><updated>2010-04-19T08:31:08.803-06:00</updated><title type='text'>Complete Denial of the Chicken and the Egg</title><content type='html'>Google's new Chrome OS has a slight drawback:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://techland.com/2010/04/16/googles-os-predicament-how-do-you-print-from-the-cloud/"&gt;http://techland.com/2010/04/16/googles-os-predicament-how-do-you-print-from-the-cloud/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You'd think that a company that's come as far as Google would have a better strategy than this. And that they wouldn't have their heads in the clouds with all this wishful thinking.&lt;br /&gt;&lt;br /&gt;Companies will only build cloud-enabled printers if they feel it's worth it. This is why drivers exist, to create a layer of abstraction that permits any piece of software to use your hardware. &lt;br /&gt;&lt;br /&gt;But Chrome stands in the way of that model. They want this cloud thing to work and they want you to beleive it too. &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Essentially, you'd have a printer that requires very little setup aside from taking it out of the box and plugging it in. There'd be no software to install anywhere but you'd need to connect it to your network to get it online and then establish a link to it using your Google account.&lt;/blockquote&gt;&lt;br /&gt;You mean, I have &lt;i&gt;to sign my printer up&lt;/i&gt; with Google? Using that tiny calculator-like screen a printer generally comes with? You want me to &lt;i&gt;SURF THE WEB&lt;/i&gt; on that? So I can register it with google?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-7285850364979825499?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/7285850364979825499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2010/04/complete-denial-of-chicken-and-egg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/7285850364979825499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/7285850364979825499'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2010/04/complete-denial-of-chicken-and-egg.html' title='Complete Denial of the Chicken and the Egg'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-4973630902726782501</id><published>2010-01-28T12:32:00.000-07:00</published><updated>2010-01-28T12:32:08.901-07:00</updated><title type='text'>Great Ideas</title><content type='html'>If you think you've got the next great idea, theres a question you need to ask yourself.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;If my idea is so great, why has nobody executed that idea before?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Right answers might include:&lt;br /&gt;&lt;br /&gt;- Because they wrongly came to the conclusion that its unfeasible, and I found a way to make it so.&lt;br /&gt;&lt;br /&gt;- Because they couldn't deduce who they would market it to, and I have.&lt;br /&gt;&lt;br /&gt;- Because it solves a problem nobody thought they had. I now see that they DO have that problem, and the customers will see that too.&lt;br /&gt;&lt;br /&gt;Wrong answers include:&lt;br /&gt;&lt;br /&gt;- Who cares why they didn't think of it, it's GOLD!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-4973630902726782501?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/4973630902726782501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2010/01/great-ideas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/4973630902726782501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/4973630902726782501'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2010/01/great-ideas.html' title='Great Ideas'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-2904758954015356246</id><published>2010-01-13T09:35:00.000-07:00</published><updated>2010-01-13T09:35:00.271-07:00</updated><title type='text'>When you reduce someone else's headaches...</title><content type='html'>...you win. Because &lt;i&gt;they &lt;/i&gt;win, and now they have a vested interest in helping &lt;i&gt;you &lt;/i&gt;win.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-2904758954015356246?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/2904758954015356246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2010/01/when-you-reduce-someone-elses-headaches.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/2904758954015356246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/2904758954015356246'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2010/01/when-you-reduce-someone-elses-headaches.html' title='When you reduce someone else&apos;s headaches...'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-2680593951406920141</id><published>2009-12-10T09:53:00.002-07:00</published><updated>2009-12-11T10:09:45.796-07:00</updated><title type='text'>Closed Mindedness</title><content type='html'>For my next project at work, we're switching from native C++ to C# (Mono). The only reason this is able to happen is because the companies most staunch detractor for C# has left the company. He's quoted as saying that he'd rather die than program in C#.&lt;br /&gt;&lt;br /&gt;Which I think is a bit over-religious. Did he even stop to consider the advantages (or disadvantages) of one language over another? No. He simply had decided that C++ was the way to go. And that's that.&lt;br /&gt;&lt;br /&gt;Maybe C# isn't the right language for your project. But I think whenever you say "I'll &lt;i&gt;never &lt;/i&gt; write so much as a single line of code in &lt;i&gt;that &lt;/i&gt;language for any project &lt;i&gt;ever&lt;/i&gt;" whether that's C#, Java, C++, Assembly, Visual Basic, Python, Javascript, Perl, Ruby, or friggin bytecode, whenever you say that, you're proving that you are completely unwilling to evaluate the costs and benefits of one language over another.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-2680593951406920141?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/2680593951406920141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/closed-mindedness.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/2680593951406920141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/2680593951406920141'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/closed-mindedness.html' title='Closed Mindedness'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-1430551597928190291</id><published>2009-12-09T12:17:00.001-07:00</published><updated>2009-12-09T12:17:12.900-07:00</updated><title type='text'>Most People are Honest...</title><content type='html'>...but the liars are louder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-1430551597928190291?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/1430551597928190291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/most-people-are-honest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/1430551597928190291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/1430551597928190291'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/most-people-are-honest.html' title='Most People are Honest...'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-1164108487157336790</id><published>2009-12-08T14:53:00.000-07:00</published><updated>2009-12-08T14:53:02.835-07:00</updated><title type='text'>Singletons</title><content type='html'>It's a pretty universal observations that Singletons suck. But few give any rationale as to what it is about them that sucks.&lt;br /&gt;&lt;br /&gt;To me the best argument is: They may save you time today, but they'll take all that back and more tomorrow in the form of inflexibility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-1164108487157336790?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/1164108487157336790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/singletons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/1164108487157336790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/1164108487157336790'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/singletons.html' title='Singletons'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-3385619391468109568</id><published>2009-12-07T09:02:00.006-07:00</published><updated>2009-12-07T09:09:03.832-07:00</updated><title type='text'>Think Trench Warfare</title><content type='html'>Let's say you've got 6 soldiers in a trench, 5 privates and a sargeant. In 5 minutes, these men plus other units elsewhere must go over the trench and push into enemy territory.&lt;br /&gt;&lt;br /&gt;Let's imagine now that way back at HQ, there's a general. And this general is worried about the push because he has gotten the idea in his head that the men are not cleaning their weapons well enough.&lt;br /&gt;&lt;br /&gt;So what does he do? He &lt;i&gt;individually radios each&lt;/i&gt; of the 5 privates and orders each one to clean his gun. Those guns must be ready for the push!&lt;br /&gt;&lt;br /&gt;The sargeant sees one of his men cleaning his weapon frantically and says "What are you doing? You just cleaned that 20 minutes ago!" And the private would have to respond "I'm sorry sir, I was ordered to do this by the general."&lt;br /&gt;&lt;br /&gt;What can the sargeant do? He can't override an order by a higher ranking officer, so he allows his men to finish.&lt;br /&gt;&lt;br /&gt;After cleaning and reloading their weapons, the unit is over a minute late for the push, and &lt;i&gt;the entire effort falls apart&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;What went wrong here?&lt;br /&gt;&lt;br /&gt;If the general had called up the sargeant, the sargeant would have explained that the men were ready and able to carry out the mission. Instead, the general has overridden the sargeant's authority to keep his men combat-ready. The only order the general should have needed to give was "go."&lt;br /&gt;&lt;br /&gt;The lesson? &lt;br /&gt;&lt;br /&gt;As a leader, you need to either be in the trenches, issuing low-level orders and observing the situation, or back at HQ, giving high-level orders that set &lt;i&gt;policy&lt;/i&gt;, and delegating that low-level responsibility to your sargeants.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;You can't have just one foot in the trenches.&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-3385619391468109568?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/3385619391468109568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/think-trench-warfare.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/3385619391468109568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/3385619391468109568'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/think-trench-warfare.html' title='Think Trench Warfare'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-9186709512268530558</id><published>2009-12-03T07:48:00.001-07:00</published><updated>2009-12-03T07:48:43.110-07:00</updated><title type='text'>The next time someone says I told you so...</title><content type='html'>...maybe you should respond with "yes, I should have listened to you."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-9186709512268530558?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/9186709512268530558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/next-time-someone-says-i-told-you-so.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/9186709512268530558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/9186709512268530558'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/next-time-someone-says-i-told-you-so.html' title='The next time someone says I told you so...'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-8687896662806070473</id><published>2009-12-02T10:30:00.000-07:00</published><updated>2009-12-02T10:30:02.221-07:00</updated><title type='text'>Regular Expressions are Just one of Those Things</title><content type='html'>They're powerful. They can solve huge problems. And everybody swears by them.&lt;br /&gt;&lt;br /&gt;So you pretend to swear by them too, because everybody else does, and you know that in the end it IS going to be the most optimized way to deal with a certain problem. &lt;br /&gt;&lt;br /&gt;So you lie to yourself (or to others) and say that you'll be able to write a regular expression without needing to take hours out of your life to debug it. You pretend that you won't come back to it 2 months later when it starts coming across situations you didn't account for (or maybe you thought you did) and spend more hours banging your head trying to fix it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-8687896662806070473?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/8687896662806070473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/regular-expressions-are-just-one-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/8687896662806070473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/8687896662806070473'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/regular-expressions-are-just-one-of.html' title='Regular Expressions are Just one of Those Things'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-1083125212788496957</id><published>2009-12-02T07:52:00.008-07:00</published><updated>2009-12-02T07:56:15.670-07:00</updated><title type='text'>Project Ownership</title><content type='html'>I've seen alot of projects go bad for one simple reason: The person or persons in charge of that project didn't have enough authority to execute the project as requested, and are nonetheless expected to be responsible for the success or failure of that project.&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/_DTv9uQywFtY/SxZ-H5JPK8I/AAAAAAAAABY/EAaEZ4vk5_g/s1600-h/incharge.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_DTv9uQywFtY/SxZ-H5JPK8I/AAAAAAAAABY/EAaEZ4vk5_g/s640/incharge.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="display:block;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;I don't find this cartoon funny, I find it sad, because it's true.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-1083125212788496957?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/1083125212788496957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/project-ownership.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/1083125212788496957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/1083125212788496957'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/12/project-ownership.html' title='Project Ownership'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_DTv9uQywFtY/SxZ-H5JPK8I/AAAAAAAAABY/EAaEZ4vk5_g/s72-c/incharge.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-4888500655574141065</id><published>2009-11-27T13:19:00.001-07:00</published><updated>2009-11-27T13:20:09.432-07:00</updated><title type='text'>Minimize the Intangibles</title><content type='html'>Working with the iPhone in XCode, one of the main beefs I have against it that it &lt;i&gt;feels&lt;/i&gt; so disconnected with the app I'm trying to create.&lt;br /&gt;&lt;br /&gt;Take modifying a xib file for example, you open it up and you see First Responders and Delegates and Owners and you drag them around to get things done, and then maybe you have to create a few more crazy little objects that mean nothing to you but the tutorial you're reading says you really have to do it this way. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Where is the toolbar?"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I'm sure it all makes perfect sense if you've spent more time working with this stuff than I have, but for me it's just a bunch of really abstract, intangible concepts that have nothing to do with what I want to get done. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Just show me where the toolbar is."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I want a Window. I want to put a button on my window and when I click it, a function I specify gets called. Is that so hard?&lt;br /&gt;&lt;br /&gt;Because of this simple concept, Visual Studio's editor can be picked up by anybody in a matter of minutes. Drop a button. Double-click it, now you're editing the code that gets called when that button is clicked. &lt;br /&gt;&lt;br /&gt;What if editing in Visual Studio consisted of things like adding a "Primary Framework Broker" object as a child of the form and then dragging it onto the form's "User Experience Instantiation Handler"? It would be a nightmare and you'd need tons of documentation to even get started.&lt;br /&gt;&lt;br /&gt;So the next time I write an app, I'll ask myself if the concepts I'm asking my users to deal with are tangible enough. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Please select the appropriate EmployeeSalaryReviewLinkage object."&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-4888500655574141065?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/4888500655574141065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/minimize-intangibles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/4888500655574141065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/4888500655574141065'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/minimize-intangibles.html' title='Minimize the Intangibles'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-2287659828723246833</id><published>2009-11-26T08:09:00.000-07:00</published><updated>2009-11-26T08:09:59.312-07:00</updated><title type='text'>The Reduce-Embarassment System of Prioritization</title><content type='html'>Sometimes it's hard to know what to tackle next, especially when you're doing a project yourself, or when you're the manager of a project. &lt;br /&gt;&lt;br /&gt;I like to build things in priority order, in other words, most important thing first. Common sense, right? But how often have you stalled your project by focusing too hard on getting that tiny portion of your program &lt;i&gt;juuuust right&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;To avoid that trap, I try to give everything in my projects a priority value, and whenever I find myself working on something that's a lower priority than something else, I switch. &lt;br /&gt;&lt;br /&gt;But how do I know what should take priority over what? I use the reduce-embarrasment system. Basically I ask myself "if I were to release my software today, which incomplete item is the most embarrassing not to have completed?"&lt;br /&gt;&lt;br /&gt;When you start your project, it's at its most embarrassing stage, because &lt;i&gt;there's nothing on the screen&lt;/i&gt;. And you reduce embarrassment from there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-2287659828723246833?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/2287659828723246833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/reduce-embarassment-system-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/2287659828723246833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/2287659828723246833'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/reduce-embarassment-system-of.html' title='The Reduce-Embarassment System of Prioritization'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-4893806838172082581</id><published>2009-11-23T09:11:00.002-07:00</published><updated>2009-11-23T09:15:09.234-07:00</updated><title type='text'>Foreign Code and the Obligatory "WTF?"</title><content type='html'>Whenver I look at somebody else's code I am compelled to think they're crazy at first.&lt;br /&gt;&lt;br /&gt;"You don't need that! What were you thinking?" I scream at them, even if they're not around. &lt;i&gt;Especially if they're not around&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Lately I've begun to realize that the reason other people's code looks so bad is that, you're looking at the solution to a problem you don't know about. Why did Joe Blow use a series of classes just do to the same job as an enum? Well dive a little deeper and you'll find the giant switch statement he was trying to avoid. He just wanted &lt;i&gt;an enum with code in it&lt;/i&gt;! &lt;br /&gt;&lt;br /&gt;But you didn't realize at first that that would be a problem, and you convince yourself that he's done all this work for naught.&lt;br /&gt;&lt;br /&gt;It's like Jeopardy. The format of the game is backwards, they give you an answer and you tell them what question needs to be asked to bring about that answer. But you just KNOW that there's no way you would have gotten the answer if the question was asked forwards. Nobody could.&lt;br /&gt;&lt;br /&gt;Just like you can't see all the problems that somebody else ran into just by looking at the solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-4893806838172082581?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/4893806838172082581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/foreign-code-and-obligatory-wtf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/4893806838172082581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/4893806838172082581'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/foreign-code-and-obligatory-wtf.html' title='Foreign Code and the Obligatory &quot;WTF?&quot;'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-1976764964312943970</id><published>2009-11-20T07:48:00.002-07:00</published><updated>2009-11-20T08:01:43.780-07:00</updated><title type='text'>Don't Fear the Truth</title><content type='html'>Those who fear the truth will have, at best, mediocre success&lt;br /&gt;&lt;br /&gt;Have you ever worked at a company that mandated you to not to talk to other employees about your salary? If you raised your hand (and it's very likely that you did) you've been the victim of an organization that's afraid of the truth.&lt;br /&gt;&lt;br /&gt;That organization doesn't want you to talk about your salary because then people will realize that the &lt;u&gt;last person in&lt;/u&gt; gets the biggest pay. Why? Because while some may be content to &lt;i&gt;stay&lt;/i&gt; in an organization at low pay, few will &lt;i&gt;enter&lt;/i&gt; an organization at that same pay.&lt;br /&gt;&lt;br /&gt;Shouldn't the most talented, most loyal employee get the biggest pay and the biggest chance of advancement? And to me one factor in measuring that is time spent with the company. &lt;i&gt;Seniority&lt;/i&gt;. To do otherwise discourages loyalty, and who wants that?&lt;br /&gt;&lt;br /&gt;These organizations come about because the person at the top is in it for himself. Numero uno. And any successful person knows you have to be in it not for 'me' but for 'us', for the team! &lt;br /&gt;&lt;br /&gt;Many of these clueless bosses will be outraged when they find out that you're not a 'team player' when they have done nothing to help the team themselves.&lt;br /&gt;&lt;br /&gt;They see you as a neccessary evil. They wish they could replace you with a robot and they live to maintain the status quo. They fear the truth, and they will never have anyone but themselves on their side. &lt;br /&gt;&lt;br /&gt;Thus, mediocre success.&lt;br /&gt;&lt;br /&gt;So the next time you're in an interview, maybe one of the questions you should have for the interviewer is, "Will I be asked not to discuss my salary with other employees?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-1976764964312943970?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/1976764964312943970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/dont-fear-truth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/1976764964312943970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/1976764964312943970'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/dont-fear-truth.html' title='Don&apos;t Fear the Truth'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-976694052988749620.post-119430484718098965</id><published>2009-11-19T14:22:00.007-07:00</published><updated>2009-11-19T15:56:15.329-07:00</updated><title type='text'>It's All About the Cake</title><content type='html'>A cliche often spoken by non-programmers is: "why can't we build software the way we build bridges?" But I think the metaphor works better if you say: "Why can't we build software the way we bake cakes?"&lt;br /&gt;&lt;br /&gt;The answer is, you don't bake the cake. You create a recipe.  In cake building, you slap together components you already know work (eggs, flour, milk) and voila, you get a cake!  &lt;br /&gt;&lt;br /&gt;In RECIPE building however, you experiment with a hundred different variations of those ingredients. You don't bake the cake, the compiler bakes the cake for you, using components it knows already work (classes, functions, variables); but in the proportions and order that you've specified.  &lt;br /&gt;&lt;br /&gt;Therefore programming is about finding the best recipe for the type of cake you want, which means:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You have to have people around to taste your creations to see how good they are (beta testing)&lt;/li&gt;&lt;li&gt;Once you've found the right recipe, you can build a cake factory. (distribution)&lt;/li&gt;&lt;li&gt;The cakes will never be perfect, and a few of them will collapse. (crash)&lt;/li&gt;&lt;li&gt;And it's possible that a competitor will create a cake that's not only chocolatey like yours, but also nutty! (extra features)&lt;/li&gt;&lt;li&gt;So you refine your recipe to make your cakes tastier (version 2.0)&lt;/li&gt;&lt;li&gt;You could start from scratch, or add to an existing cake mix (third-party libraries)&lt;/li&gt;&lt;li&gt;But you can't take away ingredients from the existing cake mix (lock-in)&lt;/li&gt;&lt;li&gt;And the cake mix is meant to appeal to everyone and so is less likely to perfectly fit your needs (leaky abstractions)&lt;/li&gt;&lt;/ul&gt;Mmmmmm cake... where was I?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/976694052988749620-119430484718098965?l=creepy-floating-head.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://creepy-floating-head.blogspot.com/feeds/119430484718098965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/finished-software-cake.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/119430484718098965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/976694052988749620/posts/default/119430484718098965'/><link rel='alternate' type='text/html' href='http://creepy-floating-head.blogspot.com/2009/11/finished-software-cake.html' title='It&apos;s All About the Cake'/><author><name>Kevin Laity</name><uri>http://www.blogger.com/profile/13354888747909159635</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
