<?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" xml:lang="en"><title type="text">walkah</title><link rel="alternate" type="text/html" href="http://walkah.net/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/walkah" /><author><name>James Walker</name></author><updated>2012-04-13T20:54:16+00:00</updated><feedburner:info uri="walkah" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><id>http://walkah.net/</id><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><entry><title type="html">Using Drush to Mass Delete Comments</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/gBZfczhKKTE/using-drush-to-mass-delete-comments" /><updated>2012-04-12T21:00:00-07:00</updated><id>http://walkah.net/blog/using-drush-to-mass-delete-comments</id><content type="html">&lt;p&gt;Like many kind, good-natured geeks, I (yes, I was talking about me) host a number of small sites for friends. Many of those sites run Drupal and several don't get a lot of attention. That is, until spammers find their way around &lt;a href="http://mollom.com/"&gt;Mollom&lt;/a&gt;. I've seen this happen a few times, but most recently on a Drupal 7 site. In this particular case, the spam comments had been trickling in over a few weeks undetected. Following a burst of recent activity (enough to notice via monitoring), I checked in to find &gt; 60,000 spam comments.&lt;/p&gt;

&lt;p&gt;If this has ever happened to you: you're not alone. At this number of comments, using Drupal's interface (50 comments at a time) isn't really usable. Also, these things tend to happen in bursts - so chances are good there's a block of comments that are all spam (i.e. there haven't been any legitimate comments that you want to save since it started). So, I whipped up a small script here:&lt;/p&gt;

&lt;div&gt;&lt;script src='https://gist.github.com/2379996.js?file='&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?php

$first_comment = 38898;
$num_delete = 50;
   
do {
  $cids = db_select('comment', 'c')
    -&amp;gt;fields('c', array('cid'))
    -&amp;gt;condition('cid', $first_comment, '&amp;gt;=')
    -&amp;gt;range(0, 50)
    -&amp;gt;execute()
    -&amp;gt;fetchCol();

    print &amp;quot;deleting &amp;quot;. count($cids). &amp;quot; comments...\n&amp;quot;;
    comment_delete_multiple($cids);
} while (count($cids) == $num_delete);&lt;/code&gt;&lt;/pre&gt;&lt;/noscript&gt;&lt;/div&gt;


&lt;p&gt;Here's how to use it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Place the code in a file (say, &lt;code&gt;comment-rm.php&lt;/code&gt;) in your Drupal directory.&lt;/li&gt;
&lt;li&gt;Find the &lt;code&gt;cid&lt;/code&gt; of the first spam comment (exercise left to the reader) and set &lt;code&gt;$first_comment&lt;/code&gt; to that value.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;drush scr comment-rm.php&lt;/code&gt; and go grab a coffee.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Hope that helps someone, but at least now I can find it again next time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Beware&lt;/em&gt;: This deletes comments forever, be careful.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/gBZfczhKKTE" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/using-drush-to-mass-delete-comments</feedburner:origLink></entry><entry><title type="html">SOPA and the Long Haul</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/ZVYirjGIyW4/sopa-and-the-long-haul" /><updated>2012-01-17T21:00:00-08:00</updated><id>http://walkah.net/blog/sopa-and-the-long-haul</id><content type="html">&lt;p&gt;Today marked one of the Internet's broadest, most visible protests. Several large internet properties, including Google, Wikipedia, Reddit, and Mozilla, participated in a "blackout" in an effort to raise awareness of (and put a stop to) two bills currently before the US Congress: &lt;a href="http://en.wikipedia.org/wiki/Stop_Online_Piracy_Act"&gt;SOPA&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/PROTECT_IP_Act"&gt;PIPA&lt;/a&gt;. Chances are good that this isn't news to you.&lt;/p&gt;

&lt;p&gt;If for some reason you don't know, here's a (technical, but) &lt;a href="http://blog.reddit.com/2012/01/technical-examination-of-sopa-and.html"&gt;good explanation&lt;/a&gt; of what can go wrong with these bills.&lt;/p&gt;

&lt;p&gt;As I watched the events of the day unfold, I was grateful for the new awareness, had a chuckle at those who &lt;a href="https://twitter.com/#!/herpderpedia"&gt;don't get it&lt;/a&gt;, and of course enjoyed the irony of &lt;a href="http://www.vice.com/read/pipa-supporters-copyright-violations"&gt;copyright violations by PIPA supporters&lt;/a&gt;. However, I was left feeling uneasy. SOPA and PIPA aren't new problems - they are merely the latest efforts in an ongoing battle. I was pleased to see &lt;a href="http://www.readwriteweb.com/enterprise/2012/01/what-i-wish-wikipedia-and-othe.php"&gt;this article&lt;/a&gt; in Read Write Web which spoke to what I was feeling:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Sure, call your representative and senators today. Protest SOPA and PIPA. But beyond that, keep paying attention to what your elected officials are doing. Spend a little more time paying attention to your government, even if it means spending a little less time on entertainment activities.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;If you want a quick overview of the broader context, this &lt;a href="http://www.ted.com/talks/defend_our_freedom_to_share_or_why_sopa_is_a_bad_idea.html"&gt;TED Talk&lt;/a&gt; by &lt;a href="http://www.shirky.com/"&gt;Clay Shirky&lt;/a&gt; is a fantastic quick overview.&lt;/p&gt;

&lt;p&gt;This is a long, ongoing battle between last century's media money and the Internet. It's neither new nor is it going away.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://americancensorship.org/"&gt;#StopSOPA&lt;/a&gt; - but don't stop there.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/ZVYirjGIyW4" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/sopa-and-the-long-haul</feedburner:origLink></entry><entry><title type="html">PHP Xdebug with Vagrant</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/ejl0ZbonhoE/debugging-php-with-vagrant" /><updated>2012-01-11T21:00:00-08:00</updated><id>http://walkah.net/blog/debugging-php-with-vagrant</id><content type="html">&lt;p&gt;I've been asked a few times about getting &lt;a href="http://xdebug.org/"&gt;Xdebug&lt;/a&gt; for PHP working in a &lt;a href="http://vagrantup.com/"&gt;Vagrant&lt;/a&gt; environment. Most people tend to use Xdebug on localhost and IDEs are often able to configure themselves to work without much hassle in that environment. However, putting PHP in a virtual machine makes the setup a little trickier.&lt;/p&gt;

&lt;p&gt;Xdebug works by using a protocol known as &lt;a href="http://xdebug.org/docs-dbgp.php"&gt;DBGP&lt;/a&gt; over TCP. What makes it slightly confusing, however, is the protocol flow happens in &lt;em&gt;reverse&lt;/em&gt; from how most developers are used working: the server makes connections to your "client" (e.g. your IDE). Your debugger actually listens on a port (9000 by default), and Xdebug connects to that. Understanding that makes the setup make a little more sense.&lt;/p&gt;

&lt;p&gt;Vagrant generally uses "Host-Only Networking" with an IP for the virtual machine of "33.33.33.10" (see the &lt;a href="http://vagrantup.com/docs/host_only_networking.html"&gt;documentation&lt;/a&gt;). In this scenario, your host machine (i.e. where your debugger will be listening on port 9000) is accessible from the VM at 33.33.33.1. That means, we need to tell Xdebug to make it's connections to 33.33.33.1 on port 9000. This can be handled by the following php configuration:&lt;/p&gt;

&lt;pre&gt;
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=33.33.33.1
xdebug.remote_port=9000
xdebug.remote_autostart=0
&lt;/pre&gt;


&lt;p&gt;I handle this configuration with this &lt;a href="https://github.com/walkah/chef-repo/blob/master/site-cookbooks/drupal/templates/default/xdebug.ini.erb"&gt;xdebug.ini.erb&lt;/a&gt; template in my &lt;a href="https://github.com/walkah/chef-repo"&gt;chef-repo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have found that this works quite well with my Emacs setup using &lt;a href="http://code.google.com/p/geben-on-emacs/"&gt;geben&lt;/a&gt;, but I've not yet tested it with other IDEs.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/ejl0ZbonhoE" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/debugging-php-with-vagrant</feedburner:origLink></entry><entry><title type="html">New Year, New Blog</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/Z0diGsN_i3w/new-year-new-blog" /><updated>2012-01-07T21:00:00-08:00</updated><id>http://walkah.net/blog/new-year-new-blog</id><content type="html">&lt;p&gt;Almost 9 years ago, following the launch of my first major &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; project, I &lt;a href="http://walkah.net/blog/walkah/what-huh-new-site/"&gt;converted this site&lt;/a&gt; to run the software that has shaped my career (and my life) for past decade. However, much like my career, this site was ready for a change.&lt;/p&gt;

&lt;h3&gt;Everything old is new again&lt;/h3&gt;

&lt;p&gt;This site is now powered by (or generated by) &lt;a href="http://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; - not entirely unlike the homegrown set of scripts that generated this site before it moved to Drupal. Jekyll has become hugely popular over the past few years in large part due to &lt;a href="http://pages.github.com/"&gt;Github pages&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I knew I wanted out of the maintenance overhead of having a dynamic site (security upgrades, monitoring comments, etc) and spent a lot of time looking around at the various alternatives. I nearly ended up using &lt;a href="http://hyde.github.com/"&gt;Hyde&lt;/a&gt; because I'm generally more comfortable in Python than Ruby, but the Jekyll momentum means that there are plenty of resources around for doing things.&lt;/p&gt;

&lt;p&gt;My biggest goal was to get back to &lt;em&gt;writing&lt;/em&gt; instead of applying updates (and thinking of more efficient ways to apply updates). I have never enjoyed writing in a browser window. In fact, the handful of blog posts I wrote last year were all written/edited in Markdown in &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt; and copied to my site after. The move to Jekyll is to bring me closer to that writing workflow.&lt;/p&gt;

&lt;p&gt;While I've never been much of a "blogger" per se, it's clear from looking through my &lt;a href="http://walkah.net/blog/"&gt;archives&lt;/a&gt; that I used to write in this space far more frequently than I do now.&lt;/p&gt;

&lt;h3&gt;No comments?&lt;/h3&gt;

&lt;p&gt;You may notice (particularly if you're reading this on my site and not in a feed reader) that I don't have any comments enabled. This is deliberate - a statement if you will. I don't think we (the internet) have figured out how to do "social" - by which I mean conversations - in a good, decentralized, federated way yet. I have a lot of thoughts on this whole topic that I hope to share in a separate post.&lt;/p&gt;

&lt;h3&gt;The setup&lt;/h3&gt;

&lt;p&gt;On to the geeky goods! I've spent a little time here and there over the past week figuring out how I wanted things to work and the best way to make it happen. My full site is available on &lt;a href="https://github.com/walkah/walkah.net"&gt;Github&lt;/a&gt;, but I thought I'd highlight some important pieces:&lt;/p&gt;

&lt;p&gt;First up, was pulling all of my old content out of Drupal. Because walkah.net was running Drupal 7 - the included migrator (which is based on Drupal 6) didn't work. My modified version is in &lt;a href="https://github.com/walkah/walkah.net/blob/master/_import/drupal.rb"&gt;_import&lt;/a&gt;. It's specific to my setup, but should be a good starting point for anyone attempting a similar move.&lt;/p&gt;

&lt;p&gt;Next, a lot of my site's traffic is generated from per-tag feeds offered by Drupal's taxonomy system. This isn't something that jekyll provides out of the box, so I created a &lt;a href="https://github.com/walkah/walkah.net/blob/master/_plugins/tag_index.rb"&gt;simple plugin&lt;/a&gt; to generate tag listing pages and associated feeds.&lt;/p&gt;

&lt;p&gt;When you run a Drupal site through as many major versions as I did, things change. As such, I ended up with a bunch of duplicate path aliases. Jekyll, by default, ignores all "dot files" (file with '.' at the start of their name), so I used &lt;a href="https://github.com/mojombo/jekyll/issues/363#issuecomment-1763812"&gt;this hint&lt;/a&gt; to include an &lt;a href="https://github.com/walkah/walkah.net/blob/master/htaccess"&gt;htaccess file&lt;/a&gt; where I keep any redirects/aliases/etc.&lt;/p&gt;

&lt;p&gt;Of course, since I wanted to be able to write my posts in Emacs with markdown-mode, I am making use of &lt;a href="https://github.com/walkah/emacs.d/blob/master/vendor/jekyll.el"&gt;jekyll.el&lt;/a&gt; from &lt;a href="http://metajack.im/"&gt;Jack Moffit&lt;/a&gt;. Creating a new blog post is now &lt;code&gt;M-x jekyll-draft-post&lt;/code&gt;!&lt;/p&gt;

&lt;p&gt;Finally, I'm using a very simple &lt;a href="https://github.com/walkah/walkah.net/blob/master/Rakefile"&gt;Rakefile&lt;/a&gt; to deploy new blog posts via rsync.&lt;/p&gt;

&lt;p&gt;Now I can blog from the place where I do most of my writing (emacs), publishing is a single shell command, and there is 0 maintenance required for my personal blog. Progress!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/Z0diGsN_i3w" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/new-year-new-blog</feedburner:origLink></entry><entry><title type="html">Why Vagrant</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/HBCCPp2OGZo/why-vagrant" /><updated>2011-07-04T21:00:00-07:00</updated><id>http://walkah.net/blog/why-vagrant</id><content type="html">&lt;p&gt;Few things are as frustrating in the life of a (web) developer as those unfortunate times when, despite passing QA and testing, your latest feature, bugfix or completed task stops working when it gets to production. Nobody likes to have the sweet feeling of "go live" victory wasted. While any number of things can cause the embarrassment and wasted time, one way to significantly reduce the number of potential errors is to keep your development, staging and production environments as close to each other as possible.&lt;/p&gt;

&lt;p&gt;Lately I've been dealing with my own special, self-inflicted challenge: I have two machines (a thinkpad x201 and an older, pre-unibody macbook pro) that run two different operating systems (Ubuntu 11.04 and Mac OS 10.6, respectively). Now, why I do this is probably a longer discussion, but I do - and I like it. Just to add a little more (minor) variation, my personal projects, experiments (and in fact this blog) all run on &lt;a href="http://www.linode.com/?r=3c5ce8caa09f2a260f8f696985dac260fcc01d5f"&gt;linode&lt;/a&gt; instances (running Ubuntu 10.04). The end result is, my development and "production" happens across 3 different OS versions. Standard package installations of development tools (regardless of which technology I'm exploring at the moment) are rarely ever the same release version. Throw in some subtle and potentially maddening differences between linux and os x (case insensitive filesystem, what?) and I've lost too much time debugging my own fixes.&lt;/p&gt;

&lt;p&gt;As it turns out, I do an okay job of emulating my own little development team (except in productivity, of course).&lt;/p&gt;

&lt;p&gt;In a more real world scenario: I have been doing some work lately with &lt;a href="http://myplanetdigital.com/"&gt;Myplanet Digital&lt;/a&gt; (a fun team located in Toronto - and they're hiring). One of their portfolio client projects is a fairly large, complex Drupal implementation. The production version is hosted on &lt;a href="http://acquia.com/products-services/managed-cloud"&gt;Acquia cloud&lt;/a&gt; hosting, they host their own QA / CI / testing infrastructure, and their (ever-growing) development team uses a mess of mac os x and windows versions. They are continually looking for ways to streamline their development process - and avoid any needless debugging time.&lt;/p&gt;

&lt;h3&gt;Vagrant Chefs to the rescue!&lt;/h3&gt;

&lt;p&gt;I've developed a growing interest in two tools to help solve this dilemma: &lt;a href="http://www.opscode.com/chef/"&gt;Chef&lt;/a&gt; (for environment management and provisioning) and &lt;a href="http://vagrantup.com/"&gt;Vagrant&lt;/a&gt; (for local, VirtualBox based virtual machine management). Vagrant is super easy to get running, like it says on the home page:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ gem install vagrant
$ vagrant box add base http://files.vagrantup.com/lucid32.box
$ vagrant init
$ vagrant up
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Assuming you have a reasonably functional ruby environment and have a recent version of VirutalBox installed, that's all there is to it! Chef (for provisioning), however, has taken me a bit more time to get my head fully around. You can see my experiments happening live(ish) on &lt;a href="https://github.com/walkah"&gt;my github&lt;/a&gt; account.&lt;/p&gt;

&lt;h3&gt;But I don't use lucid32!&lt;/h3&gt;

&lt;p&gt;One interesting thing about the Acquia managed hosting platform, is it's all built using Ubuntu Hardy (8.04). In Internet years, it's rather old but has some significant differences from Lucid (and most current packaged versions of the LAMP stack) - PHP 5.2 (vs. 5.3) and MySQL 5.0.x (vs. 5.1.x). To do this right - to actually replicate the production environment for development - it's important to have these versions in sync. There are subtle differences between these versions that can trip you up. Enter &lt;a href="https://github.com/jedi4ever/veewee"&gt;veewee&lt;/a&gt;. A few weeks ago, I provided a &lt;a href="https://github.com/jedi4ever/veewee/pull/53"&gt;pull request&lt;/a&gt; for veewee that added a "hardy32" template - for building a vagrant box with the same version of Ubuntu found on Acquia hosting. For the lazy, I've posted the &lt;a href="http://dl.dropbox.com/u/6091/hardy32.box"&gt;base box&lt;/a&gt; to my dropbox account.&lt;/p&gt;

&lt;p&gt;Overall, I've found it requires a bit of tinkering (I'll try to share more as I go), but the result is that I can deploy code with a bit more certainty and that is worth it. I'm here tinkering, so you don't have to.&lt;/p&gt;

&lt;p&gt;I should also mention, that all Drupal developers should checkout the &lt;a href="http://drupal.org/project/vagrant"&gt;vagrant project&lt;/a&gt; on drupal.org for a nice general solution for Drupal apps.&lt;/p&gt;

&lt;p&gt;Dev Ops!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/HBCCPp2OGZo" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/why-vagrant</feedburner:origLink></entry><entry><title type="html">Every Drupal Site is an Install Profile</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/PtRL5LIICPs/every-drupal-site-install-profile" /><updated>2011-05-19T21:00:00-07:00</updated><id>http://walkah.net/blog/every-drupal-site-is-an-install-profile</id><content type="html">&lt;p&gt;I've been working with this hypothesis while working on &lt;a href="http://drupal.org/"&gt;Drupal 7&lt;/a&gt; sites. I don't think it's necessarily revolutionary, but I would like some feedback. Currently, I'm approaching every Drupal site build as its own install profile.&lt;/p&gt;

&lt;p&gt;Back when we were running &lt;a href="http://bryght.com/"&gt;Bryght&lt;/a&gt;, we recognized the need for "Installation Profiles" as a way to focus the highly configurable, but largely baffling initial experience with Drupal into making sense. We had lofty dreams of catering to various verticals with streamlined, elegant experiences that took the immense power of Drupal and made it &lt;em&gt;make sense&lt;/em&gt; for new users. That was Drupal 4.5... we were maybe ahead of our time. Needless to say, a lot has happened with Drupal since then.&lt;/p&gt;

&lt;p&gt;With the release of Drupal 7, one of the things people aren't talking about as much are the vast improvements to install profiles. For the first time ever, Drupal core ships with more than one install profile, which has also meant that for the first time people are consciously aware that such things actually exist. In D7, install profiles behave much more like other Drupal packages (i.e. modules and themes). They have .info file and .install files. They are far easier to create than ever before.&lt;/p&gt;

&lt;p&gt;Clearly, I'm not the only one who sees the importance. &lt;a href="http://developmentseed.org/"&gt;Development Seed&lt;/a&gt; and now &lt;a href="http://www.phase2technology.com/"&gt;Phase2 Technology&lt;/a&gt; have invested a lot in install profiles such as &lt;a href="http://openatrium.com/"&gt;OpenAtrium&lt;/a&gt;. For creating Drupal products such as Atrium, install profiles are important and central. What I am talking about, however, is to create an install profile for every Drupal site you build. In updating this very blog to D7, I created an install profile for my site to test (and tinker with) my theory.&lt;/p&gt;

&lt;h3&gt;The theory&lt;/h3&gt;

&lt;p&gt;What is a Drupal Site? Well, once you've determined a version, core remains unchanged across most sites (you know, &lt;a href="http://www.flickr.com/photos/schmidtgergely/3212038247/"&gt;don't hack core&lt;/a&gt; and all). So what makes a Drupal site your Drupal site is: 1) a theme 2) your selection of contrib modules and 3) any custom code / modules you may have written. If we dig a bit deeper, the things unique about a Drupal site are typically: 1) a theme 2) any custom code and 3) the &lt;em&gt;list&lt;/em&gt; of contrib modules / libraries in use. It just so happens that an install profile can nicely encapsulate this information for us. So why bother?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A Drupal site rarely only gets installed in one place. Best practice suggests that we use development, staging and production for our websites. If we work on a team, "development" will actually be a separate install for each developer on the team. Being able to reliably install and replicate your site will actually make things much easier - whether it's just you or your whole team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://drupal.org/project/drush_make"&gt;Drush Make&lt;/a&gt; works well like this. Your profile can have its own makefile (as &lt;a href="http://drupal.org/project/openatrium"&gt;openatrium&lt;/a&gt; does). Drush make will recursively make install profiles, and will add all contrib modules and libraries into your profile's directory. Maintaining nice separation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make the most of multi-site. Since your core version remains constant (at least for major versions) across all the sites you work on, why do you keep installing core? In my development environment (which I will write more about soon), I have 2 virtual hosts d6.dev and d7.dev. All of the sites I'm working on fall under one of the two. Thanks to drush make, I can have a single makefile for each major version that recursively grabs each profile (i.e. site or group of sites) that I'm working on for that version. The same can be used in production &lt;em&gt;or not&lt;/em&gt; - the install profiles can move independently to production.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;The end result is, I have very small custom repositories - containing usually a drush make file, a custom module or two and a custom theme. Checkouts are a breeze and I have a clear manifest of any other other code I'm using.&lt;/p&gt;

