<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0">

  <title><![CDATA[The Hiltmon]]></title>
  
  <link href="http://hiltmon.com/" />
  <updated>2012-02-23T21:20:53-05:00</updated>
  <id>http://hiltmon.com/</id>
  <author>
    <name><![CDATA[Hilton Lipschitz]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/hiltmon" /><feedburner:info uri="hiltmon" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title type="html"><![CDATA[Text Editing Fonts and Colors]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/hMbhLR4cOLo/" />
    <updated>2012-02-23T20:33:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/23/text-editing-fonts-and-colors</id>
    <content type="html">&lt;p&gt;In &lt;a href="http://www.hiltmon.com/blog/2012/02/20/the-markdown-mindset/"&gt;The Markdown Mindset&lt;/a&gt; I described how I use a variety of different editors to write Markdown in different contexts. I also use different fonts and color schemes to help me differentiate as I go along.&lt;/p&gt;

&lt;p&gt;For the record, everything &lt;em&gt;was&lt;/em&gt; done in &lt;strong&gt;Monaco&lt;/strong&gt; a few years ago.&lt;/p&gt;

&lt;h3&gt;Cousine&lt;/h3&gt;

&lt;p&gt;Blogging is done in &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt; using &lt;a href="http://www.google.com/webfonts/specimen/Cousine"&gt;Cousine&lt;/a&gt; 15pt and the light theme. It&amp;#8217;s pretty close to &lt;a href="http://www.boldmonday.com/en/nitti_overview"&gt;Nitti Light&lt;/a&gt; as used in &lt;a href="http://www.iawriter.com/"&gt;iAWriter&lt;/a&gt;, but has variable sizing and is free from Google. I really like it in Byword because they render the font a tad large and it matches their cool anti-aliasing scheme.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://hiltmon.com/images/blogging-theme.png" width="640" height="320"&gt;&lt;/p&gt;

&lt;h3&gt;Menlo&lt;/h3&gt;

&lt;p&gt;Programming is done in &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt; using &lt;a href="http://typophile.com/node/58625"&gt;Menlo&lt;/a&gt; 12 and the &lt;a href="http://railscasts.com/about"&gt;RailsCasts&lt;/a&gt; theme. I switched from &lt;a href="http://en.wikipedia.org/wiki/Monaco_(typeface"&gt;Monaco&lt;/a&gt; to Menlo in Textmate 2 and I&amp;#8217;m not going back. Monaco&amp;#8217;s line spacing in TM2 was too tall, Menlo is just right.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://hiltmon.com/images/programming-theme.png" width="640" height="320"&gt;&lt;/p&gt;

&lt;p&gt;Cocoa work is done in XCode using Menlo and the default theme. After seeing all the Apple demos, to me that&amp;#8217;s what Objective-C needs to look like.&lt;/p&gt;

&lt;p&gt;Long form writing in &lt;a href="http://www.literatureandlatte.com/scrivener.php"&gt;Scrivener&lt;/a&gt; is done in Menlo as well now. I really do not like the default &lt;a href="http://en.wikipedia.org/wiki/Optima"&gt;Optima&lt;/a&gt;. I used Cousine for a while until one day I tried Menlo and it just looked smoother.&lt;/p&gt;

&lt;p&gt;My terminals are also set up to use Menlo, and I use a custom theme that integrates cyan and yellow into the prompt and ls colors.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://hiltmon.com/images/terminal-theme.png" width="640" height="320"&gt;&lt;/p&gt;

&lt;h3&gt;Consolas&lt;/h3&gt;

&lt;p&gt;Note taking is done in &lt;a href="http://www.barebones.com/products/bbedit/index.html"&gt;BBEdit&lt;/a&gt; using their tweaked version of &lt;a href="http://en.wikipedia.org/wiki/Consolas"&gt;Consolas&lt;/a&gt; and the default theme (I have set up RailsCasts for code files as well). Something about working in BBEdit makes we want to use Consolas and get that old-mac editor look.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://hiltmon.com/images/notes-theme.png" width="640" height="320"&gt;&lt;/p&gt;

&lt;p&gt;So bye bye &lt;strong&gt;Monaco&lt;/strong&gt;, my old friend. You served us all so well for so long.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/hMbhLR4cOLo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/23/text-editing-fonts-and-colors/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Apple and Facebook]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/18w9ovEaZLE/" />
    <updated>2012-02-22T14:05:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/22/apple-and-facebook</id>
    <content type="html">&lt;p&gt;Ben Parr in Cnet&amp;#8217;s &lt;a href="http://news.cnet.com/8301-33617_3-57381092-276/apple-vs-facebook-why-users-are-the-losers/"&gt;Apple vs. Facebook: Why users are the losers&lt;/a&gt; gets it wrong!&lt;/p&gt;

&lt;p&gt;In the article, he postulates that Apple&amp;#8217;s favorite social media service is Twitter and that Apple just hates Facebook (really?). He then explains there is no integration between Apple and Facebook because of some old Ping issues and some HP rubbish and some unsubstantiated hatred. Then he mentions that there actually is some Facebook integration, but its sandboxed in iPhoto.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;real&lt;/em&gt; reason there is no integration between Apple and Facebook is because Apple is &lt;em&gt;not&lt;/em&gt; in the business of &lt;em&gt;selling out&lt;/em&gt; its customers. In the Twitterverse, the tweet is the product, and integration requires a login and password with &lt;em&gt;no&lt;/em&gt; other data sharing with Twitter. With Facebook, the &lt;em&gt;user&lt;/em&gt; is the product, and integration requires Apple to share the user&amp;#8217;s information with Facebook to make it work.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Apple is not prepared to that with Facebook without their user&amp;#8217;s consent.&lt;/em&gt; So no general Facebook integration.&lt;/p&gt;

&lt;p&gt;I am a Facebook user, and I totally agree with Apple&amp;#8217;s stance on this one.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/18w9ovEaZLE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/22/apple-and-facebook/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The Markdown Mindset]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/4iYub-9O-I0/" />
    <updated>2012-02-20T20:07:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/20/the-markdown-mindset</id>
    <content type="html">&lt;p&gt;Over the last year, I have moved all my non-code writing to &lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt; format. I don&amp;#8217;t even have Microsoft Word installed on my laptop anymore. Here&amp;#8217;s why:&lt;/p&gt;

&lt;!--more--&gt;


&lt;h2&gt;It&amp;#8217;s just plain text&lt;/h2&gt;

&lt;p&gt;I have been using personal computers of some kind or another since 1981 (my first being a &lt;a href="http://en.wikipedia.org/wiki/ZX81"&gt;Sinclair ZX81&lt;/a&gt;). One of the problems I have faced time and time again as I have jumped to newer computers, different operating systems, and different tools is that I have been unable to convert my documents from the old to the new. In many cases, I could have done it, but now it&amp;#8217;s too late. Nothing these days reads some of the old proprietary file formats I still have. Which means the data is probably lost.&lt;/p&gt;

&lt;p&gt;Markdown is text, just plain text. Its the one format that has not changed over all the years. Oh sure, we&amp;#8217;ve gone from a 7-bit ascii code to UTF-8, but all text editors happily handle the old text formats. And when they stop, a small C program will fix it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Plain text, and therefore Markdown, are as future-proof as you can get in computing.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;It&amp;#8217;s all about the writing&lt;/h2&gt;

&lt;p&gt;The big problem with many tools used for writing (ok, mostly word processors) is that there are too many things you &lt;em&gt;could&lt;/em&gt; be doing instead of writing. You &lt;em&gt;could&lt;/em&gt; be playing with fonts or styles, futzing for ages trying to make the document look right, work the number styles, headers and footers and resizing the margining.&lt;/p&gt;

&lt;p&gt;Or you could be writing.&lt;/p&gt;

&lt;p&gt;With Markdown, the font, style, margin and other stuff all comes later. All you have is the text, the basic structure and the options for bold, italic, lists and tables. That&amp;#8217;s it! There&amp;#8217;s nothing else, so the writer is encouraged to write.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s also easy to read. As I write, I often go back and read what I just wrote, to check flow, spelling, grammar and content. Since the markup in Markdown is unobtrusive, it&amp;#8217;s easy to read. And since the markup does not change the style, you focus on the content instead.&lt;/p&gt;

&lt;h2&gt;It&amp;#8217;s tool-agnostic&lt;/h2&gt;

&lt;p&gt;Plain text, and therefore Markdown, is tool-agnostic. One can edit it in a myriad of tools. On a myriad of platforms. In whatever way the writer likes.&lt;/p&gt;

&lt;p&gt;What I &lt;em&gt;actually&lt;/em&gt; do is to use different tools to help me get into the mindset for what I am doing in Markdown. When I am blogging or writing short articles, I&amp;#8217;m writing Markdown in &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt;, previewing in &lt;a href="http://markedapp.com/"&gt;Marked&lt;/a&gt;. When I am doing a manual or a bunch of related documents, I work with Markdown in &lt;a href="http://www.literatureandlatte.com/scrivener.php"&gt;Scrivener&lt;/a&gt;. When I am taking notes, logging my programming work or creating release notes, I use Markdown in &lt;a href="http://www.barebones.com/products/bbedit/index.html"&gt;BBEdit&lt;/a&gt;. Programming readme files, Markdown in &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;. I could use any of these tools for any of these tasks if I choose, and I can move the files from one to another without any loss of fidelity.&lt;/p&gt;

