<?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>~robcee/ &#187; Code</title>
	<atom:link href="http://antennasoft.net/robcee/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://antennasoft.net/robcee</link>
	<description>more than just sandwiches</description>
	<lastBuildDate>Mon, 19 Jul 2010 17:44:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Inspector Landing</title>
		<link>http://antennasoft.net/robcee/2010/05/14/inspector-landing/</link>
		<comments>http://antennasoft.net/robcee/2010/05/14/inspector-landing/#comments</comments>
		<pubDate>Fri, 14 May 2010 16:24:24 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[devtools]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/?p=413</guid>
		<description><![CDATA[A couple of months ago, I started working on a new feature for Firefox, the first part of which landed last night and is in today’s nightly. It&#8217;s pretty rough-looking still, but over the next few days and weeks we&#8217;ll be landing new features as they&#8217;re written and struggle through the review process. There are [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago, I started working on a new <a href="https://wiki.mozilla.org/Firefox/Projects/Inspector">feature</a> for Firefox, the first part of which landed last night and is in today’s <a href="http://nightly.mozilla.org/">nightly</a>. It&#8217;s pretty rough-looking still, but over the next few days and weeks we&#8217;ll be landing new features as they&#8217;re written and struggle through the review process. There are already two partially-formed features waiting in the wings which will make this tool almost useful.</p>
<p>What are we looking at and how do you find it? In the Tools menu, there&#8217;s a new menu item labeled &#8220;Inspect&#8221;. Selecting this (or using the Cmd/Ctrl-shift-I hotkey [subject-to-change]) will bring up a panel at the bottom of the Firefox window with a tree representing the nodes in the HTML page you&#8217;re on. Hovering over elements in the page will select the appropriate node in the tree. You can finish dynamic inspection (i.e., hover over node to inspect) by clicking in the highlighter panel over a node, or hitting ESC or Return on your keyboard.</p>
<p>To close the Inspector panels, reselect Tools:Inspect from the menus or use the Cmd-Shift-I command shortcut again.</p>
<p style="text-align: center;"><a title="Screen shot 2010-04-23 at 15.48.39 by robceemoz, on Flickr" href="http://www.flickr.com/photos/robceemoz/4546455090/"><img class="aligncenter" src="http://farm5.static.flickr.com/4042/4546455090_26ae69d61b.jpg" alt="Screen shot 2010-04-23 at 15.48.39" width="500" height="397" /></a></p>
<p>If the tree display looks a little familiar, it&#8217;s because you&#8217;re looking at an inDOMView-based tree widget. This is the same widget used in DOM Inspector, albeit a little differently-configured. This one&#8217;s setup to include all attributes under a node and their values.</p>
<p>Currently, the panel is undecorated. We&#8217;re awaiting a patch from Neil Deakin to provide title bars for panels. You might find that the highlighter (also implemented as a panel floating over the content area) sometimes obscures the tree panel. This is also a bug in progress. You can read more about some of the additional panel improvements Neil has underway on the Mozilla <a href="https://wiki.mozilla.org/XUL:Panel_Improvements">wiki</a>.</p>
<p>And there are <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=565075">bugs</a>. Some are addressed in downstream patches. Others are waiting to be fixed. Still others are, I&#8217;m sure, unknown. Testing this out everywhere you can will be helpful. If you find something, do a search in Bugzilla in the <a href="https://bugzilla.mozilla.org/buglist.cgi?resolution=---&amp;classification=Client%20Software&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;component=Developer%20Tools&amp;product=Firefox">Firefox::Devtools</a> component, and if you don&#8217;t see a match for it, feel free to <a href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&amp;assigned_to=nobody%40mozilla.org&amp;blocked=&amp;bug_file_loc=http%3A%2F%2F&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_blocking_191=---&amp;cf_blocking_192=---&amp;cf_blocking_193=---&amp;cf_status_191=---&amp;cf_status_192=---&amp;cf_status_193=---&amp;comment=&amp;component=Developer%20Tools&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;dependson=&amp;description=&amp;flag_type-203=X&amp;flag_type-270=X&amp;flag_type-271=X&amp;flag_type-325=X&amp;flag_type-369=X&amp;flag_type-37=X&amp;flag_type-370=X&amp;flag_type-385=X&amp;flag_type-4=X&amp;flag_type-485=X&amp;flag_type-486=X&amp;flag_type-5=X&amp;flag_type-589=X&amp;flag_type-590=X&amp;flag_type-604=X&amp;flag_type-605=X&amp;flag_type-607=X&amp;flag_type-617=X&amp;flag_type-619=X&amp;form_name=enter_bug&amp;keywords=&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=All&amp;priority=--&amp;product=Firefox&amp;qa_contact=developer.tools%40firefox.bugs&amp;rep_platform=All&amp;short_desc=&amp;status_whiteboard=&amp;target_milestone=---&amp;version=unspecified">file a bug</a>. If you&#8217;re really keen, attach a fix to it. We love that kind of thing.</p>
<p>Next up are the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=560692">Style</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=561782">DOM</a> panels which I am hoping can land within the week. I&#8217;ll be rebasing the patches in those bugs by end of day. You will also see a toolbar appear on top of the tree panel. I&#8217;ll blog about these features as they materialize in nightlies. I also plan on filing top-level bugs for the remaining features on the Inspector project page. If you&#8217;d like to help out, feel free to contact me and I can point you to what needs some effort. Whether it&#8217;s writing test-cases or feature code, there&#8217;s lots to go around.</p>
<p>All of this is moving towards a vision of a simple and fun-to-use web page inspector that will be shipping with the browser. There&#8217;s still a lot of work to do on it, but we&#8217;re making steady progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2010/05/14/inspector-landing/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Automated Screen Grab and Upload Howto</title>
		<link>http://antennasoft.net/robcee/2009/02/10/automated-screen-grab-and-upload-howto/</link>
		<comments>http://antennasoft.net/robcee/2009/02/10/automated-screen-grab-and-upload-howto/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 14:22:30 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[automator]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2009/02/10/automated-screen-grab-and-upload-howto/</guid>
		<description><![CDATA[If you&#8217;ve been around these parts, you may have seen a flurry of screencaps with the words &#8220;Grabup&#8221; on/in/around them. Tired of the constant advertisements, I decided to roll my own.
(before proceeding, I should tell you that Johnath has a shell script you can invoke from a terminal window that you might find adequate. The [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been around these parts, you may have seen a <a target="_blank" href="http://www.grabup.com/uploads/cb3db9c9dc12f8b33bc0a575d342c791.png">flurry</a> of <a target="_blank" href="http://www.grabup.com/uploads/af38c4e29ee4a594e8b9e522505274d6.png">screencaps</a> with the words &#8220;Grabup&#8221; on/in/around them. Tired of the constant advertisements, I decided to roll my own.</p>
<p>(before proceeding, I should tell you that <a target="_blank" href="http://blog.johnath.com/">Johnath</a> has a <a target="_blank" href="http://johnath.pastebin.mozilla.org/620738">shell script</a> you can invoke from a terminal window that you might find adequate. The setup is certainly less annoying, but then you&#8217;ll have to type something on the command line everytime you want it, and that&#8217;s hardly intuitive, nice <strike>and it does a funny thing with character-encodings in the filename</strike> <small><small>(edit: this was zsh making the filename look funny, oops, sorry J)</small></small>)</p>
<p><b>What you&#8217;ll need:</b></p>
<ul>
<li>Mac OS X 10.5 (you might get away with 10.4)</li>
<li>Some kind of web-enabled remote storage (I&#8217;m using &#8220;people.mozilla.org&#8221;, but if you&#8217;ve got MobileMe you could do this with an iDisk or some other WebDAV-enabled system)</li>
<li><a target="_blank" href="http://code.google.com/p/macfuse/">MacFUSE</a> + <a target="_blank" href="http://code.google.com/p/macfuse/wiki/MACFUSE_FS_SSHFS">SSHFS</a></li>
<li><a target="_blank" href="http://www.red-sweater.com/fastscripts/">FastScripts</a> Lite</li>
<li><a href="http://people.mozilla.org/%7Ercampbell/Grabup-window-template.zip">Grabup-window-template</a> workflow.</li>
</ul>
<p>The latter two may have alternatives. I&#8217;m using FastScripts lite (thanks for the tip, <a target="_blank" href="http://www.beatnikpad.com/">neilio</a>!) to bind a hot-key to the Automator script, but you could do the same with Quicksilver and probable several other tools. SSHFS is alternatively available in MacPorts, but I like the Google Code supplied version for the handy installer.</p>
<p><b>The Setup:</b></p>
<p>First, setup your &#8220;web-drive&#8221; through MacFUSE. Be sure to install the latest SSHFS binary. Read the instructions. I have mine setup as aliases I can run from the Terminal. E.g., </p>
<div class="code">mountpeople=&#8217;sshfs people:/home/rcampbell/ ~/Volumes/people -oreconnect,volname=people&#8217;</div>
<p>Next, you will need to edit the Automator action. Start Automator and select the Open Existing Workflow button.<img src="http://antennasoft.net/robcee/wp-content/uploads/2009/02/open-existing-button.png" /></p>
<p>Open the Grabup-window-template file (extracting it first from the zip file), and change the entries below. I am going to recommend here that you create a throw-away screenshot and put it in a Screenshots subdirectory under Pictures. Name the image &#8220;pic.png&#8221; or similar. You&#8217;re going to need to select something as a filename in Automator&#8217;s first action (Take Screenshot). Ridiculous, I know, but here we are.<br /><a href="http://www.flickr.com/photos/robceemoz/3269597662/" title="grabup-window by robceemoz, on Flickr"><img src="http://farm4.static.flickr.com/3338/3269597662_3a375a6e4c.jpg" alt="grabup-window" height="500" width="465" /></a></p>
<p>Next, select your destination in the &#8220;Copy Finder Items&#8221; action. You&#8217;ll want to make sure your remote drive is mounted. If you&#8217;re using MacFUSE, drag the drive from your desktop into the sidebar of the Finder so it shows up in the open dialog, alternatively, you can just drag the drive from your desktop onto the open file dialog and you should be able to browse it from there. I have a public_html/screenshots directory, and have selected that.</p>
<p>In the last action you have the option of opening the screenshots directory in your browser. The Run Shell Script action just calls the &#8220;open&#8221; command which will open a URL of your choosing. If you can do this all by yourself, feel free to delete the action entirely. I give you permission!</p>
<p>When you&#8217;re happy, save the automator action as a Workflow in your home directory&#8217;s Library/Scripts folder and give it a snappy name. I call mine &#8220;Grabup-window&#8221;. If FastScripts (lite) is running, it will show up in that menu. Now you can open FastScripts&#8217; Preferences window and give Grabup-window a hotkey. I chose Cmd-Shift-5.</p>
<p>Now, whenever I hit that hotkey, I&#8217;m promted to select a window and a screenshot is automatically uploaded to my directory. No more tears. I hope this is useful and not nearly as painful as it has been to describe here.</p>
<p><i>note</i>, as there are only 86400 seconds in a day, eventually, you will get collisions. You can pick a different rename pattern to make your images last longer, or change the option to overwrite automatically. It&#8217;s up to you. <b>YOU HAVE THE POWER!</p>
<p>Update</b>: added an extra entry to the Grabup-window-template file so it now adds today&#8217;s date to the beginning of the filename. No more collisions.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2009/02/10/automated-screen-grab-and-upload-howto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FireUnit &#8211; the early years</title>
		<link>http://antennasoft.net/robcee/2008/10/07/fireunit-the-early-years/</link>
		<comments>http://antennasoft.net/robcee/2008/10/07/fireunit-the-early-years/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 20:05:25 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[fireunit]]></category>
		<category><![CDATA[unittest]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2008/10/07/fireunit-the-early-years/</guid>
		<description><![CDATA[One of our goals for moving forward with Firebug is to build a system to run automated unit tests for it. Currently, Firebug is modified, packaged and then tested by a small (but enthusiastic!) group of developers. When changes are made to the codebase, the area under development might be tested by the developer, but [...]]]></description>
			<content:encoded><![CDATA[<p>One of our goals for moving forward with Firebug is to build a system to run automated unit tests for it. Currently, Firebug is modified, packaged and then tested by a small (but enthusiastic!) group of developers. When changes are made to the codebase, the area under development might be tested by the developer, but there&#8217;s no way of knowing if what you&#8217;ve done has broken some other part of the application. As a friend of mine is fond of saying, software is hard.</p>
<p>Enter FireUnit! An extension for Firebug that aims to be able to test Firebug itself, and later on, perhaps be a useful framework for developing unittests for the web. It&#8217;s still very early on, but there&#8217;s a core emerging.</p>
<p>Installing FireUnit is currently a bit of a manual affair. Download the source code from the github <a target="_blank" href="http://github.com/jeresig/fireunit/tree/master">repository</a> and extract the downloaded zip or tar file to your local filesystem.</p>
<p>Open your profile/extensions directory for the Firefox profile that you use with Firebug. Create a new empty text file there with the name &#8220;fireunit@mozilla.com&#8221; (no quotes, of course). In this text file, add the full path to the FireUnit directory you unpacked in the previous step. E.g., &#8220;/Volumes/Data/Projects/FIREBUG/fireunit&#8221; in my case.
<div align="center"><img src="http://antennasoft.net/robcee/wp-content/uploads/2008/10/picture-1.png" alt="" /><br /><small><small><i>Test panel of FireUnit after running commandline.html</i></small></small></div>
<p>When you open/restart Firefox with this profile and open Firebug, you should now see a new &#8220;Test&#8221; panel in the list of tabs. Go to the location bar and type in / paste chrome://fireunit/content/test/commandline.html. You should see some flickering as FireUnit runs through the tests in that commandline.html. When done, you should see a bunch of passes listed in the Test panel (hopefully no failures!).</p>
<p>While I&#8217;m rambling about testing, I should mention that there will soon be a new alpha version of Firebug 1.3 (a4) available for download at <a target="_blank" href="http://getfirebug.com/releases/firebug/1.3/">getfirebug.com/releases/firebug1.3</a>. This would be an ideal version for you to try out FireUnit on! For the more adventurous in the crowd, Chromebug 0.3a8 is R261 on <a target="_blank" href="https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/FireclipseExtensions/chromebug">https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/FireclipseExtensions/chromebug</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2008/10/07/fireunit-the-early-years/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building Chromebug</title>
		<link>http://antennasoft.net/robcee/2008/08/29/building-chromebug/</link>
		<comments>http://antennasoft.net/robcee/2008/08/29/building-chromebug/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 21:31:58 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Chromebug]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Build]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/?p=110</guid>
		<description><![CDATA[This week was a pretty incredible week for web stuff. The Labs people kicked off their Ubiquity prototype, letting the world get a taste for some of what will be possible through natural language processing and the browser. I also discovered a new feed reading add-on for Firefox called Feedly which does some very cool [...]]]></description>
			<content:encoded><![CDATA[<p>This week was a pretty incredible week for web stuff. The <a href="http://labs.mozilla.com/" target="_blank">Labs</a> people kicked off their <a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/" target="_blank">Ubiquity</a> prototype, letting the world get a taste for some of what will be possible through natural language processing and the browser. I also discovered a new feed reading add-on for Firefox called <a href="http://feedly.com/" target="_blank">Feedly</a> which does some very cool things with Google Reader to present web feeds in a new way. While reeling from all this new-found power, I had an intense meeting with John Barton who walked me through the setup procedure for Chromebug.</p>
<p>First, there are a couple of caveats about Chromebug. It&#8217;s still in an experimental state. Some parts work well, like the inspection of a chrome window&#8217;s DOM tree and CSS. Other parts are a little flakey or down-right broken. As of right now, the default build instructions will attach you to a 1.3 version of Firebug which has some improvements to handling large script files but is also somewhat broken. It should improve shortly.</p>
<p><a title="chromebug, by robceemoz" href="http://flickr.com/photos/robceemoz/2810151738/"><img src="http://farm4.static.flickr.com/3293/2810151738_fcbc2f9f81_m.jpg" align="middle" width="240" height="138" ></a></p>
<p>So, with that out of the way, I&#8217;ll run through a quick Chromebug setup and install. The <a href="https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/FireclipseExtensions/chromebug/Readme.txt" target="_blank">instructions</a> are on the sourceforge page for <a href="http://sourceforge.net/projects/fireclipse">Fireclipse</a>, a plugin for Eclipse that adds some debugging capabilities for Firefox and/or JavaScript.</p>
<p><strong>Step 1</strong>. From a suitable directory on your computer, check out the chromebug sourcecode from svn. There are external svn references to include two other add-ons, chromelist and firebug. These will get checked out as well.</p>
<div class="code">svn co https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/FireclipseExtensions/ fireclipse/extensions</textarea></div>
<p><strong>Step 2</strong>. Create a new <a href="http://support.mozilla.com/en-US/kb/Profiles" target="_blank">profile</a> for Firefox using the <a href="http://kb.mozillazine.org/Profile_Manager" target="_blank">Profile Manager</a>. I called mine &#8220;Chromebug&#8221;. Make sure you start Firefox with this new profile to finish the creation process.</p>
<p><strong>Step 2a</strong>. Make note of the location of this new profile. You&#8217;ll need the full path for the following step. On Windows, this would typically be in &#8220;C:\Documents and Settings\%USERNAME%\Application Data\Mozilla\Firefox\Profiles\xxxxxxxx.Chromebug\&#8221;. Replace %USERNAME% with your username, and xxxxxxxxxx with some randomly generated string. Just look for *.Chromebug in that directory. You will need this for the &#8220;install.dir&#8221; property in step 4 below.</p>
<p><strong>Step 3</strong>. In a console (or terminal window), cd to the chromebug directory you checked out earlier. E.g., cd ~/Projects/fireclipse/extensions/chromebug</p>
<p><strong>Step 4</strong>. Create a local.properties file using your favorite text editor in this directory. Add the following properties to it (each property should be on a single line, regardless of how this blog breaks it up):</p>
<div class="code">install.dir=C:/Documents and Settings/rob/Application Data/Mozilla/Firefox/Profiles/chromebug<br />
firebug.dir=../firebug/branches/firebug1.3<br />
chromelist.dir=../chromelist</div>
<p><strong>Step 5</strong>. Create links to the chromebug extensions. This can be most-easily accomplished using the build.xml file provided in the fireclipse/extensions/chromebug directory and the Java build utility <a href="http://ant.apache.org/" target="_blank">ant</a>. If you don&#8217;t have ant installed, you can do this manually as per the <a href="https://fireclipse.svn.sourceforge.net/svnroot/fireclipse/trunk/FireclipseExtensions/chromebug/Readme.txt" target="_blank">instructions</a> in the included readme file. It&#8217;s standard extension development <a href="http://developer.mozilla.org/en/Setting_up_extension_development_environment#Custom_code_location" target="_blank">linkage</a>.</p>
<p>And now you should be ready to fire it up using (on windows):</p>
<div class="code">firefox.exe -chrome chrome://chromebug/content/chromebug.xul -p chromebug -firefox [optional-url]</textarea></div>
<p>Replace firefox.exe with firefox-bin on unixey OSes. You should see two windows open. One, a smaller window with the title Chromebug, the other, a standard browser window. Before you get too excited and jump in, you should quit the application and restart it (again, using the above command) to make sure the chrome files get registered properly. Now you should be ready to play!</p>
<p>Please keep in mind that Chromebug is experimental. There&#8217;s a lot of code in there and not all of it&#8217;s working. We are interested in getting more people using it and reporting problems though so check it out, and if you encounter any problems, feel free to come to #firebug in irc.mozilla.org and ask questions. You may have better luck using Firebug 1.2 instead of 1.3 currently, but I haven&#8217;t tested that myself. It should be a matter of changing the firebug.dir property in the local.properties file from step 5 above.</p>
<p>I&#8217;d like to thank John Barton for patiently walking me through the above and giving me a walkthrough of the code itself. It&#8217;s incredibly cool stuff and I&#8217;d love to see it become part of the standard arsenal of extension development tools as well as part of the toolkit for developing firefox front end features. In the coming weeks, I&#8217;ll post follow-ups on the state of chromebug and what you can do with it.</p>
<p>Happy debugging!</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2008/08/29/building-chromebug/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Talos machines going down for upgrades</title>
		<link>http://antennasoft.net/robcee/2007/08/30/talos-machines-going-down-for-upgrades/</link>
		<comments>http://antennasoft.net/robcee/2007/08/30/talos-machines-going-down-for-upgrades/#comments</comments>
		<pubDate>Thu, 30 Aug 2007 16:03:11 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2007/08/30/talos-machines-going-down-for-upgrades/</guid>
		<description><![CDATA[The performance machines reporting to the Firefox and Mozilla1.8 trees will be going offline tomorrow morning, Friday, August 31, 2007 for some improvements to both buildbot code and support for the Linux and Mac ports of Talos. We are expecting the outage to be from around 5am PDT to 9am PDT*.
* assuming Nothing Bad™ happens
]]></description>
			<content:encoded><![CDATA[<p>The performance machines reporting to the <a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox">Firefox</a> and <a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=Mozilla1.8">Mozilla1.8</a> trees will be going offline tomorrow morning, Friday, August 31, 2007 for some improvements to both buildbot code and support for the Linux and Mac ports of <a href="http://quality.mozilla.org/en/projects/automation/talos">Talos</a>. We are expecting the outage to be from around 5am PDT to 9am PDT*.</p>
<p>* assuming <em>Nothing Bad</em>™ happens</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2007/08/30/talos-machines-going-down-for-upgrades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AsynchronousMochiFixTinderbox</title>
		<link>http://antennasoft.net/robcee/2007/06/21/asynchronousmochifixtinderbox/</link>
		<comments>http://antennasoft.net/robcee/2007/06/21/asynchronousmochifixtinderbox/#comments</comments>
		<pubDate>Thu, 21 Jun 2007 19:40:01 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2007/06/21/asynchronousmochifixtinderbox/</guid>
		<description><![CDATA[This morning, while no-one was looking, I secretly landed John Resig&#8217;s patch for bug 379506 (after a quick run-through in my local Linux VM). Everything is A-OK.
In other news, Axel Hecht submitted a nice patch for the TinderboxPoller in our local copy of Buildbot. I snuck that in too.
Thanks guys!
]]></description>
			<content:encoded><![CDATA[<p>This morning, while no-one was looking, I secretly landed <a href="http://ejohn.org/blog/">John Resig</a>&#8217;s <a href="https://bugzilla.mozilla.org/attachment.cgi?id=268268">patch</a> for <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=379506">bug 379506</a> (after a quick run-through in my local Linux VM). Everything is A-OK.</p>
<p>In other news, <a href="http://blog.mozilla.com/axel">Axel Hecht</a> submitted a nice <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=380078">patch</a> for the <a href="http://lxr.mozilla.org/mozilla/source/tools/buildbot/buildbot/changes/tinderboxpoller.py">TinderboxPoller</a> in our local copy of <a href="http://lxr.mozilla.org/mozilla/source/tools/buildbot/">Buildbot</a>. I snuck that in too.</p>
<p>Thanks guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2007/06/21/asynchronousmochifixtinderbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What a week</title>
		<link>http://antennasoft.net/robcee/2007/06/08/what-a-week/</link>
		<comments>http://antennasoft.net/robcee/2007/06/08/what-a-week/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 14:27:33 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2007/06/08/what-a-week/</guid>
		<description><![CDATA[or month, actually&#8230; but I&#8217;ll try to keep this post limited to the events that occurred most recently.
The background: John Resig did some great work building a new test suite for a recent cut of the MochiKit test suite to run under mochitest (bug #379506). Shaver popped into #developers the other day and said something [...]]]></description>
			<content:encoded><![CDATA[<p>or month, actually&#8230; but I&#8217;ll try to keep this post limited to the events that occurred most recently.</p>
<p>The background: <a href="http://ejohn.org/blog/">John Resig</a> did some great work building a new test suite for a recent cut of the <a href="http://mochikit.com/">MochiKit</a> test suite to run under <a href="http://developer.mozilla.org/en/docs/Mochitest">mochitest</a> (bug #<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=379506">379506</a>). <a href="http://shaver.off.net/diary/">Shaver</a> popped into #developers the other day and said something along the lines of, &#8220;could you help John with this review? KTHXBYE&#8221; Naturally, I said, sure!</p>
<p>I downloaded the rather lengthy patch and applied it to a pair of trees, did a build and ran runtests.pl. The new tests ran through flawlessly and, seemed ready to go after a quick update to a makefile that was out-of-date. I landed the patch.</p>
<p>And set the tree on fire. (linux, specifically)</p>
<p><a href="http://antennasoft.net/robcee/wp-content/uploads/2007/06/LinuxOnFire.png" onclick="window.open('http://antennasoft.net/robcee/wp-content/uploads/2007/06/LinuxOnFire.png','popup','width=576,height=416,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://antennasoft.net/robcee/wp-content/uploads/2007/06/LinuxOnFire-tm.jpg" height="100" width="138" border="1" align="left" hspace="4" vspace="4" alt="Linuxonfire" /></a>Now a word about case-sensitive (or case-&#8221;preserving&#8221;) file systems. Mac and Windows (HFS and NTFS respectively) are not really case-sensitive. They will let you put differently-cased characters into file and directory names, and they will show them to you, but they don&#8217;t really know the difference between Mochi<strong>k</strong>it and Mochi<strong>K</strong>it.</p>
<p>Not so with Linux&#8217; various UNiXey filesystems.</p>
<p>After excising the error in the Makefile, the redness and swelling cleared and Linux builds started happening again. Unfortunately, and this is where I ask for help, the MochiKit test suite didn&#8217;t run on Linux. The only info we had to debug it with was a <a href="http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1181235578.10291.gz&amp;fulltext=1">cryptic</a>:</p>
<blockquote><p><span style="font-family:sans-serif;">*** 3605 INFO Running /tests/dom/tests/mochitest/ajax/mochikit/test_Mochikit.html&#8230;<br />
*** 3606 ERROR FAIL | Test timed out. |<br />
</span></p></blockquote>
<p>The MochiKit suite is still in there, merely removed from the Makefile for the time-being until we can figure this out. Astute readers might look at the above filename, and think, &#8220;hey, there&#8217;s a lower-case &#8216;k&#8217; in there.&#8221; No luck, that&#8217;s the filename. I tried increasing the timeout on the tests with the very busy <a href="http://blog.mozilla.com/rob-sayre">Rob Sayre</a>&#8217;s instructions with no luck. Attempts to run the suite on a local Fedora Core 6 VM provided no help, failing to run MochiKit the first run through, then passing it on a subsequent run.</p>
<p>Apologies to Robert O&#8217;Callahan (<a href="http://weblogs.mozillazine.org/roc/">roc</a>) and the <a href="http://wiki.mozilla.org/Sheriff_Schedule">sheriffs</a> for leaving the Linux machines in that state of orangeness overnight.</p>
<p>PS, Lesson learned: Check Linux first.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2007/06/08/what-a-week/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>(left) Justified and Ancient</title>
		<link>http://antennasoft.net/robcee/2007/03/26/left-justified-and-ancient/</link>
		<comments>http://antennasoft.net/robcee/2007/03/26/left-justified-and-ancient/#comments</comments>
		<pubDate>Mon, 26 Mar 2007 18:03:39 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2007/03/26/left-justified-and-ancient/</guid>
		<description><![CDATA[(with apologies to the KLF&#8230;)
I saw this note on Schrep&#8217;s blog this afternoon and remembered, that last week was actually kind of a milestone for me. With dbaron&#8217;s help. I made my way onto a 4-digit bug – the venerable #3247 &#8211; counters in css-generated content.
David Baron wrote the original tests (which you can see [...]]]></description>
			<content:encoded><![CDATA[<p>(with apologies to the <a href="http://en.wikipedia.org/wiki/The_KLF">KLF</a>&#8230;)</p>
<p>I saw this <a href="http://weblogs.mozillazine.org/schrep/archives/2007/03/oldest_bug_fixed_in_ff2.html">note</a> on Schrep&#8217;s blog this afternoon and remembered, that last week was actually kind of a milestone for me. With <a href="http://dbaron.org/log/current">dbaron</a>&#8217;s help. I made my way onto a 4-digit bug – the venerable #<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=3247">3247</a> &#8211; counters in css-generated content.</p>
<p>David Baron wrote the original tests (which you can see at <a href="http://dbaron.org/css2.1/tests/imported-20050702/">http://dbaron.org/css2.1/tests/imported-20050702/</a> if you&#8217;re so-inclined). I wrote a little python to convert the tests into something that could be run with <a href="http://developer.mozilla.org/en/docs/Creating_reftest-based_unit_tests">reftest</a> a few months ago. I was looking for something to use with it and they seemed like a worthy candidate.</p>
<p>Fast-forward to last week, and TimR asked me about those tests I&#8217;d converted. So, I dug &#8216;em out, popped them on my people <a href="http://people.mozilla.org/~rcampbell/reftest/css/">account</a> and forwarded a note to David. After some cleanup (there were a couple of errors in there that my conversion conveniently included for us), they are now living happily at in <a href="http://lxr.mozilla.org/seamonkey/source/layout/reftests/counters/">http://lxr.mozilla.org/seamonkey/source/layout/reftests/counters/</a>. You can see their results running on every checkin on the Firefox Tinderbox <a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=Firefox">page</a>.</p>
<p>PS, kudos to Kray2, Nickolay, Callek and others for the &#8220;Creating Reftest-based unit tests&#8221; page on MDC.</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/Code" rel="tag">Code</a>, <a href="http://www.technorati.com/tag/Firefox" rel="tag">Firefox</a>, <a href="http://www.technorati.com/tag/Quality" rel="tag">Quality</a>, <a href="http://www.technorati.com/tag/Testing" rel="tag">Testing</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2007/03/26/left-justified-and-ancient/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>it&#8217;s the little things</title>
		<link>http://antennasoft.net/robcee/2007/02/07/its-the-little-things/</link>
		<comments>http://antennasoft.net/robcee/2007/02/07/its-the-little-things/#comments</comments>
		<pubDate>Wed, 07 Feb 2007 17:46:53 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Build]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2007/02/07/its-the-little-things/</guid>
		<description><![CDATA[That little page was my first view of the new testing buildbots living in the Mozilla colocation facility. It may not look like much yet, but it&#8217;s overflowing with potential. What does it do, you wonder? It runs test-enabled builds, then runs make check, reftest and mochitest. From the three columns, you might infer that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://antennasoft.net/robcee/wp-content/uploads/2007/02/Picture%202.png" onclick="window.open('http://antennasoft.net/robcee/wp-content/uploads/2007/02/Picture%202.png','popup','width=346,height=198,scrollbars=no,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=yes,left=0,top=0');return false"><img src="http://antennasoft.net/robcee/wp-content/uploads/2007/02/Picture%202-tm.jpg" height="100" width="174" border="2" align="left" hspace="4" vspace="4" alt="Picture 2" /></a>That little page was my first view of the new testing buildbots living in the Mozilla colocation facility. It may not look like much yet, but it&#8217;s overflowing with potential. What does it do, you wonder? It runs test-enabled builds, then runs <a href="http://developer.mozilla.org/en/docs/Mozilla_automated_testing">make check</a>, reftest and mochitest. From the three columns, you might infer that it does this for the three major platforms, Windows XP, Linux and Mac OS X — or at least it will when the Xserve arrives at the colo.</p>
<p>You can see the results reporting to the <a href="http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTest">MozillaTest</a> tree on <a href="http://tinderbox.mozilla.org/showbuilds.cgi">tinderbox.mozilla.org</a>. Currently, the two operational buildbots are &#8220;linref test&#8221; and &#8220;winxp test&#8221; (don&#8217;t worry, I have an exciting naming scheme all picked-out and ready for action – stay tuned!). Check out the logs for examples of what the make check, reftest and mochitest reports look like. If winxp is orange or burning, it&#8217;s because we still have a couple of issues to work out. Some of the reftests are failing on that platform and dbaron is writing a modification to the manifest language so we can mark individual tests as failures on specific platforms. The other, more troubling bug is a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=369377">debugger prompt</a> I can&#8217;t seem to get rid of. Neither <a href="http://developer.mozilla.org/en/docs/Debugging_Mozilla_on_Windows_FAQ">setting</a> XPCOM_DEBUG_BREAK to &#8220;warn&#8221; nor adding a registry entry for windbgdlg (thanks timeless!) seemed to work. I&#8217;m hoping the problem will just go away with the addition of more RAM, but that seems unlikely.</p>
<p>On my todo list, I have some work to do to get the different tests reporting rolled-up stats to the tinderbox. We&#8217;ll be able to see why a tree is orange instead of looking through the full logs. There are a couple of little profile writing things I can make better. At some point, soon, I&#8217;m going to work with <a href="http://bclary.com/">Bob Clary</a> on getting the JS tests automated and reporting under this system. Then there&#8217;s going to be some work getting Alice Nodelman&#8217;s performance testing framework running under it and reporting to the tinderboxes. I&#8217;m also trying to setup a leak-testing build to replace the Tinderbox that just stopped working and weaseled its way to the front of my to-do list. Ultimately, I&#8217;m hoping we can have these on a more visible tinderbox, but they need to be stabilized first. Oh, and I need to check these configuration changes in and flesh out the very skimpy <a href="http://wiki.mozilla.org/BuildbotTestfarm">docs</a> I wrote while putting this together.</p>
<p>Whew, this blog post would&#8217;ve been much shorter if I&#8217;d just written it last week when I had that one little picture.</p>
<p>Hopefully, having regularly running and reporting tests will encourage developers to write more of them. Individually, unit tests are tiny and kind of uninteresting. When you&#8217;ve got thousands of them running constantly though, then you&#8217;ve got something.</p>
<p>PS, special thanks to everybody who helped out along the way to get this stuff running. To the IT crew (mrz, justdave, aravind, justin, &#8230;) for putting up with the constant bug-filing back-and-forth for VMs I needed or VMs I&#8217;d busted, the tireless efforts of the build team (Rob Helmer and J. Paul Reed) taking time away from their real jobs to setup the linux reference VM, Rob Sayre and Dave Baron for their excellent test frameworks, Jeff Walden for the js http server, Ben Hearsum for his buildbot work and Dave L. for getting the ball rolling many months ago. All the developers who wrote tests&#8230; I&#8217;m being played off the stage&#8230; thanks Mom!</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/Build" rel="tag">Build</a>, <a href="http://www.technorati.com/tag/Computing" rel="tag">Computing</a>, <a href="http://www.technorati.com/tag/Firefox" rel="tag">Firefox</a>, <a href="http://www.technorati.com/tag/Software" rel="tag">Software</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2007/02/07/its-the-little-things/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OS X fork: Resource temporarily unavailable</title>
		<link>http://antennasoft.net/robcee/2006/07/28/os-x-fork-resource-temporarily-unavailable/</link>
		<comments>http://antennasoft.net/robcee/2006/07/28/os-x-fork-resource-temporarily-unavailable/#comments</comments>
		<pubDate>Fri, 28 Jul 2006 04:00:43 +0000</pubDate>
		<dc:creator>robcee</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://antennasoft.net/robcee/2006/07/28/os-x-fork-resource-temporarily-unavailable/</guid>
		<description><![CDATA[I ran into this today while trying to get a working build of XULRunner on OS X. I&#8217;ve seen this error before while doing browser builds but didn&#8217;t bother to do any searches on the source of the problem. Instead I just killed applications and dashboard widgets and went on my way. Today I decided [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into this today while trying to get a working build of XULRunner on OS X. I&#8217;ve seen this error before while doing browser builds but didn&#8217;t bother to do any searches on the source of the problem. Instead I just killed applications and dashboard widgets and went on my way. Today I decided I needed to fix it and dug up this little <a href="http://chrismiles.livejournal.com/11186.html">gem</a>. Upping my maxprocperuid to 256 seemed to do the trick. Also, that is a really great picture of <a href="http://chrismiles.livejournal.com/">chrismiles</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://antennasoft.net/robcee/2006/07/28/os-x-fork-resource-temporarily-unavailable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