&lt;h3&gt;Objections&lt;/h3&gt;

&lt;p&gt;Now, historically this isn't how people have approached Drupal sites. Historically it's not even how I've approached it. Generally, we have single repositories with all of core, our modules etc. Generally, a single repository containing all of the core, contrib and custom code - for years in subversion and now folks are transitioning to git. An argument for continuing this way (I received from &lt;a href="http://webchick.net/"&gt;webchick&lt;/a&gt; herself), is that a single repository makes it easy to see things like if someone has made changes directly on production (?!?!) or that just by having a single checkout all developers / installations have the exact same code.&lt;/p&gt;

&lt;p&gt;While I think "hot fixes" in production are a bad idea (no matter how small the site), the latter objection (exact same code) is worthy of a little more discussion. Keeping things in sync with Drush Make is a bit more work (always pin your versions!), I think it's a worthwhile habit to establish. Yes, git is fast enough that those long, painful svn checkouts are largely a thing of the past so having all of your code in a repository isn't as punishing.  For me, the hosting considerations above are significant, but another thing came up for me recently:&lt;/p&gt;

&lt;p&gt;If you build a lot of Drupal sites, chances are good that there is some overlap. Say there is a patch that you need for a favourite contrib module, drush make means that you can explicitly apply the patch (and maintain it outside of your repository - or pull directly from the issue queue). Similarly, using independent &lt;a href="http://drupal.org/project/features"&gt;feature module&lt;/a&gt; features allows for similar mixing and matching. Each module (or theme) should have a single, canonical source and a Drupal site is simply the combination or collection of them.&lt;/p&gt;