&lt;p&gt;It just gets better with sharing. When I share these files, those shared with can use any tool of &lt;em&gt;their&lt;/em&gt; choice to modify the document. They don&amp;#8217;t have to &lt;em&gt;have&lt;/em&gt; or &lt;em&gt;use&lt;/em&gt; the same stuff as I do. As long as it stays a plain text Markdown document, they can use what they want and I can still merge in their changes. They may want to use vim or gedit on linux, Notepad or UltraEdit on Windows or pretty much anything on the Mac. But the file remains the same across all.&lt;/p&gt;

&lt;h2&gt;It transforms into any format&lt;/h2&gt;

&lt;p&gt;The initial use of Markdown was to create HTML content. These days, with tools like &lt;a href="http://markedapp.com/"&gt;Marked&lt;/a&gt; and &lt;a href="http://www.literatureandlatte.com/scrivener.php"&gt;Scrivener&lt;/a&gt;, and the &lt;a href="http://fletcherpenney.net/multimarkdown/"&gt;MultiMarkdown&lt;/a&gt; scripts, the Markdown plain text can become PDF&amp;#8217;s, Word Documents, RTF Documents, even Latex files (See &lt;a href="http://fletcherpenney.net/multimarkdown/features/"&gt;MultiMarkdown Features&lt;/a&gt;) without any effort. &lt;em&gt;One simple source format for many delivery formats.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Which also makes each file reusable. The same source file can be used in the web site knowledge base, in the manual and in an email.&lt;/p&gt;

&lt;h2&gt;And a whole bunch more&lt;/h2&gt;

&lt;p&gt;Being plain text is great.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plain text is searchable, some of the proprietary formats are not.&lt;/li&gt;
&lt;li&gt;Plain text works on all platforms, not all formats can be read on them.&lt;/li&gt;
&lt;li&gt;Plain text files are small. Plain text is fast to read and write to disk. It makes for small mail attachments.&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Daily uses of Markdown&lt;/h2&gt;

&lt;p&gt;Here are some of the things I do almost every day in Markdown:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Update my &lt;a href="http://dayoneapp.com/"&gt;DayOne&lt;/a&gt; journal in Markdown&lt;/li&gt;
&lt;li&gt;Write my software development and project notes in Markdown using &lt;a href="http://www.barebones.com/products/bbedit/index.html"&gt;BBEdit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Write a blog post in Markdown using &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add to the &lt;a href="http://www.kifuapp.com"&gt;KifuApp&lt;/a&gt; Knowledgebase using &lt;a href="http://www.literatureandlatte.com/scrivener.php"&gt;Scrivener&lt;/a&gt; in Markdown&lt;/li&gt;
&lt;li&gt;Maintain the documentation for my projects in Markdown in &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;And one thing I never expected to do in Markdown:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Log all messages from my &amp;#8220;Import to Kifu&amp;#8221; process in Markdown, so that the import log can be sent prettily formatted to clients&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Getting started in Markdown&lt;/h2&gt;

&lt;p&gt;It&amp;#8217;s easy. Start with your favorite text editor next time you need to write something instead of using whatever you usually use. Learn the markup as you go and need things. That&amp;#8217;s all there is to it.&lt;/p&gt;

&lt;p&gt;Just write.&lt;/p&gt;

&lt;p&gt;You&amp;#8217;ll be surprised how productive you will be.&lt;/p&gt;

&lt;h2&gt;Markdown references&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://daringfireball.net/projects/markdown/"&gt;Markdown&lt;/a&gt;, the original, by John Gruber&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fletcherpenney.net/multimarkdown/"&gt;MultiMarkdown&lt;/a&gt; by Fletcher Penney, which adds new exports, syntax features and document metadata which I love.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bywordapp.com/markdown/guide.html"&gt;Byword MultiMarkdown Guide&lt;/a&gt;, a great one page reference by the makers of &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/4iYub-9O-I0" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/20/the-markdown-mindset/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The 4G deception]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/G_hHdx1qH0w/" />
    <updated>2012-02-17T12:45:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/17/the-4g-deception</id>
    <content type="html">&lt;p&gt;These days, all the US mobile carriers are touting their allegedly hot new 4G networks, pushing people to upgrade their phones and get up to 10x faster mobile data speeds.&lt;/p&gt;

&lt;p&gt;Note the only single consumer benefit touted is a &lt;em&gt;possibly&lt;/em&gt; faster download time, it is not guaranteed.&lt;/p&gt;

&lt;p&gt;This whole thing is a deception.  Here&amp;#8217;s why.&lt;/p&gt;

&lt;!--more--&gt;


&lt;h3&gt;The 4G Deception&lt;/h3&gt;

&lt;p&gt;Sprint and Verizon are making 4G networks, using WiMAX and LTE. This is &lt;em&gt;real&lt;/em&gt; 4G. In 2011, AT&amp;amp;T and T-Mobile were not using LTE yet, they just rebranded their HSPDA+ 3G networks with faster speeds as 4G.  (Reference: &lt;a href="http://www.techrepublic.com/blog/hiner/how-at-t-and-t-mobile-conjured-4g-networks-out-of-thin-air/7361"&gt;How AT&amp;amp;T and T-Mobile conjured 4G networks out of thin air&lt;/a&gt;). In 2012, AT&amp;amp;T says it has a LTE rolling out, but it&amp;#8217;s promoting that it&amp;#8217;s 4G service is really a dash of LTE and a lot of HSPDA+.&lt;/p&gt;

&lt;p&gt;But what does an LTE network actually do for customers, over and above the &lt;em&gt;possible&lt;/em&gt; speed increase? It&amp;#8217;s the next global standard, so roaming will work, okay, and it should have less cross-interference between cell users, rare but okay, and, and, thats it! No better coverage or in-building penetration, no longer battery life, no cheaper services, nothing.&lt;/p&gt;

&lt;p&gt;And only available in big metros, so you pay the 4G price for 3G service is most places anyway.&lt;/p&gt;

&lt;h3&gt;The Cap Deception&lt;/h3&gt;

&lt;p&gt;It really sounds great to have a faster network, but in this world of data caps and throttling, all it means is that customers get to their data caps faster. Benefit to customer, none. Benefit to carrier, they get to nail more customers with overages and gouge them mercilessly. Its the &amp;#8216;free credit-card&amp;#8217; scam where they hit you with an usurious interest rate all over again. They can almost guarantee that most 4G customers will exceed their caps early in the month and often exceed the next level cap as well. I mean, 2GB then two more, that&amp;#8217;s nothing when people are watching movies over the mobile data network.&lt;/p&gt;

&lt;p&gt;The carriers, especially the LTE ones, are absolutely drooling over customers who roam. They see not only gouging on roaming rates (which they already do), but even more roaming data transfer, and therefore more roaming data rate income. Given that roaming rates are already insanely high (and even more profitable), this means they get to take more out of the customer&amp;#8217;s pocket before the customer even knows about it.&lt;/p&gt;

&lt;h3&gt;The Service Deception&lt;/h3&gt;

&lt;p&gt;They all promote 4G as the best new thing, Verizon especially selling on the brilliance of &amp;#8220;the network&amp;#8221;.  But they do not discuss any improvement to existing services on these networks. Consumers assume new means better, and consumers &lt;em&gt;do&lt;/em&gt; assume that 4G will reduce dropped calls, coverage issues and slowdowns. &lt;em&gt;None&lt;/em&gt; of the carriers explain that the 4G networks will do &lt;em&gt;none&lt;/em&gt; of these things, you&amp;#8217;ll get the same coverage issues, same dropped calls and the same slowdowns at peak hours. This magical network may be better is some imaginary way, but the consumer&amp;#8217;s service will still suck. (See &lt;a href="http://www.huffingtonpost.com/2011/06/19/4g-network-what-you-should-know_n_879609.html"&gt;3G vs. 4G: What You Should Know Before You Switch&lt;/a&gt;)&lt;/p&gt;

&lt;h3&gt;The Hog Deception&lt;/h3&gt;

&lt;p&gt;As with any service, there are those who use more than others. Some mobile users use more data than others. The carriers coined the term &amp;#8220;data hog&amp;#8221; as a derogatory reference to them, then set out to blame these customers for terrible network service all customers get, and used this made-up excuse to cap plans. This is the most egregious deception.&lt;/p&gt;

&lt;p&gt;It costs a little money to add capacity to the network (and a lot if the cell towers need upgrading or adding to). It costs nothing to add a new subscriber, it makes them money instead. So carriers skimp on adding capacity and go nuts trying to add subscribers. To the point that they are so far oversubscribed for the capacity that they have, that even &amp;#8216;normal&amp;#8217; users notice the slowdowns.  So, instead of fixing the problem and bringing capacity up inline with subscriber growth, they deceive. They imply that network capacity is limited, not true, that adding capacity is expensive, even less true (unless new towers are involved), and that the reason the network is slow is because these made-up customers are using all the available capacity! If you believe them, I have a nice bridge to sell you in Manhattan.&lt;/p&gt;

