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

<channel>
	<title>Adam Christian &#187; Open Source</title>
	<atom:link href="http://www.adamchristian.com/archives/tag/open-source/feed" rel="self" type="application/rss+xml" />
	<link>http://www.adamchristian.com</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 17:41:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>JSConf and NodeConf &#8211; 2011</title>
		<link>http://www.adamchristian.com/archives/10435</link>
		<comments>http://www.adamchristian.com/archives/10435#comments</comments>
		<pubDate>Tue, 10 May 2011 22:55:41 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Jellyfish]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[JSConf]]></category>
		<category><![CDATA[NodeConf]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://www.adamchristian.com/?p=10435</guid>
		<description><![CDATA[Last week was both JSConf and NodeConf in Portland, OR and it was absolutely epic. I spend all year looking forward to the various Portland conferences, but this year happened to also be my first JSConf.us, the first ever NodeConf and a lot of thick bacon. If you aren&#8217;t aware of that term, it has [...]]]></description>
			<content:encoded><![CDATA[<p>Last week was both JSConf and NodeConf in Portland, OR and it was absolutely epic. I spend all year looking forward to the various Portland conferences, but this year happened to also be my first JSConf.us, the first ever NodeConf and a lot of thick bacon. If you aren&#8217;t aware of that term, it has become a great way to gauge the accumulated awesomeness regarding the quality of experience at a conference. I believe this was coined at one of the previous JSConfs and I have found it to be a useful addition to my vocabulary.</p>
<p>The opening party was populated with people dressed in amazingly authentic looking pirate costumes, many with a full size macaw parrot on their shoulder of differing and impressive colors. This party was sponsored by  Zappos, included a great pirate band, many fantastic local beers and they simultaneously ran a super fun twitter based prize contents. Towards the end of the night I won one of their awesome prize bags, which included an 8 bit green gameboy pocket (with tetris, super mario and metroid 2). This brilliant little old game device has been receiving a lot of attention at my house this week, somehow it is still incredibly addicting and fun to play. Way to go Zappos! I will continue buying nearly all my clothes through you.. <img src='http://www.adamchristian.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>At 11am the next morning I had 45 minutes to announce and show off <a href="http://jelly.io">Jellyfish</a>, which is a project I have been working on for the last few months. The goal of the project is to expose a simple API allowing you to run JavaScript in many different environments at once. In regards to my talk I did two stupid things: 1. I waited to record my demo&#8217;s until I arrived in Portland, 2. I waited to record my demo&#8217;s until after a beer tasting pirate party. Having said that, I think the talk went incredibly well and I have been really enjoying the responses and ideas I have received from the community.. keep it coming! I was happy to see a follow up talk filling in the bits my talk wasn&#8217;t able to. <a href="http://twitter.com/mde">Matthew Eernissee</a> talked about the pitfalls of writing JavaScript to be shared in multiple environments and gave <a href="http://jelly.io">Jellyfish</a> a nice little plug.</p>
<p>I was thrilled to get a chance to hang out with some of the old OSAF gang, <a href="http://twitter.com/towns">@towns</a>, <a href="http://twitter.com/twleung">@twleung</a> (who did two great writeups of <a href="http://www.sauria.com/blog/2011/05/06/jsconf-2011/">JSConf</a> and <a href="http://www.sauria.com/blog/2011/05/09/nodeconf-2011/">NodeConf</a>), @<a href="http://twitter.com/mde">mde</a>, and @<a href="http://twitter.com/mikeal">mikeal</a>. It was interesting to hear all the different views on the attention explosion JavaScript has been experiencing over the last couple years, since we all worked on Cosmo &#8212; to this day Cosmo still has one of the most dynamic and interesting web based UI&#8217;s I can think of.</p>
<p>I&#8217;m glad to say that I was at the talk when Batman came to visit (<a href="http://batmanjs.org/">batman.js</a>) in order to help clear the conference of any potential criminals. I was also at the Yammer party with the great 80&#8242;s band where there was a Firefox running around. But the most interesting part of the whole experience was listening to the banter about where the future of the language should go. With Node.js doing it&#8217;s thing, people are using and seeing JavaScript in a totally different way. This has started to create different needs and expectations that didn&#8217;t really exist when JS development lived only on the client side. There are multiple different communities coming together to create this new &#8220;JavaScript Community&#8221; and watching them collide is sort of like witnessing plate tectonics from space. Each of the collisions creates a interesting new rift, or subduction zone in the mantel of the community.</p>
<p>One thing I can say for sure is that, you either get <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a>, or you don&#8217;t &#8212; either way, I think it&#8217;s fair to say that we will continue seeing more and more ways for people to write JavaScript without writing Javascript.. and those people can get off my lawn.</p>
<p>If I had to pick a couple statements that sum up the crazy, amazing, drunken &#8220;JavaScript Community&#8221;, I would have to quote the two icons ultimately responsible for the happenings of last week. The first would be Bredan Eich explaining that &#8220;Javascript was thrown together to avoid other languages winding up in the browser&#8221; and that he&#8217;s aware that it isn&#8217;t an &#8220;ideal language syntactically&#8221;. The second being Ryan Dahl explaining that he&#8217;s not really a big fan of JavaScript, it is &#8221; simply adequate for the need&#8221;, and he &#8220;hates callbacks&#8221;. Fortunately, both of these guys and the surrounding community leaders are all on the same page. Javascript is where it is because of it&#8217;s fortune of being &#8220;the browser platform&#8221;. We can all agree that as a language  there are a lot of improvements that can be made in harmony, I just hope that doesn&#8217;t mean that JS is going to turn into <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a>. <img src='http://www.adamchristian.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The other unrelated thing I learned while at <a href="http://2011.jsconf.us/">JSConf</a> was that <a href="http://twitter.com/jeresig">John Resig</a> left Mozilla to build the community at the <a href="http://www.khanacademy.org/">Khan Academy</a>. I had never heard of the Khan Academy before, but I think it&#8217;s fair to say that I will probably re-learn everything I learned in college and more watching his videos over the next few years. Sounds like an awesome gig, and I wish him the best &#8212; I did find his <a href="http://www.reddit.com/r/IAmA/comments/h42ak/i_am_john_resig_creator_of_jquery_ama/">Reddit AMA</a> kind of amusing and totally bizarre &#8211; Mozilla is going to miss him.</p>
<p>I wish I had time to write an overview of all the JSConf talks, but to sum it all up quite crudely: Cloud9 and skywriter are the bomb, I think we will see more &#8220;learn how to program&#8221; tools in the browser with JS in the future (which is great) like waterbear. Also, apparently people care about putting JS on mobile devices &#8212; who knew?</p>
<p>As for <a href="http://nodeconf.com">NodeConf</a> &#8212; this community knows that it needs to mature, and fast &#8212; so there was a huge emphasis on how to run big production systems on node, how to debug it and how to test it. I can&#8217;t wait to see the fallout from that day of collaboration.</p>
<p>I wanted to thank everyone for the great input on what I&#8217;m working on, and the ideas and feedback for <a href="http://saucelabs.com">Sauce Labs</a> &#8212; I am taking all of it very seriously and am working on turning them into action items. For those of you two simply told me that you love Sauce and to keep doing what we are doing &#8212; I appreciate the boost!</p>
<p>Also,  I cannot forget a huge thanks to @<a href="http://twitter.com/voodootikigod">voodootikigod</a>, @<a href="http://twitter.com/mikeal">mikeal</a> and all the folks involved in running those conferences, I had a great time &#8212; thanks for inviting me to speak!</p>
<p>I took a lot of amazing photos, and I will be going through those this weekend &#8211; so stay tuned for a link to the photo album. And if you missed my <a href="http://www.slideshare.net/adamchristian/jellyfish-jsconf-2011">Jellyfish talk</a>, I will be doing it again at this years <a href="http://opensourcebridge.org/">Open Source Bridge</a> &#8211; June 21-24 back up in Portland, OR.</p>
<p>See you all at <a href="http://2011.texasjavascript.com/">TXJS</a> and <a href="http://jsconf.eu/2010/">JSEU</a>, and maybe tonight at the <a href="http://www.meetup.com/San-Francisco-JavaScript-Pub-Night/events/17400990/">San Francisco JavaScript Pub Night</a>!</p>
<p><a href="http://www.adamchristian.com/wp-content/uploads/2011/05/jsconf_everyone1.jpg"><img class="alignnone size-full wp-image-10452" style="margin: 2px; border: 1px solid black;" title="JSConf 2011!" src="http://www.adamchristian.com/wp-content/uploads/2011/05/jsconf_everyone1.jpg" alt="" width="747" height="378" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/10435/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windmill Plugin for Hudson</title>
		<link>http://www.adamchristian.com/archives/251</link>
		<comments>http://www.adamchristian.com/archives/251#comments</comments>
		<pubDate>Mon, 11 May 2009 00:42:27 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Slide]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windmill]]></category>
		<category><![CDATA[Windmill-dev]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=251</guid>
		<description><![CDATA[Over the last 6+ months, I have been using Hudson in conjunction with Windmill very heavily for continuous integration. For the most part using the build step specific to whatever the slave OS requires has worked sufficiently well until recently when my needs changed. I use the &#8216;configuration matrix&#8217; option to build a matrix of [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last 6+ months, I have been using Hudson in conjunction with Windmill very heavily for continuous integration. For the most part using the build step specific to whatever the slave OS requires has worked sufficiently well until recently when my needs changed.</p>
<p>I use the &#8216;configuration matrix&#8217; option to build a matrix of browsers to run the tests, this way I can have one job that represents a test run on multiple boxes and multiple browsers on each box. Drilling down allows me to see the results for each of these test runs within the job. (Configuration Matrix is awesome btw, except for one really annoying bug for, which there is a <a href="http://wiki.hudson-ci.org/display/HUDSON/Aboutncysa">reasonable workaround</a>)</p>
<p>Having many build resources, sometimes I want to move a job from one machine to another in order to equalize load on the different machines or to have a job running in ff2 and ie6 instead of ff3 and ie7. Thus the need for a uniform build step that will run the same way regardless of the machine or installed browsers, became necessary. Additionally the commands for running tests got bigger and less manageable all the time, so the time for a clean user interface finally came. This way I can automatically append arguments like &#8216;exit&#8217; to keep the build step interface simple and clean.</p>
<p>The other simplification is that in the Hudson configuration page for the Windmill Test plug-in you can tell it to automatically call the contrib &#8216;clean_run.py&#8217; script with the correct arguments (assuming clean_run.py can be found in your path).</p>
<p>As I am relatively new to the Java world, I struggled through the development process but thanks to some reasonable plug-in documentation, responses from the hudson dev mailing list and some IRC conversations with Kohsuke (thanks so much) I finally have something that sufficiently addresses my needs.</p>
<p><strong>Screenshots</strong><br />
<img style="width:99%" title="Hudson Configuration UI" src="http://cloud.github.com/downloads/admc/HudsonWindmillPlugin/Picture_4.png" alt="" /><br />
<img title="Adding the Windmill build" src="http://cloud.github.com/downloads/admc/HudsonWindmillPlugin/Picture_5.png" alt="" /><br />
<img style="width:99%" title="Plugin basic UI" src="http://cloud.github.com/downloads/admc/HudsonWindmillPlugin/Picture_2.png" alt="" /><br />
<img style="width:99%" title="Windmill Build Expanded" src="http://cloud.github.com/downloads/admc/HudsonWindmillPlugin/Picture_3.png" alt="" /></p>
<p><strong>Project</strong></p>
<p>The code is all available on <a href="http://github.com/admc/HudsonWindmillPlugin/tree/master">GitHub</a> and I welcome any improvements or input from the community as I know that continuous integration is a very important piece of the utility provided by Windmill and this pieces should be as easy as possible to setup.</p>
<p>The combination of this plug-in, and others like the <a href="http://github.com/dougm/hudson-s3/tree/master">amazon s3 plug-in </a> or the <a href="http://wiki.hudson-ci.org/display/HUDSON/VMware+plugin">hudson VMware plugin</a> bring us that much closer to seamlessly creating test resources, running our functional web tests across all of our supported platforms and then throwing it away until it&#8217;s again needed (or using the CLOUD).I have also done some integration with virtual box that I have found to be very successful.</p>
<p><strong>Download</strong></p>
<ul>
<li><a href="http://cloud.github.com/downloads/admc/HudsonWindmillPlugin/HudsonWindmillPlugin.hpi">Hudson Windmill Plugin 0.4</a></li>
</ul>
<p>Please<a href="http://github.com/admc/HudsonWindmillPlugin/issues"> log bugs</a> and let me know what you think! If you are an avid Java and or Hudson plug-in developer and you are interested in contributing, please jump right in!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/251/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyCon 2009 Recap</title>
		<link>http://www.adamchristian.com/archives/236</link>
		<comments>http://www.adamchristian.com/archives/236#comments</comments>
		<pubDate>Mon, 13 Apr 2009 20:54:38 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Slide]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windmill]]></category>
		<category><![CDATA[Windmill-dev]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Oscon]]></category>
		<category><![CDATA[pycon]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[using windmill]]></category>
		<category><![CDATA[windmill talk]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=236</guid>
		<description><![CDATA[Getting back in the swing of things after conferencing for weeks can be pretty painful, thus the lateness of the post. However I think it&#8217;s important to go over some thoughts still lingering in my brain as a result. First off, I have to say that for those of you who don&#8217;t know, PyCon is [...]]]></description>
			<content:encoded><![CDATA[<p>Getting back in the swing of things after conferencing for weeks can be pretty painful, thus the lateness of the post. However I think it&#8217;s important to go over some thoughts still lingering in my brain as a result.</p>
<p>First off, I have to say that for those of you who don&#8217;t know, PyCon is a community organized event, and amazingly well done. I was impressed by the design of the conference, the way they had four talks going on at once and they tried to keep them in a similar interest track. Every talk I attended was at least &#8220;good&#8221;, and many were &#8220;great&#8221;. You could really feel a community vibe, and for a conference that had 800+ attendees in the middle of a major recession they had every right to be excited.</p>
<p>There were two major themes content wise that really impressed me, the first was an amazing amount of web framework focus. <a href="http://www.djangoproject.com/">Django</a> obviously being the twinkle in the eye of the community, but there were smaller communities for each of the other projects, <a href="http://pylonshq.com/">Pylons</a>-<a href="http://turbogears.org/">Turbo Gears</a>, <a href="http://www.web2py.com/">web2py</a> and lots of tools built on top of them. One that struck me with some major promise is the <a href="http://pinaxproject.com/">Pinax Project</a>. Their goal is to make it so that I don&#8217;t ever have to deal with building user registration and in site messaging&#8230; and all the other features expected for any site that has social network functionality.</p>
<p>The other major theme was a mini testing conference going on within PyCon, that I was very comfortable hanging around with. We had a hugely successful Birds Of a Feather, as well as a surprisingly active Open Space talk for Windmill.</p>
<p>The &#8220;Using Windmill&#8221; talk turns out to be pretty successful in every aspect that I really care about. I do wish that I had been able to get a little more sleep the night before, and I have to admit the size of the venue was a bit overwhelming. I now realize watching the footage that I used the word &#8220;UM&#8221; way too much, and the demo videos must have been hard to watch from the very back of the room. But barring those two things, I am quite happy (I shall learn and practice for the next round of shameless PR at <a href="http://en.oreilly.com/oscon2009">OSCON 2009</a>).</p>
<p>The &#8220;Functional Testing Tools in Python&#8221; panel was very successful, and a lot of fun. I always enjoy the friendly banter between the different project owners. Everyone has a different opinion on what they care about, focus on and feel they do the best. Obviously since the only two projects represented that focused on Web Testing were Windmill and Selenium, we got a lot of attention.</p>
<p>Watching that panel footage I definitely think that the introductions were too long, but I still think our Journey themed &#8211; mind blowing &#8211; Windmill demo video was a great intro. At the very least, the audience had a little entertainment before the geek droning began <img src='http://www.adamchristian.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.slide.com">Slide</a> had an awesome presence this year, a fun booth, huge banners everywhere and 6 attendees. It was fun to see all of the great responses I received about Slide from people out there in Python land.</p>
<p><strong>Here are links to the videos:</strong></p>
<ul>
<li>Using Windmill: <a href="http://pycon.blip.tv/file/1947236/">http://pycon.blip.tv/file/1947236/</a></li>
<li>Functional Testing Tools in Python Panel: <a href="http://pycon.blip.tv/file/1947342/">http://pycon.blip.tv/file/1947342/</a></li>
</ul>
<p><strong>And some pictures:</strong></p>
<p><img class="alignnone size-full wp-image-237" title="Me, with the great Slide backdrop" src="http://www.adamchristian.com/wp-content/uploads/2009/04/1.png" alt="Me, with the great Slide backdrop" width="350" height="233" /></p>
<p><img class="alignnone size-full wp-image-238" title="Mikeal answering Questions" src="http://www.adamchristian.com/wp-content/uploads/2009/04/2.png" alt="Mikeal answering Questions" width="233" height="350" /> <img class="alignnone size-full wp-image-239" title="More me" src="http://www.adamchristian.com/wp-content/uploads/2009/04/3.png" alt="More me" width="350" height="233" /></p>
<p>If you are interested in seeing the new and improved version of the &#8220;Using Windmill&#8221; talk, please make it out to OSCON 2009, &#8220;Scheduled for 16:30 on 22 Jul 2009.&#8221; in San Jose, CA.<br />
<a href="http://conferences.oreilly.com/oscon"><br />
<img class="alignnone" style="border: 0px initial initial;" title="OSCON 2009" src="http://assets.en.oreilly.com/1/event/27/oscon2009_banner_speaking_125x125.gif" border="0" alt="OSCON 2009" width="125" height="125" /></a></p>
<p>We are waiting to hear back from both <a href="http://opensourcebridge.org/">Open Source Bridge</a> and the <a href="http://ajaxexperience.techtarget.com/html/index.html">AJAX Experience</a> as to whether we will be participating in those conferences (fingers crossed)!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/236/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Skinning Windmill with JQuery UI Themes</title>
		<link>http://www.adamchristian.com/archives/221</link>
		<comments>http://www.adamchristian.com/archives/221#comments</comments>
		<pubDate>Tue, 24 Mar 2009 21:15:27 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Windmill]]></category>
		<category><![CDATA[Windmill-dev]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[skin]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=221</guid>
		<description><![CDATA[I have been doing a lot of UI work on the Windmill trunk, and over the past few months I have had multiple requests for the ability to apply skins. Of course my reaction up until this point has been&#8230; alter the CSS! Which is not exactly the answer people were looking for. Here is [...]]]></description>
			<content:encoded><![CDATA[<p>I have been doing a lot of UI work on the Windmill trunk, and over the past few months I have had multiple requests for the ability to apply skins. Of course my reaction up until this point has been&#8230; alter the CSS! Which is not exactly the answer people were looking for.</p>
<p>Here is your answer, and it is now easier than ever.</p>
<p><strong>1.</strong> Go to: <a href="http://jqueryui.com/themeroller/">http://jqueryui.com/themeroller/</a> and create your theme (or pick a pre-defined one)<br />
<strong>2.</strong> Download and unzip the file. (it doesn&#8217;t matter what you select for jQuery components)<br />
- On a mac you will find something like this: jquery-ui-1.7.1.custom.zip Folder<br />
<strong>3.</strong> Open the contained CSS folder there will be another folder, currently windmill uses &#8220;smoothness&#8221;<br />
<strong>4.</strong> Find <em>windmill/html/css</em> folder in the windmill source directory<br />
<strong>5.</strong>  Copy the specified folder in step 3 into this folder<br />
<strong>6.</strong> Edit windmill/html/remote.html, line 10 to read like the following:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">&lt;link type<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;text/css&quot;</span> href<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;css/*your folder name*/jquery-ui-1.7.1.custom.css&quot;</span> rel<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;stylesheet&quot;</span> /<span style="color: #00AA00;">&gt;</span></pre></td></tr></table></div>

<p><strong>7.</strong> Load windmill!!</p>
<p>Here are a couple examples of pre-defined themes I tested out.</p>
<p><strong>Humanity</strong><br />
<img class="alignnone size-full wp-image-223" title="Windmill Theme" src="http://www.adamchristian.com/wp-content/uploads/2009/03/e73bfb899c1b3e804b3bf46830d9ba761.png" alt="Windmill Theme" width="438" height="492" /><br />
<strong>UI Darkness</strong><br />
<img class="alignnone size-full wp-image-224" title="Windmill Theme" src="http://www.adamchristian.com/wp-content/uploads/2009/03/a84ceded77718ff0a88b8916a4a0bc24.png" alt="Windmill Theme" width="446" height="519" /></p>
<p>Happy skinning.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/221/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MozMill 1.1 UI Overview</title>
		<link>http://www.adamchristian.com/archives/185</link>
		<comments>http://www.adamchristian.com/archives/185#comments</comments>
		<pubDate>Mon, 09 Mar 2009 18:31:29 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Mozmill]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[XUL]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=185</guid>
		<description><![CDATA[During the Open Design session at Mozilla with Aza we were informed that we could load a HTML file with a Chrome URL, allowing me to rebuild the MozMill UI a bit more like a web page instead of using the XUL constructs that I had been struggling with. Granted it feels a lot more [...]]]></description>
			<content:encoded><![CDATA[<p>During the Open Design session at Mozilla with Aza we were informed that we could load a HTML file with a Chrome URL, allowing me to rebuild the MozMill UI a bit more like a web page instead of using the XUL constructs that I had been struggling with. Granted it feels a lot more like a web page than it does a desktop application, but the speed that I can build new UI features by using libraries like JQuery UI have made it worth it.</p>
<p>The combination of writing content style HTML, and the good advice we received have come together into what I feel is a pretty usable user interface. Granted this is the first revision and will probably continually be refined to become even more user friendly, but from 1.0 to 1.1 it is a vast improvement.</p>
<p><img style="position:relative;float:right" title="MozMill Editor" src="http://www.adamchristian.com/wp-content/uploads/2009/03/picture-2.png" alt="MozMill Editor" width="368" height="510" /></p>
<p><strong>Improved Editor</strong></p>
<p>The first major improvement is the implementation of a full featured code editor named <a href="http://www.cdolivet.net/editarea/">EditArea</a>. </p>
<p>We have been keeping our eye on <a href="https://bespin.mozilla.com/">Bespin</a>, which we will look more into integrating when it is a bit more modular. </p>
<p>For the meantime EditArea does a great job, and was *relatively* painless to integrate.</p>
<p>Some of the features include:</p>
<ul>
<li>Multiple file editing</li>
<li>Syntax hilighting</li>
<li>Full Screen mode</li>
<li>Adjustable font properties</li>
<li>Jump to line numbers</li>
<li>Search and replace</li>
<li>Automatic tabulation</li>
<li>Toggle hi-lighting</li>
<li>Toggle edit modes</li>
</ul>
<p><a href="http://www.cdolivet.net/editarea/editarea/docs/javascript_functions.html">EditArea</a> implements execCommand similar to the implementation in <a href="http://www.mozilla.org/editor/midas-spec.html">Midas</a>.</p>
<div style="clear:both"></div>
<p><strong>Reorganized Menu&#8217;s</strong></p>
<p>Part of the move from XUL involved no longer relying on the toolbox, so we have reorganized the menu&#8217;s into dialog&#8217;s (don&#8217;t worry most functions have a keyboard shortcut if you are one of those people that doesn&#8217;t want to deal with that extra click). </p>
<p>This cleanly displays all the available options, and doesn&#8217;t clutter up the main UI. This also provides space to easily add new features that fall into these logical spaces in the future.</p>
<p><img style="float:right;position:relative" title="Test Dialog" src="http://www.adamchristian.com/wp-content/uploads/2009/03/picture-5-300x140.png" alt="Test Dialog" width="300" height="140" /></p>
<p><img src="http://www.adamchristian.com/wp-content/uploads/2009/03/picture-6-300x140.png" alt="File Dialog" title="File Dialog" width="300" height="140" style="float:right;position:relative" /></p>
<p><img src="http://www.adamchristian.com/wp-content/uploads/2009/03/picture-7-300x197.png" alt="Options Dialog" title="Options Dialog" width="300" height="197" style="float:right;position:relative;" /></p>
<div style="clear:both"></div>
<p><strong>Improved Inspector</strong><br />
<img src="http://www.adamchristian.com/wp-content/uploads/2009/03/picture-8-274x300.png" alt="Inspector" title="Inspector" width="274" height="300" class="alignright size-medium wp-image-197" /></p>
<p>There was a lot of frustration when it came to getting the results from the inspector into the editor, some of this had to do with the non editable default nature of the elements we were using to draw them out in XUL, but the integration of the feature into the IDE became very messy and confusing.</p>
<p>This creates an obvious separation between the rest of the UI and the inspector feature and puts helper features out in front of you to simplify the process by dumping to the clipboard and then moving you to a focused editor window.</p>
<div style="clear:both"></div>
<p><strong>Improved Output</strong><br />
<img src="http://www.adamchristian.com/wp-content/uploads/2009/03/picture-31.png" alt="Output" title="Output" width="368" height="510" class="alignright size-full wp-image-202" /></p>
<p>The output UI has been completely revamped to give you the most important information quickly, but allow you to navigate down an expandable tree to explore the output of the exception.</p>
<p>All of the information in the output divs can be easily selected and copied to stick in bugs etc, but also saves you a trip to the error console as it should encompass all of the information being thrown in the error object, serialized and organized into a more readable format.</p>
<p>Thanks to JQuery UI&#8217;s information and error boxes I was able to tweak the CSS to make some relatively attractive, but more importantly, informative UI that should quickly give you the status of your test run.</p>
<div style="clear:both"></div>
<p><strong>More Information</strong></p>
<ul>
<li><a href="http://code.google.com/p/mozmill/">MozMill Google Code Project</a></li>
<li><a href="http://www.mikealrogers.com/archives/471">Mikeal Rogers Release Blog Post</a></li>
<li><a href="http://mozmill.googlecode.com/files/mozmill-1.1.xpi">Google Code XPI Download</a></li>
<li><a href="http://quality.mozilla.org/mozmill-docs">QMO Documentation</a></li>
<li><a href="http://pypi.python.org/pypi/mozmill">MozMill on PyPi</a></li>
</ul>
<p>
Thanks everyone who logged bugs!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/185/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Micro-Bookmarking with MyTabs</title>
		<link>http://www.adamchristian.com/archives/147</link>
		<comments>http://www.adamchristian.com/archives/147#comments</comments>
		<pubDate>Mon, 23 Feb 2009 21:18:36 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Addons]]></category>
		<category><![CDATA[Mozmill]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=147</guid>
		<description><![CDATA[A few weeks ago I realized that every time I boot my laptop, one of the first things I do is to open Firefox, and immediately load about 7 web sites as tabs. Some of them requiring user interaction to navigate to the desired state. I didn&#8217;t realize that this was actually a phenomenon called [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-156" style="float:right" title="MyTabs" src="http://www.adamchristian.com/wp-content/uploads/2009/02/mytabs.png" alt="MyTabs" width="88" height="51" />A few weeks ago I realized that every time I boot my laptop, one of the first things I do is to open Firefox, and immediately load about 7 web sites as tabs. Some of them requiring user interaction to navigate to the desired state. I didn&#8217;t realize that this was actually a phenomenon called &#8220;micro-bookmarking&#8221;, and that I may not be the only person who has this routine.</p>
<p>I don&#8217;t necessarily want to bookmark these sites, and this process of opening them is somehow part of my routine, however spending this kind of time every time I want to get to this state is just silly. Part of the ritual is to go through each of the open tabs, read the most recent updates and then close the tab, repeating this whole process many times a day.</p>
<p>At this point you should be starting to get the jist, to automate this whole process I created a Firefox Extension called <a href="http://wiki.github.com/admc/mytabs">MyTabs</a>. The UI and use case is simple, but some of the tools I built in make it potentially very powerful.</p>
<p><a href="mytabs">MyTabs</a> has the <a href="http://code.google.com/p/mozmill/wiki/ControllerAPI">MozMill Controller</a> built in, and is automatically setup in the tabs content window scope, allowing you to <a href="http://wiki.github.com/admc/mytabs/tab-scripting">write and attach scripts to each tab to be executed &#8216;onload&#8217;</a>. Thus automating the need to ever manually login to your web applications again.<br />
<br/><br />
<strong><a href="http://wiki.github.com/admc/mytabs/tab-scripting">Example script</a> for logging into <a href="http://www.facebook.com">Facebook</a>:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">//Lookup the three elements I want to interact with</span>
<span style="color: #003366; font-weight: bold;">var</span> email <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> elementslib.<span style="color: #660066;">ID</span><span style="color: #009900;">&#40;</span>doc<span style="color: #339933;">,</span> <span style="color: #3366CC;">'email'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> pass <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> elementslib.<span style="color: #660066;">ID</span><span style="color: #009900;">&#40;</span>doc<span style="color: #339933;">,</span> <span style="color: #3366CC;">'pass'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> login <span style="color: #339933;">=</span> doc.<span style="color: #660066;">getElementsByClassName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'UILinkButton_A'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//Controller expects elementslib objects</span>
<span style="color: #003366; font-weight: bold;">var</span> elibLogin <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> elementslib.<span style="color: #660066;">Elem</span><span style="color: #009900;">&#40;</span>login<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">//Tell the controller to type the credentials</span>
tab.<span style="color: #660066;">type</span><span style="color: #009900;">&#40;</span>email<span style="color: #339933;">,</span> <span style="color: #3366CC;">'my_facebook_account@address.com'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
tab.<span style="color: #660066;">type</span><span style="color: #009900;">&#40;</span>pass<span style="color: #339933;">,</span> <span style="color: #3366CC;">'my_password'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">//Click the login button</span>
tab.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span>elibLogin<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>This is all possible by a really slick snipped of code I found on <a href="https://developer.mozilla.org/en/Code_snippets/Tabbed_browser">MDC</a>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> newTabBrowser <span style="color: #339933;">=</span> gBrowser.<span style="color: #660066;">getBrowserForTab</span><span style="color: #009900;">&#40;</span>gBrowser.<span style="color: #660066;">addTab</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;http://www.google.com/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
newTabBrowser.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;load&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> newTabBrowser.<span style="color: #660066;">contentDocument</span>.<span style="color: #660066;">body</span>.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Stuff&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p><br/><strong>Security/Preferences</strong></p>
<p>For the sake of security I made it so that you can only attach scripts, not edit them so that you friends can&#8217;t go and view your script to get those plain text passwords. All the tab data is stored in the prefManager so that it is available across sessions. However if someone knew enough to pick apart the source, install a trusted JS Shell and manually access the prefManager you may be in trouble&#8230; so be careful about super sensitive information especially on a shared machine.</p>
<p>Using <a href="http://ui.jquery.com">jQuery UI</a> I was able to make the UI relatively attractive, intuitive and possibly skinnable in the future (if you want to do this yourself, grab the source swap out the jQuery UI theme CSS directory and boom you have yourself  new look.)</p>
<p><br/><strong>Some Screenshots</strong></p>
<p><img class="alignnone size-full wp-image-148" title="Welcome" src="http://www.adamchristian.com/wp-content/uploads/2009/02/picture_1.png" alt="Welcome" width="592" height="410" /><br />
<img class="alignnone size-full wp-image-149" title="Tab Overview" src="http://www.adamchristian.com/wp-content/uploads/2009/02/picture_2.png" alt="Tab Overview" width="581" height="403" /><img class="alignnone size-full wp-image-150" title="Adding new Tabs" src="http://www.adamchristian.com/wp-content/uploads/2009/02/picture_3.png" alt="Adding new Tabs" width="581" height="403" /><img class="alignnone size-full wp-image-151" title="Tab Scripting" src="http://www.adamchristian.com/wp-content/uploads/2009/02/picture_4.png" alt="Tab Scripting" width="581" height="403" /></p>
<p>The source is fully available on <a href="http://www.github.com">GitHub</a>, and the <a href="http://cloud.github.com/downloads/admc/mytabs/mytabs-03.xpi">XPI</a> is available on <a href="http://addons.mozilla.org">Mozilla Add-ons</a>.</p>
<ul>
<li><a href="http://github.com/admc/mytabs/tree/master">MyTabs on GitHub</a></li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/10720/">MyTabs on Mozilla Add-ons</a></li>
</ul>
<p>Remember that I am currently on bug fix release 0.3, but please let me know if you run into any problems!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/147/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Meet lookupNode</title>
		<link>http://www.adamchristian.com/archives/111</link>
		<comments>http://www.adamchristian.com/archives/111#comments</comments>
		<pubDate>Tue, 20 Jan 2009 20:22:17 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windmill]]></category>
		<category><![CDATA[Windmill-dev]]></category>
		<category><![CDATA[Elementslib]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=111</guid>
		<description><![CDATA[A few months ago I did a re-write of the DOM access functionality used by Windmill and various other projects of mine and the result was a wrapper around ElementsLib called lookupNode. I use this all over internally but until today didn&#8217;t realize that it could be hugely helpful for test developers and people trying [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago I did a re-write of the DOM access functionality used by Windmill and various other projects of mine and the result was a wrapper around ElementsLib called lookupNode. I use this all over internally but until today didn&#8217;t realize that it could be hugely helpful for test developers and people trying to debug their applications.</p>
<p>The following list are the different options you have for looking up your node:</p>
<ul>
<li>link</li>
<li>xpath</li>
<li>id</li>
<li>name</li>
<li>value</li>
<li>classname</li>
<li>tagname</li>
<li>label</li>
</ul>
<p>Keep in mind that we iterate all iframes we can access in the window if the node isn&#8217;t found in the page document. lookupNode takes an object, like so:</p>
<p><code><br />
var myNode = lookupNode({id:'myNodeId'});<br />
</code></p>
<p>The very interesting use case we had today was the need to access and parse data from a link on a page in a Python test, I believe the final result looked something like the following:<br />
<code><br />
url = client.commands.execJS(code="lookupNode({link:'Link Text'}).href")["result"]<br />
#url parsing in python goes here into needed_value<br />
client.asserts.assertValue({id:'mycheckbox', validator=needed_value})<br />
</code><br />
<br />
<div id="attachment_114" class="wp-caption alignnone" style="width: 491px"><img class="size-full wp-image-114" title="lookupNode in Action" src="http://www.adamchristian.com/wp-content/uploads/2009/01/picture-11.png" alt="lookupNode in Action" width="481" height="314" /><p class="wp-caption-text">lookupNode in Action</p></div><br />
<br />
I hope someone finds this useful, the abstracted standalone ElementsLib for the content space <a href="http://code.google.com/p/elementslib/">can be found here!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/111/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bringing Windmill to Life</title>
		<link>http://www.adamchristian.com/archives/41</link>
		<comments>http://www.adamchristian.com/archives/41#comments</comments>
		<pubDate>Thu, 04 Sep 2008 02:42:28 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windmill]]></category>
		<category><![CDATA[Windmill-dev]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Feedback]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=41</guid>
		<description><![CDATA[Project Status I have spent nearly every day since July 7th working to bring the Windmill Project up to a level where it can be used reliably in a production environment. Our mission starts with &#8220;Windmill is a web testing framework intended for complete automation of user interface testing&#8221;, of course this refers to the [...]]]></description>
			<content:encoded><![CDATA[<p><img style="position:relative;float:right;" title="Windmill Logo" src="http://adamchristian.com/wp-content/uploads/2008/09/wlogo.png" alt="Windmill Logo" width="120" height="117" /></p>
<p><strong>Project Status</strong></p>
<p>I have spent nearly every day since July 7th working to bring the <a href="http://www.getwindmill.com">Windmill Project</a> up to a level where it can be used reliably in a production environment. Our mission starts with <em>&#8220;Windmill is a web testing framework intended for complete automation of user interface testing&#8221;</em>, of course this refers to the web including everything and anything inside the browser window. This turns out to be a very large task, one that only an Open Source labor of love could possibly attempt to accomplish.</p>
<p>Windmill has slowly evolved as a project with user contributions, a moderately active IRC channel, and enough users to keep me from forgetting what a useful and powerful tool it is. When I was offered the opportunity to work on the project I quickly saw how much needed to be done in order to get to where we needed to be. We still aren&#8217;t quite there, and like most Open Source projects we might not ever get to the envisioned perfection, however recently we hit a very important milestone. The project is now fully hosted and run by the committers, and in many ways &#8220;Grown Up&#8221;, thanks to a lot of good advise and hard work. The milestone we have reached, is that Windmill is ready for YOU to use. This week we pushed 0.8.2, which is a release that has addressed all of the major issues that we know about and have discovered with heavy usage over the past months. Our hopes are that you will go install Windmill 0.8.2 and things will just WORK. If not, I can&#8217;t wait to get your issues in trac and see what we can do to fix them.</p>
<p><strong>Priorities</strong></p>
<p>The main things we care about when it comes to our web testing tools:</p>
<ul>
<li>Low barrier to entry, low learning curve, and ease of use</li>
<li>Thorough documentation, community and project support</li>
<li>Support for the big 3 platforms; Windows, MacOSX and Linux</li>
<li>Support for the big 4 browsers; Firefox, IE, Safari and Opera</li>
<li>Easy integration with continuous integration tools</li>
<li>Reliability; developers aren&#8217;t going to pay attention if the failures aren&#8217;t real</li>
<li>A really nice looking logo, and a web site that is easy on the eyes..</li>
</ul>
<p>There are always more features to implement, but Windmill hasn&#8217;t needed new features for a very long time. What Windmill needed was some serious QA, some code cleanup and a whole mess of bug fixes. If you look through the <a href="http://trac.getwindmill.com/timeline?from=09%2F04%2F2008&amp;daysback=100&amp;ticket=on&amp;changeset=on&amp;milestone=on&amp;wiki=on&amp;update=Update">Trac Timeline</a> you will see the massive amounts of all of the above that have happened and I am proud as hell when I launch the application today and see all that it can do.</p>
<p><strong>What can Windmill do?</strong></p>
<p>Windmill offers the ability to build, write, record and run tests as well as aid in debugging and development. In addition, the framework provides the ability to create and maintain hierarchies of smart and thorough tests that will ensure the quality of your web applications over time. Not only can we save you hours creating and maintaing tests, but we can also help you see your web application as a growing feature rich product, instead of a QA nightmare.</p>
<p>Many tools out there provide ways to write tests, some even provide recorders and DOM explorers, but none that I have ever seen provide this rich functionality cross platform and cross browser, which is really what is required in order to build a thorough test repository that represents all your possible users.</p>
<p>The current set of major features can be found at the <a href="http://www.getwindmill.com/features">Windmill Features Page</a> as well as more details about what is currently available. One of the more exciting new features is the full integration with <a href="http://getfirebug.com/lite.html">Firebug Lite</a>. Web developers rely on the existence of Firebug in order to quickly build and debug web applications, and Firebug Lite is the next best thing. It&#8217;s hard to even describe how useful it has been to instantly access the JavaScript Console and DOM inspector in IE to debug a failing test. As the Open Source community grows, and tools are improved and brought to light, I think it&#8217;s very important to do everything we can to utilize these tools and use them to enhance the Windmill Framework.</p>
<p><strong>Keeping it Open</strong></p>
<p>The Open Source aspect of Windmill has turned out to be it&#8217;s greatest asset. The project is almost entirely written in JavaScript and Python, which instantly gives us many advantages over the competition. The JavaScript community is constantly evolving and is most certainly the futures technology platform. Python has a very strong community as well and has given us immense amounts of functionality and flexibility right out of the box.</p>
<p>One of the most exciting things to me personally about this particular project is the immense potential user base out there, and the large impact the Windmill Tools can have on the daily work flow of it&#8217;s users. Windmill was obviously inspired with the hopes of minimizing the need for manual testing of rich web applications, and has grown to be much more than that.</p>
<p>The future of the work to be done on Windmill will primarily be driven by the needs of it&#8217;s users, the changes and development of the industry and the success of it reaching the goal, to make web automation better.</p>
<p><strong>Moving Forward</strong></p>
<p>Concluding this major push of work, testing, documentation and moving of infrastructure; we now need to see how the community feels. There are lots of choices out there for web automation and we have made many differentiating choices along the way. It is now time to get the word out and take in some real feedback.</p>
<p>Thanks you all for input, contributions, patience and valuable feedback. Those of you who spent many hours on Freenode in #windmill with us debugging and hunting down those spastic blockers are troopers and we really appreciate it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/41/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mozilla Summit</title>
		<link>http://www.adamchristian.com/archives/38</link>
		<comments>http://www.adamchristian.com/archives/38#comments</comments>
		<pubDate>Wed, 30 Jul 2008 20:18:00 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Slide]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windmill]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[99]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Mozmill]]></category>
		<category><![CDATA[Organically]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Rocks]]></category>
		<category><![CDATA[Summit]]></category>
		<category><![CDATA[Thunderbird]]></category>
		<category><![CDATA[UE]]></category>
		<category><![CDATA[Whistler]]></category>
		<category><![CDATA[XUL]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=38</guid>
		<description><![CDATA[I am currently up here in Whistler BC for the Mozilla Summit. There is about 400 people here staying at the Westin Resort &#38; Spa up here in scenic Canada.  The schedule for the con can be found here; http://wiki.mozilla.org/Summit2008/Sessions/Schedule I do have to say that Mozilla is doing a great job at taking care of [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently up here in Whistler BC for the Mozilla Summit. There is about 400 people here staying at the Westin Resort &amp; Spa up here in scenic Canada. </p>
<p>The schedule for the con can be found here; http://wiki.mozilla.org/Summit2008/Sessions/Schedule</p>
<p>I do have to say that Mozilla is doing a great job at taking care of all their contributors and employees this week, and I feel like a lot of progress is being made on many levels. It&#8217;s very useful to see details as to how people are going about this, but it&#8217;s even more useful to see things on a bit higher level. It can be easy to get lost in the forest of Open Source, especially the way that Mozilla builds on things organically. </p>
<p>The sessions are ranging from &#8220;The History of the Browser&#8221; to Mobile, QA, UE/UI, Thunderbird, planning etc. As Moz has people all over the world I am getting to hear some very interesting accents and interpretations of things. At the dinner last night I was sitting across from people from Germany, Macedonia and Israel. Amazing how the Moz projects can cross the globe and still keep communication open with each of it&#8217;s appendages. The keynote from Mitchell Baker and John Lilly gave me a very solid impression of what they feel the company values, where it should be going and most importantly their extreme satisfaction with where it currently is.</p>
<p>Tomorrow I will be doing a session with Mikeal Rogers and Clint Talbert to demo and explain the GristMill XUL testing framework. My piece of this project is called Mozmill, which started out as a straight across port of the Windmill source with the addition of XUL support and has turned into a much more advanced tool that will fill some needs that have existed for a very long time.</p>
<p>I found it interesting to find out that the VP of Engineering Mike Schroepfer announced his departure last week during Oscon. Their have been mixed reactions about this, but many speculations were proven correct today when he announced he was going to facebook, http://blog.mozilla.com/schrep/. The idea of an IPO is can be extremely appealing, apparently they made him an offer he couldn&#8217;t refuse.</p>
<p>This morning we were alerted that tons, literally tons of rock had fallen on the highway 99 which turns out is the most convenient of two possible road trips to get back to Vancouver. We are leaving Friday morning, and the new word is that we will all be loaded onto shuttles to embark on the 7 hour trip back to the airport. This will make for an extremely long day and I am not looking forward to it, but the trip was well worth it and I look forward to getting home and picking up where I left off at Slide.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/38/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leaving Rearden Commerce, What&#8217;s Next?</title>
		<link>http://www.adamchristian.com/archives/20</link>
		<comments>http://www.adamchristian.com/archives/20#comments</comments>
		<pubDate>Fri, 27 Jun 2008 21:22:39 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Plans]]></category>
		<category><![CDATA[Slide]]></category>
		<category><![CDATA[Startup]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windmill]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Commerce]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Employ]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[OSAF]]></category>
		<category><![CDATA[Position]]></category>
		<category><![CDATA[Professional]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Rearden]]></category>
		<category><![CDATA[Rearden Commerce]]></category>
		<category><![CDATA[Resign]]></category>
		<category><![CDATA[Slide Inc]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://adamchristian.com/?p=20</guid>
		<description><![CDATA[What happened? As some of you may have heard, today I resigned from my position at Rearden Commerce. Leaving a company is never a fun thing, because you know how you feel when you hear that someone else is leaving.. and you can see it in people&#8217;s eyes. I have reminded myself multiple times today that I [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float:right;" src="http://adamchristian.com/wp-content/uploads/2008/06/logo.gif" alt="" width="145" height="38" /><br />
<strong>What happened?</strong></p>
<p>As some of you may have heard, today I resigned from my position at <a href="http://reardencommerce.com">Rearden Commerce</a>. Leaving a company is never a fun thing, because you know how you feel when you hear that someone else is leaving.. and you can see it in people&#8217;s eyes. I have reminded myself multiple times today that I am still going to be 30 mins away, most of my communication with those people has been via email and IM and there is no reason for me not to stay in touch.</p>
<p><strong>Why did I resign? </strong></p>
<p>That&#8217;s a very good question. Let me preface this by saying that I really don&#8217;t have anything about Rearden that I can point at and say &#8216;this thing&#8217; is why I left. Rearden is a great company, they were professional through out my entire experience there. They employ many very talented and driven engineers, and they have a great product. My gut feeling after spending some time there, is that they will do very well. The management team is very skilled and they know their market and niche extremely well. Every day I went to work I heard about a new major deal or a small company Rearden had acquired to contribute to their march toward owning the &#8216;Personal Assistant&#8217; space.</p>
<p>When I first arrived there I struggled with two things, and ultimately wound up being my demise as an employee. I have an extreme passion for Open Source, being part of that community, and giving my time to contribute. So you are probably thinking, &#8216;Why didn&#8217;t I just do that on the side?&#8217; &#8212; well the answer is that I did do it on the side and the results were slow and my sleep schedule paid the price. Rearden has a very business/enterprise specific niche at the moment, and building and deploying new features to those customers is a priority (as it should be), but I couldn&#8217;t stop my Open Source envy. </p>
<p>Secondly, a overwhelming majority of their user base is using IE6. As a web developer &#8212; the last thing I do when building anything in client side JavaScript is to test it in IE6. I basically hold my nose, load the page and pray that things &#8216;mostly work&#8217;. Now I&#8217;m not going to claim that I can ever get away from doing this, but building really cutting edge features based on new technology becomes significantly less probable when you are catering to this crowd. I know that Rearden has some really cool future plans, and is publicly talking about bringing the application to the consumer market &#8212; but I&#8217;m impatient and I just simply didn&#8217;t want to wait.</p>
<p><img style="float:right;" src="http://adamchristian.com/wp-content/uploads/2008/06/slide_logo_sm.gif" alt="" width="108" height="40" /><br />
<strong>What&#8217;s Next?</strong></p>
<p>I am going to jump right into a gig with <a href="http://slide.com">Slide Inc.</a> as a Web Developer. However, before I get to any Web Development tasks I am going to be addressing a pretty serious need they have in their QA department. Slide currently has many applications that are used directly on their site, slide.com and on social networks (primarily facebook.com and myspace.com) and right now they have essentially no functional automation.<br />
<img style="float:right" src="http://adamchristian.com/wp-content/uploads/2008/06/images-1.jpeg" alt="" width="86" height="73" class="alignnone size-thumbnail wp-image-19" /><br />
At <a href="http://osafoundation.org">OSAF</a> I saw what a major difference automated testing can make, and the reason I am so excited about this is because I was a QA Engineer at one point manually testing a pretty complex web application (<a title="Cosmo" href="http://hub.chandlerproject.org">Cosmo</a>) and I have seen how much a difference test automation can make in the release cycle, the development cycle, QA test cycles and simply the daily lives of your poor QA teams.</p>
<p><img style="float:left;" src="http://adamchristian.com/wp-content/uploads/2008/06/wmicon.png" alt="" width="41" height="40" /><br />
How am I going to accomplish this task you might ask? Thats the best part &#8212; I have fixed about 10 bugs in <a href="http://windmill.osafoundation.org">Windmill</a> in the last week, and will be putting whatever effort is required into getting Windmill to a state where we can functionally automate all of Slides application testing. This looks to be a serious win for Slide, and a serious win for Windmill. </p>
<p>At some point in the future, when I feel that this project is to the point where it can be maintained and built on by the Slide QA teams I will move on to Web Development tasks. At that point a smaller amount of time will still be allocated to maintaining Windmill, adding new features that Slide and the community need and working towards the next evolution of Windmill. That is quite a ways off in the future, so I will address all that when the time comes.<br />
<img style="float:right;" src="http://adamchristian.com/wp-content/uploads/2008/06/images.jpeg" alt="" title="images" width="127" height="46" class="alignnone size-medium wp-image-21" /><br />
The rest of my &#8216;free&#8217; development time, will be consumed by a project that I am involved in with the Mozilla Corporation. This project lives in the QA realm as well, and could probably be classified as a distant cousin to Windmill. More details about that will be announced the week of OSCON, so keep your eyes pealed.</p>
<p>Change can be extremely tough, but it is also very exciting. I want to thank all of my former peers at Rearden for a good experience, and I wish them all the absolute best.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamchristian.com/archives/20/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: www.adamchristian.com @ 2012-02-09 12:22:16 -->