&lt;p&gt;It seems to me there are real gains in being explicit with makefiles, being smart about hosting and re-using core, and being modular in our repositories (using drush make to pull it all together).&lt;/p&gt;

&lt;p&gt;Am I crazy?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/PtRL5LIICPs" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/every-drupal-site-install-profile</feedburner:origLink></entry><entry><title type="html">Where's walkah been?</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/QUCFSg44X-s/wheres-walkah-been" /><updated>2011-04-07T21:00:00-07:00</updated><id>http://walkah.net/blog/wheres-walkah-been</id><content type="html">&lt;p&gt;It was &lt;a href="https://twitter.com/#!/Dries/status/47382029028950016"&gt;brought to my attention&lt;/a&gt; some time ago that this space has been rather shamefully quiet. I have also spent a lot of time facing the "so, what are you up to?" question lately. In a "two birds, one stone" manner, I'm gonna try to get into writing a bit more as well as provide a bit of an update.&lt;/p&gt;

&lt;h3&gt;So, what do you do?&lt;/h3&gt;

&lt;p&gt;This has long been one of my most dreaded "light social" questions. Ironically, I found myself tossing it out at a recent event, perhaps in some passive aggressive sort of revenge. It's always been difficult to explain what I do, particularly in in non-technical company. For many years "I work on Drupal" was an answer that got the most amusing blank stares. Of course, these days that tends to be less baffling to people, so naturally I've stepped out and been doing lots of non-Drupal things.&lt;/p&gt;