&lt;p&gt;When called on this subscriber vs capacity issue, the carriers have stated that everybody does this, so its normal and OK. ISP&amp;#8217;s oversubscribe internet access capacity, cable companies oversubscribe television channels on their cable feeds, airlines oversubscribe flights. &lt;em&gt;Just because everyone else does something does not make it right!&lt;/em&gt; The idea behind oversubscription is based on the concept that all users of a service will not all need it at once, so the service can be shared. But the carriers have long gone past the point where even the few using the network at a time are not exceeding that network&amp;#8217;s capacity.&lt;/p&gt;

&lt;h3&gt;The Open Deception&lt;/h3&gt;

&lt;p&gt;And interesting omission from all the carriers on 4G data is that none of them actually promise that this magic new network will actually deliver what people want. The FCC allows carriers to throttle, censor and block services on the mobile data network.  Consumers incorrectly assume that the 4G network, because it is faster, and so much &amp;#8216;better&amp;#8217;, means that this throttling, blocking and censorship is no longer necessary. Not true.&lt;/p&gt;

&lt;p&gt;None of the 4G networks promise unfettered access. None of the carriers offer an open network.  All of them are trying to create their own content services to compete with iTunes and Netflix, and are shaping their traffic so that mobile users will turn to their expensive services rather than deal with throttled or limited access to better and cheaper services. 4G does not, in any way, open up the network, no consumer benefit here either.&lt;/p&gt;

&lt;h3&gt;The Benefits Deception&lt;/h3&gt;

&lt;p&gt;You can watch movies on your phone. You can download and listen to music on it. Watch live TV on your mobile devices. These are the touted benefits of 4G. In reality, all they are saying is that you can get these things faster, with less waiting.&lt;/p&gt;

&lt;p&gt;What they are not saying is if you &lt;em&gt;can&lt;/em&gt; do this faster, you &lt;em&gt;will&lt;/em&gt; do it more often. Which means you &lt;em&gt;will&lt;/em&gt; use more data, and rely on using more data. In which case, you will reach your cap sooner and let the gouging feast begin. This means that on 4G, with the &amp;#8216;standard&amp;#8217; 2GB cap, if you download a movie on day one of your billing period, you will exceed your cap, and have to pay insane charges for additional data.&lt;/p&gt;

&lt;p&gt;Consumers want the benefit and convenience of using more mobile services and data, but the cost to consumers of these benefits outweighs the benefits themselves. Buy and download a $4 3GB  movie on your mobile phone and it will cost $4 plus $20 for exceeding your cap. Some benefit that is!&lt;/p&gt;

&lt;h3&gt;So what can we do about this?&lt;/h3&gt;

&lt;p&gt;Man, I wish I knew. The carriers own the FCC so this mess is allowed. There is no consumer protection agency on the USA to protect us from them. And given that 320 million Americans are covered by just 2 carriers and 2 mega carriers, there&amp;#8217;s no competitive reason for them to offer consumers anything more than the current rip-off.&lt;/p&gt;

&lt;p&gt;In short, the only thing we consumers can do is complain and be ignored, write ranty blog posts like this one and stay on our 3G contracts.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/G_hHdx1qH0w" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/17/the-4g-deception/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[All to Octopress]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/X5aWiS09eCs/" />
    <updated>2012-02-16T19:51:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/16/all-to-octopress</id>
    <content type="html">&lt;p&gt;I have moved all of my sites over to &lt;a href="http://octopress.org/"&gt;Octopress&lt;/a&gt; by &lt;a href="http://brandonmathis.com/"&gt;Brandin Mathis&lt;/a&gt;. This means &lt;a href="http://www.hiltmon.com"&gt;hiltmon.com&lt;/a&gt;, &lt;a href="http://www.noverse.com"&gt;noverse.com&lt;/a&gt; and &lt;a href="http://www.shukaico.com"&gt;shukaico.com&lt;/a&gt; are all on the same platform.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;!--more--&gt;


&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Markdown everywhere:&lt;/strong&gt; I pretty much use &lt;a href="http://daringfireball.net/projects/markdown/"&gt;markdown&lt;/a&gt;, or really the &lt;a href="http://fletcherpenney.net/multimarkdown/"&gt;multi-markdown&lt;/a&gt; variant, format for everything these days. I just love it. All files are just plain text so I never have to worry about vendor lock in (I still have some old Lotus Smartsuite files I cannot read), they are searchable and easy to maintain. All posts in &lt;a href="http://octopress.org/"&gt;Octopress&lt;/a&gt; are just plain markdown files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Baked:&lt;/strong&gt; Unlike most other blogging systems, Octopress has no database, no server software to install, no dynamic caching needed and no need to configure the server. The web site is generated as plain old HTML files with a bit of Javascript. This means that user requests are just plain old HTML requests, requiring no processing on the server to serve, and leveraging the servers built in caches. It&amp;#8217;s the fastest way to serve a blog, and it can handle being &lt;em&gt;fireballed&lt;/em&gt; (when you get linked to by &lt;a href="http://daringfireball.net/"&gt;Daring Fireball&lt;/a&gt; and millions of geeks try to load your web at the same time).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It&amp;#8217;s ruby:&lt;/strong&gt; I do all my web work in &lt;a href="http://rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; or &lt;a href="http://www.sinatrarb.com/"&gt;Sinatra&lt;/a&gt;, so using the &lt;a href="https://github.com/mojombo/jekyll"&gt;mojombo/jekyll&lt;/a&gt;
engine on my local machine just fits the bill. Tools like &lt;code&gt;rake&lt;/code&gt; and formats like markdown just work for me.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;I can hack it:&lt;/strong&gt; A few tweaks to the &lt;code&gt;rake&lt;/code&gt; file and I have the &lt;code&gt;new_post&lt;/code&gt; action logging to &lt;a href="http://dayoneapp.com/"&gt;DayOne&lt;/a&gt; and opening &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt; with the new post.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Great, simple design:&lt;/strong&gt; I think &lt;a href="http://brandonmathis.com/"&gt;Brandin Mathis&lt;/a&gt; did a great job on the default layout, fonts and color schemes. A lot of influential bloggers (&lt;a href="http://mattgemmell.com/"&gt;Matt Legend Gemmell&lt;/a&gt;, I&amp;#8217;m looking at you) feel the same way. So I have pretty much left it alone.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy to set up:&lt;/strong&gt; Clone it from &lt;a href="https://github.com/imathis/octopress"&gt;GitHub&lt;/a&gt;, fill in a few fields, create a few files and generate. You have a site. Set up a few more fields and you can &lt;code&gt;rsync&lt;/code&gt; it to the server without a hassle.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;But I do miss a one thing though, I miss editing and maintaining my blog in &lt;a href="http://www.red-sweater.com/marsedit/"&gt;MarsEdit&lt;/a&gt;. Oh, I know there are hacks and workarounds to manage an &lt;a href="http://octopress.org/"&gt;Octopress&lt;/a&gt; blog with it, but they are messy and leave my system feeling all dirty.&lt;/p&gt;

&lt;p&gt;So thank you, &lt;a href="http://brandonmathis.com/"&gt;Brandin Mathis&lt;/a&gt; and the &lt;a href="http://octopress.org/"&gt;Octopress&lt;/a&gt; team for a wonderful platform for us all to enjoy.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/X5aWiS09eCs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/16/all-to-octopress/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The App Store playing field]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/wIWgsgfYIYs/" />
    <updated>2012-02-16T18:52:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/16/the-app-store-playing-field</id>
    <content type="html">&lt;p&gt;Excellent article by Emeric Thoa in &lt;a href="http://thegamebakers.com/"&gt;The Game Bakers&lt;/a&gt; called &lt;a href="http://thegamebakers.com/money-and-the-app-store-a-few-figures-that-might-help-an-indie-developer.html"&gt;Money And The App Store: A Few Figures That Might Help An Indie Developer&lt;/a&gt; where he covers some myths about the app store and provides advice to indies trying to make it there.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m going to borrow his myths and reference my own experiences with my own apps.&lt;/p&gt;

&lt;!--more--&gt;


&lt;h3&gt;Myth #1: There are so many iPhones and iPads out there that any decent app can make you rich.&lt;/h3&gt;

&lt;p&gt;I had a free app and a paid app.  When I made the free app 0.99c for a few weeks, I had no sales. When I made it free again, I had the best day ever in terms of downloads (but no money). My paid app grossed less than $500 over 2 years!&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The point here is that the user base might be huge, but a lot of people never pay anything on the App Store, so don’t get blinded by the potential and stay rational.&lt;/p&gt;&lt;/blockquote&gt;


&lt;h3&gt;Myth #2: Making an iPhone app is fast and cheap&lt;/h3&gt;

&lt;p&gt;I have covered this before in &lt;a href="http://www.noverse.com/blog/2010/12/how-much-does-it-cost-to-develop-an-iphone-application/"&gt;How Much Does It Cost to Develop an iPhone Application?&lt;/a&gt; and agree with Emeric here.&lt;/p&gt;

&lt;p&gt;If it costs less than $100,000, you&amp;#8217;ll never be competitive.&lt;/p&gt;

&lt;p&gt;The sad thing is, there is a large number of cheaply made, rip-off and copycat apps out there that are made on the cheap and sold on the cheap, that the diamonds get lost in the glass shards.&lt;/p&gt;

