<?xml version="1.0"?>
<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns="http://purl.org/rss/1.0/"
>
<channel rdf:about="http://planet.mozilla.org/">
	<title>Planet Mozilla</title>
	<link>http://planet.mozilla.org/</link>
	<description>Planet Mozilla - http://planet.mozilla.org/</description>

	<items>
		<rdf:Seq>
			<rdf:li rdf:resource="http://boomswaggerboom.wordpress.com/?p=240" />
			<rdf:li rdf:resource="http://blog.songbirdnest.com/?p=375" />
			<rdf:li rdf:resource="http://blog.mozilla.com/security/2008/05/09/clarification-on-vietnamese-langauage-pack-compromise/" />
			<rdf:li rdf:resource="http://ascher.ca/blog/2008/05/09/inames-any-hope/" />
			<rdf:li rdf:resource="http://home.kairo.at/blog/2008-05/dynamic_default_window_size_for_seamonke" />
			<rdf:li rdf:resource="http://ascher.ca/blog/2008/05/09/contagious-user-interface-concepts/" />
			<rdf:li rdf:resource="http://www.bitstampede.com/?p=364" />
			<rdf:li rdf:resource="http://hackademix.net/2008/05/09/misterious-ghost-stories/" />
			<rdf:li rdf:resource="http://ccgi.standard8.plus.com/blog/archives/13" />
			<rdf:li rdf:resource="http://www.numenity.org/blog/?p=175" />
			<rdf:li rdf:resource="http://blog.mozilla.com/ftr/2008/05/08/vietnamese-language-pack-faq/" />
			<rdf:li rdf:resource="http://weblogs.mozillazine.org/dmose/archives/2008/05/thunderbird_30alpha1_status_br.html" />
			<rdf:li rdf:resource="http://starkravingfinkle.org/blog/?p=259" />
			<rdf:li rdf:resource="http://starkravingfinkle.org/blog/?p=258" />
			<rdf:li rdf:resource="http://ejohn.org/blog/processingjs/" />
			<rdf:li rdf:resource="http://weblogs.mozillazine.org/preed/2008/05/its_all_about_the_chases.html" />
			<rdf:li rdf:resource="http://clarkbw.net/blog/?p=329" />
			<rdf:li rdf:resource="http://oduinn.com/2008/05/08/we-have-how-many-machines-and-whatdy-mean-its-not-enough/" />
			<rdf:li rdf:resource="http://autological.wordpress.com/?p=56" />
			<rdf:li rdf:resource="http://browsing.justdiscourse.com/2008/05/08/the-trouble-with-google-docs-and-how-to-fix-it/" />
			<rdf:li rdf:resource="http://www.bitstampede.com/?p=363" />
			<rdf:li rdf:resource="http://weblogs.mozillazine.org/calendar/2008/05/may_8_2008_lightningsunbird_st.html" />
			<rdf:li rdf:resource="http://ccgi.standard8.plus.com/blog/archives/12" />
			<rdf:li rdf:resource="http://www.bitstampede.com/?p=367" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-2758194679605810173.post-6144794588507170402" />
			<rdf:li rdf:resource="http://oduinn.com/2008/05/07/we-have-how-many-machines/" />
			<rdf:li rdf:resource="http://whacked.net/?p=961" />
			<rdf:li rdf:resource="http://davidwboswell.wordpress.com/?p=125" />
			<rdf:li rdf:resource="http://blog.mozilla.com/security/2008/05/07/compromised-file-in-vietnamese-language-pack-for-firefox-2/" />
			<rdf:li rdf:resource="http://alex.polvi.net/?p=222" />
			<rdf:li rdf:resource="http://browsing.justdiscourse.com/2008/05/07/browser-bits-and-bobs-for-may-5-2008/" />
			<rdf:li rdf:resource="http://weblogs.mozillazine.org/rumblingedge/archives/2008/05/bug_day_on_thursday_08_may_2008.html" />
			<rdf:li rdf:resource="http://www.kaply.com/weblog/2008/05/07/activities-is-out-of-the-sandbox/" />
			<rdf:li rdf:resource="http://benjamin.smedbergs.us/blog/2008-05-07/madeleine-young-smedberg/" />
			<rdf:li rdf:resource="http://www.bitstampede.com/?p=361" />
			<rdf:li rdf:resource="tag:blogger.com,1999:blog-5947958124349996271.post-2748562480742774576" />
			<rdf:li rdf:resource="http://hackademix.net/2008/05/07/mass-attack-updates/" />
			<rdf:li rdf:resource="http://ejohn.org/blog/whats-next-in-jquery-and-javascript/" />
			<rdf:li rdf:resource="http://www.bitstampede.com/?p=362" />
			<rdf:li rdf:resource="http://blog.mozilla.com/seth/2008/05/06/the-team-writing-about-mozillas-community-survey-results/" />
			<rdf:li rdf:resource="http://blog.mozilla.com/communitysurveys/2008/05/06/all-about-sumo-2/" />
			<rdf:li rdf:resource="http://weblogs.mozillazine.org/dmose/archives/2008/05/more_possible_extension_fodder.html" />
			<rdf:li rdf:resource="http://blog.mozilla.com/dolske/2008/05/06/another-look-at-safebrowsing-warnings/" />
			<rdf:li rdf:resource="http://weblogs.mozillazine.org/dmose/archives/2008/05/thunderbird_extension_idea_do.html" />
			<rdf:li rdf:resource="http://dougt.wordpress.com/?p=214" />
			<rdf:li rdf:resource="http://blog.mozilla.com/metrics/2008/05/06/firefox-worldwide-market-share-update/" />
			<rdf:li rdf:resource="http://quality.mozilla.org/1605 at http://quality.mozilla.org" />
			<rdf:li rdf:resource="http://blog.songbirdnest.com/?p=372" />
			<rdf:li rdf:resource="http://blog.vlad1.com/?p=55" />
			<rdf:li rdf:resource="http://www.bitstampede.com/?p=360" />
			<rdf:li rdf:resource="http://blog.johnath.com/?p=118" />
			<rdf:li rdf:resource="http://developer.mozilla.org/devnews/?p=242" />
			<rdf:li rdf:resource="http://www.silfreed.net/589 at http://www.silfreed.net" />
			<rdf:li rdf:resource="http://www.dria.org/wordpress/?p=635" />
			<rdf:li rdf:resource="http://www.cesaroliveira.net/?p=10" />
			<rdf:li rdf:resource="urn:md5:e6ab293210a204b6508d3b1a1d8b2f7b" />
			<rdf:li rdf:resource="http://avatraxiom.livejournal.com/83095.html" />
			<rdf:li rdf:resource="http://blog.mozilla.com/sumo/2008/05/05/minutes-of-weekly-meeting-2008-05-05/" />
			<rdf:li rdf:resource="http://blog.mozilla.com/jay/2008/05/05/redesigning-qmo.../" />
			<rdf:li rdf:resource="http://blog.mozilla.com/metrics/2008/05/05/firefox-worldwide-market-share-was-there-a-change/" />
			<rdf:li rdf:resource="http://whacked.net/?p=959" />
			<rdf:li rdf:resource="http://dougt.wordpress.com/?p=213" />
			<rdf:li rdf:resource="http://blog.mozilla.com/jay/2008/05/05/mozilla-on-the-street-interviews/" />
			<rdf:li rdf:resource="http://steelgryphon.com/blog/?p=111" />
			<rdf:li rdf:resource="http://hecker.wordpress.com/?p=180" />
			<rdf:li rdf:resource="http://hecker.wordpress.com/?p=179" />
			<rdf:li rdf:resource="http://www.openkomodo.com/53 at http://www.openkomodo.com" />
			<rdf:li rdf:resource="http://whacked.net/?p=958" />
			<rdf:li rdf:resource="urn:md5:2ab313ee22ce7b08003e22acdd00257d" />
			<rdf:li rdf:resource="http://www.silfreed.net/588 at http://www.silfreed.net" />
			<rdf:li rdf:resource="http://mgallibr.wordpress.com/?p=6" />
			<rdf:li rdf:resource="http://home.kairo.at/blog/2008-05/weekly_status_report_w18_2008" />
			<rdf:li rdf:resource="http://lpsolit.wordpress.com/?p=24" />
			<rdf:li rdf:resource="http://weblogs.mozillazine.org/calendar/2008/05/may_5_2008_lightningsunbird_st.html" />
			<rdf:li rdf:resource="http://ejohn.org/blog/pure-javascript-html-parser/" />
		</rdf:Seq>
	</items>
</channel>

<item rdf:about="http://boomswaggerboom.wordpress.com/?p=240">
	<title>Josh Aas: Gecko 1.9.0 Key Handling Postmortem</title>
	<link>http://boomswaggerboom.wordpress.com/2008/05/09/gecko-190-key-handling-postmortem/</link>
	<content:encoded>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;If you’ve participated in or followed Mozilla’s Firefox 3 development over the past month you’re probably aware that we had a bunch of issues with key handling come up at the very end of our development cycle. In the interest of giving others an opportunity to learn from our mistakes and to generally communicate what happened, I’ve agreed to write up a summary of the development team’s postmortem discussion about our recent key issues.&lt;/p&gt;
&lt;p&gt;“Key hell” started when I fixed bug 398514, a significant rewrite of our key event flow, and Masayuki Nakano started fixing a major bug concerning key command event mapping on international keyboard layouts (more on Masayuki’s fix later). Prior to my patch we let Mac OS X match keyboard commands to native menu items and then executed associated DOM command nodes based on the operating system matching. The up side of that is that the operating system does all the mapping of key commands to their menu items, the down side is that nothing but the command node associated with the menu item ever sees the event. After my patch we ignored the operating system’s invocation of native menu items in favor of allowing the key event to flow normally through Gecko. This fixed a lot of important bugs, I can’t believe we got away with pigeon-holing key equiv events for so long. The problem is that we were now in charge of mapping key events to their commands. For US English this is pretty simple mapping and it works without special treatment, I didn’t notice any problems because I use US English. When I tested with other keyboard layouts I tested text in text fields - I didn’t test many keyboard commands. My bad #1, but I wasn’t aware of the fact that key commands have certain types of complex mappings under different keyboard layouts and circumstances.&lt;/p&gt;
&lt;p&gt;Coincidentally, this problem came up for different reasons on Windows and Linux right before I exposed it on Mac OS X. Masayuki had already started working on a fix because of Windows and Linux. By the time we had sorted through bug reports and figured out what was going on with non-US-English keyboard commands on Mac OS X Masayuki was half way to a fix. This ordeal would have been much worse without that stroke of good luck. Masayuki is a talented guy that understands far more about international keyboard layouts and input than I do, I was pretty happy he was already on the problem.&lt;/p&gt;
&lt;p&gt;Masayuki’s patch(es) attempted to solve a very complex problem. The problem has a huge number of edge cases under different keyboard layouts and the process of finding and fixing cases that we hadn’t covered yet dragged out until today. I don’t think any particular engineer is to blame for this, the extended timeline for fixing regressions was the result of late detection and a lack of automated test coverage.&lt;/p&gt;
&lt;p&gt;We should have discovered this problem much earlier than we did. I suspect that we finally discovered it as a result of heavy beta usage, especially among international users. User testing is great but it is a perk - not something to be relied upon. We also would have found out about this earlier had I committed my major patch for bug 398514 earlier. We had good reasons for making that change so late, but having good reasons doesn’t shield us from the consequences. At best it just makes the consequences easier to swallow.&lt;/p&gt;
&lt;p&gt;The other major factor contributing to this debacle was a lack of automated testing until too late. With a decent test suite we could have found out about most of this much earlier. Even after we found out about the problem it took us too long to get tests in place to aid in avoiding regressions in the fix process. Eventually Roc wrote up a great test system (based on synthesized native events) and that has helped a lot. We’ve since added a bunch more tests to his original set and we’ll be adding many more. If you only take away one thing from all of this writing I hope it is the value of tests - we could have saved a huge amount of time by getting those in place earlier.&lt;/p&gt;
&lt;p&gt;There was one other last-minute problem with key handling that got confused with the situation I described above, though it is really a completely separate issue. Mac OS X sends key events into Cocoa apps via confusing and inconsistent paths (performKeyEquivalent: vs. keyDown:, either or both in different orders, plus sometimes we don’t get key up events via keyUp:, sometimes we get key up events but they come in via a second call to performKeyEquivalent:, what a mess Apple!). The circumstances that led to issues with this being a problem at the last minute were basically the same as for the other issues I described.&lt;/p&gt;
&lt;p&gt;A big thank-you goes out to Robert O’Callahan, Karl Tomlinson, Matthew Gregan, and Masayuki for working so hard to get this situation under control over the past week. Everyone worked together really well, it was some impressive teamwork.&lt;/p&gt;
&lt;img src=&quot;http://feeds.wordpress.com/1.0/categories/boomswaggerboom.wordpress.com/240/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;img src=&quot;http://feeds.wordpress.com/1.0/tags/boomswaggerboom.wordpress.com/240/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/boomswaggerboom.wordpress.com/240/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/boomswaggerboom.wordpress.com/240/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/boomswaggerboom.wordpress.com/240/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/boomswaggerboom.wordpress.com/240/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/boomswaggerboom.wordpress.com/240/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/boomswaggerboom.wordpress.com/240/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/boomswaggerboom.wordpress.com/240/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/boomswaggerboom.wordpress.com/240/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/boomswaggerboom.wordpress.com/240/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/boomswaggerboom.wordpress.com/240/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=boomswaggerboom.wordpress.com&amp;amp;blog=947345&amp;amp;post=240&amp;amp;subd=boomswaggerboom&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2008-05-09T21:30:43+00:00</dc:date>
	<dc:creator>Josh Aas</dc:creator>