&lt;p&gt;For those playing along at home, &lt;a href="http://status.net/"&gt;StatusNet Inc.&lt;/a&gt; and I parted ways last November. I actually consciously did &lt;em&gt;not&lt;/em&gt; post about it publicly because this blog was starting to feel a little more than a broadcast space for my shuffling between companies. While I don't have an official involvement these days, it looks like I will be doing some &lt;a href="http://code.google.com/soc/"&gt;Summer of Code&lt;/a&gt; mentoring and am still very interested in the &lt;a href="http://federatedsocialweb.net/"&gt;Federated Social Web&lt;/a&gt; and the protocol, &lt;a href="http://ostatus.org/"&gt;OStatus&lt;/a&gt; that we developed.&lt;/p&gt;

&lt;p&gt;No longer having a full-time job means that, yes, I am doing freelance work (&lt;a href="http://walkah.net/contact"&gt;hire me&lt;/a&gt;!). It has also meant that I'm getting back involved in the &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; community again a bit more. Some folks noticed that I've been to the past two DrupalCon's (after taking a few off) and have been working with a few Drupal-based clients.&lt;/p&gt;

&lt;p&gt;The thing that I'm probably enjoying most these days is the freedom from focusing or specializing. For the past few months, I've been working with the Mozilla Foundation on the platform that runs the &lt;a href="http://drumbeat.org/"&gt;Drumbeat&lt;/a&gt; website (implemented using &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;). I've followed and tinkered with Django for a long time and it feels great to have a "real" excuse to spend more time with it!&lt;/p&gt;

&lt;p&gt;While a lack of real "focus" (at least amongst open source projects or even programming languages) has really appealed to my inner tinkerer, it's made answering "what are you up to" a far more involved conversation; some days it's consulting, some it's teaching/training, and some days I just hack on code. I also fully expect the answer to change and evolve over the course of this year and moving forward.&lt;/p&gt;

&lt;h3&gt;More writing!&lt;/h3&gt;

&lt;p&gt;Doing more (and different) things also means I'm learning a lot these days, and I feel compelled to share, because that's the way I am. However, writing has always been challenging for me. I work really well verbally (preferrably face to face, though I've done alright talking to a camera). I have always &lt;em&gt;wanted&lt;/em&gt; to be a prolific writer, though. For the past few months, I've been trying to practice more. I started with a paper journal, but after losing one and finding that my handwriting no longer keeps up with my brain well, I decided to try writing on my computer. Ultimately, though, I found it hard to establish a good routine and stick with it.&lt;/p&gt;

&lt;p&gt;A few months ago, though, I gave &lt;a href="http://750words.com/"&gt;750words.com&lt;/a&gt; a try and I love it. After a few false starts, I now have a daily 750 word routine that I'm finding helps get me writing (and thinking) for the day. I highly recommend the service (and the practice of writing regularly). The practice has already translated into an article for the &lt;a href="http://www.linuxjournal.com/"&gt;Linux Journal&lt;/a&gt; and will hopefully result in more!&lt;/p&gt;

&lt;p&gt;At the very least, I'm hoping to make better use of this space. Welcome back, me.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/QUCFSg44X-s" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/wheres-walkah-been</feedburner:origLink></entry><entry><title type="html">Local development for external APIs</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/R19EeAFKYS8/local-development-external-apis" /><updated>2010-08-19T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/local-development-for-external-apis</id><content type="html">&lt;p&gt;Lately I have found myself doing a &lt;em&gt;lot&lt;/em&gt; of development against external APIs, several of which require those services to be able to access my dev site directly. Traditionally, I've set up my dev sites on a public server (usually my personal VPS), mirrored the site locally, and used &lt;a href="http://www.samba.org/rsync/"&gt;rsync&lt;/a&gt; to push incremental changes from my local machine to the server.&lt;/p&gt;

&lt;p&gt;This is a pain for two reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It means I have an extra step (to rsync) after each change. Yes, it's the same command over and over, but it gets repetitive. Also, if I forget, I spend a few minutes trying to figure out why the change I just made doesn't appear.&lt;/li&gt;
&lt;li&gt;I'm also left with old dev sites (that I generally forget about) out on the public web - generally not getting proper attention for security updates, etc. This leaves my VPS open to attack.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I also spend a &lt;em&gt;lot&lt;/em&gt; of time tweaking my local environment to be just-how-I-like-it(tm).&lt;/p&gt;

&lt;p&gt;Recently, I had an idea that, in hindsight, seems obvious. However, in talking with a few people, it seemed just novel enough to warrant the high bar of intellect that is a blog post. So here is the magic:&lt;/p&gt;

&lt;h3&gt;What you need:&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A wildcard DNS entry (i.e. &lt;code&gt;*.home.example.com&lt;/code&gt;). I'm lucky that my &lt;a href="http://teksavvy.com/"&gt;home ISP&lt;/a&gt; allows me to have a static IP address, but a &lt;a href="http://www.dyndns.com/"&gt;DynDNS&lt;/a&gt; or similar account would also work.&lt;/li&gt;
&lt;li&gt;A linux/mac computer attached to your home/office network that is &lt;em&gt;not&lt;/em&gt; currently running a web server (i.e. port 80 is unused) - preferably connected via ethernet. I happen to have an old mac mini that serves as my "media server" at home that I'm using.&lt;/li&gt;
&lt;li&gt;Ports 22 and 80 forwarded from your router to the aforementioned computer. (This is left as an exercise to the reader).&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;The "magic":&lt;/h3&gt;

&lt;p&gt;Given the above, the rest is really quite simple (and perhaps obvious to some). A simple ssh port forward does the trick. Here's the command I use:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ssh root@home.example.com -R 80:localhost:80
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;For the unfamiliar, that says ssh into home.example.com as root and send all the traffic coming to port 80 at home to port 80 on my localhost.&lt;/p&gt;

&lt;p&gt;Voila! Now all requests to home.example.com will come to my local server and I can setup vhosts, etc accordingly. Also, if I just end my ssh connection, I no longer have to worry about the big, scary Internet accessing my dev sites.&lt;/p&gt;

&lt;h3&gt;TODO&lt;/h3&gt;

&lt;p&gt;I'm not 100% happy about allowing root ssh into my home network, so I may spend a rainy Sunday afternoon and setup an HTTP proxy at home that forwards to something like 8080 on localhost (and perhaps gives a nice "we're not home" message if I'm not ssh'ed in). That way, I wouldn't need to ssh in as root (which is necessary to bind the "low number" port).&lt;/p&gt;

&lt;p&gt;If you do much tinkering with remote services (particularly OAuth-based services or webhooks, etc.), I hope this makes life just a little bit easier for you.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/R19EeAFKYS8" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/local-development-external-apis</feedburner:origLink></entry><entry><title type="html">One wedding and a camera</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/Js1PE7FRrxg/one-wedding-and-camera" /><updated>2010-05-26T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/one-wedding-and-a-camera</id><content type="html">&lt;p&gt;My little brother, &lt;a href="http://twitter.com/chuckyd4"&gt;Chad&lt;/a&gt;, and the awesome &lt;a href="http://twitter.com/lisawithane"&gt;Elisa&lt;/a&gt; got married this past weekend. It was an amazing weekend by the sea in Rockport - the weather was great, the food was incredible and I had a wonderful time.&lt;/p&gt;

&lt;p&gt;Since my whole clan was in the wedding (Camryn was flower girl, Andrew a groomsman, and I was best man), I decided to rent a "real camera"(tm) for the weekend to capture the experience. It was my first time really experimenting with a nice camera. I'm glad I did! I had a lot of fun. Check out the results on flickr:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/walkah/sets/72157624144750842/"&gt;&lt;img src="http://farm5.static.flickr.com/4052/4643218401_2895fee1f4.jpg" alt="chad and elisa's wedding" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback welcome - especially from you real photographers out there. Now to start filling my piggy bank for a real camera...&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/Js1PE7FRrxg" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/one-wedding-and-camera</feedburner:origLink></entry><entry><title type="html">Joining StatusNet</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/EWzhE1ljess/joining-statusnet" /><updated>2010-01-14T21:00:00-08:00</updated><id>http://walkah.net/blog/walkah/joining-statusnet</id><content type="html">&lt;p&gt;&lt;img src="http://walkah.net/sites/walkah.net/files/statusnet-logo.png" alt="statusnet logo" /&gt;﻿﻿﻿In case you missed &lt;a href="http://status.net/2010/01/14/walkah-joins-statusnet"&gt;the announcement&lt;/a&gt; yesterday, I have taken a position with the Montreal-based startup &lt;a href="http://status.net/"&gt;StatusNet&lt;/a&gt;. For the unfamiliar, StatusNet Inc is the company behind the StatusNet open source micro messaging platform.&lt;/p&gt;

&lt;p&gt;I think StatusNet is a very interesting project and one I've been following for a long time. It's a true Open Source project that seems to be a perfect storm of technologies that interest me and a commitment to openness that I admire.&lt;/p&gt;

&lt;p&gt;What really excites me about StatusNet, though, is challenge of federation. StatusNet installs currently ship with an implementation of a protocol known as &lt;a href="http://openmicroblogging.org/"&gt;OpenMicroBlogging&lt;/a&gt;. This means that you (or your company / organization or book club) can have your own real-time, micro messaging site (read: your own twitter) and if there's someone not on your site you'd like to follow, you can do so without having to register (and monitor) multiple sites.&lt;/p&gt;

&lt;p&gt;We're currently planning a major update to the protocol to take advantage of some of the exciting new stuff like &lt;a href="http://code.google.com/p/pubsubhubbub/"&gt;PubSubHubbub&lt;/a&gt; and &lt;a href="http://activitystrea.ms/"&gt;ActivityStreams&lt;/a&gt;. I'm excited to get to work on the protocol and implementation &lt;em&gt;and&lt;/em&gt; tell you all about it :-)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/EWzhE1ljess" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/joining-statusnet</feedburner:origLink></entry><entry><title type="html">Ch-ch-ch-changes</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/NBpoFtocx6Q/ch-ch-ch-changes" /><updated>2010-01-05T21:00:00-08:00</updated><id>http://walkah.net/blog/walkah/ch-ch-ch-changes</id><content type="html">&lt;p&gt;This year promises to be an exciting one - and one that proves to be full of changes galore. As I mentioned in my &lt;a href="http://walkah.net/blog/walkah/2010"&gt;last post&lt;/a&gt;, much of my 2010 change began late in 2009.&lt;/p&gt;