&lt;h3&gt;Myth #3: Updating your app will make your sales increase over time&lt;/h3&gt;

&lt;p&gt;2 years ago, app updates made the news. Today, they do not. You may get a small spike in downloads on an update from your active users, or a small spike in response to your tweets, but that is all.&lt;/p&gt;

&lt;p&gt;What is worse, the App Store is creating a group of users who believe they &amp;#8216;deserve&amp;#8217; free updates, no matter how much the upgrade costs the developer.&lt;/p&gt;

&lt;h3&gt;Myth #4: Being visible on the App Store just takes a good post on reddit or a good viral video&lt;/h3&gt;

&lt;p&gt;And a whole lot of luck. In order to get reddit or viral traffic, you need to hit the jackpot and post your news as and when the most influential people on these services happen to be there and looking for your kind of thing. In reality, reddit and the like posts last about 1 hour on the &lt;em&gt;new&lt;/em&gt; page before getting pushed down the list.&lt;/p&gt;

&lt;p&gt;Getting exposure so people learn about your app is what you do the rest of the time after shipping.  It&amp;#8217;s a long hard slog.  And few hit the winning numbers.&lt;/p&gt;

&lt;h2&gt;Myth 5: Getting featured by Apple is completely random&lt;/h2&gt;

&lt;p&gt;Not true, Apple has editorial guidelines, choosing apps that are unique, well designed, target the largest audience of the store, showcase their products well and you are a publisher with a track record. Now you know what to do to get on the list.&lt;/p&gt;

&lt;p&gt;It seems to me that getting featured by Apple is one of the biggest wins, but rarely happens.&lt;/p&gt;

&lt;h3&gt;The reality&lt;/h3&gt;

&lt;p&gt;2 years ago, when launching my paid app, I issued a press release via the reputable PR firm &lt;a href="http://prmac.com/"&gt;prMac&lt;/a&gt;. They did a fantastic job, with over 18,000 hits on it on release day, which led to a few conversions.&lt;/p&gt;

&lt;p&gt;After half a year on the store, I dropped the price in half, to see if it was the pricing that kept users away. I had a few more conversions, but the number was not significant. I left the price at half, and sales trickled, one here, one there.&lt;/p&gt;

&lt;p&gt;The reality was that the app got lost in the app store dog-pile. When I spoke to people about it, they all were surprised that they never saw it, did not know about it, and that I was not making money out of it. The feature set was what they wanted. They just could not find it.&lt;/p&gt;

&lt;h3&gt;The Next App&lt;/h3&gt;

&lt;p&gt;The next app that I will release on the app store will cost me at least $250,000, before marketing. It will be professionally designed, the art will be by the best graphics artist I can find, and it built to showcase the latest iOS technologies, all that is needed to get noticed by Apple. Even that is not enough.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s more. I will get the most influential bloggers in iOS-land to be my beta testers. My experience has been that people buy apps based on recommendations from friends and key influencers, because searching the App Store does not work.&lt;/p&gt;

&lt;p&gt;The best way to get an app noticed on the App store is to get the right people in the industry to become fans during the beta and then recommend it in their blogs when it gets released.  People buy on these recommendations. Bloggers blog on other bloggers recommendations. Then the tweets come, and the Facebook messages. And this buzz drives people to hear about your product, and buy it.&lt;/p&gt;

&lt;p&gt;If the buzz is big enough, you&amp;#8217;ll make enough to cover your costs.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/wIWgsgfYIYs" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/16/the-app-store-playing-field/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Taking down my old iPhone Apps]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/RVcUnalcKvQ/" />
    <updated>2012-02-13T10:16:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/13/taking-down-my-old-iphone-apps</id>
    <content type="html">&lt;p&gt;Its time.&lt;/p&gt;

&lt;p&gt;As of right now, my first two iPhone App Store apps, &lt;strong&gt;Emergency List&lt;/strong&gt; and &lt;strong&gt;Sights to See&lt;/strong&gt; are &lt;a href="http://www.noverse.com/blog/2012/02/end-of-life-sights-to-see-and-emergency-list/"&gt;no longer available for sale&lt;/a&gt;, anywhere. I have taken them down.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;These apps were developed two years ago, for old versions of the iPhone, and no longer represent the best we can do. We were learning iOS at the time, did not have access to the right designers and did the best we could back then. It got us the business we did the last 2 years. But they are not good enough to keep alive.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;It&amp;#8217;s sad to do this, these apps put me on the indie developer map, got me my first clients, and were a very pleasant learning experience. But it&amp;#8217;s also wrong of me to keep selling product that I am no longer proud of, is no longer representational of my skills, that I am no longer maintaining and is no longer selling.&lt;/p&gt;

&lt;p&gt;So off they go.&lt;/p&gt;

&lt;p&gt;For more see &lt;a href="http://www.noverse.com/blog/2012/02/end-of-life-sights-to-see-and-emergency-list/"&gt;End of Life - Sights to See and Emergency List&lt;/a&gt; at &lt;a href="http://www.noverse.com"&gt;noverse.com&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/RVcUnalcKvQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/13/taking-down-my-old-iphone-apps/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Hiltmonism - Fix instead of Blame]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/K7ofJLF3xQo/" />
    <updated>2012-02-11T09:49:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/11/hiltmonism-fix-instead-of-blame</id>
    <content type="html">&lt;p&gt;&lt;em&gt;I was saving this one up for later, but events of this week prompted me to write it now.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Whenever something goes wrong, the first reaction of many people is to find someone else to blame. Arguments and vitriol erupt, things are said or smashed, as each team member tries to protect themselves from being blamed.&lt;/p&gt;

&lt;p&gt;I, for one, do not ever again want to be on a team that does this. Nor should you.&lt;/p&gt;

&lt;p&gt;Things go wrong, people make mistakes, software fails. It&amp;#8217;s what unintentionally happens when us imperfect humans try to create perfection. It&amp;#8217;s natural and normal. It should be expected, planned for and dealt with.&lt;/p&gt;

&lt;p&gt;When something goes wrong, the first reaction of a team &lt;em&gt;should&lt;/em&gt; be to identify and fix the problem. Find the error, correct it, write a test. Find the design flaw, solve for the best way to fix it, and implement the fix. And then, get back to creating the product you were working on. No blame, no vitriol, just professional calm.&lt;/p&gt;

&lt;p&gt;Back in the late 1990&amp;#8217;s, when I was a Project Manager, several of my engagements were to see if I, as an external person, could jump in and &amp;#8220;fix&amp;#8221; some broken projects. Its crazy to think back that a 20-something year-old whippersnapper Project Manager would be called in for this, but it shows how messed up these projects were. In all but two cases(&lt;sup id="fnref1"&gt;&lt;a href="#fn1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt;), the projects had stalled because things had gone wrong and the team had become lost in a never-ending cycle of blame and coverage, so much so, that they spent all their time doing this and none of of in actually doing the work. The people were angry, hurt and scared they would lose their jobs. Clients were unhappy because they were not getting their projects completed.&lt;/p&gt;

&lt;p&gt;The solution was to get rid of the blaming and get back to the doing. Sounds simple, but hard to implement of you are in the blame circle. As an independent, I could stay out of the fray, focus on the project instead of the anger, and re-motivate the people back to work. To do this, the first thing that had to happen was the removal of any histrionics, what someone said or did before I arrived was taken off the table. Anyone who went back to sayings and doings before I arrived was shot down, and in some cases, taken off the team as they destroyed morale. The second step was to encourage communication again between the team members, it makes it easier when they felt like they were starting from scratch. And the third step was to encourage the now communicating team to find issues, describe the found issues clearly in terms of the product and practice getting together to resolve them. Oh, and blame was banned.&lt;/p&gt;

&lt;p&gt;The &amp;#8220;what&amp;#8221; is wrong is important, not the &amp;#8220;who&amp;#8221;.&lt;/p&gt;

&lt;p&gt;Blame incorrectly assumes intent. If someone is blamed for a problem, it is assumed that they intended to create that problem. Why else would they be blamed? &lt;em&gt;This kind of uninformed, ignorant and just plain stupid assumptive question is what causes blame cycles in the first place.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Blame also requires defense. If you do not defend yourself, you will get lumped with whatever you are being blamed for, whether right or wrong, and your career will suffer. If you do defend yourself, you&amp;#8217;re not doing your job, and the project suffers.&lt;/p&gt;

&lt;p&gt;Fixing, on the other hand, correctly assumes that the team is focussed on the project, and that they are smart enough to assume things will go wrong. A fixer team works together to get things done. Fixing requires communication to identify the problem, the team to focus only on the problem, and to figure out a solution. Successful teams are always fixers. Their members are free to work without fear or distractions.&lt;/p&gt;

&lt;p&gt;I do believe that the issue with blame often boils down to the issue of intent.  Did the person who messed up do so intentionally or unintentionally. It is in this space that the blame thing gets out of hand. Since intent is incorrectly assumed in blaming, the blame then gets spread out far and wide.&lt;/p&gt;

