<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Madstop &#187; Uncategorized</title>
	<atom:link href="http://madstop.com/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://madstop.com</link>
	<description>Puppet development, configuration management, and less</description>
	<lastBuildDate>Mon, 02 Aug 2010 04:07:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Summer Operations Conferences</title>
		<link>http://madstop.com/2009/06/05/summer-operations-conferences/</link>
		<comments>http://madstop.com/2009/06/05/summer-operations-conferences/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 15:20:07 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[ossbridge]]></category>
		<category><![CDATA[pdx]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[sanfrancisco]]></category>
		<category><![CDATA[sanjose]]></category>
		<category><![CDATA[structure09]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[velocity09]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=77</guid>
		<description><![CDATA[I&#8217;ll be at three conferences in quick succession in June, speaking at two of them. First I&#8217;m on a configuration management panel run by James Turnbull at the Open Source Bridge in Portland, OR.  I haven&#8217;t been on a multiple-tool &#8230; <a href="http://madstop.com/2009/06/05/summer-operations-conferences/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be at three conferences in quick succession in June, speaking at two of them.</p>
<p>First I&#8217;m on a <a href="http://opensourcebridge.org/sessions/49">configuration management panel</a> run by <a href="http://ablog.apress.com/?author=53">James Turnbull</a> at the <a href="http://opensourcebridge.org/">Open Source Bridge</a> in Portland, OR.  I haven&#8217;t been on a multiple-tool panel in a while, so this should be interesting.  I&#8217;m also excited to be back in Portland &#8211; I absolutely love the town, so much that I&#8217;m moving back there this summer.  And for those non-Americans who think we don&#8217;t make great beer:  Get thyself to Portland, and see how wrong you are.  I should also be running a <a href="http://opensourcebridge.org/sessions/276">Puppet BoF</a> there.</p>
<p>From there I fly down to San Jose to give a <a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7693">workshop on Puppet</a> at the <a href="http://en.oreilly.com/velocity2009">O&#8217;Reilly Velocity conference</a>.  This is its second year, and while it claims to have a web operations/performance focus, I think it stands to quickly become the best general operations conference around.  LISA is too academic and just moves too slowly, and there isn&#8217;t a whole lot of other competition.</p>
<p>Last year&#8217;s was great, and this year&#8217;s is a day longer and looks to be even better.</p>
<p>Finally, the day after Velocity, I attend Om Malik&#8217;s <a href="http://events.gigaom.com/structure/09/">Structure</a>.  This conference is more focused on operations executives, which is a very different focus for me, but I met a lot of interesting and knowledgeable people there last year, including some from completely outside the technology space.  I normally diss executive events, but this one seems to stand out.</p>
<p>Hopefully you&#8217;ll have a chance to track me down at one of these events.</p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2009/06/05/summer-operations-conferences/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
		<item>
		<title>A Short Puppet History, pt. 2: Cfengine</title>
		<link>http://madstop.com/2008/11/06/a-short-puppet-history-pt-2-cfengine/</link>
		<comments>http://madstop.com/2008/11/06/a-short-puppet-history-pt-2-cfengine/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 07:11:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=32</guid>
		<description><![CDATA[Now that I&#8217;ve gone through the ISconf years (although it was really less than a year), it&#8217;s time to move on to how Cfengine affected Puppet.  There seems to be a pervasive belief that Puppet is an attempt to make &#8230; <a href="http://madstop.com/2008/11/06/a-short-puppet-history-pt-2-cfengine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Now that I&#8217;ve gone through <a href="/2008/11/01/a-short-history-of-puppet-pt1/">the ISconf years</a> (although it was really less than a year), it&#8217;s time to move on to how <a href="http://www.cfengine.org/">Cfengine</a> affected Puppet.  There seems to be a pervasive belief that Puppet is an attempt to make a Cfengine++, and I&#8217;m hoping that this article will dispel that silly notion.</p>
<p>As mentioned previously, I&#8217;d concluded that ISconf wasn&#8217;t sufficient, because it was theoretically bogus (maintaining order didn&#8217;t guarantee you all that much), it precluded refactoring, and it didn&#8217;t actually make my sysadmin work easier, really &#8212; I was still writing tons of little shell scripts.  As I described it in my paper: &#8220;In choosing between ISconf and most other [configuration management systems], this is largely a choice between a tool which easily organizes work and a tool which makes the work itself easier.&#8221;</p>
<h3>Order Matters</h3>
<p>Given the situation at the time, and the fact that Cfengine&#8217;s author, <a href="http://www.iu.hio.no/~mark/">Mark Burgess</a>, was having a kind of war of words with the author of ISconf, <a href="http://www.stevegt.com/">Steve Traugott</a>,  it made sense to look at Cfengine.  I want to step aside for a moment, though, and discuss this war of words.  The summary of the war is &#8220;order matters&#8221;, and when I hear that it&#8217;s like &#8220;where&#8217;s the beef&#8221; or &#8220;it has what plants crave&#8221; &#8212; it&#8217;s a simple phrase but one that brings up context, hilarity, and stupidity all at once.  Steve maintained that order matters when managing systems, and Mark theoretically maintained that it did not.  These respective beliefs were evident in that Steve&#8217;s tool, ISconf, was really just a means of guaranteeing order and nothing more, and Mark&#8217;s tool, Cfengine, made it ridiculously difficult to maintain order.</p>
<p>The truth, of course, is that order does matter, but only as a prerequisite, not the end-all be all.  You obviously can&#8217;t start a service if you haven&#8217;t installed its package yet, but there is such a thing as orthogonal services, and you definitely, definitely don&#8217;t want to build all of your systems with the assumption that every chunk of work requires every other chunk of work ever performed.</p>
<p>My hopefully-reasonable summary should not imply that their conversations were reasonable; they were not. It was an infantile and annoying conversation all around, and to me, the phrase &#8220;order matters&#8221; will always evoke laughter, pity, and a desire to drink heavily while spouting epithets. When I was first exposed to this conversation, I was an ISconf user (well, *the* ISconf user &#8212; one other person adopted it, and I suppose Steve used it, but&#8230;), so everyone assumed I was on Steve&#8217;s side, but I&#8217;m not much of an ideologue, and I certainly wasn&#8217;t committed that early.</p>
<h3>Integrating Cfengine</h3>
<p>Anyway. So, I decided to look at Cfengine.  It&#8217;s a completely different kind of tool than ISconf &#8212; it&#8217;s organized around what it calls &#8220;actions&#8221;, although none of them are verbs, for some reason.  These are things like files, shellcommands, processes, and many others.  The immediate, obvious difference between the two is that Cfengine is a tool focused on what you&#8217;re trying to do, and ISconf is a tool that just cares about in what order you do it.</p>
<p>The other thing about Cfengine is it has this whole &#8220;control&#8221; section that&#8217;s all about setting up variables and making decisions, and you can set booleans (which Cfengine calls classes) that can then be used to make decisions throughout the whole configuration.  I immediately imported a lot of the convoluted logic I had hidden in ISconf make files into Cfengine and saved myself a ton of headache; then I integrated the two tools, such that ISconf could take advantage of all of the knowledge and context that Cfengine had, and Cfengine could take advantage of all of the information I&#8217;d already input into ISconf.</p>
<p>This, of course, meant I was going to hell. I wrote an <a href="http://www.usenix.org/events/lisa03/tech/full_papers/kanies/kanies.pdf">article</a> describing my experiences with each tool, plus how I integrated them, and there were some interesting conversations as a result.  Initially, the integration was focused on not throwing away the work I&#8217;d done with ISconf, but over time, I stopped adding code to ISconf and largely just focused on Cfengine, and in the end, I found it was more effective to just do my work directly through Cfengine.</p>
<p>At the same time, I started a consulting company to focus on helping other companies with with configuration management problems, since so few organizations seemed to have a decent solution, and I was more interested in continuing to refine my solution than I was in moving on to more mundane sysadmin problems like backups or monitoring.</p>
<p>After a few months of consulting, though, I found that Cfengine could be painfully low-level.  It could do files, commands, and processes, but it couldn&#8217;t do users, groups, or packages.  Also, I was maintaining Cfengine configurations for multiple platforms, and it was a real nightmare managing Cfengine code that did the same thing in different ways, or even just used different paths.</p>
<p>Even worse, though, I found I couldn&#8217;t keep promises to my customers.  Cfengine often wouldn&#8217;t compile on a given platform across releases, I couldn&#8217;t consistently get bug fixes or refactorings accepted into the code base, and I had no ability to influence the direction of its development.  Mark Burgess was the main developer, and he was very defensive of any attempt to refactor significant parts of the code.  He also, somewhat notoriously, said he considered version control to be overhead, which meant we kept magically getting bug regressions.</p>
<h3>Looking for other options</h3>
<p>So, frustrated with Cfengine and its lack of a developer community, I started looking around for other options. I tried out <a href="http://quattor.wiki.sourceforge.net/">Quattor</a>, <a href="http://www.lcfg.org/">LCFG</a>, <a href="http://www.smartfrog.org/">SmartFrog</a>, <a href="http://trac.mcs.anl.gov/projects/bcfg2">Bcfg2</a>, <a href="http://www.feep.net/psgconf/">psgconf</a>, and probably more, but none of them seemed like they would allow the kind of extension and abstraction that I was looking for.  I was afraid I was going to have to make my own tool, but I really didn&#8217;t want to.  As an interim step, in the summer of 2004 I decided to fork Cfengine and fix some of its problems.  I called this fork <a href="http://cfng.tigris.org/">cfng</a> (it&#8217;s completely dead now).</p>
<p>One of the things that drove me most crazy about Cfengine was that it had 25 different syntaxes for its 33 or so different actions &#8212; &#8216;processes&#8217; was *slightly* different from &#8216;shellcommands&#8217;, for no good reason.  Really, there were all kinds of scary implementation decisions.  My fork was meant to fix these problems. Unfortunately, I never got it to work; it was just too much work pushing that much spaghetti C code around, at least for me.</p>
<p>Around the time I gave up on rewriting Cfengine, my friend <a href="http://www.linkedin.com/pub/0/224/72a">Kent Skaar</a> decided to go work for <a href="http://www.bladelogic.com">BladeLogic</a>, and he somehow convinced me to join and them to hire me.  However, I was, for good reason, concerned about retaining the rights to ideas I&#8217;d already developed, so I took some time before joining to write a prototype roughly implementing the product I was thinking of building.  At the time, the product was code-named &#8216;Blink&#8217;.</p>
<h4>The LISA Configuration Management Community</h4>
<p>I have to make another aside here and mention that through this whole period I was attending the configuration management workshops at the <a href="http://www.usenix.org/event/lisa08/">USENIX LISA conference</a>.  On the one hand, these were great workshops, because they were full of smart people talking about interesting problems, but on the other hand, they were just horrible.  It seemed that no one was interested in making a truly useful, simple tool, and there was this ridiculous, inane focus on theory in lieu of practice.  I was told multiple times that it just wasn&#8217;t possible to write a good tool until the theory was solved, and I should just wait until it was.  Any scientist could tell you that, in nearly all cases, theory comes from data, and data comes from wandering around randomly, so this theory-then-tool idea was just BS.</p>
<p>Over the course of my years in the workshops, I&#8217;d come to the conclusion that building some kind of resource abstraction layer was the key to building a great tool.  I reasoned that this layer would function as a means of abstracting the operating system and allowing the sysadmin to focus on the what rather than the how, and I figured the abstraction layer could be the first step in a real sysadmin tool stack.</p>
<p>My ideas were met with outright derision.  I was told the theory was utter crap, unworkable *and* stupid, and uninteresting to boot.  As time went on, the criticism from certain parties got downright ridiculous, to the point where half of why I built Puppet in the end was to prove these jackasses wrong.</p>
<p>I don&#8217;t think it was coincidental that I was the only person in the room out selling my services as a consultant, rather than sitting in a stable job and just working on config-mgmt a limited amount of time.  This sales requirement put a very different spin on how I thought about things, and my understanding of the requirement for simplicity and reuse seemed unique in the group.  While Bcfg2&#8242;s author has bragged that you can get an install up and running in as little as a few days, I&#8217;ve always said if it takes you more than an hour to do something useful with Puppet, I&#8217;ve screwed up.</p>
<p>So anyway, I&#8217;m going to these conferences, sharing my ideas, and getting absolutely nowhere.  Everyone in the room has his (yes, his) own tool, and no one&#8217;s really moving anywhere.  I&#8217;m feeling pretty insulted most of the time and getting pretty tired of people just categorically saying I&#8217;m wrong while being unwilling to listen to me or, really, even try other tools out (at that point, I was the only person who had downloaded and tried out every other tool in the group).</p>
<h3>The Prototype</h3>
<p>So, for all these reasons and more, I decided to see if I could make a prototype that had the functionality I was looking for.  I knew I wanted:</p>
<ul>
<li>High-level resources:  Users, not useradd; packages, not apt-get; and hosts, not /etc/hosts.</li>
<li>Simple cross-platform naming: The ability to use different names for the same resource on different platforms; e.g., the ssh package or the location of the sshd configuration file</li>
<li>Easy extensibility: I wanted users to be able to add custom resource types.</li>
</ul>
<p>Beyond that, there were some more specific bits I knew I wanted, but that was the main list.  When I started on this, I was a perl developer, so I tried it in that, but I just couldn&#8217;t conceive of how to implement the class relationships I was envisioning.  This was 2004, when everyone was hotting up Python, so I decided to give it a try, but Python just makes my eyes bleed.  No, it&#8217;s not the whitespace &#8212; that&#8217;s just silly, not painful.  It was things like &#8216;len&#8217; being a function, rather than a method, and the fact that &#8216;print&#8217; with a trailing comma behaves differently than without one.</p>
<p>I had a friend at the time who&#8217;d heard Ruby was cool (although never tried it himself), so I decided to give that a try, and in four hours I went from having never seen a line of Ruby to having a functional prototype of the resource abstraction layer.  Boom, I was off.</p>
<h3>BladeLogic and Beyond</h3>
<p>Now that I had the prototype and I was comfortable that I had code that outlined the ideas I was coming to the table with, I accepted the job at BladeLogic.  My wife was still working on her Phd in cancer biology, so we couldn&#8217;t move to Boston (where they are located); instead, I would get an apartment there and work there 2/3 or 3/4 of the time and work from Nashville the rest of the time.</p>
<p>My understanding of my role there was to help them design configuration management tools, but that didn&#8217;t seem to be why they actually hired me &#8212; they were far more interested in my helping to set up a test lab or some junk.  I was pretty impatient with the job, given that I was never seeing my wife, so I was pushing until it either became what I wanted or broke, and it only took 5 months for me to decide it wasn&#8217;t worth it and quit.</p>
<p>I went back home and took stock.  One of my main complaints about BladeLogic was that I didn&#8217;t think they were producing software that I would want to use or even recommend to others, yet I still thought there was a clear opportunity.  Cfengine had the widest deployment, but, well, it was a piece of crap.  No version control, horrible implementation, no marketing, no commercial backing, etc.</p>
<p>In addition to the opportunity, I thought I actually had some decent ideas, and I was pretty confident in my ability to make a living selling them. Yes, selling &#8212; I&#8217;m a very technical person, but I completely understand the value and necessity of selling my ideas, whether it be to colleagues, coworkers, employees, or customers.</p>
<p>So, in March of 2005, I decided to take my paltry savings and a small loan from family and start a software company focused on producing a better configuration management tool.  After realizing that there were already multiple software projects called &#8216;Blink&#8217;, and much hemming and hawing and thinking, I decided to call this project <a href="http://reductivelabs.com/trac/puppet/">Puppet</a>.</p>
<p>The next installation in this series will actually cover the history of Puppet itself, hopefully all the way to the present day.</p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/11/06/a-short-puppet-history-pt-2-cfengine/feed/</wfw:commentRss>
		<slash:comments>114</slash:comments>
		</item>
		<item>
		<title>I&#8217;m keeping my Google Phone</title>
		<link>http://madstop.com/2008/11/01/im-keeping-my-google-phone/</link>
		<comments>http://madstop.com/2008/11/01/im-keeping-my-google-phone/#comments</comments>
		<pubDate>Sat, 01 Nov 2008 04:34:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[att]]></category>
		<category><![CDATA[g1]]></category>
		<category><![CDATA[gphone]]></category>
		<category><![CDATA[htc]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[tmobile]]></category>

		<guid isPermaLink="false">http://madstop.com/?p=27</guid>
		<description><![CDATA[Well, I&#8217;ve had my gPhone (aka Android phone aka T-Mobile HTC G1) for about ten days, and after using it a lot and playing with a couple of iPhones a few times, I think I&#8217;m going to keep the G1.  &#8230; <a href="http://madstop.com/2008/11/01/im-keeping-my-google-phone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve had <a href="http://madstop.com/2008/10/21/a-google-phone/">my</a> <a href="http://www.androidg1.org/">gPhone</a> (aka Android phone aka T-Mobile HTC G1) for about ten days, and after using it a lot and playing with a couple of iPhones a few times, I think I&#8217;m going to keep the G1.  And on a side note, I&#8217;m making an attempt, from now on, to make this blog more conversational.  I&#8217;ve done a horrible job of importing how I talk into how I write here, and it&#8217;s both made the blog worse and made me less interested in writing.  Yay.</p>
<p>Fundamentally, the main reasons I&#8217;m keeping it are that I couldn&#8217;t see a huge differentiator pushing me toward the iPhone, I didn&#8217;t really want to switch from TMobile to ATT (TMobile will unlock my phones for me and has said they don&#8217;t mind tethering apps), and I like the more open nature of the gPhone.  Assuming someone actually makes a tethering app at some point, it could save me and everyone at my company about $60/month, since we&#8217;d otherwise need to buy a separate device to get constant &#8216;net access for our laptops.</p>
<p>Here are some things I particularly like about the gPhone:</p>
<ul>
<li><strong>The Status bar:</strong> I really like this.  I like one place for notifications and information, and a single consistent interface for all of them, along with my ability to either answer them or ignore them.</li>
<li><strong>The Dialer Application:</strong> I think this is great.  I don&#8217;t know that it&#8217;s a ton different from the iPhone&#8217;s, but I really liked this version.  I liked the previous calls list, the favorites list, and easy searching for contacts.</li>
<li><strong>The mid-call menu:</strong> I didn&#8217;t get a chance to try this out on the iPhone, but I loved this on the gPhone.  Press the menu button and you can enable/disable your bluetooth headset, switch calls, put someone on hold, and more.  Call switching and conference calling was astoundingly faster than doing so with any other phone I&#8217;ve had, which is pretty awesome considering how often I make conferences calls between myself, Andrew, and Teyo.</li>
<li><strong>Task switching:</strong> You can hold the &#8216;home&#8217; button down for a second or so to get a list of the last six applications you&#8217;ve used, and you can switch right to the application without having to go to the home screen.  On the iPhone, you <strong>always</strong> have to go to the home screen to get to another application.  Welcome to 1987, people &#8212; this is MacOS 6, but with no excuse.  Android also has a Task Switcher application that just switches across all installed applications; it mostly sucks, but it&#8217;s encouraging that task switching is one of the first problems attacked in the OS.</li>
<li><strong>Notification lights:</strong> This seems like a small thing, but the phone has three small, colored LEDs; a green LED for message notification, a red light for low-battery, and an orange light for charging.  I really like these &#8212; they&#8217;re small enough that they don&#8217;t stab you like so many LEDs do these days, and they provide a great, simple way to know what&#8217;s going on with your phone, without having random vibrations every who-knows-how often.  I was using a friend&#8217;s iPhone, and it literally vibrated every three or four minutes without any indication why.  I&#8217;m assuming it was a notification I was supposed to track down, but there was no way to figure it out without going to the home screen and searching for red numers.</li>
<li><strong>Home screen vs. App Management:</strong> Android has a home screen with three panes, and you can arrange them however you want &#8212; apps, links to URLs, etc.  It also has an applications tab pull with every app on the system, arranged heirarchically.  This is great because you can set up a subset of your applications on the home screen, arranged how you want, and then you can peruse the whole app list alphabetically.  The iPhone, on the other hand, only has the home screen &#8212; you add more apps, and it adds more panes.  You apparently can&#8217;t change the four &#8220;most common&#8221; apps on the bottom, and there&#8217;s apparently no easy way to browse the apps alphabetically.</li>
</ul>
<p>The combination of app management and task switching go a long ways toward making this phone feel more like a real operating system on a phone, rather than the iPhone which feels more like a phone trying to be a real operating system.  It&#8217;s weird, because I know the iPhone has a real OS under there somewhere; it&#8217;s just not acting like one.</p>
<p>I kinda like the keyboard, although I don&#8217;t know if it&#8217;s that big of a difference for me (I&#8217;m hopefully never going to be much of an emailer with my phone), and I like how responsive the phone is.</p>
<p>There are some things I really don&#8217;t like about it, though.  Browsing is a generally crappy experience &#8212; the zoom thingie completely blows, in that it inconsistently accepts touches and it&#8217;s just a crappy interface in general, and it&#8217;s also not-quite-impossible to actually click the links you want.  However, using apps like  Google Reader works fine, and I expect it will only get better.  And, again, this isn&#8217;t what I mainly expect to use the phone for.  It&#8217;s fine for stop-gap, like sitting in the Doctor&#8217;s office waiting room; it&#8217;s just not something I&#8217;d want to do a ten day trip with.</p>
<p>I&#8217;m pretty concerned about the durability of the hardware; I could already store my credit cards between the sliding screen and the keyboard.  Hopefully I&#8217;ll be able to replace the phone as necessary for the first year, and by then I hope they&#8217;ve got it figured out.</p>
<p>I do really wish the phone supported multi-touch, and with it the multi-finger gestures like the iPhone pinch.</p>
<p>I also wish there were just a <a href="http://docs.blacktree.com/quicksilver/what_is_quicksilver">Quicksilver</a>-like interface for the whole phone &#8212; give me a single gesture to bring up Quicksilver, and I&#8217;ll never go to the home screen again.</p>
<h3>An Aside</h3>
<p>This is neither iPhone nor Android, but it must be said.  What is up with how unimaginative people are being with the touchscreen support?  Why is it that the only way to interact with either of these things is directly touching visible objects, or a traditional keyboard?  Where are my full-screen gestures that I can define, where are my accelerometer-based navigation, where, basically, is anything that really takes advantage of the form factor and touchscreen to be different?</p>
<p>The gPhone has pretty cool gesture recognition for unlocking &#8212; you get a grid of nine dots and have to make a specific gesture to unlock the phone.  Why can&#8217;t this same theme be used for, well, everything?  I&#8217;d like global gesture support for shortcuts to my most common applications, for instance &#8212; a Z to open one app, a loop to open another.  I haven&#8217;t seen a single situation where I need to drag in multiple directions without lifting my finger, so I don&#8217;t see what it would interfere with.</p>
<p>Both of these phones basically suck for context and task management.  Each phone has a &#8220;back&#8221; button, where the iPhone&#8217;s is on-screen and the gPhone&#8217;s is physical.  What?  A back button?  Back buttons suck in browsers, why would anyone ever think they make sense as the primary navigational paradigm in, well, anything, ever?  Sure, if you&#8217;re stuck in a completely linear world, sure, but on a phone where I regularly use 5-10 applications a day, and could conceivably use 20 or more, a back button just doesn&#8217;t suffice.</p>
<p>It bugs the hell out of me that people aren&#8217;t taking the Wii as their example &#8212; do something different, something weird.  If people aren&#8217;t laughing at your ideas, then you&#8217;re not trying hard enough.</p>
<p>Cheers.</p>
]]></content:encoded>
			<wfw:commentRss>http://madstop.com/2008/11/01/im-keeping-my-google-phone/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