&lt;p&gt;Cue the Bowie...&lt;/p&gt;

&lt;h3&gt;Leaving Lullabot&lt;/h3&gt;

&lt;p&gt;Although it's been largely quiet (and really not a huge deal), before the rumours spread too far: I've left my position as the Director of Education for &lt;a href="http://www.lullabot.com/"&gt;Lullabot&lt;/a&gt;. I'm leaving behind a totally awesome team and a wonderful job (in the midst of a recession). Why on earth?!&lt;/p&gt;

&lt;p&gt;Let me be &lt;em&gt;very&lt;/em&gt; clear: Lullabot isn't in danger, stopping &lt;a href="http://www.lullabot.com/training"&gt;Drupal training&lt;/a&gt;, nor is there any backroom drama. The 'bots are wonderful people and chances are very good that we'll continue to collaborate in the future (at the very least, there's still hugs).&lt;/p&gt;

&lt;p&gt;This was a very personal decision - and one that was a long time coming. For the morbidly curious, it boils down to three things (and those of you who know me well, know it &lt;em&gt;always&lt;/em&gt; comes down to three things):&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Travel&lt;/strong&gt;: Anyone who is friends with a 'bot on &lt;a href="http://www.dopplr.com/traveller/walkah"&gt;Dopplr&lt;/a&gt; or &lt;a href="http://www.tripit.com/people/walkah"&gt;Tripit&lt;/a&gt; knows that the job entails a lot of time on the road. With over 230 days on the road in the past 2 years, I needed and my kids deserved a break. While we (Lullabot and I) largely worked around this - it's still just part of the gig.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drupal&lt;/strong&gt;: I stood up in front of a rather large group of Drupal folks almost a year ago and explained &lt;a href="http://whyihatedrupal.com/"&gt;why I hate Drupal&lt;/a&gt; - so it's obvious, right? While I feel the points I tried to make still face the community at large (such as &lt;a href="http://smallcore.org/"&gt;smallcore&lt;/a&gt;/&lt;a href="http://www.disambiguity.com/designing-for-the-wrong-target-audience/"&gt;drupal is not a product&lt;/a&gt;, or even &lt;a href="http://drupal4hu.com/node/229"&gt;rethinking the maintainer structure&lt;/a&gt;), I don't actually hate Drupal (as those of you who grok sarcasm might have noted).&lt;/p&gt;

&lt;p&gt;However, Drupal has been my full-time job for 6 years. In that time, the community (and the software) has grown and changed considerably. It has been an amazing ride. As &lt;a href="http://buytaert.net/"&gt;Dries&lt;/a&gt; mentioned to me on the phone a few weeks ago, "once a Drupal guy, always a Drupal guy". This is probably true - I have no intention of leaving the community, but I am ready for some new challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open Web&lt;/strong&gt;: One thing people may have noticed is that when I have had the chance to hack on Drupal lately - it tends to involve "open web" or "open standards" implementations (notably, OpenID etc). Many folks have also noticed that my contributions have trailed off lately. When your "after hours" time starts including more things like "sleep" - your after hours projects take a hit.&lt;/p&gt;