&lt;p&gt;This week, it was announced that &lt;a href="https://path.com/"&gt;Path&lt;/a&gt; uploaded its user&amp;#8217;s complete address books to their servers so their &amp;#8220;find friends&amp;#8221; function could work. The blame cycle went nuts. Path was accused of stealing people&amp;#8217;s data without their knowledge, people closed their accounts in disgust and the press went wild. The Path CEO tried to calm the waters by explaining why they did this. He honestly though he was doing his user&amp;#8217;s a favor, and he honestly admitted that Path did nothing untoward with the data. But the blame machine drove this issue quite out of context.&lt;/p&gt;

&lt;p&gt;How far, far enough that by the end of the week, Path has apologized, deleted all the data and released a new version of their app that requests permission to do this. Far enough that by the end of the week, the blame machine had found a new target, Apple, for allowing Path to access the address book and allow Path to do this.&lt;/p&gt;

&lt;p&gt;The fix, however, for this whole brouhaha is simple, and is used by a lot of developers who do the same thing as Path but are not blamed for doing anything wrong. The fix is to hash the address book data using a one-way hash and to then use these encoded hashes to find friends. With hashes, Path can still match friends, but have no knowledge of who they really are, protecting user privacy. If they get hacked, the data is useless, and they cannot ever share it, because the hashing algorithms are 1-way.&lt;/p&gt;

&lt;p&gt;The whole Path issue could have been resolved by just hashing the user&amp;#8217;s address book. But the blame cycle has probably destroyed their business, and has tarnished the reputation of Apple as well. It was a waste of everything, and wholly undeserved.&lt;/p&gt;

&lt;p&gt;So back to fix, not blame Hiltmonism:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Fixing is productive, blame is a productivity killer. Fixing is fun, blaming is painful. Fixing gets the job done, blaming prevents it. Fixing is good for your career and karma, blaming is not. So why do we tolerate it? Next time the blame cycle starts, nip it in the bud with a &amp;#8220;It does not matter who is to blame, we all need to get it fixed&amp;#8221; statement and move on.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Or leave that team and find a better one.&lt;/em&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;div class="footnotes"&gt;
    &lt;ol&gt;
        &lt;li id="fn1"&gt;The other two were caused by miscommunications between client and team, so the team actually built the wrong software. This all happened before agile development became common, and is why it is so popular and successful now. &lt;a href="#fnref1" rev="footnote"&gt;↩&lt;/a&gt;&lt;/li&gt;
    &lt;/ol&gt;
&lt;/div&gt;

&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/K7ofJLF3xQo" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/11/hiltmonism-fix-instead-of-blame/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Speculative Developers]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/xC0vuu0PxU4/" />
    <updated>2012-02-07T09:19:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/07/speculative-developers</id>
    <content type="html">&lt;p&gt;I totally agree with the sentiment in David Sparks&amp;#8217;s note &lt;a href="http://www.macsparky.com/blog/2012/2/6/speculative-developers.html"&gt;Speculative Developers&lt;/a&gt; where he compares developers who &amp;#8216;barf&amp;#8217; out volumes of bad apps versus developers who lovingly craft a single great app.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;They are, however, completely wrong. Their chance of hitting it big with two (or twenty) crappy apps instead of one good one is about the same as their chance of retiring with their lotto winnings. Infinitesimally small.&lt;/p&gt;&lt;p&gt;If you want to develop apps, take your time and make something awesome. Make it fast. Make it beautiful. Make something you’re proud of. Don’t make 60 crappy apps: Make one really good one.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;I wholeheartedly am &lt;em&gt;not&lt;/em&gt; a speculative developer, I prefer to make and buy lovingly crafted applications.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/xC0vuu0PxU4" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/07/speculative-developers/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Design needs an Advocate]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/LEFLFhkmJQY/" />
    <updated>2012-02-07T08:58:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/07/design-needs-an-advocate</id>
    <content type="html">&lt;p&gt;Felicity Evans, writing in the Smashing Magazine article &lt;a href="http://www.smashingmagazine.com/2010/10/26/a-thousand-words-is-worth-a-picture-the-importance-of-justifying-your-designs/"&gt;When A Thousand Words Is Worth A Picture
&lt;/a&gt; writes:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Design is itself a process of deduction. It involves a number of decisions, both conscious and unconscious. During this process, the designer dismisses some ideas as unworkable and pursues others in order to arrive at a solution.&lt;/p&gt;&lt;p&gt;But this process is completely opaque to the client. The client likely views the design not as the outcome of an in-depth process, but as a response to the brief, merely a visual representation of the constraints and considerations set before the designer. As the designer, part of your job is to educate the client and reveal the design process to them.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;and&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Good design stands up to criticism, because it is more than a matter of taste. View criticism as an opportunity to explain the reasons behind your decisions, to invite the client into the design world so that they feel like a part of the process.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;You know what, just take the time to read it.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/LEFLFhkmJQY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/07/design-needs-an-advocate/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Structure First. Content Always.]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/WK36zb4552Y/" />
    <updated>2012-02-07T08:54:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/07/structure-first-content-always</id>
    <content type="html">&lt;p&gt;Mark Boulton makes good points in &lt;a href="http://www.markboulton.co.uk/journal/comments/structure-first-content-always"&gt;Structure First. Content Always.&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Let’s stop siloing content, shall we? We did it for a while when we were designing a largely brochureware, templated web. Now, we’re trying to move that silo from one end of the process to the other. Let’s focus on structure to begin with, and think about content all the time. There is a symbiotic relationship between content and design. One cannot thrive without the other.&lt;/p&gt;&lt;p&gt;Let’s start with structure. Let’s know what our content is made from. Not, necessarily, what it is.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Agreed.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/WK36zb4552Y" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/07/structure-first-content-always/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Your idea sucks, now go do it anyway]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/KFstlZKNp2w/" />
    <updated>2012-02-03T10:26:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/03/your-idea-sucks</id>
    <content type="html">&lt;p&gt;Lovely article by Jason Cohen, worth a read, called &lt;a href="http://blog.asmartbear.com/your-idea-sucks-now-go-do-it-anyway.html"&gt;Your idea sucks, now go do it anyway&lt;/a&gt; makes a great point on how the original idea for something usually evolves into something completely different, and success comes from embracing that evolution.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;“My idea isn’t good enough yet” explained a friend who is thinking of starting his own company. He’s waiting for the idea to be completely fleshed out before taking the leap.&lt;/p&gt;&lt;p&gt;Newsflash: Your idea probably sucks, and it doesn’t matter because your business will probably turn out to be something completely different.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;I often find myself talking to people about their their software ideas, and my usual response is &amp;#8220;go for it&amp;#8221;, even if I do not wish to participate. Some of the examples in the &lt;a href="http://blog.asmartbear.com/your-idea-sucks-now-go-do-it-anyway.html"&gt;article&lt;/a&gt; prove that the original idea may have sucked, but by going for it, by adapting as they learned more about the idea and its use cases, by evolving the idea, they were successful. You&amp;#8217;ll know their names.&lt;/p&gt;

&lt;p&gt;Pursue your ideas. Know that they will evolve into something unexpected. Pursue the evolution. At worst, you&amp;#8217;ll gain some experience and go nowhere. At best, you&amp;#8217;ll be the next big thing.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/KFstlZKNp2w" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/03/your-idea-sucks/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Cheap iPhones, Wealthy Workers, Pick One?]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/ZRyt0CFlR74/" />
    <updated>2012-02-03T10:19:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/03/cheap-iphones</id>
    <content type="html">&lt;p&gt;Randy Murray presents a different view in &lt;a href="http://whowritesforyou.com/2012/02/02/an-observer-from-shenzhen-thoughts-on-apples-recent-bad-press/"&gt;An Observer From Shenzhen—Thoughts on Apple’s Recent Bad Press&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Do workers in Foxconn factories who build products for Apple, Dell, HP, and others, work long hours at tedious tasks? Yes they do. Do they work for a fraction of what a worker in the US, Japan, or even Korea would? Yes they do.&lt;/p&gt;&lt;p&gt;Are they being enslaved? Clearly, they are not.&lt;/p&gt;&lt;p&gt;I suspect that a lot of the heat from the recent press comes from a lack of understanding about Chinese culture, their rapid change from manual agrarian life to high-tech manufacturing, and the significant differences and scales of our economies.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;I don&amp;#8217;t know what the truth is, but I am glad to see a reasonable dissenting discussion on this issue.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/ZRyt0CFlR74" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/03/cheap-iphones/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[News Logic]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/ciAlptVVITM/" />
    <updated>2012-02-03T10:12:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/03/news-logic</id>
    <content type="html">&lt;p&gt;Paddy Harrington, writing in &lt;a href="http://www.fastcodesign.com/1668945/wanna-figure-out-if-your-work-is-any-good-think-like-a-news-editor"&gt;Wanna Figure Out If Your Product Is Any Good? Think Like A News Editor&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;At its heart, news logic is about value creation and the primacy of the design output instead of a story that traditionally gets applied after the fact. Where in the old days (i.e., five years ago), you designed something and then told a story about it in the hopes that it was a story worth telling, more and more of tomorrow’s design projects will have a story worth telling built into their hearts right from the get-go.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;I try to apply this thinking here, only posting links to articles I think are great, or creating articles I think are newsworthy. If there are any topics you&amp;#8217;d like me to expound upon, comment here or tweet me.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/ciAlptVVITM" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/03/news-logic/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[The paradox of choice]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/_P68L-_JcGY/" />
    <updated>2012-02-01T10:41:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/01/the-paradox-of-choice</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;People desire more choices, yet are unable to choose when the selection is greater, that is the paradox of choice.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.columbia.edu/~ss957/"&gt;Sheena Iyengar&lt;/a&gt;, a professor of business at Columbia University, conducted an interesting study in 1995. She set up a display of 24 samples of jam for customers to taste, and every few hours, she switched to a 6 sample set. The results were astonishing: 60% of customers stopped to try the jams when the selection was large versus 40% when small; and 30% of those that stopped when the selection was small purchased a jam, versus 3% when the selection was large.&lt;/p&gt;