</item>
<item rdf:about="http://blog.songbirdnest.com/?p=375">
	<title>Songbird: Help Make Songbird Better!</title>
	<link>http://feeds.songbirdnest.com/~r/songbird-blog/~3/287093875/</link>
	<content:encoded>&lt;p&gt;&lt;img src=&quot;http://files.songbirdnest.com/surveybird.png&quot; alt=&quot;surveybird.png&quot; border=&quot;0&quot; class=&quot;s3-img&quot; /&gt;&lt;br /&gt;
We’ve been looking for ways to get feedback from active Songbird users because your input helps us make Songbird better.  In the next release we’ll be asking users if you’d be willing to take a quick, anonymous survey about the product.  The details that follow will only apply to users running 0.6 Final and does not impact nightly users.&lt;/p&gt;
&lt;p&gt;We didn’t want this to be a surprise to the community so we wanted to share all the details upfront and be as transparent as possible.  To be totally honest, we don’t like asking users to take a survey any more than most people like being asked but we felt like it was critical to the success of the project to gauge the communities feedback to some open questions we have been basing some assumptions upon.  &lt;/p&gt;
&lt;p&gt;The data we collect will not be shared with 3rd parties.  We are simply looking to have more data about what users want in order to help us prioritize implementing the features that you’re asking for.  It’s really that simple, cross my heart and hope to die.  In the future we might open up a survey on this blog to a larger audience but we wanted to start qualifying some of our assumptions against people who are current, active users of our latest release.&lt;/p&gt;
&lt;p&gt;Since we are specifically interested in feedback from Windows, Linux and Mac users who have spent some time running Songbird here’s what it’s going to take to trigger the dialog asking you if you are willing to take the active user survey:&lt;/p&gt;
&lt;p&gt;* You will need to be running Songbird 0.6 Final, and&lt;br /&gt;
* Have launched the application more than three times, and&lt;br /&gt;
* Run the application for at least 30 minutes in total, and&lt;br /&gt;
* Satisfied all of these requirements before June 30, 2008&lt;/p&gt;
&lt;p&gt;If the above described conditions are satisfied, the next time you launch Songbird you will see a dialog like this, asking you if you’re willing to take the active user survey:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://files.songbirdnest.com/survey.dialog.png&quot; alt=&quot;survey.dialog.png&quot; border=&quot;0&quot; class=&quot;s3-img&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The active user survey will end on July 1st, 2008.  If you elect to take the survey a tab in Songbird will open the website hosting the questions (the survey itself will be hosted on &lt;a href=&quot;http://SurveyMonkey.com&quot;&gt;SurveyMonkey.com&lt;/a&gt;.)  If you elect not to take the survey the application will continue to operate as if nothing happened. &lt;img src=&quot;http://blog.songbirdnest.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Please note: we will only ask users if they are willing to take the active user survey once.  If you say no we will not nag you again and we will set a preference in your profile indicating that you didn’t want to take the survey.  In the future, assuming you don’t nuke your profile and that we elect to run another survey in the application, we’ll respect that choice and not nag you again.  No stats regarding your preference about opting-in or out of the survey will be shared with us, it’s a local setting on your machine and we are not transmitting that data.&lt;/p&gt;
&lt;p&gt;Finally, Windows users who uninstall Songbird 0.6 Final will note that going forward there is an option to give us feedback regarding why you uninstalled the application.  If you elect to take the uninstaller feedback questionnaire your default browser will launch and open the website hosting the questions (the questions will be hosted on &lt;a href=&quot;http://SurveyMonkey.com&quot;&gt;SurveyMonkey.com&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;We want to make clear that we respect your right to choose whether you want to provide us with feedback.  Our goal is to simply make Songbird better and we really appreciate hearing from you.  Thanks for considering to take the survey and our most sincere apologies to anyone who might take issue with this.  We’re open to your feedback including on this subject!  Feel free to share your thoughts with us in the comments below or via email, you can reach us at: customer [ a t ] songbirdnest.com.  BTW for those wondering Songbird 0.6 will be out in early June!&lt;/p&gt;
&lt;img src=&quot;http://feeds.songbirdnest.com/~r/songbird-blog/~4/287093875&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content:encoded>
	<dc:date>2008-05-09T21:10:14+00:00</dc:date>
	<dc:creator>raffel</dc:creator>
</item>
<item rdf:about="http://blog.mozilla.com/security/2008/05/09/clarification-on-vietnamese-langauage-pack-compromise/">
	<title>Mozilla Security: Clarification on Vietnamese Langauage Pack Compromise</title>
	<link>http://blog.mozilla.com/security/2008/05/09/clarification-on-vietnamese-langauage-pack-compromise/</link>
	<content:encoded>&lt;p&gt;There has been a lot of confusion in the press about the impact of the compromised Vietnamese language pack.  Asa put together an excellent blog post walking through some of the confusion and explaining the real impact for users.&lt;/p&gt;
&lt;p&gt;Read Asa’s post here: &lt;a href=&quot;http://blog.mozilla.com/ftr/2008/05/08/vietnamese-language-pack-faq/&quot;&gt;http://blog.mozilla.com/ftr/2008/05/08/vietnamese-language-pack-faq/ &lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T18:17:24+00:00</dc:date>
	<dc:creator>Window Snyder</dc:creator>
</item>
<item rdf:about="http://ascher.ca/blog/2008/05/09/inames-any-hope/">
	<title>David Ascher: inames: any hope?</title>
	<link>http://ascher.ca/blog/2008/05/09/inames-any-hope/</link>
	<content:encoded>&lt;p&gt;So I have this nice short iname that I registered last year when I was poking around OpenID and the like.  That registration is about to expire, and I think I have yet to use it except for testing purposes, in part because there’s no way when being asked for an OpenID to know whether the server supports inames or not.  In addition to being just shorter hence cooler, I can’t even remember the benefits of inames over traditional URLs.  I guess I’ll let it lapse…&lt;/p&gt;
&lt;p&gt;Somebody fix identity.  Please?&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T17:07:47+00:00</dc:date>
	<dc:creator>david</dc:creator>
</item>
<item rdf:about="http://home.kairo.at/blog/2008-05/dynamic_default_window_size_for_seamonke">
	<title>Robert Kaiser: Dynamic Default Window Size For SeaMonkey</title>
	<link>http://home.kairo.at/blog/2008-05/dynamic_default_window_size_for_seamonke</link>
	<content:encoded>For years, we have read comments about the default browser window size for the Mozilla suite and now SeaMonkey being sucky, as you couldn't even see the the full URL of the default start page. Even if you have a large screen, you end up with something like &quot;http://www.moz&quot; or &quot;http://www.sea&quot; in the visible part of the urlbar, depending on your platform and its UI font settings.&lt;br /&gt;
We had improved the situation somewhat in SeaMonkey by making the default window 70ch (avg char width) by 45em (line height) units, so that it's increasing with the default UI font sizes, but it was still awfully small on most current displays.&lt;br /&gt;
&lt;br /&gt;
The reason for not increasing the size more was to still support smaller screens by not making the window going offscreen and be hardly resizeable - and we didn't want to come into that situation.&lt;br /&gt;
&lt;br /&gt;
With our machines for &lt;a href=&quot;http://home.kairo.at/blog/2008-05/automated_seamonkey_testing&quot;&gt;automated testing&lt;/a&gt;, we ran into this problem in a different way: The mochitest suite runs its tests in an HTML iframe, with test summary information above it, and this made us end up with mouse events that were automatically generated to happen over elements in the iframe not being successful just because the iframe was not fully visible - the default window was too small to display it as a whole under those test summaries.&lt;br /&gt;
&lt;br /&gt;
This problem &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=432740&quot;&gt;caused a certain amount of test failures - at least on Windows&lt;/a&gt;. While we found out that increasing the height to 65em should have helped with the tests, such a default window size would get problematic on small screens.&lt;br /&gt;
&lt;br /&gt;
Looking into how Firefox does this, I realized it sets the default window size dynamically, depending on the available screen size. We now implemented this for SeaMonkey as well, though with small improvements over the Firefox solution: While (judging by reading &lt;a href=&quot;http://mxr.mozilla.org/mozilla/source/browser/base/content/browser.js#755&quot;&gt;their code&lt;/a&gt;, I couldn't test) default Firefox windows probably grow out of the window when the screen is higher than 600 pixels but slimmer than 994 (which can happen e.g. on a rotated 800x600 or 1024x768 screen, but is surely rare), the SeaMonkey code should always make the default window fit into the screen size. On screens with 600px or less in height, we switch to a maximized window, just like Firefox, and on wide screens (over 1440px in our case) we also take only half the width, suggesting side-by-side page view.&lt;br /&gt;
&lt;br /&gt;
If someone happens to have such a strange screen configuration that is higher than 600px but not at least 994px wide, I'd encourage you to test my assumption of Firefox growing out of the screen by default and filing a bug if you can confirm - I'm sure Firefox developers will be happy to fix that edge case.&lt;br /&gt;
&lt;br /&gt;
For everybody else, enjoy upcoming SeaMonkey 2 nightlies and releases making better use of your screen by default when starting up, fixing a long-time-existing problem we heard complaints about every now and then.&lt;br /&gt;
&lt;br /&gt;
Finally, if you're interested in the unit test boxes being visible on the main SeaMonkey tinderbox waterfall page, I'll do that move soon, probably on Monday, as now all available tests on both machines are passing without using any local patches.</content:encoded>
	<dc:date>2008-05-09T17:05:05+00:00</dc:date>
	<dc:creator>KaiRo</dc:creator>
</item>
<item rdf:about="http://ascher.ca/blog/2008/05/09/contagious-user-interface-concepts/">
	<title>David Ascher: Contagious user interface concepts</title>
	<link>http://ascher.ca/blog/2008/05/09/contagious-user-interface-concepts/</link>
	<content:encoded>&lt;p&gt;Every now and then, a UI concept is so good that it becomes contagious in fascinating and frustrating ways.  I’ve run across two recently.  &lt;/p&gt;
&lt;p&gt;The first is the iPhone touch screen.  A few months ago, when I first got my iPhone, after playing with it for about 30 minutes, I went back to work on my mac, and my fingers automatically expected things like the two-finger zoom to work.  I was stunned.  Not surprisingly, that is now a feature of the new Macbook Air, and I expect it’ll be in all mac laptops.&lt;/p&gt;
&lt;p&gt;The second occurred to me this morning.  I was using ssh (a command line tool) to log in to a variety of machines with cryptic addresses, and I knew that I had to start looking for a place to write down those username/hostname combinations.  At the same time, I realized that what I really wanted was the awesomebar for my terminal window.  The notion that “the computer” should just remember what you’ve done no matter where, because past behavior is the best predictor of future behavior, and that we can implement that quite well with simple mechanisms like keeping a history and doing some math on that history, is a contagious idea.  (Note to unix weenies: I know that with the right magic i can get some pseudo-awesomebar within bash.  Not good enough!  I want bookmarks, tags, weave!)&lt;/p&gt;
&lt;p&gt;Naturally, it applies to Thunderbird as well.  I routinely go back to “the same” emails.  We should find a way to make that as obvious and invisible as Firefox 3 does for web pages.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T16:30:15+00:00</dc:date>
	<dc:creator>david</dc:creator>
</item>
<item rdf:about="http://www.bitstampede.com/?p=364">
	<title>Eric Shepherd: Firefox 3: Why do I love thee?  The third way.</title>
	<link>http://www.bitstampede.com/2008/05/09/firefox-3-wh-do-i-love-thee-3/</link>
	<content:encoded>&lt;p&gt;I have a dark, dirty little secret.  For the first year I worked at Mozilla, I did nearly all of my editing of Mozilla Developer Center documentation using… Safari.&lt;/p&gt;
&lt;p&gt;I wasn’t proud of it.  In fact, whenever I was visiting coworkers, I would bravely do my work in Firefox.&lt;/p&gt;
&lt;p&gt;But it wasn’t easy.  Firefox 2 had some really frustrating text layout issues that made heavy editing like what I do on a daily basis nearly impossible.  The worst problem was that as I typed, the typing caret would drift, winding up farther and farther out of alignment with where the text insertion point really was.  Eventually, editing became impossible just because I had no idea where I was actually typing.  It looked a lot like this much of the time:&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.bitstampede.com/pics/missing-h-on-with.png&quot; alt=&quot;&quot; height=&quot;401&quot; class=&quot;aligncenter&quot; width=&quot;659&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;See how the word “with” is cut off, with only part of the “h” drawn?  That’s a result of the insertion point slowly sliding its way to the left as I type.  It got worse and worse the more I typed, until finally the edit box was so messed up I couldn’t make heads or tails of it.&lt;/p&gt;
&lt;p&gt;With the new Cairo rendering engine used in Firefox 3, all those problems are gone.  Text is crisp and clear, and the strange problems with text overlapping or the typing caret being in the wrong place are all fixed.&lt;/p&gt;
&lt;p&gt;For a guy that lives and dies in text editing fields, that’s a huge, huge deal.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T13:00:53+00:00</dc:date>
	<dc:creator>sheppy</dc:creator>
</item>
<item rdf:about="http://hackademix.net/2008/05/09/misterious-ghost-stories/">
	<title>Giorgio Maone: Misterious Ghost Stories</title>
	<link>http://hackademix.net/2008/05/09/misterious-ghost-stories/</link>
	<content:encoded>&lt;p&gt;&lt;img src=&quot;http://hackademix.net/wp-content/uploads/2008/05/ghost.jpg&quot; style=&quot;float: right;&quot; align=&quot;right&quot; alt=&quot;Casper on Paypal&quot; title=&quot;Casper on Paypal&quot; /&gt;I would be very interested in learning some technical details of Manuel Caballero’s talk at BlueHat, titled &lt;a href=&quot;http://technet.microsoft.com/en-us/security/cc405107.aspx#EHD&quot; target=&quot;_blank&quot; rel=&quot;nofollow external&quot;&gt;A Resident in My Domain&lt;/a&gt;, but so far news are very scarce, fragmented and contradictory.&lt;/p&gt;
&lt;p&gt;Its abstract is intriguing:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h4&gt;A Resident in My Domain&lt;/h4&gt;
&lt;p&gt;Do you believe in ghosts? Imagine an invisible script that silently follows you while you surf, even after changing the URL 1,000 times and you are feeling completely safe. Now imagine that the ghost is able to see everything you do, including what you are surfing and what you are typing (passwords included), and even guess your next move.&lt;/p&gt;
&lt;p&gt;No downloading required, no user confirmation, no ActiveX. In other words: no strings attached. We will examine the power of a resident script and the power of a global cross-domain. Also, we will go through the steps of how to find cross-domains and resident scripts.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Then we’ve got two quite &lt;a href=&quot;http://blogs.technet.com/bluehat/archive/2008/05/06/can-i-interest-you-in-a-glass-of-berry-blue-kool-aid-a-recap-of-bluehat-v7.aspx&quot; target=&quot;_blank&quot; rel=&quot;nofollow external&quot;&gt;reticent&lt;/a&gt; &lt;a href=&quot;http://blogs.zdnet.com/security/?p=1078&quot; target=&quot;_blank&quot; rel=&quot;nofollow external&quot;&gt;posts&lt;/a&gt;  by  Nate McFeters, who was there but &lt;a href=&quot;http://talkback.zdnet.com/5208-12691-0.html?forumID=1&amp;amp;threadID=47358&amp;amp;messageID=882431&amp;amp;start=0&quot; target=&quot;_blank&quot; rel=&quot;nofollow external&quot;&gt;pretends&lt;/a&gt; he doesn’t remember well enough and/or he can’t disclose such an atomic bomb.&lt;/p&gt;
&lt;p&gt;There’s some discussion at &lt;a href=&quot;http://www.tssci-security.com/archives/2008/05/07/resident-scripts-and-global-cross-domain/&quot; rel=&quot;nofollow external&quot;&gt;TSSCI&lt;/a&gt;, but it adds more questions than answers: the article devises similarities with two distinct &lt;strong&gt;old and fixed&lt;/strong&gt; bugs, &lt;a href=&quot;http://ha.ckers.org/blog/20061019/ie60-and-ie70-vulnerable-to-complete-cross-domain-leakage/&quot; target=&quot;_blank&quot; rel=&quot;nofollow external&quot;&gt;the nastier affecting IE&lt;/a&gt; and &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=382686&quot; target=&quot;_blank&quot; rel=&quot;nofollow external&quot;&gt;the other Firefox&lt;/a&gt;; some comments speculate about an IE7 only, possibly patched, vulnerability; but why so much secretiveness if it was already fixed?&lt;br /&gt;
Nate, on the other hand, wrote that this is &lt;cite&gt;“a horribly serious issue that affects all browsers and is currently not fixed on any of them”&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;Direct inquiries in security circles I’m member of did not bring anything less ectoplasmic on the table.&lt;/p&gt;
&lt;p&gt;Therefore, all the juice we’ve got so far is a couple of photos authorizing only the following statements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://content.zdnet.com/2347-12691_22-200400-200435.html?seq=34&quot; target=&quot;_blank&quot; rel=&quot;nofollow external&quot;&gt;It is scary&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;It has something to do with JavaScript and  &lt;a href=&quot;http://content.zdnet.com/2347-12691_22-200400-200433.html?seq=32&quot; target=&quot;nofollow external&quot;&gt;IFrames&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;It definitely works in IE7.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you can summon anything useful, you’re very welcome!&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T10:50:10+00:00</dc:date>
	<dc:creator>Giorgio</dc:creator>
</item>
<item rdf:about="http://ccgi.standard8.plus.com/blog/archives/13">
	<title>Mark Banner: Score 1 for MailNews Automated Tests</title>
	<link>http://ccgi.standard8.plus.com/blog/archives/13</link>
	<content:encoded>&lt;p&gt;After the mailnews/ and mail/ source trees reopened yesterday, I checked in a &lt;a href=&quot;http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&amp;amp;module=all&amp;amp;branch=HEAD&amp;amp;branchtype=match&amp;amp;dir=&amp;amp;file=&amp;amp;filetype=match&amp;amp;who=bugzilla%25standard8.plus.com&amp;amp;whotype=match&amp;amp;sortby=Date&amp;amp;hours=2&amp;amp;date=explicit&amp;amp;mindate=2008-05-08+11%3A29&amp;amp;maxdate=2008-05-08+14%3A13&amp;amp;cvsroot=%2Fcvsroot&quot; title=&quot;Bonsai list of patches&quot;&gt;whole bunch of patches&lt;/a&gt; that had been queued up during the freeze. Some of them had been in my development tree, some of them hadn’t.&lt;/p&gt;
&lt;p&gt;A little while later the &lt;a href=&quot;http://tinderbox.mozilla.org/SeaMonkey/&quot; title=&quot;SeaMonkey tinderboxes&quot;&gt;SeaMonkey unit test tinderbox&lt;/a&gt; was orange. This surprised me, as I was fairly sure I had run all the mailnews tests with the various patches.&lt;/p&gt;
&lt;p&gt;It turns out one of the patches (a follow up to &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=424570&quot; title=&quot;Bug 424570&quot;&gt;bug 424570&lt;/a&gt;) had caused a regression where deleting address book cards wouldn’t work properly. This was one of those cases where before we had unit tests I wouldn’t have been surprised if we hadn’t detected the regression for a while.&lt;/p&gt;
&lt;p&gt;So as Dan said, score 1 for MailNews automated tests. Although we’ve already seen regressions caught many times for the core tests, its good to see that the MailNews ones are now starting to catch regressions as well.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T10:30:40+00:00</dc:date>
	<dc:creator>Standard8</dc:creator>
</item>
<item rdf:about="http://www.numenity.org/blog/?p=175">
	<title>Paul Kim: Jordan University Mozilla Club Site</title>
	<link>http://www.numenity.org/blog/2008/05/08/jordan-university-mozilla-club-site/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://www.just.edu.jo/opensource/mozillaclub/index.html&quot;&gt;&lt;img src=&quot;http://www.numenity.org/images/jordan.jpg&quot; alt=&quot;jordan mozilla club&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I learned about the Mozilla student club at Jordan University through &lt;a href=&quot;http://www.spreadfirefox.com/node/1816&quot;&gt;Issa Mahasneh’s group on Spread Firefox&lt;/a&gt;, the online home of our Firefox marketing community. &lt;/p&gt;
&lt;p&gt;Hey Issa: this is a really well-done design. Great combination of an overall visual metaphor (a student’s desk), professionally-executed graphic design, and balance overall between your copy and imagery. Thank you for sharing this! &lt;/p&gt;
&lt;p&gt;&lt;font size=&quot;1&quot;&gt;&lt;em&gt;* For those of you who are students or interested in general in helping out with grassroots marketing projects, check out &lt;a href=&quot;http://www.spreadfirefox.com&quot;&gt;Spread Firefox&lt;/a&gt; and &lt;a href=&quot;http://blog.mozilla.com&quot;&gt;The Mozilla Blog&lt;/a&gt; to participate or just keep up with our adventures bringing Firefox to the world.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sharethis.com/item?&amp;amp;wp=2.5.1&amp;amp;publisher=1d77065b-cd6f-43c7-9830-2babe244e32c&amp;amp;title=Jordan+University+Mozilla+Club+Site&amp;amp;url=http%3A%2F%2Fwww.numenity.org%2Fblog%2F2008%2F05%2F08%2Fjordan-university-mozilla-club-site%2F&quot;&gt;ShareThis&lt;/a&gt;&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T05:57:59+00:00</dc:date>
	<dc:creator>Paul Kim</dc:creator>
</item>
<item rdf:about="http://blog.mozilla.com/ftr/2008/05/08/vietnamese-language-pack-faq/">
	<title>For the Record: Vietnamese Language Pack FAQ</title>
	<link>http://blog.mozilla.com/ftr/2008/05/08/vietnamese-language-pack-faq/</link>
	<content:encoded>&lt;p&gt;Yesterday, Mozilla &lt;a href=&quot;http://blog.mozilla.com/security/2008/05/07/compromised-file-in-vietnamese-language-pack-for-firefox-2/&quot;&gt;announced&lt;/a&gt; that one of the community built add-ons hosted by Mozilla contained remnants from a virus called W32/Xorer.A, also known as W32/Fujacks!htm. &lt;/p&gt;
&lt;p&gt;After reading several dozen articles and blog posts covering that announcement, I thought I’d post a short a follow-up here in response to a few of the misunderstandings that I came across in some of those articles and blogs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;The Vietnamese language pack add-on contained a worm or virus&lt;/em&gt;
&lt;p&gt;Headlines, by necessity, need to be short and to the point, but with security reporting, over-simplification can actually mis-inform readers. &lt;/p&gt;
&lt;p&gt;Despite what many of the headlines suggested, the compromised add-on did not contain a worm or virus. There was a virus on the developer’s computer. That virus inserted a small website-fetching script into the add-on. That script was not capable of replicating or spreading itself like a virus or a worm. It was simply telling Firefox to load unrequested advertisements. Disabling the add-on is an effective remedy for the problem script precisely because it is not a worm or virus.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;&lt;em&gt;All or most Firefox users are affected because Firefox ships with support for all languages built in&lt;/em&gt;
&lt;p&gt;This is not correct. Some computer programs that work in multiple languages contain all of the translations in a single version. That isn’t the case for Firefox. Mozilla ships a distinct Firefox version for each of the 45 supported languages. Vietnamese is not one of those supported languages yet so Firefox users who want a Vietnamese translation must seek out and install this Vietnamese language pack add-on.  Only users who installed that compromised Vietnamese language pack were exposed.&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;&lt;em&gt;16,667 Vietnamese language pack users were affected&lt;/em&gt;
&lt;p&gt;While we don’t know what the exact number of affected users is, it is certainly less than that. The announcement mentioned that there have been 16,667 downloads of this add-on since November of 2007. That’s correct, but not all of those downloads were of the compromised version. The add-on was updated on February 18, 2008 and only those users who downloaded the February update of the add-on on were exposed. &lt;/p&gt;
&lt;/li&gt;&lt;li&gt;&lt;em&gt;Firefox users should uninstall Firefox and run their AV software to clean up the problem.&lt;/em&gt;
&lt;p&gt;Because this isn’t a virus or a trojan, and it’s isolated to the Vietnamese language pack add-on, users do not need to uninstall Firefox or use third-party software to stop it. All they need to do is open the Add-ons Manager from the Tools menu and then select and disable the Vietnamese language pack. &lt;/p&gt;
&lt;/li&gt;&lt;li&gt;&lt;em&gt;Mozilla systems had a virus or worm on them&lt;/em&gt;
&lt;p&gt;The virus was on the machine belonging to the add-on developer. The computers that produce and distribute Firefox were not exposed and were not responsible for the compromised add-on. &lt;/p&gt;
&lt;/li&gt;&lt;li&gt;&lt;em&gt;Mozilla suspected the add-on author of malice&lt;/em&gt;
&lt;p&gt;Absolutely not. At no time did Mozilla suspect this and there is no reason to suspect or believe this. &lt;/p&gt;
&lt;/li&gt;&lt;li&gt;&lt;em&gt;Add-ons cannot be trusted&lt;/em&gt;
&lt;p&gt;We scan all add-ons for viruses when they are uploaded to the Mozilla Add-ons website. This particular add-on contained the remnants of a virus that was still unknown to the anti-virus software performing that scan. As a result of this incident, we’re implementing additional vulnerability scans at regular intervals after an add-on has been uploaded to help mitigate similar problems going forward.
&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Add-ons provide a lot of value to a lot of Firefox users. We believe in that flexibility and power so we’ve invested heavily in infrastructure to host and support them and the amazing community that’s built them. Security is a key component of that investment and we take it very seriously when security issues come up with add-ons.  Fortunately, this issue only affected a relatively small number of users, the impact to those users was not catastrophic, and the remedy was a simple three-click operation.&lt;/p&gt;
&lt;p&gt;Going forward, we’ve got a better virus scanning solution in place and we’re looking into other ways to further insure the integrity and safety of all add-ons, not just those hosted by Mozilla. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;More Reading:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://blog.mozilla.com/security&quot;&gt;&lt;strong&gt;Mozilla Security Blog&lt;/strong&gt; » Compromised file in Vietnamese Language Pack for Firefox 2&lt;/a&gt; by Window Snyder&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Around the Web:&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.pcworld.com/businesscenter/article/145617/mozilla_firefox_plugin_shipped_with_malicious_code.html&quot;&gt;&lt;strong&gt;PC World&lt;/strong&gt; » Firefox Plug-In Shipped With Malicious Code&lt;/a&gt; by Robert McMillan,   &lt;a href=&quot;http://blog.internetnews.com/skerner/2008/05/dont-run-mozilla-firefox-in-ha.html&quot;&gt;&lt;strong&gt;InternetNews: The Blog&lt;/strong&gt; » Don’t Run Mozilla Firefox in Hanoi&lt;/a&gt; by Sean Michael Kerner,   &lt;a href=&quot;http://www.securityfocus.com/brief/734&quot;&gt;&lt;strong&gt;Security Focus&lt;/strong&gt; » Vietnamese pack infects Firefox users&lt;/a&gt; by Robert Lemos,   &lt;a href=&quot;http://www.scmagazineus.com/Compromised-file-found-in-language-pack-for-Firefox/article/109941/&quot;&gt;&lt;strong&gt;SC Magazine US&lt;/strong&gt; » Compromised file found in language pack for Firefox&lt;/a&gt; by Chuck Miller,   &lt;a href=&quot;http://computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;taxonomyName=spam__malware_and_vulnerabilities&amp;amp;articleId=9084078&amp;amp;taxonomyId=85&quot;&gt;&lt;strong&gt;Computerworld&lt;/strong&gt; » Mozilla shipped worm with Firefox add-on&lt;/a&gt; by Gregg Keizer,   &lt;a href=&quot;http://www.heise-online.co.uk/security/Firefox-add-on-contains-malware--/news/110685&quot;&gt;&lt;strong&gt;heise Security UK&lt;/strong&gt; » Firefox add-on contains malware&lt;/a&gt; by Mike Barwise,   &lt;a href=&quot;http://www.theregister.co.uk/2008/05/08/firefox_component_compromise/&quot;&gt;&lt;strong&gt;The Register&lt;/strong&gt; » Firefox language pack provides adware back-door&lt;/a&gt; by John Leyden,   &lt;a href=&quot;http://blogs.pcmag.com/securitywatch/2008/05/vietnamese_firefox_distributio.php&quot;&gt;&lt;strong&gt;PCMag - Security Watch&lt;/strong&gt; » Vietnamese Firefox Distribution Carried Malware&lt;/a&gt; by Larry Seltzer,   &lt;a href=&quot;http://blog.wired.com/27bstroke6/2008/05/firefox-infects.html&quot;&gt;&lt;strong&gt;Wired.com - Threat Level&lt;/strong&gt; » Firefox Infects Vietnamese Users With Trojan Code&lt;/a&gt; by Ryan Singel,   &lt;a href=&quot;http://blogs.zdnet.com/hardware/?p=1813&quot;&gt;&lt;strong&gt;ZDNet.com - Hardware 2.0&lt;/strong&gt; » Mozilla spreads malware rather than security&lt;/a&gt; by Adrian Kingsley-Hughes,   &lt;a href=&quot;http://mozillalinks.org/wp/2008/05/firefox-vientamese-language-pack-compromised/&quot;&gt;&lt;strong&gt;Mozilla Links&lt;/strong&gt; » Firefox Vietnamese language pack compromised&lt;/a&gt; by Percy Cabello,   &lt;a href=&quot;http://cybernetnews.com/2008/05/08/big-oops-mozilla-releases-compromised-vietnamese-language-pack/&quot;&gt;&lt;strong&gt;CyberNet News&lt;/strong&gt; » Big Oops: Mozilla Releases Compromised Vietnamese Language Pack&lt;/a&gt; by Ryan Wagner,   &lt;a href=&quot;http://www.betanews.com/article/Vietnamese_Firefox_2_users_were_given_malicious_content/1210260741&quot;&gt;&lt;strong&gt;BetaNews&lt;/strong&gt; » Vietnamese Firefox 2 users were given malicious content&lt;/a&gt; by Scott M. Fulton, III,   &lt;a href=&quot;http://mashable.com/2008/05/08/mozilla-would-you-like-a-virus-with-that-add-on/&quot;&gt;&lt;strong&gt;Mashable&lt;/strong&gt; » Mozilla: Would You Like a Virus With That Add-on?&lt;/a&gt; by Stan Schroeder,   &lt;a href=&quot;http://www.inquisitr.com/viruses-hit-mozilla-mp3s&quot;&gt;&lt;strong&gt;The Inquisitr&lt;/strong&gt; » Viruses Hit Mozilla, MP3s&lt;/a&gt; by JR Raphael,   &lt;a href=&quot;http://www.favbrowser.com/firefox-security-here-we-go-again/&quot;&gt;&lt;strong&gt;FavBrowser&lt;/strong&gt; » Firefox Security? Here We Go Again&lt;/a&gt; by Vygantas Lipskas,   &lt;a href=&quot;http://msmvps.com/blogs/donna/archive/2008/05/08/compromised-file-in-vietnamese-language-pack-for-firefox-2.aspx&quot;&gt;&lt;strong&gt;Donna’s SecurityFlash&lt;/strong&gt; » Compromised file in Vietnamese Language Pack for Firefox 2&lt;/a&gt; by Donna Buenaventura,   &lt;a href=&quot;http://oncomputerstips.blogspot.com/2008/05/firefox-infects-vietnamese-users-with.html&quot;&gt;&lt;strong&gt;On Computers Tips&lt;/strong&gt; » Firefox Infects Vietnamese Users With Trojan Code&lt;/a&gt; by Jack Imsdahl ,   &lt;a href=&quot;http://infosecurity.us/2008/05/07/firefoxs-vietnamese-language-pack-reportedley-infected-with-trojan/&quot;&gt;&lt;strong&gt;Infosecurity.US&lt;/strong&gt; » Firefox’s Vietnamese Language Pack Reportedley Infected with Trojan&lt;/a&gt; by Marc Handelman,   &lt;a href=&quot;http://isc.sans.org/diary.html?storyid=4399&amp;amp;rss&quot;&gt;&lt;strong&gt;SANS Internet Storm Center&lt;/strong&gt; » Compromised File In Vietnamese Language Pack For Firefox 2&lt;/a&gt; by Joel Esler,   &lt;a href=&quot;http://cyberinsecure.com/adware-back-door-in-firefox-language-pack/&quot;&gt;&lt;strong&gt;CyberInsecure.com&lt;/strong&gt; » Adware Back-door In Firefox Language Pack&lt;/a&gt;,   &lt;a href=&quot;http://dantravels.blogspot.com/2008/05/annoying-journalism-from-robert.html&quot;&gt;&lt;strong&gt;Dantravels&lt;/strong&gt; » Annoying Journalism from Robert McMillan, IDG News Service&lt;/a&gt; by Daniel Butler,   &lt;a href=&quot;http://lmeyerov.blogspot.com/2008/05/social-software.html&quot;&gt;&lt;strong&gt;The Good Soldier LMeyerov&lt;/strong&gt; » Social Software&lt;/a&gt; by Leo Meyerovich,   &lt;a href=&quot;http://technologyexpert.blogspot.com/2008/05/firefox-language-pack-ships-with.html&quot;&gt;&lt;strong&gt;Tech-Ex&lt;/strong&gt; » Firefox Language Pack Ships with Malware&lt;/a&gt; by Michael Santo,   &lt;a href=&quot;http://msmvps.com/blogs/spywaresucks/archive/2008/05/08/1616839.aspx&quot;&gt;&lt;strong&gt;Spyware Sucks&lt;/strong&gt; » Alert: Firefox 2 Vietnamese Language Pack infected by malware&lt;/a&gt; by Sandi Hardmeier,   &lt;a href=&quot;http://news.portalit.net/fullnews_mozilla-warns-firefox-2-vietnamese-pack-features-trojan_1143.html&quot;&gt;&lt;strong&gt;PortalIT News&lt;/strong&gt; » Mozilla Warns: Firefox 2 Vietnamese Pack Features Trojan&lt;/a&gt;,   &lt;a href=&quot;http://www.itbusinessedge.com/blogs/hdw/?p=2158&quot;&gt;&lt;strong&gt;IT Business Edge  - Headline Watch&lt;/strong&gt; » Mozilla’s Vietnamese Plug-In Infected with Malware&lt;/a&gt; by Susan Hall,   &lt;a href=&quot;http://www.avertlabs.com/research/blog/index.php/2008/05/08/vietnamese-add-on-for-firefox-serves-w32fujackshtm-virus/&quot;&gt;&lt;strong&gt;McAfee Avert Labs Blog&lt;/strong&gt; » Computer Security Research&lt;/a&gt; by Vinoo Thomas,   &lt;a href=&quot;http://readerszone.com/mozilla/firefox-vietnamese-language-pack-infected-with-trojan-horse.html&quot;&gt;&lt;strong&gt;ReadersZone&lt;/strong&gt; » Firefox Vietnamese Language Pack infected with Trojan horse&lt;/a&gt; by Ajay Pathak,   &lt;a href=&quot;http://optempo.com/2008/05/08/firefox-vietnamese-language-pack-malware-warning/&quot;&gt;&lt;strong&gt;OpTempo&lt;/strong&gt; » Firefox Vietnamese Language Pack Malware Warning&lt;/a&gt; by J. Frank Carr,   &lt;a href=&quot;http://byzone.blogspot.com/2008/05/firefox-addon-comes-with-adware.html&quot;&gt;&lt;strong&gt;Byzone&lt;/strong&gt; » Firefox AddOn Comes with Adware&lt;/a&gt; by FyreVortex,   &lt;a href=&quot;http://www.1060.org/blogxter/entry?publicid=02E0B354389E5957F029B21AAF267A3A&quot;&gt;&lt;strong&gt;Steve: Developing on the Edge&lt;/strong&gt; » Virus in a firefox language plugin: the perils of the community&lt;/a&gt; by Steve Loughran&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T05:39:49+00:00</dc:date>
	<dc:creator>Asa</dc:creator>
</item>
<item rdf:about="http://weblogs.mozillazine.org/dmose/archives/2008/05/thunderbird_30alpha1_status_br.html">
	<title>Dan Mosedale: Thunderbird 3.0alpha1 status: branch cut; candidate builds made; trunk re-opened</title>
	<link>http://weblogs.mozillazine.org/dmose/archives/2008/05/thunderbird_30alpha1_status_br.html</link>
	<content:encoded>A release branch for 3.0alpha1 has been cut, so the mail/ and mailnews/ directories on trunk have been re-opened for checkins. Furthermore, there are now candidate builds at ftp://ftp.mozilla.org/pub/thunderbird/nightly/3.0a1-candidates/build1/ under test. Assuming the stars align, we hope to release alpha 1 early next week......</content:encoded>
	<dc:date>2008-05-09T03:10:32+00:00</dc:date>
	<dc:creator>dmose</dc:creator>
</item>
<item rdf:about="http://starkravingfinkle.org/blog/?p=259">
	<title>Mark Finkle: Firefox 3 - Offline App Demo - Part 2</title>
	<link>http://starkravingfinkle.org/blog/2008/05/firefox-3-offline-app-demo-part-2/</link>
	<content:encoded>&lt;p&gt;Last year (wow, that long ago?) I made a &lt;a href=&quot;http://starkravingfinkle.org/blog/2007/02/firefox-3-offline-app-demo/&quot;&gt;simple demo&lt;/a&gt; to show Firefox 3 offline capabilities. A lot has changed between then and now. Firefox 3 offline capabilities changed significantly to align better with &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/#offline&quot;&gt;WHATWG offline specification&lt;/a&gt;. The biggest changes involve dropping support for our own &lt;code&gt;&amp;lt;link rel=&quot;offline&quot;&amp;gt;&lt;/code&gt; mechanism and supporting WHATWG manifests and application cache. The specification gives some details on how it works. There is an MDC article on using &lt;a href=&quot;http://developer.mozilla.org/en/docs/Offline_resources_in_Firefox&quot;&gt;offline resources in Firefox 3&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Since so much has changed, I decided to update the demo application. Here is the overview of the application, updated where needed:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A Simple Demo - Task Helper&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The application is a simple task list system. The current functionality includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add tasks - Enter text in field and press ‘Add’&lt;/li&gt;
&lt;li&gt;Complete tasks - Mark completed tasks and press ‘Complete’&lt;/li&gt;
&lt;li&gt;Remove tasks - Mark tasks and press ‘Remove’&lt;/li&gt;
&lt;li&gt;Data is stored as JSON and XHR is used to interact with server (PHP)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;http://starkravingfinkle.org/blog/wp-content/uploads/2007/02/taskhelper.png&quot; alt=&quot;offline demo app&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Nothing fancy. However, the application is “offline-aware”, meaning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Application resources (HTML &amp;amp; JS) are listed in the offline cache manifest. This manifest must be served as “text/cache-manifest” and follow the manifest rules.&lt;/li&gt;
&lt;li&gt;Before interacting with server, online status is checked. If online, use XHR. If offline, use DOMStorage.&lt;/li&gt;
&lt;li&gt;Online/Offline status is monitored using events. When the application switches from offline to online, data is resync’ed with the server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is really nothing fancy about the offline stuff either, but putting it all together does make for a neat application. Using the latest Firefox 3 (beta 5 or nightly), you should be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the application while online.&lt;/li&gt;
&lt;li&gt;Go offline using the “Work Offline” menu. The event log should show that the app went offline.&lt;/li&gt;
&lt;li&gt;Continue to use the application while offline.&lt;/li&gt;
&lt;li&gt;Restart browser.&lt;/li&gt;
&lt;li&gt;Switch to offline (or have no network connection).&lt;/li&gt;
&lt;li&gt;Enter URL to app (or use a bookmark).&lt;/li&gt;
&lt;li&gt;Start using app with data from last session.&lt;/li&gt;
&lt;li&gt;Switch to online. The event log should show that the app is back online and has updated the server with any offline changes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Try it: &lt;a href=&quot;http://starkravingfinkle.org/projects/offline/todo.html&quot;&gt;Task Helper&lt;/a&gt;&lt;br /&gt;
Source code: &lt;a href=&quot;http://starkravingfinkle.org/projects/offline/todo-offline.zip&quot;&gt;todo-offline.zip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The data is stored in a simple, shared JSON file on the server, managed with a simple PHP file and reset every hour. No fancy databases with multiple session support.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-09T02:56:54+00:00</dc:date>
	<dc:creator>Mark Finkle</dc:creator>
</item>
<item rdf:about="http://starkravingfinkle.org/blog/?p=258">
	<title>Mark Finkle: A Little XPCOM Magic - JavaScript Callbacks</title>
	<link>http://starkravingfinkle.org/blog/2008/05/a-little-xpcom-magic-javascript-callbacks/</link>
	<content:encoded>&lt;p&gt;&lt;a href=&quot;http://developer.mozilla.org/en/docs/XPCOM&quot;&gt;XPCOM&lt;/a&gt; is, currently, a core Mozilla technology. Developers use XPCOM for a variety of reasons, many of which result in XPCOM components being accessed from JavaScript. XPCOM uses IDL to describe interfaces. This can make XPCOM components a bit rigid and not feel right in JavaScript. Recent support for &lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=382034&quot;&gt;optional parameters in IDL&lt;/a&gt; has helped a little. Another helpful concept is using JavaScript functions in place of an IDL callback interface. For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
[scriptable, uuid(...)]
interface StringParserObserver {
  void onWord(string word);
};

[scriptable, uuid(...)]
interface StringParser {
  void parse(string data);
  void addObserver(StringParserObserver observer);
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In order to use this interface from JavaScript, you would have to implement the StringParserObserver using JavaScript. A nicer approach would be to allow someone to pass in a JavaScript function to use as the callback. The good news is you can! Better news is that it is a one line change to your IDL!&lt;/p&gt;
&lt;p&gt;Just add the “function” attribute to the interface and XPCOM will handle the rest.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
[scriptable,function, uuid(...)]
interface StringParserObserver {
  void onWord(string word);
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There is a new &lt;a href=&quot;http://developer.mozilla.org&quot;&gt;MDC&lt;/a&gt; article with more details &lt;a href=&quot;http://developer.mozilla.org/en/docs/Creating_JavaScript_callbacks_in_components&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T22:30:54+00:00</dc:date>
	<dc:creator>Mark Finkle</dc:creator>
</item>
<item rdf:about="http://ejohn.org/blog/processingjs/">
	<title>John Resig: Processing.js</title>
	<link>http://ejohn.org/blog/processingjs/</link>
	<content:encoded>&lt;div style=&quot;float: right; margin-left: 10px;&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2014.png&quot; style=&quot;border: 0px; height: 75px;&quot; /&gt;&lt;br /&gt;&lt;b&gt;Demos below!&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;
	&lt;p&gt;As a sort-of reverse birthday present I've decided to release one of my largest projects, in recent memory. This is the project that I've been alluding to for &lt;a href=&quot;http://ejohn.org/blog/sneak-peek/&quot;&gt;quite&lt;/a&gt; &lt;a href=&quot;http://ejohn.org/blog/sneaky-2/&quot;&gt;some&lt;/a&gt; &lt;a href=&quot;http://ejohn.org/blog/sneaky-snake/&quot;&gt;time&lt;/a&gt; &lt;a href=&quot;http://ejohn.org/blog/thursday-release/&quot;&gt;now&lt;/a&gt;:&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;I've ported the &lt;a href=&quot;http://ejohn.org/blog/overview-of-processing/&quot;&gt;Processing visualization language&lt;/a&gt; to JavaScript, using the &lt;a href=&quot;http://developer.mozilla.org/en/docs/HTML:Canvas&quot;&gt;Canvas element&lt;/a&gt;.&lt;/b&gt;&lt;/p&gt;
	&lt;p&gt;I've been working on this project, off-and-on now, for the past 7 months - it's been a fun, and quite rewarding, challenge. The full scope of the project can be broken down into two portions:&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;The Processing Language&lt;/b&gt;&lt;/p&gt;
	&lt;p&gt;The first portion of the project was writing a parser to dynamically convert code written in the Processing language, to JavaScript. This involves a lot of gnarly regular expressions chewing up the code, spitting it out in a format that the browser understands.&lt;/p&gt;
	&lt;p&gt;It works &quot;fairly well&quot; (in that it's able to handle anything that the processing.org web site throws at it) but I'm sure its total scope is limited (until a proper parser is involved). I felt bad about tackling this using regular expressions until I found out that the original Processing code base did it in the same manner (they now use a real parser, naturally).&lt;/p&gt;
	&lt;p&gt;The language includes a number of interesting aspects, many of which are covered in the &lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/&quot;&gt;basic demos&lt;/a&gt;. Here's a brief selection of language features that are handled:&lt;/p&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;Types and type casting&lt;/b&gt; - Type information is generally discarded, but becomes important in variable declaration and in casting (which is generally handled well).&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Classes&lt;/b&gt; - The full class system is supported (can be instantiated, etc. just fine).&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Method overloading and multiple constructors&lt;/b&gt; - Within classes you can have multiple method (or constructor) definitions - with the appropriate methods being called, based upon their signature length.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Inheritance&lt;/b&gt; - Even classical-style inheritance is supported.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; There's one feature of Processing that's pretty much impossible to support: variable name overloading. In Processing you can have variables and functions that have the same name (e.g. &lt;code&gt;float size = 0; float size(){}&lt;/code&gt;). In order to support this there would have to be considerable overhead - and it's generally not a good practice to begin with.&lt;/p&gt;
	&lt;p&gt;If you're curious as to what the language looks like, here's a basic example of &lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/inheritance.html&quot;&gt;inheritance&lt;/a&gt;:&lt;/p&gt;
	&lt;div class=&quot;syntax_hilite&quot;&gt;
&lt;div id=&quot;js-1&quot;&gt;
	&lt;div&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;class&lt;/span&gt; Spin &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
  float x, y, speed;&lt;br /&gt;
  float angle = &lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;;&lt;br /&gt;
  Spin&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;float xpos, float ypos, float s&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
    x = xpos;&lt;br /&gt;
    y = ypos;&lt;br /&gt;
    speed = s;&lt;br /&gt;
  &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
  &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;void&lt;/span&gt; update&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
    angle += speed;&lt;br /&gt;
  &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;}&lt;/span&gt;&lt;p&gt;&lt;/p&gt;
	&lt;p&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;class&lt;/span&gt; SpinArm &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;extends&lt;/span&gt; Spin &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
  SpinArm&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;float x, float y, float s&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
    &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;super&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;x, y, s&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
  &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
  &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;void&lt;/span&gt; display&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
    strokeWeight&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
    stroke&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
    pushMatrix&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
    translate&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;x, y&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
    angle += speed;&lt;br /&gt;
    rotate&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;angle&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
    line&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #CC0000;&quot;&gt;66&lt;/span&gt;, &lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
    popMatrix&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
  &lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
	&lt;p&gt;&lt;b&gt;The Processing API&lt;/b&gt;&lt;/p&gt;
	&lt;p&gt;The second portion of the project is the full &lt;b&gt;2d&lt;/b&gt; Processing API. This includes all sorts of different methods:&lt;/p&gt;
	&lt;ul&gt;
	&lt;li&gt;Shapes drawing&lt;/li&gt;
	&lt;li&gt;Canvas manipulation&lt;/li&gt;
	&lt;li&gt;Pixel utilities&lt;/li&gt;
	&lt;li&gt;Image drawing&lt;/li&gt;
	&lt;li&gt;Math functions&lt;/li&gt;
	&lt;li&gt;Keyboard and mouse access&lt;/li&gt;
	&lt;li&gt;Objects (point, arrays, random number generators)&lt;/li&gt;
	&lt;li&gt;Color manipulation&lt;/li&gt;
	&lt;li&gt;Font selection and text drawing&lt;/li&gt;
	&lt;li&gt;Buffers&lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;Most of these are demonstrated in the &lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/&quot;&gt;basic demos&lt;/a&gt;.&lt;/p&gt;
	&lt;p&gt;There's pretty-good coverage of the Processing API: there's sure to be many gaps, but most of what I can throw at it works.&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Download&lt;/b&gt;&lt;/p&gt;
	&lt;p&gt;The full source code is contained within a single file. It comes in at about 5000 lines, compresses down to less than 10kb.&lt;/p&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/processing.js&quot;&gt;processing.js&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;SVN:&lt;/b&gt; &lt;a href=&quot;http://ejohn.org/code/processing.js/&quot;&gt;http://ejohn.org/code/processing.js/&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;&lt;b&gt;How to Use&lt;/b&gt;&lt;/p&gt;
	&lt;p&gt;The API is quite simple - there's a single method &quot;Processing&quot;. If you wish to only use the Processing API (not the language) you can interact with it like so:&lt;/p&gt;
	&lt;div class=&quot;syntax_hilite&quot;&gt;
&lt;div id=&quot;js-2&quot;&gt;
	&lt;div&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; p = Processing&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;CanvasElement&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
p.&lt;span style=&quot;color: #006600;&quot;&gt;size&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;100&lt;/span&gt;, &lt;span style=&quot;color: #CC0000;&quot;&gt;100&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
p.&lt;span style=&quot;color: #006600;&quot;&gt;background&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
p.&lt;span style=&quot;color: #006600;&quot;&gt;fill&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;br /&gt;
p.&lt;span style=&quot;color: #006600;&quot;&gt;ellipse&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;50&lt;/span&gt;, &lt;span style=&quot;color: #CC0000;&quot;&gt;50&lt;/span&gt;, &lt;span style=&quot;color: #CC0000;&quot;&gt;50&lt;/span&gt;, &lt;span style=&quot;color: #CC0000;&quot;&gt;50&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
	&lt;p&gt;If you wish to have the full power of the language, as well, you would pass in your Processing code as the second argument.&lt;/p&gt;
	&lt;div class=&quot;syntax_hilite&quot;&gt;
&lt;div id=&quot;js-3&quot;&gt;
	&lt;div&gt;Processing&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;(&lt;/span&gt;CanvasElement, &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;size(100, 100); background(0);&quot;&lt;/span&gt; +&lt;br /&gt;
  &lt;span style=&quot;color: #3366CC;&quot;&gt;&quot;fill(255); ellipse(50, 50, 50, 50);&quot;&lt;/span&gt;&lt;span style=&quot;color: #008800; font-weight: bold;&quot;&gt;)&lt;/span&gt;;&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
	&lt;p&gt;That's really all there is to it. Information on the full Processing API can be found on the &lt;a href=&quot;http://processing.org/&quot;&gt;Processing.org web site&lt;/a&gt;.&lt;/p&gt;
	&lt;h3&gt;Important: Browser Support&lt;/h3&gt;
	&lt;p&gt;Before we get into the demos I want to outline what some of my goal was for this project. First, and foremost, I wanted to try and get the best Canvas-based demos out of a browser, as possible. This meant that I had to shoot directly for the latest, and greatest, browsers. I needed good Canvas API support and, importantly, I needed speed.&lt;/p&gt;
	&lt;p&gt;Because of this, for this first release, I've specifically targeted Firefox 3, the latest WebKit Nightly, and Opera 9.5. In other words: beta browsers.&lt;/p&gt;
	&lt;p&gt;A large part of the code base is sure to work in &quot;older&quot; browsers (Firefox 2, Safari 3, Opera 9, and IE with excanvas) - but that wasn't my target platform. I wanted something that would be capable of pushing the edge of what a browser is able to render - giving them something to strive for in their upcoming releases.&lt;/p&gt;
	&lt;p&gt;There were a couple of stumbling blocks that the above browsers hit:&lt;/p&gt;
	&lt;ul&gt;
	&lt;li&gt;Image loading - Currently, only Firefox 3 and WebKit Nightly handle this reliably.&lt;/li&gt;
	&lt;li&gt;Pixel processing - Loading pixel data from images, manipulating them, and putting them back on the canvas. Only Firefox 3 can handle this sufficiently.&lt;/li&gt;
	&lt;li&gt;Font loading and text rendering - The specification for this is still in the works, currently only Firefox 3 has support for this.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;Thus, anything outside of the above (images, pixel processing, and text) should work &quot;ok&quot; everywhere.&lt;/p&gt;
	&lt;h3&gt;Demos&lt;/h3&gt;
	&lt;blockquote&gt;&lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; I highly recommend that you use the latest &lt;a href=&quot;http://www.mozilla.com/en-US/firefox/all-beta.html&quot;&gt;Firefox 3 beta&lt;/a&gt; to view the demos. Most will work in the latest WebKit Nightly and a majority will work in Opera 9.5, but all will work in Firefox 3.&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Note again:&lt;/b&gt; A lot of these demos will peg your CPU. As I mentioned above, I'm trying to squeeze the most out of the browser, as possible - be ready for it!&lt;/p&gt;&lt;/blockquote&gt;
	&lt;p&gt;What would the release be without a ton of demos? In development I worked in a backwards manner. Instead of building the API up from the ground - I worked from the top, down, implementing enough of the API to get individual demos working. The result of this is two-fold: 1) It made for a very rewarding development process - and guaranteed working demos and 2) It means that there are still portions of the Processing API left unimplemented.&lt;/p&gt;
	&lt;p&gt;Regardless - enough of the API has been implemented to allow all of the demos, available on processing.org, to work as best as possible.&lt;/p&gt;
	&lt;p&gt;Here's the full break-down of demos that are available:&lt;/p&gt;
	&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/&quot;&gt;91 basic demos.&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/&quot;&gt;51 larger, topical, demos.&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/csutom/&quot;&gt;4 custom &quot;in the wild&quot; demos.&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;I've gone through and cherry-picked a bunch that I really liked - in case you're interested in seeing some really interesting ones. Wherever possible I specify what browsers the demos work in (if none is specified, then it should work in all).&lt;/p&gt;
	&lt;h3&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/custom/&quot;&gt;Custom Built/&quot;Found In the Wild&quot; Demos&lt;/a&gt;&lt;/h3&gt;
	&lt;div&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/custom/molten.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/files/molten2.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;A live, molten, bar and pie chart.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/custom/substrate.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2014.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Artistic water-color style drawing.&lt;/a&gt; (Firefox, WebKit)&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/custom/snake.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2015.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;A snake that chases your mouse cursor.&lt;/a&gt; (Firefox, WebKit)&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;h3&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/&quot;&gt;Basic Demos&lt;/a&gt; (91 Total)&lt;/h3&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/creategraphics.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2016.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Using buffers to draw multiple, simultaneous, canvases.&lt;/a&gt; (Firefox 3)&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/recursion.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2017.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Simple, but elegant, shape drawing.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/distance2d.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2018.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Drawing lots of simultaneous circles to create an impressive effect.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/arctangent.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2019.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Eyes following your mouse cursor!&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/random.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2020.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Simple implementation, beautiful result.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/noisewave.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2021.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Generating smooth waves.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/pointillism.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2022.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Re-sampling the points of an image.&lt;/a&gt; (Firefox, WebKit)&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/createimage.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2023.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Dynamically drawing multiple, dynamically-generated, transparent, images.&lt;/a&gt; (Firefox)&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/mouse2d.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2024.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Scaling and moving blocks based on mouse position.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/bezierellipse.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2025.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Random Ellipses drawn using bezier curves.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/storinginput.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2026.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Remembering the movement of a mouse.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/mousefunctions.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2027.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Drag, Drop, and Hover with mouse.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/keyboardfunctions.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2028.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Translating keyboard presses into colors.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/basic/clock.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2029.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;A simple clock.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;h3&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/&quot;&gt;Topical Demos&lt;/a&gt; (51 Total)&lt;/h3&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/handles.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2030.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Multiple draggable handles.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/wolfram.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2031.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Wolfram's Cellular Automata&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/conway.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2032.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Conway's Game of Life&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/animator.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2033.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Animator (builds an animation out of drawing).&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/pattern.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2034.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Drawing a pattern with shapes.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/pixelarray.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2035.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Dynamically pull colors from an image.&lt;/a&gt; (Firefox, WebKit)&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/brightness.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2036.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Adjusting brightness on an image.&lt;/a&gt; (Firefox)&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/linearimage.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2037.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Scanning the pixels of an image.&lt;/a&gt; (Firefox)&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/scrollbar.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2038.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Drag image portions using a scrollbar.&lt;/a&gt; (Firefox, WebKit)&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/histogram.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2039.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Dynamic histogram drawn over an image.&lt;/a&gt; (Firefox, WebKit)&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/bouncybubbles.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2040.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Bouncing, colliding, bubbles.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/collision.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2041.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;A sort-of pong clone.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/reflection1.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2042.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Ball bouncing on a dynamic surface.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/reflection2.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2043.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Ball bouncing on a rocky surface.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/spring.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2044.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Flexible spring.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/springs.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2045.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Springy circles&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/reach3.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2046.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Bouncing physics and joints.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/simpleparticlesystem.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2047.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Simple particle system.&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/flocking.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2048.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Birds flocking together.&lt;/a&gt;&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/koch.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2049.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Koch Fractal&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/mandelbrot.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2050.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Mandelbrot Fractal&lt;/a&gt; (Firefox)&lt;/div&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/tree.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2051.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Dynamic Tree Fractal&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;div style=&quot;float: left; width: 250px;&quot;&gt;&lt;a href=&quot;http://ejohn.org/apps/processing.js/examples/topics/softbody.html&quot;&gt;&lt;img src=&quot;http://ejohn.org/apps/processing.js/screens/Picture%2052.png&quot; style=&quot;border: 0px;&quot; /&gt;&lt;br /&gt;Soft Body Dynamics&lt;/a&gt;&lt;/div&gt;
	&lt;p&gt;&lt;br style=&quot;clear: both;&quot; /&gt;&lt;/p&gt;
	&lt;p&gt;I'm quite curious to see what people construct with this new API. I think it holds a lot of potential and I'm excited to see what comes of it! Enjoy!&lt;/p&gt;
	&lt;p&gt;&lt;b&gt;Remember:&lt;/b&gt; You should be using Firefox 3 or WebKit Nightly (Safari 3.1 is missing some features) - the above demos generally work best in those browsers.
&lt;/p&gt;
		&lt;img src=&quot;http://ejohn.org/apps/rss/?from=rss&amp;amp;id=5591&quot; style=&quot;width: 0px; height: 0px;&quot; /&gt;</content:encoded>
	<dc:date>2008-05-08T21:50:43+00:00</dc:date>
	<dc:creator>John Resig</dc:creator>
</item>
<item rdf:about="http://weblogs.mozillazine.org/preed/2008/05/its_all_about_the_chases.html">
	<title>J. Paul Reed: It's all about the Chases</title>
	<link>http://weblogs.mozillazine.org/preed/2008/05/its_all_about_the_chases.html</link>
	<content:encoded>&lt;p&gt;Maybe I only notice these things because Gerv has so religiously run the &lt;a href=&quot;http://weblogs.mozillazine.org/gerv/archives/2007/04/bugzilla_400000_bug_sweepstake.html&quot;&gt;&quot;n00,000 Bugzilla bug&quot;-contests&lt;/a&gt;...&lt;/p&gt;

&lt;p&gt;Or maybe it was randomly running across &lt;a href=&quot;http://micropipes.com/blog/&quot;&gt;Wil's&lt;/a&gt; &lt;a href=&quot;http://micropipes.com/blog/2008/02/06/10000-commits-and-going-strong/&quot;&gt;post&lt;/a&gt; about all of the web team's commits the other day...&lt;/p&gt;

&lt;p&gt;Or &lt;i&gt;maybe&lt;/i&gt;... it's just because I'm a dork about these sorts of things...&lt;/p&gt;

&lt;p&gt;... buuut I was amused to realize the other day that here at &lt;a href=&quot;http://www.songbirdnest.com/&quot;&gt;the nest&lt;/a&gt;, we're due to hit the 10k mark on &lt;i&gt;both&lt;/i&gt; bugs (I just filed &lt;a href=&quot;http://bugzilla.songbirdnest.com/show_bug.cgi?id=9087&quot;&gt;bug 9087&lt;/a&gt;) &lt;i&gt;and&lt;/i&gt; commits (&lt;a href=&quot;http://publicsvn.songbirdnest.com/changeset/9200&quot;&gt;changeset 9200&lt;/a&gt; just went in).&lt;/p&gt;

&lt;p&gt;I'm betting we'll probably hit 10k on both before 0.6 ships... although, I find myself wondering who will make it across the milestone first. Even though Bugzilla is behind at this point, I'm betting it'll catch up to commits before we ship.&lt;/p&gt;

&lt;p&gt;Anyone bets on when we'll hit 20k?&lt;/p&gt;

&lt;p&gt;(I was going to ask about the next-order-of-magnitude milestone, but... a &lt;a href=&quot;http://en.wikipedia.org/wiki/Image:US100000dollarsbillobverse.jpg&quot;&gt;Wilson party&lt;/a&gt; is probably a couple years away... at &lt;i&gt;least&lt;/i&gt;.)&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T19:56:39+00:00</dc:date>
</item>
<item rdf:about="http://clarkbw.net/blog/?p=329">
	<title>Bryan Clark: Searching for a new find</title>
	<link>http://clarkbw.net/blog/2008/05/08/searching-for-a-new-find/</link>
	<content:encoded>&lt;p&gt;It’s time to start looking into a new search method for &lt;a href=&quot;http://www.mozilla.com/thunderbird/&quot;&gt;Thunderbird&lt;/a&gt;. One of the major changes planned for Thunderbird is a new and improve search, &lt;em&gt;but what does that mean&lt;/em&gt;?&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;What do we have?&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;First lets look at what we have for a search system.  At a very simple level most search systems break down into two pieces, a search interface for filtering and a results interface for listing.  Thunderbird does this in a couple places.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Quick Search&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://clarkbw.net/blog/wp-content/uploads/2008/05/quick-search.png&quot; title=&quot;Quick Search&quot; height=&quot;32&quot; width=&quot;318&quot; alt=&quot;&quot; class=&quot;size-full wp-image-330&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The quick search entry is always at the top right of the Thunderbird window and allows people to search over the current view.  The results of a quick search fill into the current view, replacing whatever listing was previously shown.&lt;/p&gt;
&lt;p&gt;The Quick Search defaults to searching only the Subject or Sender and will only search mail that Thunderbird has downloaded already.  Messages that are not listed in the current view (like in another folder) will not be searched unless that folder is selected, otherwise a person needs to use the Advanced Search.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Advanced Search&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Hidden under the Edit Menu and Find Sub-Menu is an advanced search dialog that can make use of the remote mail or news protocol to perform a full search instead of just a local search.   The Search Messages dialog provides it’s own search interface as well as it’s own results view directly below the search.  While the Search Messages dialog provides some more advanced search methods over the quick search it’s hard to find and difficult to use effectively.&lt;/p&gt;
&lt;p&gt;The Search Messages dialog allows for complex search queries to be built with multiple search terms composed of a number of different field type selectors.  The queries require a lot of input from the user because of the tight structure used to create them.  The same search and results interface code is used for creating mail filters.&lt;/p&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://clarkbw.net/blog/wp-content/uploads/2008/05/find-in-menu.png&quot;&gt;&lt;img src=&quot;http://clarkbw.net/blog/wp-content/uploads/2008/05/find-in-menu-300x206.png&quot; title=&quot;Find in Menu&quot; height=&quot;206&quot; width=&quot;300&quot; alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-331&quot; /&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Edit -&amp;gt; Find -&amp;gt; Search Messages…&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://clarkbw.net/blog/wp-content/uploads/2008/05/adv-message-search.png&quot;&gt;&lt;img src=&quot;http://clarkbw.net/blog/wp-content/uploads/2008/05/adv-message-search-300x204.png&quot; title=&quot;Advanced Message Search&quot; height=&quot;204&quot; width=&quot;300&quot; alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-332&quot; /&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Advanced Search Dialog&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;&lt;strong&gt;What do we want?&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;I was lucky enough to chat with &lt;a href=&quot;http://calliopesounds.blogspot.com/&quot;&gt;Andrew Gilmartin&lt;/a&gt; yesterday and he framed a future goal very well.  “&lt;em&gt;We’re not looking to make search an added feature box on the side of Thunderbird&lt;/em&gt;“, we’re looking to make search the definitive method for viewing mail.&lt;/p&gt;
&lt;p&gt;What does “Search as the definitive viewing method for your mail” mean?  That’s a good question and I’m not sure exactly what a good answer is yet. A search would help you find the message you’re looking for, and perhaps a search view never lets you lose that message in the first place.  There’s a lot to explore.&lt;/p&gt;
&lt;p&gt;Here are two important pieces of a search system and view that need to be examined and somehow exposed in the interface.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Search and Filter&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;An impediment of the current search system is requiring people to choose a search type (Subject or Sender) before they even enter any text.  To help people hunt for the correct item you want to allow for starting their search very broad and then allow them to narrow down that broad search with filters like subject or sender.&lt;/p&gt;
&lt;p&gt;The current search system has some speed issues that likely prevented a broad to filter system of searching to be implemented.  The mail client &lt;a href=&quot;http://en.wikipedia.org/wiki/Apple_Mail&quot;&gt;Mail.app&lt;/a&gt; provides a decent filter bar when searching mail that allows people to see what the current filters are (folder, account) and change them.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Browse and Filter&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://simile.mit.edu/seek/&quot;&gt;SEEK&lt;/a&gt; extension is an excellent example of how offering a system of browsing mail by grouped attributes from the start can help people find the item or group of items they were looking for.  Instead of starting with a search term you give the person a list of attributes they might use to filter the list of messages.&lt;/p&gt;
&lt;p&gt;An inspiring system for a similar searching, browsing, and filtering methods is &lt;a href=&quot;http://www.culturedcode.com/things/&quot;&gt;things&lt;/a&gt;, you should try it if you haven’t already.&lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;Getting What we Want&lt;br /&gt;
&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Moving towards a new search based paradigm will take some adventurous steps and it’s important not to disturb current usage while making those steps.  Here are a number of changes to look at making.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Merging Search Interfaces&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Each of the two current search interfaces provide some needed features and capabilities, however having two separate interfaces for searching is confusing and difficult to understand.  We need to combine the ability to do a quick search with the ability to perform a full search into a single interface with an improved results view.&lt;/p&gt;
&lt;p&gt;With a single search interface Thunderbird will be searching the local and remote mail (like IMAP) at the same time.  However local results will be listing quickly and remote results will likely take a little more time.  Both sets of results, local and remote, can be merged into the same search results view by showing local results instantly and filling in remote results as they arrive.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Offline Cached and Indexed Mail&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In order to have a fast search system even while offline Thunderbird needs to do a much better job of caching and indexing mail as it encounters it.  With new messages instantly cached and indexed they can be made available to search queries, filters, and views immediately.&lt;/p&gt;
&lt;p&gt;This is an excellent time to start thinking about the &lt;a href=&quot;http://calliopesounds.blogspot.com/2008/05/enriching-search-query.html&quot;&gt;data mining mail&lt;/a&gt; in a way that helps searching messages later.  It’s also time to think about making the defaults tuned towards offline usage while still allowing people to control online / offline caching.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Auto Complete&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;With mail data indexed locally and quickly available Thunderbird should be able to provide a slick and fun auto-complete on search terms it knows about.   Auto complete when searching for items you’re already aware exists helps with miss-spelling errors and more complete matching.  The &lt;a href=&quot;http://diveintomark.org/archives/2008/03/25/awesomebar&quot;&gt;awesomebar&lt;/a&gt; shows how with just a little broken memory of a title or url you can easily find the page you saw once before.&lt;/p&gt;
&lt;h4&gt;Fetching Results&lt;/h4&gt;
&lt;p&gt;Our current drive is to investigate some indexing on messages (at least subjects), pull the &lt;a href=&quot;http://developer.mozilla.org/en/docs/XUL:textbox_(Firefox_autocomplete)&quot;&gt;new auto-complete&lt;/a&gt; into Thunderbird, and get a search bar using that &lt;a href=&quot;http://developer.mozilla.org/en/docs/How_to_implement_custom_autocomplete_search_component&quot;&gt;fancy auto-complete&lt;/a&gt; on mail subjects and hopefully the addition of a couple more fun things.  Leave some comments or jump on the &lt;a href=&quot;http://groups.google.com/group/mozilla.dev.apps.thunderbird/topics&quot;&gt;newsgroup&lt;/a&gt; to participate.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://clarkbw.net/designs/search/search-sent-yest-with-cats.png&quot; alt=&quot;Search Yesterday and Attachments&quot; class=&quot;alignnone aligncenter&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;A wire frame of a possible mail search auto-complete&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T18:49:03+00:00</dc:date>
	<dc:creator>Bryan Clark</dc:creator>
</item>
<item rdf:about="http://oduinn.com/2008/05/08/we-have-how-many-machines-and-whatdy-mean-its-not-enough/">
	<title>John O'Duinn: We have *how* many machines…. and whatdy mean, its not enough?</title>
	<link>http://oduinn.com/2008/05/08/we-have-how-many-machines-and-whatdy-mean-its-not-enough/</link>
	<content:encoded>&lt;p&gt;While the sheer number of machines in &lt;a href=&quot;http://oduinn.com/2008/05/07/we-have-how-many-machines/&quot; target=&quot;_blank&quot;&gt;my previous post&lt;/a&gt; surprised all of us, its more interesting to note that its not enough. Its simply just not enough. Even today, we’re constantly under the gun, bringing new machines online as fast as possible.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The 30 machines marked idle/waiting-to-mothball will all be recycled and used for blocked projects that need machines.&lt;/li&gt;
&lt;li&gt;Justin’s group recently brought another VMware host online, and built out extra disk space so we have space to create 30+ new VMs - 6 new VMs are coming online this week, additional to whats listed in previous blog.&lt;/li&gt;
&lt;li&gt;We’re ordering another batch of 80 mac minis, as we’ve already used up the previous batch of 50 minis, after we used the initial batch of 30 minis.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We hope its enough machines for a while.&lt;/p&gt;
&lt;p&gt;Never mind the cost of all these machines. Pretend they were all free.&lt;/p&gt;
&lt;p&gt;All of these machines need rented colo rack space, network bandwidth, electricity, a/c, humans to install and support them, humans to configure them up and bring them online. In a ripple-on effect, the more builds we produce, the more diskspace and infrastructure we need for ftp, downloads, virus scanning, tinderbox servers, etc.&lt;/p&gt;
&lt;p&gt;Thats just to have them come online. Then starts the human time for the constant care and feeding that each of these unique individual machines need. For one or two machines, its easy. When you look at 200 machines, and then an additional 150 or so machines, its a no-brainer that this approach does not scale.
&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T18:27:09+00:00</dc:date>
	<dc:creator>John</dc:creator>
</item>
<item rdf:about="http://autological.wordpress.com/?p=56">
	<title>Jane Finette: Tristan, Firefox 3 and the BBC’s dot.life blog</title>
	<link>http://autological.wordpress.com/2008/05/08/tristan-firefox-3-and-the-bbcs-dotlife-blog/</link>
	<content:encoded>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Last week &lt;a href=&quot;http://standblog.org/blog/&quot; target=&quot;_blank&quot;&gt;Tristan&lt;/a&gt; was in London talking at&lt;a href=&quot;http://www.internetworld.co.uk/&quot; target=&quot;_blank&quot;&gt; Internet World&lt;/a&gt; in London, he keynoted there on “The dangers of the proprietary web - Future of Internet and Open Source”. Whilst in the UK, where it poured incessantly the whole time, Tristan was able to meet blogger legend &lt;a href=&quot;http://www.bbc.co.uk/blogs/technology/2007/12/about_rory_cellanjones_1.html&quot; target=&quot;_blank&quot;&gt;Rory Cellan-Jones&lt;/a&gt;. Rory is the BBC’s technology correspondent and writes for the Beeb’s tech blog &lt;a href=&quot;http://www.bbc.co.uk/blogs/technology/&quot; target=&quot;_blank&quot;&gt;dot.life&lt;/a&gt;. He interviewed Tristan on open source, the background of Mozilla and of course the word on everyone’s lips - the new Firefox 3.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.bbc.co.uk/blogs/technology/2008/05/firefox_can_browsers_make_buck.html&quot; target=&quot;_blank&quot;&gt;Read the article here and also see Rory’s video of Tristan’s Firefox 3 demo. &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://news.bbc.co.uk/1/hi/technology/7389175.stm&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://autological.files.wordpress.com/2008/05/picture-2.png?w=300&amp;amp;h=178&quot; alt=&quot;Rory Cellan and Mobile Interview with Tristan&quot; height=&quot;178&quot; class=&quot;alignnone size-medium wp-image-58&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Fab comments as well.&lt;/p&gt;
&lt;img src=&quot;http://feeds.wordpress.com/1.0/categories/autological.wordpress.com/56/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;img src=&quot;http://feeds.wordpress.com/1.0/tags/autological.wordpress.com/56/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/autological.wordpress.com/56/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/autological.wordpress.com/56/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/autological.wordpress.com/56/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/autological.wordpress.com/56/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/autological.wordpress.com/56/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/autological.wordpress.com/56/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/autological.wordpress.com/56/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/autological.wordpress.com/56/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/autological.wordpress.com/56/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/autological.wordpress.com/56/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=autological.wordpress.com&amp;amp;blog=2480282&amp;amp;post=56&amp;amp;subd=autological&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</content:encoded>
	<dc:date>2008-05-08T17:27:56+00:00</dc:date>
	<dc:creator>jfinette</dc:creator>
</item>
<item rdf:about="http://browsing.justdiscourse.com/2008/05/08/the-trouble-with-google-docs-and-how-to-fix-it/">
	<title>Just Browsing: The Trouble with Google Docs (And How to Fix It)</title>
	<link>http://browsing.justdiscourse.com/2008/05/08/the-trouble-with-google-docs-and-how-to-fix-it/</link>
	<content:encoded>&lt;p&gt;I’ve been obsessing recently with configuring my home office software environment &lt;em&gt;just so&lt;/em&gt;. Since I went all Apple, all the time, I’m able to benefit from a lot of goodies that are built into OS X (notably iTunes). And developing on Mozilla means that I can do pretty much everything from the command line, using XCode as my editor (which gets me zero hacker cred but works just fine). I never touch a spreadsheet if I can help it, and if I don’t have to make another Powerpoint-style presentation ever again I don’t think my psyche will suffer in the slightest. So my computers lack an office productivity suite that would sully my Microsoft-free lifestyle or force me to install that lumbering beast that is NeoOffice.&lt;/p&gt;
&lt;p&gt;This delicate karma was shattered the other day when I needed to bang out an invoice for my customer. Rather than succumb to the siren call of office bloatware, I decided to give Google Docs a spin. What could be cooler than a free, lightweight web wordprocessor, I thought. Unfortunately the experience proved to be a deep disappointment.&lt;/p&gt;
&lt;p&gt;Some issues were relatively trivial. For example, the clipboard commands don’t seem to work on Mac and kept prompting me to use the operating system’s keyboard shortcuts. Annoying but not showstopping. Much more serious was the table management, which is atrocious. I kept bumping into a bug that prevented me from adding normal text underneath my table; it just wanted to tack on additional rows. Resizing columns is a total nightmare and getting the text in the columns to line up properly went beyond the nightmarish into the realm of sheer horror. When I went to export my document as a PDF, it in no way resembled the “WYSIWYG” of my actual document. I spent what seemed like hours (and might actually have &lt;em&gt;been&lt;/em&gt; hours) tweaking and exporting in a soul-sapping orgy of trial-and-error until I got something that vaguely resembled a professional-looking result.&lt;/p&gt;
&lt;p&gt;So now I know why Google Docs hasn’t encroached more significantly on Microsoft’s turf: it kind of sucks. Don’t get me wrong, I don’t need or want the zillions of bizarre features that traditional shrink-wrapped vendors insist of pushing on users in order to drive revenue from useless “upgrades”. But something as basic as table management should just work, and the exported output should look like the original document, dammit. Concerns about the dismal state of browser-based editors are not new, of course. Clay Shirky was &lt;a href=&quot;http://many.corante.com/archives/2004/08/11/ot_the_browseraswritinginstrument_saga_continues.php&quot;&gt;frothing at the mouth years ago&lt;/a&gt; over the lack of auto-save (though modern web apps seem to handle that pretty well), and I’ve &lt;a href=&quot;http://www.allpeers.com/blog/2005/04/13/ready-aim-edit/&quot;&gt;whinged at length&lt;/a&gt; about various other aspects of the same issue myself.&lt;/p&gt;
&lt;p&gt;Luckily, Google has a weapon in its arsenal that is perfectly suited to addressing this problem: Gears. Gears honcho Aaron Boodman blogged recently about &lt;a href=&quot;http://gearsblog.blogspot.com/2008/04/gears-and-standards.html&quot;&gt;Google’s ambitions for the product&lt;/a&gt;. Basically, the idea is not to replace existing existing browsers or preempt nascent standards. Instead, it is a platform for providing missing functionality in a cross-browser manner while vendors and standards catch up. So how about it, Google? A really kick ass editing component for Gears would fill a gaping hole in current browser feature sets and give Docs a fightly chance of competing effectively with its desktop-based counterparts.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T17:08:08+00:00</dc:date>
	<dc:creator>Matthew Gertner</dc:creator>
</item>
<item rdf:about="http://www.bitstampede.com/?p=363">
	<title>Eric Shepherd: Firefox 3: Why do I love thee?  The second way.</title>
	<link>http://www.bitstampede.com/2008/05/08/firefox-3-why-do-i-love-thee-2/</link>
	<content:encoded>&lt;p&gt;I’m a forgetful guy.  As I opened up WordPress to write this blog post, during the few seconds it took to type in the post’s title, I forgot what I was going to write about.  That’s how forgetful I am.&lt;/p&gt;
&lt;p&gt;Now that I’ve remembered, after about 30 seconds of scratching my head, I realized that anecdone would be a good way to start talking about the second way I love Firefox 3.&lt;/p&gt;
&lt;p&gt;As a guy that quickly loses his train of thought (usually loudly, and into a river at the bottom of the ravine underneath a missing bridge), anything that interrupts my workflow is a bad thing.  Firefox 3 does away with a number of things that used to interrupt me.&lt;/p&gt;
&lt;p&gt;One of the big ones is the new way Firefox asks if I’d like to save a password.  Instead of popping up an incredibly distracting modal dialog box, an unobtrusive strip appears at the top of the browser offering to save the password:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.bitstampede.com/pics/password-clip.png&quot; alt=&quot;&quot; height=&quot;32&quot; width=&quot;743&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I can keep on working, and deal with the password issue at my leisure.  Usually when I log in, there’s something I need to look at or write up quickly before I forget to deal with it, so this is a huge relief for me.&lt;/p&gt;
&lt;p&gt;Another big help for my addled brain is this: I often get (via mail or IRC) links to web pages including content I need to deal with.  Sometimes it’s an article I need to edit, sometimes it’s something I need to read.  Often it’s just something I need to refer to while I do other work.&lt;/p&gt;
&lt;p&gt;And, often, I don’t have time to deal with it right away.  So I leave the tab open, waiting for me to be ready to deal with the material.&lt;/p&gt;
&lt;p&gt;Sometimes these tabs stay open for weeks.&lt;/p&gt;
&lt;p&gt;And eventually, for whatever reason, I’m guaranteed to have to quit Firefox.&lt;/p&gt;
&lt;p&gt;Firefox 3 — joy of joys — remembers all my tabs and loads them right back up for me when I start it again.  No more having to bookmark every single page I might ever have to find again.  I can quit and restart at my slightest whim, safe in the knowledge that I won’t lose some important thing that I need to deal with… someday.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T13:00:08+00:00</dc:date>
	<dc:creator>sheppy</dc:creator>
</item>
<item rdf:about="http://weblogs.mozillazine.org/calendar/2008/05/may_8_2008_lightningsunbird_st.html">
	<title>Calendar: [May 8, 2008] Lightning/Sunbird Status Update</title>
	<link>http://weblogs.mozillazine.org/calendar/2008/05/may_8_2008_lightningsunbird_st.html</link>
	<content:encoded>&lt;p&gt;Only three days after the last status update, it's already time for another as the developers have fixed lots of bugs (19) in the last three days.&lt;/p&gt;
&lt;p&gt;The most notable fixes are in the area of iMIP/iTIP (sending and receiving e-mail invites) with the fixes for &lt;strong&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=377761&quot;&gt;bug 377761&lt;/a&gt;&lt;/strong&gt; (better compatibility with earlier Outlook releases) and &lt;strong&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=429938&quot;&gt;bug 429938&lt;/a&gt;&lt;/strong&gt; (support for meeting cancellation).&lt;/p&gt;
&lt;p&gt;Here's the list of all the 19 changes within the last three days:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=202360&quot;&gt;Bug 202360&lt;/a&gt;:&lt;br /&gt;Color Coding of Tasks and Events (multiple classification)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=322979&quot;&gt;Bug 322979&lt;/a&gt;:&lt;br /&gt;Views should not scroll the labelling columns along the non-scrolling axis&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=368976&quot;&gt;Bug 368976&lt;/a&gt;:&lt;br /&gt;Cannot undefine alarm for an exception&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=377761&quot;&gt;Bug 377761&lt;/a&gt;:&lt;br /&gt;Outlook 200x does not recognize iTIP/iMIP invitation because of MIME type issues&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=397896&quot;&gt;Bug 397896&lt;/a&gt;:&lt;br /&gt;Sync default snooze between Sunbird and Lightning&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=397913&quot;&gt;Bug 397913&lt;/a&gt;:&lt;br /&gt;Add tooltips to the miniday buttons&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=401693&quot;&gt;Bug 401693&lt;/a&gt;:&lt;br /&gt;Today pane not updated on Mac OS X after hibernation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=426746&quot;&gt;Bug 426746&lt;/a&gt;:&lt;br /&gt;Consolidate startup code&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=427006&quot;&gt;Bug 427006&lt;/a&gt;:&lt;br /&gt;Timezone offset incorrectly calculated for negative half hour timezones&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=428715&quot;&gt;Bug 428715&lt;/a&gt;:&lt;br /&gt;Between 23:00 and 00:00, the default event start date is 00:00 of the next day&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=429938&quot;&gt;Bug 429938&lt;/a&gt;:&lt;br /&gt;No cancel message is send to attendees if event is deleted&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=430254&quot;&gt;Bug 430254&lt;/a&gt;:&lt;br /&gt;Add interfaces to GData for UI code&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=430805&quot;&gt;Bug 430805&lt;/a&gt;:&lt;br /&gt;Permit to change the default free/busy attribute policy for all-day events&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=431829&quot;&gt;Bug 431829&lt;/a&gt;:&lt;br /&gt;Moving Today Pane button on Task toolbar removes it from Calendar toolbar&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=432218&quot;&gt;Bug 432218&lt;/a&gt;:&lt;br /&gt;Remove TB 1.5 specific code in getMailBar() function&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=432499&quot;&gt;Bug 432499&lt;/a&gt;:&lt;br /&gt;Duplicate id in calendar.xul&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=432703&quot;&gt;Bug 432703&lt;/a&gt;:&lt;br /&gt;Changing month with scroll wheel throws error&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=432793&quot;&gt;Bug 432793&lt;/a&gt;:&lt;br /&gt;Get rid of &quot;move&quot; transaction type&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.mozilla.org/show_bug.cgi?id=432794&quot;&gt;Bug 432794&lt;/a&gt;:&lt;br /&gt;Allow loading chrome scripts in test cases&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many thanks go to all developers, contributors, localizers, testers, and supporters that made and make this possible.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T12:04:25+00:00</dc:date>
</item>
<item rdf:about="http://ccgi.standard8.plus.com/blog/archives/12">
	<title>Mark Banner: Thunderbird Test Day</title>
	<link>http://ccgi.standard8.plus.com/blog/archives/12</link>
	<content:encoded>&lt;p&gt;Today is the first Thunderbird test day using the potential &lt;a href=&quot;http://ascher.ca/blog/2008/05/03/naming-alphas/&quot; title=&quot;David Ascher's blog on naming alphas&quot;&gt;Shredder Alpha 1&lt;/a&gt; builds. Find out more about the &lt;a href=&quot;http://feeds.feedburner.com/~r/rumblingedge/~3/285558989/bug_day_on_thursday_08_may_2008.html&quot; title=&quot;Thunderbird Test Day details.&quot;&gt;test day here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Having been working on various bits of Thunderbird’s Core MailNews code (and some of the specific code as well) since the Mozilla 1.8 branch was originally cut, it is exciting to be getting close to releasing the first alpha since the last major release. Whilst there is lots more work to do to get us to the final, its the first big step in the right direction.&lt;/p&gt;
&lt;p&gt;So, please do come along and help us test the alpha candidates. The more testing we get, the more confidence we’ll have in the candidates (assuming no failures!), and feedback will help us learn where we need to improve for the next alphas, betas and the final.&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T10:55:23+00:00</dc:date>
	<dc:creator>Standard8</dc:creator>
</item>
<item rdf:about="http://www.bitstampede.com/?p=367">
	<title>Eric Shepherd: A complicated day</title>
	<link>http://www.bitstampede.com/2008/05/08/a-complicated-day/</link>
	<content:encoded>&lt;p&gt;Today (that is to say, Wednesday) didn’t go the way I planned.  Right about the time I was planning to go run the errands that I needed to get done, I was overcome by weakness all over and wound up headed to the emergency room for the second time in as many weeks.&lt;/p&gt;
&lt;p&gt;It was an interesting experience.  I was so shaky and weak when I got there that they rushed me back to a room almost immediately, and got me hooked up to monitors.  When they were reasonably sure that I wasn’t about to keel over, things slowed down a lot.  Took over two and a half hours for a doctor to see me, and he spent about two minutes with me.&lt;/p&gt;
&lt;p&gt;He ordered up some tests — which took over 45 minutes to get started.  Then we waited around two more hours for the results, which came up that I was totally fine — which, by then, I was.&lt;/p&gt;
&lt;p&gt;The diagnosis: I still need to work on my fluid intake.&lt;/p&gt;
&lt;p&gt;Unfortunately, after spending almost six hours at the hospital, it was no longer really feasible to get my errands done — which means they’ll have to be done tomorrow.  I expect to do them in the morning, so I may get a late start working tomorrow (er, today, I guess, technically).&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T08:01:10+00:00</dc:date>
	<dc:creator>sheppy</dc:creator>
</item>
<item rdf:about="tag:blogger.com,1999:blog-2758194679605810173.post-6144794588507170402">
	<title>Melissa Shapiro: The slow death of the press release</title>
	<link>http://icouldntfindanypaper.blogspot.com/2008/05/slow-death-of-press-release.html</link>
	<content:encoded>People often ask me why Mozilla doesn't put out more &lt;a href=&quot;http://www.mozilla.com/en-US/press/news.html&quot;&gt;press releases &lt;/a&gt;or why the releases that we do put out are relatively short and news-driven. I then proceed to pull out my PR soapbox and spout off about the changing face of media and the need for PR to adapt beyond methods that are at best unproductive, and at worst detrimental to the entire industry.  That's good for drunken debates at &lt;a href=&quot;http://prsa.org/&quot;&gt;PRSA&lt;/a&gt; events but not quite palatable for everyone.  When I'm talking to non-PR people, I typically illustrate the concept by telling a story about my early days in PR.&lt;br /&gt;&lt;br /&gt;In 1999, I was an intern on the Tech, Telecom, and Energy team at a global PR firm's DC office.  Part of my job was to fax press releases to editorial teams at newsrooms nationwide.  I would spend hours punching in the phone numbers of major newspapers and publications for a fax blast (anyone remember those?).  I later heard from reporters that at the other end of the transmission, they had the incoming faxes feeding straight into a garbage can.  They would use the discarded press releases as scrap paper.&lt;br /&gt;&lt;br /&gt;I love this story for two reasons.  One, it explains the immediate failing of the press release; pushing news to people without any context or expressed interest is ineffective.  Two, it illustrates the ever-changing face of media and the need for PR to adapt or get sucked into the newsroom garbage can (or its modern equivalent, the editor's spam folder).&lt;br /&gt;&lt;br /&gt;Back in October, Chris Anderson of Wired and Long Tail fame, posted a &lt;a href=&quot;http://www.longtail.com/the_long_tail/2007/10/sorry-pr-people.html&quot;&gt;scathing indictment&lt;/a&gt; of the PR industry. His complaint?  Being blasted with news that he didn't request and wasn't interested in receiving.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I've had it. I get more than 300 emails a day and my problem isn't spam (Cloudmark Desktop solves that nicely), it's PR people. Lazy flacks send press releases to the Editor in Chief of Wired because they can't be bothered to find out who on my staff, if anyone, might actually be interested in what they're pitching.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I am certainly not the first person to assert that the golden age of the lengthy mass-blast press release was coming to a close. &lt;a href=&quot;http://flickr.com/&quot;&gt;Flickr&lt;/a&gt; &lt;a href=&quot;http://blog.flickr.net/en&quot;&gt;has long been a leader&lt;/a&gt; in the movement to move PR beyond the press release. In early 2004, they began &lt;a href=&quot;http://blog.flickr.net/en/2004/02/&quot;&gt;blogging their announcements&lt;/a&gt; in lieu of a traditional wire release.  Tom Foremski &lt;a href=&quot;http://www.siliconvalleywatcher.com/mt/archives/2006/02/die_press_relea.php&quot;&gt;wrote a post about this in 2006&lt;/a&gt; but the progress has been slow.  Two years later, &lt;a href=&quot;http://edelman.com/news/storycrafter/EdelmanNews.aspx?hid=171&quot;&gt;social news releases&lt;/a&gt; are starting to gain traction but they tend to look like deconstructed versions of standard news releases.&lt;br /&gt;&lt;br /&gt;Perhaps we are in the Web 1.0 phase of the press release.  When corporate content first appeared on the Web, most companies modeled their online presence after offline norms.  Businesses took their existing marketing materials and simply put them online.  Mainstream media did pretty much the same thing with early online news sites. Today, the Web has progressed far beyond that.  Offline ported to online does not equal Web presence.  Considering this, how do we advance our understanding of PR?&lt;br /&gt;&lt;br /&gt;At Mozilla, when we put out press releases they are often coupled with blog posts and/or FAQs in order to provide context or quick fodder for right click journalists looking for a quote.  They offer a voice, a perspective, a point of view.  Traditional press releases, by nature of their construct, simply cannot compete with the rich, interactive experience of the Web.&lt;br /&gt;&lt;br /&gt;The PR industry needs to revisit the concept of the next generation press release more than once every few years. Media is always changing.  PR needs to keep pace or it will go the way of &lt;a href=&quot;http://en.wikipedia.org/wiki/Junk_fax&quot;&gt;fax blasting&lt;/a&gt;: still around but &lt;a href=&quot;http://www.fcc.gov/cgb/policy/faxadvertising.html&quot;&gt;completely out of touch&lt;/a&gt; with the modern era.</content:encoded>
	<dc:date>2008-05-08T07:26:31+00:00</dc:date>
	<dc:creator>melissa</dc:creator>
</item>
<item rdf:about="http://oduinn.com/2008/05/07/we-have-how-many-machines/">
	<title>John O'Duinn: We have *how* many machines?</title>
	<link>http://oduinn.com/2008/05/07/we-have-how-many-machines/</link>
	<content:encoded>&lt;p&gt;As best as I can tell, it looks like we have the following machines running on each branch:&lt;/p&gt;
&lt;p&gt;02 machines for 1.8.0&lt;br /&gt;
+ 29 machines for 1.8&lt;br /&gt;
+ 88 machines for 1.9/trunk&lt;br /&gt;
+ 33 machines for moz2&lt;br /&gt;
====&lt;br /&gt;
152 machines in use today&lt;br /&gt;
+ 10 ref-images&lt;br /&gt;
+ 30 machines idle/waiting-to-mothball&lt;br /&gt;
====&lt;br /&gt;
192 machines total&lt;/p&gt;
&lt;p&gt;1) These numbers do not include any community machines yet. We’re still working on this.&lt;br /&gt;
2) The 88machines on 1.9/trunk are made up of 40 builder, 23 unittest and 25 talos machines.&lt;br /&gt;
3) Most of those 30 machines marked “idle/waiting-to-mothball” were only discovered during this housekeeping. Some of these now have bugs to track mothballing and being recycled… we’re still working through the list. It was interesting to find out how many people were still using machines that they thought were supported, but which we did not even know existed, or which we thought were long desupported!&lt;br /&gt;
4) Its taken weeks to collate this data, and I’m still not certain we’ve identified everything. We need a central list that can be the single-source-of-truth for all these machines. Instead of doing this on various wiki pages, we’re talking with Justin, mrz and Jeremy to see if we can use the same asset tracking db they use when they install machines into the colo. That would work much better for this, but need some customization. Stay tuned…&lt;/p&gt;
&lt;p&gt;We’re still gathering more info…to be continued in another blog post.
&lt;/p&gt;</content:encoded>
	<dc:date>2008-05-08T07:20:55+00:00</dc:date>
	<dc:creator>John</dc:creator>