&lt;p&gt;I'd like to get back to building cool, new stuff. While I certainly get a lot out of teaching people how to make the most of the tools available, I'm passionate about building the next tools (which doesn't exclude Drupal). These are interesting times on the internets, I wanna have my nose in the middle of it.&lt;/p&gt;

&lt;h3&gt;Now what?&lt;/h3&gt;

&lt;p&gt;Officially, I will be freelancing (technically have been for a few weeks). I've already got some interesting things lined up that I'm excited to start talking about soon.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/NBpoFtocx6Q" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/ch-ch-ch-changes</feedburner:origLink></entry><entry><title type="html">In #2010...</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/pgEujtVv0qU/2010" /><updated>2009-12-31T21:00:00-08:00</updated><id>http://walkah.net/blog/walkah/in-2010</id><content type="html">&lt;p&gt;It's that time of year - for reflecting and resolving - and, naturally... blogging about it.&lt;/p&gt;

&lt;p&gt;2009 was not awesome. Not a terribly awful year, nor my worst ever. It was, however, a year full of challenges - all of which have been opportunities for growth. 2009, though, &lt;a href="http://twitter.com/walkah/status/1098018094"&gt;got off to a rough start&lt;/a&gt; and didn't end much better. As much as I've grown, I'm definitely looking forward to moving forward.&lt;/p&gt;

&lt;p&gt;I don't know if I have resolutions this year, per se. I do have two words that have been on my mind a &lt;em&gt;lot&lt;/em&gt; lately:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CREATE&lt;/strong&gt; I am eager and excited to do more, to &lt;em&gt;make&lt;/em&gt; more. I would like to write more, build more tech and (dare I say it?) write some music. I want to look back next year when doing this blog post and be able to see all the things I've created - good and bad. I'd like to have fewer ideas left swimming in my head otherwise untouched.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OPEN&lt;/strong&gt; I've long been an advocate, user and developer of open source software. In part, it's a renewed passion for free and open technologies. Beyond that, however, continuing to move towards openness in my life, my heart and in my relationships.&lt;/p&gt;

&lt;p&gt;2010 promises to be another year of great change for me. Lots of which is already underway (more on that soon).&lt;/p&gt;

&lt;p&gt;Here's hoping you and that you stick to your resolutions and reach your goals and have an awesome year!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/pgEujtVv0qU" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/2010</feedburner:origLink></entry><entry><title type="html">Now on Android</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/Ykr9S8h8wsA/now-android" /><updated>2009-12-27T21:00:00-08:00</updated><id>http://walkah.net/blog/walkah/now-on-android</id><content type="html">&lt;p&gt;&lt;a href="http://www.flickr.com/photos/27048731@N03/3657081908/"&gt;&lt;img src="http://farm4.static.flickr.com/3298/3657081908_3fab29bfb8_m.jpg" alt="HTC Hero" /&gt;&lt;/a&gt;Almost exactly one month ago, I made the switch from my old, 2g, jailbroken iPhone to a brand new fully legit &lt;a href="http://www.android.com/"&gt;android&lt;/a&gt; phone: the &lt;a href="http://www.htc.com/hero"&gt;HTC Hero&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My reasons for the switch were varied - it's a platform I'd like to support, hack on and one I generally find interesting. I've also grown increasingly frustrated with my suite of Apple products and, in general, am looking to "live open" (more on that later).&lt;/p&gt;

&lt;h3&gt;Treats&lt;/h3&gt;

&lt;p&gt;There are some things that I absolutely love about the Hero: way more than the iPhone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is an aesthetically pleasing device. This is one thing that has kept me on Apple gear for a long time. I appreciate quality design - particularly in the products I use constantly every day. The Hero is a good looking device and feels good in my hand.&lt;/li&gt;
&lt;li&gt;Multi-tasking. Yeah, this is the big "killer feature" over the iPhone, but it's really handy. I consider my phone primarily a communications device and I can see instantly and easily who is emailing, texting, IM'ing or mentioning me &lt;a href="http://twitter.com/walkah"&gt;on twitter&lt;/a&gt; all without quitting the app I'm currently running.&lt;/li&gt;
&lt;li&gt;Contacts a central. On a contact's record, I can see all phone calls, emails and texts with that person - and even their Facebook status (or birthday - nice touch).&lt;/li&gt;
&lt;li&gt;Really great sync. Now, let me start by saying - I'm a google apps user. That said, all I did was add my gmail account information and instantly I had all mail, contacts and calendar entries seemlessly sync'ed to my phone. Oh, and (unlike "mobile me") there was no additional cost.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Frustrations&lt;/h3&gt;

&lt;p&gt;This isn't quite the ultimate phone yet. Here are my top gripes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No paid apps in the Android Market in Canada. I'm confused as to who is really to blame here - whether it's the big US companies or the Canadian government or a combination of the two, but living in Canada can be a real drag sometimes.&lt;/li&gt;
&lt;li&gt;Lag. It's not a blazingly fast phone and when you add running multiple simultaneous apps, the interface can get laggy after a while. A good "task killer" app on Android seems to be a best friend. (I'm currently using TasKiller, FYI).&lt;/li&gt;
&lt;li&gt;Lots of the apps just aren't as good. Twitter apps are a significant comparison - there just is not a &lt;a href="http://www.atebits.com/tweetie-iphone/"&gt;tweetie 2&lt;/a&gt; comparable app. That said, there &lt;em&gt;is&lt;/em&gt; a google voice app ;-)&lt;/li&gt;
&lt;li&gt;Version lag. This seems to be particularly bad on my HTC Hero (which currently uses Android 1.5), but in general handset manufacturors seem to be slow to roll out the latest version of android for their handsets. Doing so yourself, requires rooting (how is that an advancement from iPhone?).&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Overall, though, I'm happy about the switch. I think the Android future is bright and hopefully I'll have some spare time here and there to hack on some things in support of the platform.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/Ykr9S8h8wsA" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/now-android</feedburner:origLink></entry><entry><title type="html">Change Medium Toronto</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/iBetzNv7X0g/change-medium-toronto" /><updated>2009-10-18T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/change-medium-toronto</id><content type="html">&lt;p&gt;Calling all social web "hackers"! I've been asked to help put together an awesome event:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://changemedium.org/"&gt;Change Medium Toronto&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you love hacking on emerging technologies and recognize the effect they're having on society. I'm talking about things like &lt;a href="http://activitystrea.ms/"&gt;Activity Streams&lt;/a&gt;, &lt;a href="http://openmicroblogging.org/"&gt;OpenMicroBlogging&lt;/a&gt;, and &lt;a href="http://code.google.com/p/pubsubhubbub/"&gt;PubSubHubbub&lt;/a&gt;. We'll be looking at the latest microblogging and real-time web technologies - with the very simple goal of building something new.&lt;/p&gt;

&lt;p&gt;The truly awesome &lt;a href="http://identi.ca/evan"&gt;Evan Prodromou&lt;/a&gt; will be there representing &lt;a href="http://status.net/"&gt;StatusNet&lt;/a&gt;. You should join us too.&lt;/p&gt;

&lt;p&gt;Toronto, let's get our geek on and make stuff! &lt;a href="http://bit.ly/cmTorontoInvite"&gt;Sign up here&lt;/a&gt; - and I will see you there!&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/iBetzNv7X0g" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/change-medium-toronto</feedburner:origLink></entry><entry><title type="html">Living in the browser</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/Jjv0pADSWJE/living-browser" /><updated>2009-09-21T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/living-in-the-browser</id><content type="html">&lt;p&gt;For a long time I've maintained that I hate web applications. It's good for a laugh (in certain circles), but has been mostly true. Web interfaces have (traditionally) been clunky, lack integration with the desktop, don't work offline, and are generally just unpleasant to use.&lt;/p&gt;

&lt;p&gt;Lately, I've been re-testing that theory and have surprised myself with the results:&lt;/p&gt;

&lt;p&gt;I'm living in the browser.&lt;/p&gt;

&lt;p&gt;OK, not &lt;em&gt;entirely&lt;/em&gt;. But my currently running applications include: &lt;a href="http://www.mozilla.com/en-US/firefox/personal.html"&gt;Firefox&lt;/a&gt;, &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt;, Terminal, &lt;a href="http://adium.im/"&gt;Adium&lt;/a&gt; and iTunes (sorry, songbird).&lt;/p&gt;

&lt;p&gt;The frequent, attentive readers among you know that I've been tinkering with "Single Site Browsers" lately as part of this experiment - because, if I'm using Firefox for development - I don't want "other stuff" cluttering that. Well, a recent &lt;a href="http://lifehacker.com/5344395/icon+only-permatabs-collection-streamlines-your-minimal-gmail-google-reader-tabs"&gt;article on lifehacker&lt;/a&gt; made me rethink my approach.&lt;/p&gt;

&lt;p&gt;The article outlines a way to have "permanent" tabs(i.e. tabs that automatically reload when you restart yoru browser) that only appear as a favicon (thus saving screen real estate). My current lineup looks like this :&lt;/p&gt;

&lt;p&gt;&lt;img src="http://walkah.net/sites/walkah.net/files/perma-favicon-tabs.png" alt="permatabs" /&gt;&lt;/p&gt;

&lt;p&gt;That's gmail (personal and &lt;a href="http://www.lullabot.com/"&gt;work&lt;/a&gt;), &lt;a href="http://www.rememberthemilk.com/"&gt;remember the milk&lt;/a&gt;, google voice and google reader.&lt;/p&gt;