&lt;p&gt;In short, more people were attracted to the greater selection, but 10 times more people actually made a choice when the selection was smaller.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;That study “raised the hypothesis that the presence of choice might be appealing as a theory,” Professor Iyengar said last year, “but in reality, people might find more and more choice to actually be debilitating.”&lt;/p&gt;&lt;footer&gt;&lt;strong&gt;New York Times&lt;/strong&gt; &lt;cite&gt;&lt;a href='http://www.nytimes.com/2010/02/27/your-money/27shortcuts.html'&gt;www.nytimes.com/2010/02/27/&amp;hellip;&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;


&lt;p&gt;In a similar study, Surgeon Atul Gawande found that 65% of people surveyed said if they were to get cancer, they&amp;#8217;d want to choose their own treatment. Among people surveyed who really &lt;em&gt;do&lt;/em&gt; have cancer, only 12% of patients want to choose their own treatment.&lt;/p&gt;

&lt;h3&gt;Too many choices in software&lt;/h3&gt;

&lt;p&gt;In software, we have the same disconnect between number of choices and user&amp;#8217;s ability to make those choices. Our users declare that they want extensive choices, but they rarely, if ever, make or change those choices. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Mac has hundreds of choices in the System Preferences application, yet very few users ever venture in there and change them.&lt;/li&gt;
&lt;li&gt;Apple recently released a simplified version of its Wireless Router software that &lt;em&gt;removed&lt;/em&gt; the advanced menu of choices from the application, and almost no-one noticed.&lt;/li&gt;
&lt;li&gt;Lots of software comes with customizable report writers. Very few customers ever use them, yet all RFP&amp;#8217;s require it. As an advanced tech geek user, I have only once in the last 12 years used one of these (and that was in &lt;a href="http://www.marketcircle.com/billings/"&gt;Billings&lt;/a&gt; to customize the layout of my invoices).&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Letting the user decide&lt;/h3&gt;

&lt;p&gt;One of the key burdens of a Software Designer is to make decisions on behalf of users. What features and functionality to implement, how to structure it, what the flows should be. When software designers get stuck, a common pattern is to &lt;em&gt;let the user decide&lt;/em&gt;, create choices for the user to make and implement the necessary features for each choice.&lt;/p&gt;

&lt;p&gt;Each and every setting or option in your application preferences is a decision by the designer to &lt;em&gt;let the user decide&lt;/em&gt;. SAP software used to have 22,000 of these. And users love this, they call your software customizable and seem more comfortable to buy it.&lt;/p&gt;

&lt;p&gt;But there are some problems with this. First, you have to design and implement the functionality for each choice, which means more programmer time, testing time, integration time, debugging time and of course, cost.&lt;/p&gt;

&lt;p&gt;Secondly, if the designer cannot decide what is the &lt;em&gt;right&lt;/em&gt; or &lt;em&gt;best&lt;/em&gt; way is, how is the user supposed to make that decision? Your &lt;em&gt;expert&lt;/em&gt; user, the 3% of your user base, who understands the problem domain, and knows what they want, will make a choice and be done with it.  But your &lt;em&gt;regular&lt;/em&gt; user will be just as stuck as the designer as to what choice to make, which of the 24 jams to choose. We designers solve for this by choosing a random default setting. Our users solve for this by assuming we did that on purpose (see &lt;a href="http://www.hiltmon.com/blog/2011/11/27/almost-no-one-changes-their-settings/"&gt;Almost No-one Changes Their Settings&lt;/a&gt;), so they leave it alone.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Letting the user decide&lt;/em&gt; is the software equivalent of creating all 24 jam flavors, putting them on the shelf and assuming that users will be capable of choosing the right one. Evidentially, only 3% of them can. Its a cop-out.&lt;/p&gt;

&lt;h3&gt;More Choices, Simple Software, Pick One&lt;/h3&gt;

&lt;p&gt;Users also want simple, intuitive software. If there is no choice on how do to something in your software, then that&amp;#8217;s all users can do. Try printing from your current application, or opening a file. You always get the same operating system dialog (unless you use Adobe products, of course). Users do not get to choose which print dialog to use, or which file browser, they always get the same (Adobe users excepted). Imagine if each time you wanted to save a file, you first has to say which file browser to use before you saved. It would make the software cumbersome to use and complex to implement since the developer has to support all different file browsers available. By using the Operating System supplied print and save dialogs, developers have removed choices and made the software simpler.&lt;/p&gt;

&lt;p&gt;Lets take another example. I&amp;#8217;m writing this post in &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt;, but I could just as easily be writing it in &lt;a href="http://office.microsoft.com/en-us/word/"&gt;Microsoft Word&lt;/a&gt;. What&amp;#8217;s the difference? Well, &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt; has no toolbar, limited formatting and makes it easy to write. Microsoft Word has a ton of menus, ribbons, colored squiggly lines, page breaks, formatting options, change detection, stylesheets and the like, oh, and you can also use it to write. I launch &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt;, and write, that&amp;#8217;s it (&lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt; has already chosen the font, view and styles for me). But because of all the choices in &lt;a href="http://office.microsoft.com/en-us/word/"&gt;Microsoft Word&lt;/a&gt;, my usual process is to launch Word, choose a template, change the font and screen views to hide page breaks, check my stylesheet, and write, and format and write some more and format some more. &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt; is simple, &lt;a href="http://office.microsoft.com/en-us/word/"&gt;Microsoft Word&lt;/a&gt; is complex, both enable me to write, but &lt;a href="http://office.microsoft.com/en-us/word/"&gt;Microsoft Word&lt;/a&gt; forces me to make more choices as I go along. Hence, I prefer &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt; for writing.&lt;/p&gt;

&lt;p&gt;It goes even further when I realize I use 80% of &lt;a href="http://bywordapp.com/"&gt;Byword&amp;#8217;s&lt;/a&gt; functionality, yet less than 15% of &lt;a href="http://office.microsoft.com/en-us/word/"&gt;Microsoft Word&amp;#8217;s&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Note that I am not saying software should have no choices, that may be too few, and may make the software too simple to even do its primary function. For example, I also have a copy of &lt;a href="http://www.iawriter.com/"&gt;iAWriter&lt;/a&gt;, which is a writing application that has even fewer choices than &lt;a href="http://bywordapp.com/"&gt;Byword&lt;/a&gt;. Why not use that? Because &lt;a href="http://www.iawriter.com/"&gt;iAWriter&lt;/a&gt; made too many choices for me making it harder for me to use (but not for a lot of other people).&lt;/p&gt;

&lt;h3&gt;Is it not information overload in the 24 jam case?&lt;/h3&gt;

&lt;p&gt;I don&amp;#8217;t think so. In some cases, too many choices just overloads the chooser, if and only if the choices come with &lt;em&gt;too much&lt;/em&gt; supporting information.&lt;/p&gt;

&lt;p&gt;For example, as a new arrival in the USA I went to the local supermarket to purchase milk. Where I come from, milk comes in two varieties, whole and skim (the soy stuff is not called milk). In my local supermarket, I can choose from whole, skim, 1%, 2%, organic vs non organic, local vs interstate, fresh vs reconstituted, soy vs cow, pasteurized vs non, and from several brands. It&amp;#8217;s a multidimensional matrix of choices with many axes, and all I want is milk.&lt;/p&gt;

&lt;p&gt;On the other hand, too many choices may come with insufficient information, the overload being the sheer number of choices. I recently had to choose a new healthcare plan, and all the plans I looked at had hundreds of options, yet most of those options offered were not explained. I had to call up the company and ask a whole bunch of questions just to understand a few of the options available. I picked a plan because the few options I did get explained to me sounded right, but I have no idea if its the &lt;em&gt;right&lt;/em&gt; plan for me, or what I really purchased.&lt;/p&gt;

&lt;h3&gt;So what about how the choices are presented?&lt;/h3&gt;

&lt;p&gt;If fewer choices are better, so the jam study proves, how come people still struggle to choose from a smaller selection? It boils down to how the information about each choice is presented, just like in the overload case.&lt;/p&gt;

&lt;p&gt;If you want an iPhone in the USA, you have three choices, AT&amp;amp;T, Verizon, and Sprint. Seems a simple choice, pick a carrier, get the iPhone. Yet it is almost impossible to choose a carrier, because the carriers present their services in complex, incompatible and vague terms, make no promises, hide their restrictions and limitations and therefore leave the chooser in the dark as to what they are really getting. The chooser has insufficient information to make a choice, no way to get that information and has, therefore, no way to make the &lt;em&gt;right&lt;/em&gt; or &lt;em&gt;best&lt;/em&gt; choice for them.  Cable companies, airlines, electronics vendors and the like do the same. It gives the seller the power to persuade choosers versus giving them actual choices.&lt;/p&gt;