</item>
<item rdf:about="http://whacked.net/?p=961">
	<title>Stephen Lau: OpenSolaris build support landed in Songbird!</title>
	<link>http://whacked.net/2008/05/07/opensolaris-build-support-landed-in-songbird/</link>
	<content:encoded>&lt;p&gt;woot woot poot poot!&lt;/p&gt;

&lt;p&gt;preed just landed (&lt;a href=&quot;http://publicsvn.songbirdnest.com/changeset/9189&quot;&gt;here&lt;/a&gt;, and &lt;a href=&quot;http://publicsvn.songbirdnest.com/changeset/9190&quot;&gt;here&lt;/a&gt;) alfred’s last two remaining patches for &lt;a href=&quot;http://bugzilla.songbirdnest.com/show_bug.cgi?id=7800&quot;&gt;bug 7800&lt;/a&gt;: &lt;em&gt;Songbird would be even more cross-platform with OpenSolaris/Solaris support!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://whacked.net/songbird_opensolaris.png&quot; style=&quot;border: none;&quot; class=&quot;photo&quot; /&gt;&lt;/p&gt;

&lt;p&gt;so as of now, OpenSolaris support is a first-class citisen in the Songbird SVN repo.  while we won’t be able provide QA coverage, i’m bringing up a machine here with &lt;a href=&quot;http://www.opensolaris.com/get/index.html&quot;&gt;OpenSolaris 2008.05&lt;/a&gt; that i hope to turn into a buildbot so we can at least monitor and know when checkins break the OpenSolaris build.&lt;/p&gt;

&lt;p&gt;needless to say, i’m pretty psyched at my two favourite open source projects getting it on. &lt;img src=&quot;http://whacked.net/wp-includes/images/smilies/icon_razz.gif&quot; alt=&quot;:-P&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;

&lt;p&gt;but what’s really cool is go take a look at &lt;a href=&quot;http://bugzilla.songbirdnest.com/show_bug.cgi?id=7800&quot;&gt;bug 7800&lt;/a&gt;… i mentioned this at our session at the DevSummit on Sunday: this was a fantastic example of an external contributor working directly via forums and via our Bugzilla, getting