&lt;p&gt;For the last few weeks, I've been trying out this system and have found little reason to want to switch away from it. There are some properties that appeal to me: my application list is entirely cross-platform (substitute pidgin for adium) and free software. Application management, setup and configuration is minimal and I have to do very little application switching throughout the day. In fact, with my external monitor, I can fit everything on one screen where I can see it.&lt;/p&gt;

&lt;p&gt;Ditching a desktop mail reader was obviously the biggest shift. But in the case of gmail, rtm and google reader there are a few things in common that make these "work" for me as desktop replacements: offline mode (thanks to &lt;a href="http://gears.google.com/"&gt;google gears&lt;/a&gt;), extensive keyboard shortcuts (better than their desktop equivalents), regular updates / improvments and APIs / methods for extensions.&lt;/p&gt;

&lt;p&gt;Here's my current list of Firefox extensions, let me know if I'm missing any great ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://agilewebsolutions.com/products/1Password"&gt;1Password&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/6076"&gt;Better Gmail 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/6424"&gt;Better GReader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/8381"&gt;Evernote Web Clipper&lt;/a&gt; - still determined to use evernote effectively&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3780"&gt;FaviconizeTab&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt; (always)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/592"&gt;Gmail S/MIME&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gears.google.com/"&gt;Google Gears&lt;/a&gt; - offline goodness&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748"&gt;Greasemonkey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/7816"&gt;PermaTabs Mod&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.rememberthemilk.com/services/gmail/"&gt;Remember The Milk for Gmail&lt;/a&gt; - to help solve the problem of my todo list not getting enough 'focus'&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;How much of your life do you spend living in your browser?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/Jjv0pADSWJE" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/living-browser</feedburner:origLink></entry><entry><title type="html">The rebirth of customer service</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/TMk9ll_MrvM/rebirth-customer-service" /><updated>2009-08-06T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/the-rebirth-of-customer-service</id><content type="html">&lt;p&gt;I am a fairly &lt;a href="http://dopplr.com/traveller/walkah"&gt;frequent traveller&lt;/a&gt;. As such, I have seen the worst of airline industry - an industry that has all but lost the notion of customer service. (Those of you currently hating on United - flown American lately?). For months, I have considered blogging a lengthy rant about just how atrocious the employees of the major North American airlines are to their customers. However, I'd like to try something different: A glowingly positive, upbeat blog post:&lt;/p&gt;

&lt;p&gt;I recently (at last!) took my first flight on Toronto-based &lt;a href="http://www.flyporter.com/"&gt;Porter Airlines&lt;/a&gt;. Porter operates on Toronto's Island Airport - which is already a big win (saving me a trip out to the western suburbs). Their motto, which has intrigued me since their launch, is "flying refined" : they deliver.&lt;/p&gt;

&lt;p&gt;My trip started with frustration: due to a hectic morning (setting kids up with gramma for the week, attending a meeting, packing, etc), I was running late and decided to call a car. Said taxi service (who get &lt;em&gt;no&lt;/em&gt; points for customer service) showed up 25 minutes late. I began dreading the potential hassle I faced by arriving last minute at the airport.&lt;/p&gt;

&lt;p&gt;Enter Porter.&lt;/p&gt;

&lt;p&gt;I made it to the check-in counter 35 minutes to flight time (a full 10 minutes after the 45 minute check-in cut-off for US flights). Expecting the usual condescending lecture about leaving more time before my flight, I approached the counter. I was greeted with a pleasant smile and, after showing my passport, I was &lt;em&gt;asked&lt;/em&gt; if I preferred a window or an aisle seat. No lecture. No condescending "sorry, there's nothing I can do". No re-booking charges. In less than 5 minutes, I was all checked in for my flight to Newark.&lt;/p&gt;

&lt;p&gt;After breezing through security, I entered Porter's piece de resistance: their Toronto waiting area. This place is everything I'd heard it to be: ample seating for everyone, comfortable leather chairs for reading, desks for those who need to get some work done, chairs with tables for eating, and power outlets everywhere (hear that, LAX?!).&lt;/p&gt;

&lt;p&gt;I looked around in awe for a moment, before heading to the cafe which offers &lt;em&gt;complementary&lt;/em&gt; espresso drinks, juice, water and snacks. With capucino in hand, I grabbed a seat at one of the desks and plugged my laptop in to send a few quick emails on the &lt;em&gt;free&lt;/em&gt; wifi.&lt;/p&gt;

&lt;p&gt;Next came the on-time boarding (you reading, ORD?), via another smiling Porter employee. In-flight, I enjoyed a &lt;em&gt;complimentary&lt;/em&gt; Stella and meal (when was the last time you got free food on a North American flight?) and swooned.&lt;/p&gt;

&lt;p&gt;I believe in small companies with great service. Making customers happy simply makes people happy. Porter, you made me happy. Thank you.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/TMk9ll_MrvM" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/rebirth-customer-service</feedburner:origLink></entry><entry><title type="html">Open, Social for the rest of the web</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/TQC5lv6RFvw/open-social-rest-web" /><updated>2009-04-21T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/open-social-for-the-rest-of-the-web</id><content type="html">&lt;p&gt;This past weekend, I had the privilege of being one of the chosen attendees for &lt;a href="http://swfoo09.pbwiki.com/"&gt;Social Web FooCamp&lt;/a&gt;. Needless to say, I was flattered and had an amazing time (thanks again, @daveman692 and @davemorin ) . One thing, however, became very apparent: the conversation, currently, is being dominated by the 'big players' (Google, Yahoo, Facebook and Myspace predominantly). In several discussions I found myself increasingly dropping the phrase:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;... on the rest of the web&lt;/p&gt;&lt;/blockquote&gt;

&lt;h3&gt;the big guys&lt;/h3&gt;

&lt;p&gt;First off, this is not a critique of the Google's and Facebook's of the internet. They are incredibly valuable to the growth of the openweb. The fact that Google, Yahoo and Myspace all three have various OpenID and OAuth initiatives in the wild and are actively pursuing additional ways to open their data is awesome (and Facebook wants to get there). It helps raise awareness and bring (slash confirm) "legitimacy".&lt;/p&gt;

&lt;p&gt;The big guys also have resources. They can attend the conferences (and camps!) and have dedicated resources to write the standards, participate in the discussions and help shape the future.&lt;/p&gt;

&lt;p&gt;However, they are only part of the discussion.&lt;/p&gt;

&lt;h3&gt;perspective&lt;/h3&gt;

&lt;p&gt;The issues the major providers face are different from the rest. They have a few sites with large numbers of users (hundreds of millions). Out here on the rest of the web, we have millions of websites, each with a "small" number of users (hundreds or thousands). We all understand the necessity for open data, identity, standards and protocols, but our reasoning tends to be slightly different.&lt;/p&gt;

&lt;p&gt;The big guys recognize the benefit of exposing their data and most are providing OpenID and various levels of OAuth. How many are consuming it?&lt;/p&gt;

&lt;p&gt;Sure, the big players want to be the primary authority for your identity and your information. In some cases, it &lt;em&gt;is&lt;/em&gt; their business. But, rather than ranting against 'the man', I ask: have we - the rest of the web - given them a compelling reason to yet?&lt;/p&gt;

&lt;h3&gt;open source platforms for the open web ###&lt;/h3&gt;

&lt;p&gt;It's one thing for a major site (with hundreds of millions of users) to act like a silo, but on the rest of the web it amounts to isolation.&lt;/p&gt;

&lt;p&gt;Those of us working on open source web platforms have an enormous potential for influence here. Implementing the various open standards "from scratch", while possible, is not realistic or even necessary. Increasingly, individuals have &lt;a href="http://wordpress.org/"&gt;Wordpress&lt;/a&gt; blogs or perhaps their company, organization or club has a &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; site. Web developers are increasingly turning to these platforms, or development frameworks such as &lt;a href="http://rubyonrails.org/"&gt;Rails&lt;/a&gt; and &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;. These platforms all have a real opportunity to bake in implementations of these open standards. The &lt;a href="http://diso-project.org/"&gt;DiSo project&lt;/a&gt; offers a central place for co-ordination around these efforts.&lt;/p&gt;