&lt;p&gt;A whole industry has arisen to try to make these choices easier. &lt;a href="http://www.kayak.com/"&gt;Kayak&lt;/a&gt;, &lt;a href="http://www.hipmunk.com/"&gt;Hipmunk&lt;/a&gt; and &lt;a href="http://www.expedia.com/"&gt;Expedia&lt;/a&gt;, for example, all exist to help people choose flights from the morass of airline data and deals, but even they cannot simplify it enough.&lt;/p&gt;

&lt;h3&gt;Making choices easier&lt;/h3&gt;

&lt;p&gt;As a software designer, our first goal is to make the &lt;em&gt;best&lt;/em&gt; choices for our users. If there is more than one way to present information, calculate a number or execute a process, we should choose one and implement only that one. Almost all of our users will be happy with our choices, and we&amp;#8217;ll only hear from the few who wish we made the other choice.&lt;/p&gt;

&lt;p&gt;We also sometimes do need to offer the user a plethora of choices. It&amp;#8217;s how we present those choices and the supporting information we provide that will help users choose. For example, reports. Most systems have a reports section. Most systems have a lot of reports. And most systems rely on the report name to tell the user what the report does. But most report names on incomprehensible to users. What is the difference between an aging and a collections report, they both show overdue balances? If the designer added a 1-2 sentence blurb about what the report contains, and when to use it, users will be able to choose the right report quickly and easily. Otherwise, they will have to run heaps to find the one they want, or give up.&lt;/p&gt;

&lt;h3&gt;The paradox of choice&lt;/h3&gt;

&lt;p&gt;The paradox of choice means our users want more choices, yet cannot choose between these choices. We need to find the balance between choices for users to make and the choices we make for them. If we get that balance right, we create happy users and brilliant software experiences.&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.nytimes.com/2010/02/27/your-money/27shortcuts.html"&gt;Too Many Choices: A Problem That Can Paralyze&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="Customers%20given%20too%20many%20choices%20are%2010x%20less%20likely%20to%20buy"&gt;More ideas from Iyengar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sivers.org/jam"&gt;Customers given too many choices are 10x less likely to buy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/_P68L-_JcGY" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/01/the-paradox-of-choice/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Childlike Wonder]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/cp6hMkFWHfE/" />
    <updated>2012-02-01T10:31:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/02/01/childlike-wonder</id>
    <content type="html">&lt;p&gt;Ever watch a child with an iPad? They seem to get it immediately, they prod and tap and swipe and rotate and in no time at all seem comfortable with it.&lt;/p&gt;

&lt;p&gt;Ever watch an adult with an iPad? They hold it, and stare at it, and, well, stare some more, and maybe wave a finger near it, but hesitate to touch. And after all that staring and hesitating, they remain uncomfortable with it.&lt;/p&gt;

&lt;p&gt;What is going on?&lt;/p&gt;

&lt;p&gt;What is happening is that the adult is attempting to map the item to their own pre-existing mind models. If the item fits, for example, the new toaster works kind-of like the old toaster, they are immediately comfortable with it (albeit they will not use any of the new toaster features). If the item does not fit a known mind model, most adults get stuck in a loop. Its kinda like a computer, but kinda like a phone, but kinda like a book, but kinda like a computer, which model to use &amp;#8230; and the brain enters an infinite loop. After being shown a few things, the adult takes this training, merges it with an existing mind model, and uses only the features they were shown. They ever even look at the new toaster features, they never even look at all the other iPad features.&lt;/p&gt;

&lt;p&gt;Children, on the other hand, start with no preconceived mind models. Each thing they encounter is a new thing which requires a new mind model. The new toaster has knobs that need to be figured out, oh, this one makes the pop higher, this one makes the toast darker, this one burns in a Hello Kitty face. The child is building a mind model for this device. The iPad contains a plethora of things to build a mind model on, and children gleefully spend hours prodding each button, swiping each screen, and quickly building a new mind model for the device.&lt;/p&gt;

&lt;p&gt;At some stage in our lives, we stop having this sense of childlike wonder and start trying to map the world to the mind models we already have. Some call it maturity, I call it sad.&lt;/p&gt;

&lt;p&gt;So how does this apply to computer software design and my areas of expertise?&lt;/p&gt;

&lt;p&gt;Our users are not children. One cannot deliver unto them a product and expect them to use their childlike wonder to explore the application and build the right mind model for it, no matter how intuitive we think it is. One cannot even give them a manual to explain the product, because they will not understand the text, the terminology or have time to read it.&lt;/p&gt;

&lt;p&gt;Instead, software designers have two choices here. The first is to make the product fit a common mind model, the second is to provide demos and training.&lt;/p&gt;

&lt;p&gt;In the first case, your application needs to look like, work like, and use the same terms as the user&amp;#8217;s mind model. Which means knowing what that that is, and conforming to it. It applies design and functionality constraints on the product, and it makes it harder to innovate. Ever wondered why all graphics manipulation apps look like MacPaint (yes even Photoshop!), because they target the same mind model. Or all spreadsheets still look and work like VisiCalc, same reason. Email clients and Eudora. You get the picture.&lt;/p&gt;

&lt;p&gt;In the second case, where you create something new that requires a new mind model, you know that your users are going to stare at the product, not use it and complain that the old way was better. Get off my lawn and all that. You need to train them.  The very best training is hands on, give them tasks to complete, walk them through it the first few times, and wait for the time when they proudly announce that they know what to do. It is at this stage that you know they have built a mind model, albeit a very weird one.  Create tools to then help them learn new features.  Screencasts are great for this, and easy to create. And before you know it, you&amp;#8217;re back on the lawn, the new way is the better way. It just takes a lot of time and patience.&lt;/p&gt;

&lt;p&gt;To help figure out the nest way to train adults, next time you are ready to release a feature or a product, put it in front of a few children and watch where they go first. Ask them what they see, why they prodded that first and what have learned by playing with it. Then do the same with adults, but this time, lead them where the children went. It may not bring back a sense of childlike wonder to the adult, but it will help them learn, build a mind model and get comfortable with the product sooner.&lt;/p&gt;

&lt;p&gt;But it is in yourself that you can make the change. Next time you are faced with an unfamiliar thing, don&amp;#8217;t try to map it an existing model. Instead, try to find your sense of childlike wonder, play with the thing, poke it, prod it, rotate it, open it, don;t be intimidated or afraid of it, try to figure it out and see what happens. You will have fun, and you will build a whole new mind model.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/cp6hMkFWHfE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/02/01/childlike-wonder/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Fragility of Free]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/qWorCXA0KP8/" />
    <updated>2012-01-29T11:49:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/01/29/fragility-of-free</id>
    <content type="html">&lt;p&gt;A great article by Ben Brooks called &lt;a href="http://brooksreview.net/2011/03/fragility-free/"&gt;Fragility of Free&lt;/a&gt;, well worth a read:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;The fragility of free is a catchy term that describes what happens when the free money runs out. Or — perhaps more accurately — when the investors/founders/venture capitalists run out of cash, or patience, or both. Because at some point Twitter and all other companies have to make the move from ‘charity’ to ‘business’ — or, put another way, they have to make the move from spending tons of money to making slightly more money than they spend.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;I also like to, and do prefer to, pay for things.&lt;/p&gt;

&lt;p&gt;See also: &lt;a href="http://www.hiltmon.com/blog/2012/01/23/developers-a-love-story/"&gt;Developers, a Love Story&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/qWorCXA0KP8" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/01/29/fragility-of-free/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Test Driven Development Really Works]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/rZ8wUH4kH84/" />
    <updated>2012-01-26T11:09:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/01/26/test-driven-development-really-works</id>
    <content type="html">&lt;p&gt;In 2008, Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, and Laurie Williams wrote a paper called &lt;a href="http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf"&gt;“Realizing quality improvement through test driven development: results and experiences of four industrial teams“&lt;/a&gt; (PDF link). The abstract:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Test-driven development (TDD) is a software development practice that has been used sporadically for decades. With this practice, a software engineer cycles minute-by-minute between writing failing unit tests and writing implementation code to pass those tests. Test-driven development has recently re-emerged as a critical enabling practice of agile software development methodologies. However, little empirical evidence supports or refutes the utility of this practice in an industrial context. Case studies were conducted with three development teams at Microsoft and one at IBM that have adopted TDD. The results of the case studies indicate that the pre-release defect density of the four products decreased between 40% and 90% relative to similar projects that did not use the TDD practice. Subjectively, the teams experienced a 15–35% increase in initial development time after adopting TDD.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;In 2012, &lt;a href="http://rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt; development practices assume TDD. I personally rely on tools like &lt;a href="http://rspec.info/"&gt;rspec&lt;/a&gt; for writing tests and mocks, &lt;a href="https://github.com/thoughtbot/factory_girl"&gt;factory_girl&lt;/a&gt; for creating objects, &lt;a href="https://github.com/jnicklas/capybara"&gt;capybara&lt;/a&gt; for browser automation, &lt;a href="https://github.com/colszowka/simplecov"&gt;simplecov&lt;/a&gt; for code coverage and &lt;a href="https://github.com/guard/guard"&gt;guard&lt;/a&gt; for automating these tests.&lt;/p&gt;

