<?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/"
	>

<channel>
	<title>Traceback (most recent call last): &#187; Firefox</title>
	<atom:link href="http://www.mikealrogers.com/archives/category/firefox/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mikealrogers.com</link>
	<description></description>
	<pubDate>Thu, 02 Jul 2009 13:55:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Up for a Pint?</title>
		<link>http://www.mikealrogers.com/archives/622</link>
		<comments>http://www.mikealrogers.com/archives/622#comments</comments>
		<pubDate>Thu, 02 Jul 2009 13:55:51 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[CouchDB]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Mozilla]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Windmill]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=622</guid>
		<description><![CDATA[I&#8217;m in London for the next few days and would love to grab a drink with any community members be you Mozilla, CouchDB, Python, Windmill, JavaScript or just plain old coffee, whisky or beer geeks  
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in London for the next few days and would love to grab a drink with any community members be you Mozilla, CouchDB, Python, Windmill, JavaScript or just plain old coffee, whisky or beer geeks <img src='http://www.mikealrogers.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/622/feed</wfw:commentRss>
		</item>
		<item>
		<title>Conference Season Begins</title>
		<link>http://www.mikealrogers.com/archives/613</link>
		<comments>http://www.mikealrogers.com/archives/613#comments</comments>
		<pubDate>Tue, 16 Jun 2009 01:07:37 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Windmill]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=613</guid>
		<description><![CDATA[I&#8217;ll be leaving tomorrow morning for Open Source Bridge in Portland, Oregon.

I&#8217;m putting together a new Windmill talk that tries to incorporate all the feedback we&#8217;ve received over the last year of speaking which I&#8217;ll be presenting on Thursday.

Mozilla is also a sponsoring the conference and there is going to be some great Firefox related [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be leaving tomorrow morning for <a href="http://opensourcebridge.org/">Open Source Bridge</a> in Portland, Oregon.</p>

<p>I&#8217;m putting together a new <a href="http://opensourcebridge.org/sessions/36">Windmill talk</a> that tries to incorporate all the feedback we&#8217;ve received over the last year of speaking which I&#8217;ll be presenting on Thursday.</p>

<p>Mozilla is also a <a href="http://opensourcebridge.org/sponsors/">sponsoring</a> the conference and there is going to be some great <a href="http://opensourcebridge.org/wiki/Hacker_Lounge">Firefox related sprints in the hacker lounge</a>. Dietrich is also giving what sounds like an awesome talk on extending Firefox called <a href="http://opensourcebridge.org/sessions/251">Firefox Switchblade</a>.</p>

<p>Hope to see you all there!</p>

<p>PS. I&#8217;ll also be at EuroPython and the Community Leadership Summit, more on those later <img src='http://www.mikealrogers.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/613/feed</wfw:commentRss>
		</item>
		<item>
		<title>RiP: Annotations Remix</title>
		<link>http://www.mikealrogers.com/archives/609</link>
		<comments>http://www.mikealrogers.com/archives/609#comments</comments>
		<pubDate>Wed, 13 May 2009 23:25:34 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[CouchDB]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=609</guid>
		<description><![CDATA[I had some fun this weekend with Python, &#60;video&#62;, CouchDB and Brett Gaylor&#8217;s RiP: A Remix Manifesto. In just a few hours I was able to crank out a little annotations remix which allows anyone to add annotations to the film that are displayed as people view it.

I&#8217;m hosting it on my little mac mini [...]]]></description>
			<content:encoded><![CDATA[<p>I had some fun this weekend with Python, &lt;video&gt;, CouchDB and Brett Gaylor&#8217;s <a href="http://www.ripremix.com">RiP: A Remix Manifesto</a>. In just a few hours I was able to crank out a little <a href="http://ripannotations.pythonesque.org">annotations remix</a> which allows anyone to add annotations to the film that are displayed as people view it.</p>

<p>I&#8217;m hosting it on my little mac mini (currently hidden in a data-center) so hopefully it doesn&#8217;t fall over pushing so much video <img src='http://www.mikealrogers.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>I&#8217;ve posted all the code up on <a href="http://github.com/mikeal/ripannotations/tree/master">github</a>. The more I use &lt;video&gt; and CouchDB the more excited I get about the future of web applications. This entire project was done in little chunks of spare time over the weekend and most of that was me messing around with styling. To get the data stored, queried, and displayed took less than 2 hours.</p>

<p>Hope you all enjoy the annotations remix and if you haven&#8217;t already go and pay what you want for a terrific copy of <a href="http://www.ripremix.com">RiP: A Remix Manifesto</a>. It&#8217;s worth it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/609/feed</wfw:commentRss>
		</item>
		<item>
		<title>Professionals or People</title>
		<link>http://www.mikealrogers.com/archives/601</link>
		<comments>http://www.mikealrogers.com/archives/601#comments</comments>
		<pubDate>Wed, 29 Apr 2009 17:57:02 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Community]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Mozilla]]></category>

		<category><![CDATA[Social]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=601</guid>
		<description><![CDATA[The Rails community seems to be on the verge of imploding, not necessarily because of a particular event but because of the response by Rails leadership to the event and their lack of meaningful reflection on why this happened.

This event has been well commented on, so I won&#8217;t go in to all the details, but [...]]]></description>
			<content:encoded><![CDATA[<p>The Rails community seems to be on the verge of imploding, not necessarily because of a <a href="http://www.ultrasaurus.com/sarahblog/2009/04/gender-and-sex-at-gogaruco/">particular event</a> but because of the <a href="http://afreshcup.com/2009/04/28/a-painful-decision/">response by Rails leadership</a> to the event and their lack of meaningful reflection on why this happened.</p>

<p>This event has been well commented on, so I won&#8217;t go in to all the details, but unsurprisingly the best comments I&#8217;ve read so far have come from women, in particular <a href="http://dyepot-teapot.com/2009/04/25/dear-fellow-rubyists/">Audrey Eschright</a>. It&#8217;s good to see meaningful discussion in that community but I think the proposed solution of increased &#8220;professionalism&#8221; is counterproductive and generating an even more hostile response from <a href="http://loudthinking.com/posts/39-im-an-r-rated-individual">Rails leadership</a>.</p>

<p>Professionalism doesn&#8217;t have a good history of promoting equality. After segregation &#8220;professional&#8221; was one of many code words for &#8220;white male&#8221; and even after many years when non-white males began entering the work force the idea of professionalism served to strip people of their culture and identity to better fit in to a white male dominated environment. For those of us in open source, and especially those who have left traditional corporations, we identify &#8220;professionalism&#8221; as the way corporations turn people in to plastic dolls in suites that can talk to other plastic dolls from other corporations at trade shows without getting &#8220;off message&#8221;. Luckily, we aren&#8217;t talking about a corporation here, we&#8217;re talking about a community and community isn&#8217;t about professionals it&#8217;s about people.</p>

<p>I think people see professionalism as a solution to this problem because it provides a way for us to change people&#8217;s conduct that we disagree with without actually changing people or how they think they should conduct themselves in a community. The real problem here is that some  <strong>people</strong> think it&#8217;s just fine to engage in public conduct that knowingly excludes people and doesn&#8217;t help include or encourage any new participation.</p>

<p>When news of this little outburst broke I have to say I wasn&#8217;t surprised that it happened in the Rails community. All tech communities have a low number of female participants, this is something nobody is great at yet, but for some time now Rails has been the worst offender. In the early days Rails was promoted by DHH in what, at the time, sounded like a great strategy: Attack dominant technologies (Java) and piss people off that use them long enough to check out your stuff. This strategy generated huge buzz and lead to one of the fastest adoptions of a new technology I&#8217;ve ever seen and it&#8217;s worth noting that the technology was actually so good that people could go from being a pissed off Java developer to a Rails developer in a relatively short amount of time.</p>

<p>But the biggest problem with DHH&#8217;s strategy was that it was hostile and it intentionally excluded a large number of people who were invested in the old technology and couldn&#8217;t get over being pissed off at DHH. The first thing DHH will say is &#8220;well, we don&#8217;t want or care about those people&#8221;, and he&#8217;s right, Rails doesn&#8217;t need those people. But when you, as the leader of a project, are hostile and partake in action that <strong>intentionally excludes people</strong>, regardless of who those people are, it creates an environment where others see no need to alter their behavior not to exclude people.</p>

<p>I&#8217;m really disheartened by <a href="http://www.loudthinking.com/posts/39-im-an-r-rated-individual">DHH&#8217;s &#8220;I&#8217;m an R rated individual&#8221; post</a>, because it&#8217;s not that he&#8217;s wrong, he&#8217;s actually right, he should be able to be an individual in the community he&#8217;s built, but if he doesn&#8217;t intentionally curb some of his behavior he&#8217;s going to encourage exaggerations of the worst parts of his personality by the example he sets. It&#8217;s great that DHH loves Louis C.K and his dick jokes, but that doesn&#8217;t mean he would intentionally start a keynote with them, he knows better, and that&#8217;s what makes the difference and that&#8217;s what is so wrong with Matt&#8217;s talk, he knew before he went up there that this would make a lot of people uncomfortable and discourage participation from women and he did it anyway.</p>

<p>In order to lead an inclusive community you have to encourage participation and allow everyone to be individuals. If you treat everyone with respect, no matter who they are and no matter what they do, others will conduct themselves the same way. It&#8217;s always easier to respond to hostility with hostility but all you&#8217;re doing is creating an environment where hostility is the norm and it&#8217;s alright to exclude people.</p>

<p>The kind of communities we want are not impossible, in fact we get closer and closer every day. I&#8217;m lucky enough to be at <a href="http://search.twitter.com/search?q=%23moz09">#moz09</a> this week, and I&#8217;m looking around at over 200 people from different cultures from around the world none of which seem to be trying to hide who they are or where they came from for some notion of &#8220;professionalism&#8221; and everyone treats each other with respect and every day we gather more participation from a broader set of individuals. We aren&#8217;t perfect, we&#8217;re never where we want to be, but we should be confident we&#8217;re going in the right direction.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/601/feed</wfw:commentRss>
		</item>
		<item>
		<title>&lt;video&gt; just feels good</title>
		<link>http://www.mikealrogers.com/archives/575</link>
		<comments>http://www.mikealrogers.com/archives/575#comments</comments>
		<pubDate>Tue, 28 Apr 2009 18:29:59 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Mozilla]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=575</guid>
		<description><![CDATA[I&#8217;ve been writing some automated tests for the new &#60;video&#62; work in Firefox 3.5 and it&#8217;s been incredibly fun. I spent some time in the trenches at Real Networks and dealt with accessing embedded video in the browser so I really appreciate how much nicer &#60;video&#62; is than embedded players like Real and Flash.

People talk [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been writing some automated tests for the new &lt;video&gt; work in Firefox 3.5 and it&#8217;s been incredibly fun. I spent some time in the trenches at Real Networks and dealt with accessing embedded video in the browser so I really appreciate how much nicer &lt;video&gt; is than embedded players like Real and Flash.</p>

<p>People talk a lot about embedded plugins being <em>&#8220;stuck in a box&#8221;</em> and while this is partially true I don&#8217;t think it&#8217;s descriptive enough. Embedded players like RealPlayer and Flash open up methods that can be called from javascript, so you do have some ways of interacting with the box, but it&#8217;s limited to somewhat rigid pre-defined interfaces. It&#8217;s also worth noting that using these interfaces just doesn&#8217;t <strong>feel</strong> like web development the way doing regular JavaScript and DOM feels. It&#8217;s not dynamic and you&#8217;re limited to only doing <strong>what the plugin authors have already thought of</strong>. The beautiful thing about the browser as a platform is that it enables usage far beyond what the original creators have intended.</p>

<p>Using &lt;video&gt; <strong>feels</strong> like the web. You resize it by setting size attributes the same way you would an interface node. You seek by setting the currentTime attribute, you can listen for the time changes to create your own interface by adding a listener for &#8220;timeupdate&#8221; events. You can write interfaces around &lt;video&gt; without switching contexts because it&#8217;s not a foreign technology jammed in to the browser. Here is some javascript that implements a few video controls.</p>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> v <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;v1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;playDiv&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">onclick</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>v.<span style="color: #660066;">play</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;pauseDiv&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">onclick</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>v.<span style="color: #660066;">pause</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;reloadDiv&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">onclick</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>v.<span style="color: #660066;">load</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span>
document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;seekDiv&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">onclick</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    v.<span style="color: #660066;">currentTime</span> <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'seekField'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">value</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>


<p>Isn&#8217;t that beautiful! Maybe I&#8217;m overly excited because I&#8217;ve had to deal with this using older technologies but this just <strong>feels</strong> good, and if it feels good then I know people are going to get excited about it and build cool stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/575/feed</wfw:commentRss>
		</item>
		<item>
		<title>Can&#8217;t blame the user? Blame the user community!</title>
		<link>http://www.mikealrogers.com/archives/577</link>
		<comments>http://www.mikealrogers.com/archives/577#comments</comments>
		<pubDate>Thu, 23 Apr 2009 20:10:28 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Social]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=577</guid>
		<description><![CDATA[I&#8217;ve started stewing over Garrett Murray&#8217;s post on negative user reviews for his Ego application for iPhone that recently showed some breakage when Google Analytics changed up. What started to really upset me was one of his closing paragraphs.


This kind of thing continually reinforces something I’ve thought about a lot since the App store was [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started stewing over <a href="http://log.maniacalrage.net/">Garrett Murray</a>&#8217;s post on <a href="http://log.maniacalrage.net/post/98510137/a-little-over-a-week-and-a-half-ago-google">negative user reviews for his Ego application</a> for iPhone that recently showed some breakage when Google Analytics changed up. What started to really upset me was one of his closing paragraphs.</p>

<blockquote>
This kind of thing continually reinforces something I’ve thought about a lot since the App store was released, which sounds horrible to say but it might be true: Apple is creating an ecosystem of the kind of customers I don’t want. With the ridiculous approval process leaving bugfixes to take over a week to show up, with prices being driven down to nothing by farting apps… it just feels hostile to me. While I have plenty of great customers who have been raving about the app, all it takes is one little issue and it all comes crashing down.
</blockquote>

<p>It&#8217;s no longer acceptable for consumer applications to &#8220;blame the user&#8221;. Sure, many people still do it, but if a blog post like this just blamed individual users for their complaints without this closing paragraph it wouldn&#8217;t be gaining so much steam and I probably never would have read about it. Instead Garrett blames the <em>community</em> of users, and by extension Apple for process that encourages this kind of community.</p>

<p>The first rule of community leadership in open source is simple; <strong>&#8220;Don&#8217;t be an asshole.&#8221;</strong>. While simple, sometimes it&#8217;s the hardest rule to follow. Many people in the community can be difficult, some of them downright hostile, but you can&#8217;t be hostile back and you can&#8217;t be an asshole. When you&#8217;re hostile or an asshole in your community you give license to the community to do the same. You cultivate the behavior that antagonized you in the first place. This is the rule when trying to lead contributors and I have to assume it&#8217;s the rule when trying to lead users and posts like this violate the rule by blaming users for their own expectations and then dismissing them altogether.</p>

<p>He tries to deflect attention to Apple since they are the gate keeper. Dismissing the bulk of your user community due to the gate keeper is logic that is so convenient you know it has to be flawed. The truth is <strong>most</strong> platforms have some kind of gate keeper, this is the world that we live in, but your complaints about your users have nothing to do with Apple.</p>

<p>iFart is 1 dollar but you&#8217;re giving it way too much credit if you think that&#8217;s why iPhone users have lower price expectations. You know what else is 1 dollar, Ocarina. Applications and games like Ocarina are larger triumphs of creativity than they are of engineering time. Not to say they are easy, or simple, but they are priced cheaply because the creators are confident in their product and because they didn&#8217;t spend a year developing it. This is where iPhone users have cultivated their expectations about interface, graceful failure, and low prices, because of your competitors not because of the gate keeper.</p>

<p>But even if all the user community&#8217;s expectations and demeanor is Apple&#8217;s fault, even if your users are cheap and vicious and given way too big a soap box, it&#8217;s still your fault.</p>

<p>As an example. Firefox get&#8217;s requests for features from Windows users to make certain things be &#8220;more like Windows&#8221;. If you look at the Firefox interface over 3 operating systems you&#8217;ll notice that the preferences menu item moves around based on which platform it&#8217;s on. The truth is, if you designed an interface from the ground up in some ideal world there would be one place that is best to put the preferences item, but that&#8217;s not the world we live in, we live in a world of expectations from user communities. The easiest thing to do is to say &#8220;we don&#8217;t need those users&#8221; or &#8220;those users are stupid and don&#8217;t understand proper design&#8221; but it&#8217;s not the <strong>right</strong> thing to do because it&#8217;s not what <strong>they</strong> want.</p>

<p>What your users are really saying with those complaints is that this failure frustrated them to the point of opening up iTunes and writing a complaint, not just that something broke. You could have failed more gracefully, you could have presented them with a button that opened a support web page with more detailed information and assurances that it was being resolved. Then after some time the bad reviews would get swallowed up by the positive ones you mentioned. But now you don&#8217;t have to do anything because you&#8217;ve convinced yourself that you did nothing wrong and it&#8217;s just a bunch of users you don&#8217;t want complaining about something they are too dumb to understand.</p>

<p>I hope some day Garrett finds his perfect user community with expectations that match his own. I&#8217;ll stick to working on products for everyone else, listen to their feedback seriously and try to improve them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/577/feed</wfw:commentRss>
		</item>
		<item>
		<title>Windmill 1.1 (the PyCon release)</title>
		<link>http://www.mikealrogers.com/archives/555</link>
		<comments>http://www.mikealrogers.com/archives/555#comments</comments>
		<pubDate>Wed, 08 Apr 2009 01:34:09 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Windmill]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=555</guid>
		<description><![CDATA[So much good stuff landed in Windmill over the last few weeks that we decided to push another major release.

The biggest new features are:


django management command for running windmill tests (Jacob said the existing django support wasn&#8217;t good enough and I agreed so I wrote this during the PyCon Sprints) 
new nose plugin
cygwin support contributed [...]]]></description>
			<content:encoded><![CDATA[<p>So much good stuff landed in Windmill over the last few weeks that we decided to push another major release.</p>

<p>The biggest new features are:</p>

<ul>
<li><a href="http://trac.getwindmill.com/wiki/WindmillAndDjango">django management command</a> for running windmill tests (<a href="http://jacobian.org/">Jacob</a> said the existing django support wasn&#8217;t good enough and I agreed so I wrote this during the PyCon Sprints) </li>
<li>new <a href="http://trac.getwindmill.com/wiki/BookChapter-5-RunningTests#RunningTestsfromNose">nose plugin</a></li>
<li>cygwin support contributed by <a href="http://sfllaw.livejournal.com/">Simon Law</a> (he went and wrote an implemenation of <a href="http://pypi.python.org/pypi/cygwinreg">winreg for cygwin</a> to get this to work).</li>
</ul>

<p>There were also some really good bug fixes that landed:</p>

<ul>
<li>much better unicode handling and serialization (adam)</li>
<li>fix for POST to foreign domains (<a href="http://anthony.lenton.com.ar">Anthony Lenton</a>)</li>
<li>continued improvements to click simulation (adam)</li>
</ul>

<p>The release is <a href="http://cheeseshop.python.org/pypi/windmill">up on PyPI</a> and you can install/update with:</p>


<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">$ easy_install -U windmill</pre></div></div>


<p>For anyone interesting in working <strong>on</strong> windmill we&#8217;re having a Sprint in #windmill on irc.freenode.net tomorrow April 8th, 2008 for pretty much all day. We&#8217;re going to be improving the unittests for Windmill itself.</p>

<p>The next planned major release will be 1.2 which will include the much anticipated SSL support, courtesy of some great work being done by Anthony.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/555/feed</wfw:commentRss>
		</item>
		<item>
		<title>Windmill 1.0!</title>
		<link>http://www.mikealrogers.com/archives/521</link>
		<comments>http://www.mikealrogers.com/archives/521#comments</comments>
		<pubDate>Thu, 26 Mar 2009 04:36:11 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Windmill]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=521</guid>
		<description><![CDATA[Just in time for PyCon we&#8217;re releasing Windmill 1.0. It&#8217;s been almost 3 years of development and I&#8217;m both excited and relieved to have something we&#8217;re comfortable calling 1.0.

The latest RCs have seen bigger improvements than we thought would make it. A new wave of contributions has given us some great new features in Django [...]]]></description>
			<content:encoded><![CDATA[<p>Just in time for PyCon we&#8217;re releasing <a href="http://www.getwindmill.com/archives/412">Windmill 1.0</a>. It&#8217;s been almost 3 years of development and I&#8217;m both excited and relieved to have something we&#8217;re comfortable calling 1.0.</p>

<p>The latest RCs have seen bigger improvements than we thought would make it. A new wave of contributions has given us some great new features in Django support and test serialization and <a href="http://www.adamchristian.com">Adam</a> has done some great UI work as well.</p>

<p>Big thanks to everyone who contributed to the release and I hope to see many of you at PyCon. Adam is doing a <a href="http://us.pycon.org/2009/conference/schedule/event/9/">talk on windmill</a> which I&#8217;ll be helping out with and Adam and I will also be on a <a href="http://us.pycon.org/2009/conference/schedule/event/88/">functional testing tools panel</a> which should be a lot of fun. And if you&#8217;re staying around for the sprint days of the conference we&#8217;ll be leading a <a href="http://us.pycon.org/2009/sprints/projects/windmill/">windmill sprint</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/521/feed</wfw:commentRss>
		</item>
		<item>
		<title>Multiple feed rels are a bad idea</title>
		<link>http://www.mikealrogers.com/archives/490</link>
		<comments>http://www.mikealrogers.com/archives/490#comments</comments>
		<pubDate>Thu, 12 Mar 2009 19:00:47 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=490</guid>
		<description><![CDATA[You don&#8217;t have to be a geek to suffer from information overload these days. Average users are hammered with too much data from too many sources and are seeking new ways to automate some of their manual workflows and creating their own contextual filters to help then deal with an overwhelming flood of information.

Feeds are [...]]]></description>
			<content:encoded><![CDATA[<p>You don&#8217;t have to be a geek to suffer from information overload these days. Average users are hammered with too much data from too many sources and are seeking new ways to automate some of their manual workflows and creating their own contextual filters to help then deal with an overwhelming flood of information.</p>

<p>Feeds are an obvious and helpful tool in helping <em>normal</em> people automate the tasks of keeping up with information streams. Many users are finding ways to use feeds to <strong>follow</strong> a particular site or person and using new tools and services that work better for them than the traditional big RSS Readers. Personally, I think Firefox3 has the best workflows for integrating with any of these tools. Let&#8217;s work through the subscribe workflow for my blog.</p>

<p><img src="http://www.mikealrogers.com/wp-content/uploads/2009/03/picture-11.png" alt="picture-11" title="Feed Button Close In" width="198" height="145" class="aligncenter size-full wp-image-492" /></p>

<ul>
<li>Click on the feed button.</li>
</ul>

<p><img src="http://www.mikealrogers.com/wp-content/uploads/2009/03/picture-2.png" alt="Subscribe Page" title="Subscribe Page" width="461" height="245" class="aligncenter size-full wp-image-493" /></p>

<ul>
<li>Select or configure your client and click subscribe.</li>
</ul>

<p>This is a very simple workflow and it makes web based tools first class citizens where previous versions of Firefox and other browsers only support desktop client subscriptions. You don&#8217;t need to make a lot of decisions or know anything about the feed technology or protocols behind the scenes.</p>

<p>But the workflow for my blog is an ideal scenario where only one rel=&#8221;alternate&#8221; feed has been parsed from the page. This workflow becomes more complicated when multiple rel=&#8221;alternate&#8221; links are in the page.</p>

<p><img src="http://www.mikealrogers.com/wp-content/uploads/2009/03/picture-3.png" alt="picture-3" title="picture-3" width="428" height="149" class="aligncenter size-full wp-image-494" /></p>

<p>Is this really necessary? 90% of the people who click this want to follow new posts and nothing else. More importantly what feed would <strong>you</strong> like people to subscribe to? You can make a decision here to push people in the direction you would like and somewhere else on the page you can offer them these more complicated options if they are seeking out alternate subscriptions.</p>

<p><img src="http://www.mikealrogers.com/wp-content/uploads/2009/03/picture-4.png" alt="picture-4" title="picture-4" width="294" height="103" class="aligncenter size-full wp-image-495" /></p>

<p>This is terrible. You&#8217;re basically undercutting all the work browser vendors have done to let users start to integrate feeds in to their workflows without understanding feed protocols.</p>

<p>If we want to encourage adoption of these technologies we have to help eliminate this kind of extra confusion from basic user workflows. Feeds aren&#8217;t just being used in traditionally feed readers now, those readers de-contextualize the information so that power users can burn through information quicker. New tools are enabling users to use feeds to &#8220;follow&#8221; a site, they way they might follow someone on twitter. These unnecessary subscription options discourage that kind of adoption because it presents choices that fall outside of the bounds of that workflow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/490/feed</wfw:commentRss>
		</item>
		<item>
		<title>MozMill 1.1 Released</title>
		<link>http://www.mikealrogers.com/archives/471</link>
		<comments>http://www.mikealrogers.com/archives/471#comments</comments>
		<pubDate>Thu, 05 Mar 2009 23:51:50 +0000</pubDate>
		<dc:creator>mikeal</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://www.mikealrogers.com/?p=471</guid>
		<description><![CDATA[Today we finished up a much anticipated MozMill 1.1 release.

The UI has been totally re-worked by Adam based mainly of design session feedback. We ditched the old xul UI and are just using html loaded via chrome url, this made development an order of magnitude easier and allowed us to use a great syntax highlighting [...]]]></description>
			<content:encoded><![CDATA[<p>Today we finished up a much anticipated MozMill 1.1 release.</p>

<p>The UI has been totally re-worked by <a href="http://www.adamchristian.com">Adam</a> based mainly of design session feedback. We ditched the old xul UI and are just using html loaded via chrome url, this made development an order of magnitude easier and allowed us to use a great syntax highlighting library for the editor that we could never quite get working in xul.</p>

<p>The release also has lots of new features like automatically binding the mozmill window to the side of a test window and editing of multiple tests at once. A whole slew of bugfixes made it in, mostly logged by <a href="http://www.hskupin.info/">Henrik</a>, including fixes to mulit-window recording.</p>

<p>At the suggestion of <a href="http://weblogs.mozillazine.org/dmose/">Dan Mosedale</a> we also added new asynchronous test support for more unittesting capabilities. Documentation is still on it&#8217;s way but you can refer to the <a href="http://code.google.com/p/mozmill/source/browse/trunk/test/test_unit.js">mozmill unittest</a> for now.</p>

<p>MozMill can be downloaded a few ways, the extension is available on <a href="http://mozmill.googlecode.com/files/mozmill-1.1.xpi">google code downloads</a> or the Python package can be installed via <a href="http://pypi.python.org/pypi/mozmill">PyPI</a></p>


<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">$ easy_install -U mozmill</pre></div></div>


<p><a href="http://cmtalbert.wordpress.com/">Clint</a> also just finished up a big round of new <a href="http://quality.mozilla.org/mozmill-docs">end user docs and API documentation cleanup and reformatting on QMO.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikealrogers.com/archives/471/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