&lt;p&gt;We have data - gobs of it. We also, collectively, have the users and, in most cases, have more authoritative information about them (we know ourselves, our employees and our members).&lt;/p&gt;

&lt;p&gt;We - the rest of the web - need to join the conversation: attend the events, participate in the mailing lists, and &lt;em&gt;build&lt;/em&gt; the code to power the open, social web.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/TQC5lv6RFvw" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/open-social-rest-web</feedburner:origLink></entry><entry><title type="html">On Passion</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/7N15cfMcq5o/passion" /><updated>2009-03-23T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/on-passion</id><content type="html">&lt;p&gt;Things tend to happen for a reason, right? That is certainly how last night went. I spent the afternoon at &lt;a href="http://socialinnovation.ca/"&gt;CSI&lt;/a&gt; and noticed several local friends all &lt;a href="http://search.twitter.com/search?q=%23refreshevents"&gt;a-twitter&lt;/a&gt; as they showed up for the &lt;a href="http://www.refresh-events.ca/events/stayfresh06-peter-flaschner/"&gt;stay fresh event&lt;/a&gt; happening downstairs from me.&lt;/p&gt;

&lt;p&gt;The main presentation of the night was &lt;a href="http://peterflaschner.com/"&gt;Peter Flaschner&lt;/a&gt; (aka @flashlight) talking about &lt;em&gt;Passion&lt;/em&gt;. So, I decided to crash the party.&lt;/p&gt;

&lt;p&gt;Passion is something very much on my mind lately: specifically finding, cultivating and making space in my life for it. I am the kind of person who is cursed (or blessed) by having a &lt;em&gt;really&lt;/em&gt; hard time doing things without passion. Lately, I've seen a dip in my personal productivity (and happiness) - not unrelated.&lt;/p&gt;

&lt;p&gt;In his presentation (&lt;a href="http://www.slideshare.net/flashlight/passion-ftw"&gt;check it out&lt;/a&gt;), Peter talked about research from &lt;a href="http://www.er.uqam.ca/nobel/r26710/LRCS/default_en.htm"&gt;Robert J. Vallerand&lt;/a&gt; on the topic. Specifically, the nature of &lt;strong&gt;harmonious&lt;/strong&gt; passion, and why it's so important. When we do things autonomously (i.e. not for social acceptance, etc) purely for the challenge or pleasure of it, we can achieve happiness. Happiness for not only ourselves, but those around us. Harmonious passion needs no further motivation, and the rewards are plentiful.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Tim_O%27Reilly"&gt;Tim O'Reilly&lt;/a&gt; has been spreading a new mantra (as he does so well): &lt;a href="http://radar.oreilly.com/2009/01/work-on-stuff-that-matters-fir.html"&gt;work on stuff that matters&lt;/a&gt;. Less catchy, but the very important first principle that Tim outlines is: work on stuff that matters &lt;strong&gt;to you&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Fear, self doubt, other external pressures and responsibilities,  however, can make the pursuit of harmonious passion so tricky.&lt;/p&gt;

&lt;p&gt;Both Tim and Peter bring the relevance of passion and "stuff that matters" directly to the present: the environment, society and (of course) "these economic times". We can not only make our own lives better, but affect those around us and even the world. Seems like a no-brainer, no? To borrow a tag line from &lt;a href="http://factoryjoe.com/blog/"&gt;Chris Messina&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;This can all be made better. Ready? Begin.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I am hereby actively renewing dedication to my harmonious passions. Are you?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/7N15cfMcq5o" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/passion</feedburner:origLink></entry><entry><title type="html">SXSW '09: Meet Me in Austin</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/4M-QTpvSGhY/sxsw-09-meet-me-austin" /><updated>2009-03-12T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/sxsw-09-meet-me-in-austin</id><content type="html">&lt;p&gt;In a few short hours, I'll be on a plane to Austin, TX for another edition of &lt;a href="http://sxsw.com/interactive"&gt;SXSW Interactive&lt;/a&gt;. I'm looking forward to connecting with a bunch of folks that I don't otherwise get to see often. Here's a list of things I'm hoping to catch (in addition to the on-schedule panels):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://upcoming.yahoo.com/event/2126462/"&gt;Activity Streams meetup&lt;/a&gt; - looking forward to diving into more DiSo :-)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://upcoming.yahoo.com/event/2122123/"&gt;XMPP/Jabber Meetup&lt;/a&gt; - I &lt;em&gt;still&lt;/em&gt; believe that XMPP is one of the most important protocols moving forward on the 'net. Looking forward to syncing back up with this community.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://controlyourself.ca/2009/03/11/control-yourself-at-sxsw/"&gt;OMB Meetup&lt;/a&gt; - I'm excited to help bring &lt;a href="http://openmicroblogging.org/"&gt;OpenMicroBlogging&lt;/a&gt; to Drupal via the &lt;a href="http://groups.drupal.org/node/14953"&gt;Knight Initiative&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I'll also definitely be at the party that &lt;a href="http://www.lullabot.com/"&gt;Lullabot&lt;/a&gt; is co-sponsoring : &lt;a href="http://twitter.com/32bit"&gt;32bit&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you're in Austin for the next few days - ping me on &lt;a href="http://twitter.com/walkah"&gt;twitter&lt;/a&gt; or &lt;a href="http://identi.ca/walkah"&gt;identi.ca&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Off to finish packing :-)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/4M-QTpvSGhY" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/sxsw-09-meet-me-austin</feedburner:origLink></entry><entry><title type="html">Why I Hate Drupal</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/walkah/~3/xhLemYtX-Zk/why-i-hate-drupal" /><updated>2009-03-08T21:00:00-07:00</updated><id>http://walkah.net/blog/walkah/why-i-hate-drupal</id><content type="html">&lt;p&gt;I'm back home from a truly spectacular &lt;a href="http://dc2009.drupalcon.org/"&gt;DrupalCon DC&lt;/a&gt; and have been reflecting this morning on some of the feedback from my talk: &lt;a href="http://dc2009.drupalcon.org/session/why-i-hate-drupal"&gt;Why I Hate Drupal&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;See &lt;a href="http://www.slideshare.net/walkah/why-i-hate-drupal"&gt;the slides&lt;/a&gt; and &lt;a href="http://www.archive.org/details/DrupalconDc2009-WhyIHateDrupal"&gt;watch the video&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I first got the idea for this talk several months ago watching the DjangoCon 2008 keynote &lt;a href="http://www.youtube.com/watch?v=i6Fr65PFqfk"&gt;Why I Hate Django&lt;/a&gt; by &lt;a href="http://www.iamcal.com/"&gt;Cal Henderson&lt;/a&gt;. I had several ideas for things to address, but aside from the session description I intentionally said very little about my talk publicly. This, of course, lead to some interesting &lt;a href="http://dc2009.drupalcon.org/news/100-hot-sessions-tentative-schedule#comment-1644"&gt;speculation&lt;/a&gt; and &lt;a href="http://dc2009.drupalcon.org/session/why-i-hate-drupal#comment-752"&gt;negative feedback&lt;/a&gt;. All part of the plan.&lt;/p&gt;

&lt;p&gt;As it turned out, I was not lynched and nothing rotten was thrown.&lt;/p&gt;

&lt;p&gt;What I was &lt;em&gt;not&lt;/em&gt; expecting (and what the video doesn't capture), though, was all of the interesting discussion that followed. I was overwhelmed by the positive response and the number of people who agreed with several of the points I tried to make:&lt;/p&gt;

&lt;p&gt;Drupal is not a product. To grow into a "movement", we should focus on becoming a better platform, adopt some better practices around development, be a better framework, and create more space for the creation of "products" (install profiles, etc) on top.&lt;/p&gt;

&lt;p&gt;What do you think? How to we "fix" this project?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/walkah/~4/xhLemYtX-Zk" height="1" width="1"/&gt;</content><feedburner:origLink>http://walkah.net/blog/walkah/why-i-hate-drupal</feedburner:origLink></entry></feed>