&lt;p&gt;As a result of using this methodology and these tools, I tend to agree subjectively with Nagappan et al:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It does take more time to write tests. But a 15-35% increase in time seems excessive. Most tests are short, quick and simple to write. Using mocks and factories helps a lot.&lt;/li&gt;
&lt;li&gt;It takes no time to run them if you use a tool like &lt;a href="https://github.com/guard/guard"&gt;guard&lt;/a&gt; that continuously monitors and runs them as they change. Add &lt;a href="http://growl.info/"&gt;growl&lt;/a&gt; notifications on the Mac and you only need to pay attention when you see red.&lt;/li&gt;
&lt;li&gt;Tests help me write better code. Because thinking up and executing tests often shows up code defects early, and this is a very good thing. I often find myself writing a function that I think is great, then throw a few additional tests at it and find my logic or execution was flawed.&lt;/li&gt;
&lt;li&gt;My defect rates are much lower, just like Nagappan et al state. I think this is simply due to the use of TDD to identify and catch defects earlier in the process. And I get far fewer bug reports from Beta testers.&lt;/li&gt;
&lt;li&gt;I am no longer afraid to refactor mercilessly. The tests will tell me if the refactor breaks anything. This is probably the most important point. I &lt;em&gt;know&lt;/em&gt; that its safe to change code, I &lt;em&gt;know&lt;/em&gt; if the change affects other components and I can &lt;em&gt;see&lt;/em&gt; where and how it does so, so I can &lt;em&gt;fix&lt;/em&gt; it.&lt;/li&gt;
&lt;li&gt;I can &lt;em&gt;trust&lt;/em&gt; the code base. No need to tiptoe around API&amp;#8217;s or functions. I can &lt;em&gt;trust&lt;/em&gt; that calling an API or module will work, and that the tests will tell me if they break. I can &lt;em&gt;trust&lt;/em&gt; the work of others because their tests work too.&lt;/li&gt;
&lt;li&gt;I seem to have found, empirically, that writing tests after the fact is just as fine as writing them before. The important thing is to &lt;em&gt;have&lt;/em&gt; the tests, and to have good tests, to have tests that go after both expected and unexpected cases, outlier cases, failure modes and are in some cases ridiculous tests.&lt;/li&gt;
&lt;li&gt;It also helps when taking on legacy or other people&amp;#8217;s code to spend time writing tests to help you learn that code. Or at least trust that code by testing the components you use.&lt;/li&gt;
&lt;li&gt;Testing for 100% coverage does not seem to be all that worth it. Using my toolkit in Rails, I can test the workflow, UI and all models and business logic. In reality, getting 100% coverage on models and libraries pays off, but the UI and workflow stuff changes so much during development that the tests for that stuff get in the way.&lt;/li&gt;
&lt;li&gt;Adding tests for bugs found is another great way to document not only the bug but your bug checking and fixing process. You know something is wrong when a bug is found, tests can help you to corral it, and then be sure that it never happens again. Tests also ensure that your fix does not break anything else. I often find new bugs by fixing one bug and watching other tests fail.&lt;/li&gt;
&lt;li&gt;I don&amp;#8217;t release unless all tests are passing, &lt;em&gt;obviously&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;I also don&amp;#8217;t skip testing to meet deadlines. I estimate with tests in mind, I develop with tests in mind. And if I have a deadline, the few minutes more it takes to create and run tests make no significant difference.&lt;/li&gt;
&lt;li&gt;I make no secret that I use this methodology. My clients understand that the small increase in development time pays off handsomely in later iterations, and reduces beta testing and maintenance issues. Based on my experience alone, TDD actually reduces the net time to develop and ship quality software because you don&amp;#8217;t spend time later in the project trying to figure out what went wrong.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For many developers, introducing Test Driven Development, is a challenge. You have to explain it to your team, to managers and clients, then find the time to write tests, then find the time to learn how to write good tests, build a process and infrastructure to automate testing, and the payoff is difficult to see until far later in the project timeline. I hope just some of the benefits I have found above help you get there.  With TDD, you will make better software, you will be a happier developer and your manager and client will see the benefit in the end.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/rZ8wUH4kH84" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/01/26/test-driven-development-really-works/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Where the light is better]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/ZCp2E0pigXE/" />
    <updated>2012-01-26T10:30:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/01/26/where-the-light-is-better</id>
    <content type="html">&lt;blockquote&gt;&lt;p&gt;A woman comes across a man crawling under a street lamp. &amp;#8220;I&amp;#8217;ve lost my car keys,&amp;#8221; he explains.&lt;/p&gt;&lt;p&gt;The woman tries to help the man find his keys. After a few minutes of searching, she asks &amp;#8220;Where exactly did you drop them?&amp;#8221;&lt;/p&gt;&lt;p&gt;&amp;#8220;Down the street, next to my car.&amp;#8221;&lt;/p&gt;&lt;p&gt;Puzzled, she asks &amp;#8220;Then why aren&amp;#8217;t you looking over there?&amp;#8221;&lt;/p&gt;&lt;p&gt;&amp;#8220;The light is better here.&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;People often look where it seems easiest or most convenient to look, rather than in a more difficult, but more correct place. Opinions regarding where the best place to look often comes down to &amp;#8220;Where The Light Is Better&amp;#8221;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support teams base their knowledge of a software system upon specifications and documentation, rather than observing the actual system in action or examining its source code. &lt;em&gt;Documentation is usually incomplete and out of date.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Analysts make decisions based upon easy-to-collect metrics, rather than on detailed study of the complexities of a situation. &lt;em&gt;Not enough time to do it right, so find a short cut.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;DBAs prefer that database query logic be written as stored procedures in the database, where they can get at it; whilst developers prefer that it be in the application code, where &lt;em&gt;they&lt;/em&gt; can get at it. &lt;em&gt;More convenient location, not necessarily the right location.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;When a bug is found in someone else&amp;#8217;s code, developers will generate complex workarounds in their code, rather than trying to get the bug fixed. &lt;em&gt;Either it takes to long to get it fixed, its too hard to fix it yourself or something else may depend on it. Workwround instead of finding out.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Almost everyone uses a tool they know well to try to solve a problem, even if that tool is poorly suited to that problem, rather than to try and learn an unfamiliar tool that is far better suited for that job. &lt;em&gt;Use your &amp;#8220;hammer&amp;#8221; tool instead of the right tool. We&amp;#8217;ve all see abuses of Excel and Powerpoint, no?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Architects try to gather existing knowledge informally, through conversations, online forums, and wikis, rather than reading papers and books. &lt;em&gt;More convenient to ask than to learn, see the success of StackExchange.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Consultants try to gather information on industry practices through reading academic papers, rather than examining real-world work and case-studies. &lt;em&gt;Hoping someone else saw and solved the problem first.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Having alternate places to find and gain knowledge is a good thing. But you need to make sure that the alternate location is referring to the same knowledge. And that you truly understand the problem and solution space. Searching where the light is better does not necessarily mean you are searching where the keys are, where the solution exists.&lt;/p&gt;

&lt;p&gt;Expedient is not necessarily efficient.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Rephrased &lt;em&gt;without&lt;/em&gt; requesting permission and hoping for forgiveness, from &lt;a href="http://c2.com/cgi/wiki?WhereTheLightIsBetter"&gt;http://c2.com/cgi/wiki?WhereTheLightIsBetter&lt;/a&gt; (Last updated November 2004).&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/ZCp2E0pigXE" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/01/26/where-the-light-is-better/</feedburner:origLink></entry>
  
  <entry>
    <title type="html"><![CDATA[Less Wasting Time]]></title>
    <link href="http://feedproxy.google.com/~r/hiltmon/~3/MVOVQ5v8RBQ/" />
    <updated>2012-01-26T10:18:00-05:00</updated>
    <id>http://hiltmon.com/blog/2012/01/26/less-wasting-time</id>
    <content type="html">&lt;p&gt;The sub-theme this week is on trying to find ways to improve developer happiness and to reduce unpleasant time wasters.&lt;/p&gt;

&lt;p&gt;Rafe Colburn in &lt;a href="http://rc3.org/2012/01/17/dont-order-your-team-to-work-more-hours/"&gt;Don’t order your team to work more hours&lt;/a&gt; talks about bosses who ask staff to work more hours:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Every time you’re tempted to do so, sit down with members of the team and ask them how many hours a week they spend dealing with stuff not related to shipping and work to make those things go away instead.&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;David Heinemeier Hansson gets specific in &lt;a href="http://37signals.com/svn/posts/3081-refusing-administrative-minutiae"&gt;Refusing administrative minutiae&lt;/a&gt;, picking on expense reports.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Optimizing your business for happiness is about a lot of things, but taking out all the needless administrative minutiae seems like one of the easiest. Why aren’t you?&lt;/p&gt;&lt;/blockquote&gt;


&lt;p&gt;Pass these on to your boss.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/hiltmon/~4/MVOVQ5v8RBQ" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://hiltmon.com/blog/2012/01/26/less-wasting-time/</feedburner:origLink></entry>
  
</feed>

