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

<channel>
	<title>tech ramblings</title>
	<atom:link href="http://www.laurathomson.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.laurathomson.com</link>
	<description>Laura Thomson's random thoughts and rants about tech and FOSS</description>
	<pubDate>Wed, 26 May 2010 17:50:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Socorro: Mozilla&#8217;s Crash Reporting System</title>
		<link>http://www.laurathomson.com/2010/05/socorro-mozillas-crash-reporting-system/</link>
		<comments>http://www.laurathomson.com/2010/05/socorro-mozillas-crash-reporting-system/#comments</comments>
		<pubDate>Wed, 26 May 2010 17:50:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

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

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

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

		<guid isPermaLink="false">http://www.laurathomson.com/?p=124</guid>
		<description><![CDATA[(Cross-posted from the Mozilla WebDev blog.)
Recently, we&#8217;ve been working on planning out the future of Socorro.   If you&#8217;re not familiar with it, Socorro is Mozilla&#8217;s crash reporting  system.
You may have noticed that Firefox has become a lot less crashy  recently -  we&#8217;ve   seen a 40% improvement over the last [...]]]></description>
			<content:encoded><![CDATA[<p>(Cross-posted from the <a href="http://blog.mozilla.com/webdev/2010/05/19/socorro-mozilla-crash-reports/">Mozilla WebDev blog</a>.)</p>
<p>Recently, we&#8217;ve been working on planning out the future of Socorro.   If you&#8217;re not familiar with it, Socorro is Mozilla&#8217;s crash reporting  system.</p>
<p>You may have noticed that Firefox has become a lot less crashy  recently -  <a href="http://blog.mozilla.com/metrics/2010/04/08/dramatic-stability-improvements-in-firefox/">we&#8217;ve   seen a 40% improvement over the last five months</a>.  The data from   crash reports enables our engineers to find, diagnose, and fix the most   common crashes, so crash reporting is critical to these improvements.</p>
<p>We receive on our peak day each week <strong>2.5 million crash reports</strong>,   and process 15% of those, for a total of 50 GB.  In total, <strong>we  receive around 320Gb each day</strong>!  Right now we are handicapped  by the  limitations of our file system storage (NFS) and our database&#8217;s   ability to handle really large tables.   However, we are in the process  of moving to Hadoop, and currently all our crashes are also being   written to HBase.  Soon this will become our main data storage, and   we&#8217;ll be able to do a lot more interesting things with the data.  We&#8217;ll   also be able to process 100% of crashes.  We want to do this because  the  long tail of crashes is increasingly interesting, and we may be  able to  get insights from the data that were not previously possible.</p>
<p>I&#8217;ll start by taking a look at how things have worked to date.</p>
<h2>History of Crash Reporting</h2>
<p><a href="http://blog.mozilla.com/webdev/files/2010/05/Socorro.OSCON_.1.png"><img class="alignnone size-medium wp-image-1019" title="Current  Architecture" src="http://blog.mozilla.com/webdev/files/2010/05/Socorro.OSCON_.1-300x150.png" alt="Current Socorro Architecture" width="300" height="150" /></a></p>
<p>The data flows as follows:</p>
<ul>
<li>When Firefox crashes, the crash is submitted to Mozilla by a part of  the browser known as Breakpad.  At Mozilla&#8217;s end, this is where Socorro  comes into play.</li>
<li>Crashes are submitted to the collector, which writes them to  storage.</li>
<li> The monitor watches for crashes arriving, and queues some of them  for processing.  Right now, we throttle the system to only process 15%  of crashes due to capacity issues.  (We also pick up and transform other  crashes on demand as users request them.)</li>
<li>Processors pick up crashes and process them.  A processor gets its  next job from a queue in our database, invokes minidump_stackwalk (a  part of Breakpad) which combines the crash with symbols, where  available.  The results are written back into the database.   Some  further processing to generate reports (such as top crashes) is done  nightly by a set of cron jobs.</li>
<li>Finally, the data is available to Firefox and Platform engineers  (and anyone else that is interested) via the webui, at <a href="http://crash-stats.mozilla.com">http://crash-stats.mozilla.com</a></li>
</ul>
<h4>Implementation Details</h4>
<ul>
<li>The collector, processor, monitor and cron jobs are all written in  Python.</li>
<li>Crashes are currently stored in NFS, and processed crash information  in a PostgreSQL database.</li>
<li>The web app is written in PHP (using the Kohana framework) and draws  data both from Postgres and from a Pythonic web service.</li>
</ul>
<h2>Roadmap</h2>
<p>Future Socorro releases are a joint project between Webdev, Metrics,  and IT.  Some of our milestones focus on infrastructure improvements,  others on code changes, and still others on UI improvements.  Features  generally work their way through to users in this order.</p>
<ul>
<li>
<h3>1.6 - 1.6.3 (in production)</h3>
<p style="padding-left: 30px;">The  current production version is 1.6.3, which was released last Wednesday.   We don&#8217;t usually do second dot point releases but we did 1.6.1, 1.6.2,  and 1.6.3 to get Out Of Process Plugin (OOPP) support out to engineers  as it was implemented.</p>
<p style="padding-left: 30px;">When an  OOPP becomes unresponsive, a pair of twin crashes are generated: one for  the plugin process and one for the browser process.  For beta and  pre-release products, both of these crashes are available for inspection  via Socorro.  Unfortunately, Socorro throttles crash submissions from  released products due to capacity constraints.  This means one or the  other of the twins may not be available for inspection.  This limitation  will vanish with the release of Socorro 1.8.</p>
<p style="padding-left: 30px;">You can  now see whether a given crash signature is a hang or a crash, and  whether it was plugin or browser related.  In the signature tables, if  you see a stop sign symbol, that&#8217;s a hang.  A window means it is crash  report information from the browser, and a small blue brick means it is  crash report information from the plugin.</p>
<p style="padding-left: 30px;">If you  are viewing one half of a hang pair for a pre-release or beta product,  you&#8217;ll find a link to the other half at the top right of the report.</p>
<p style="padding-left: 30px;">You can  also limit your searches (using the Advanced Search Filters) to look  just at hangs or just at crashes, or to filter by whether a report is  browser or plugin related.</p>
</li>
<li>
<h3>1.7 (Q2)</h3>
<p style="padding-left: 30px;">We are in  the process of baking 1.7.  The key feature of this release is that we  will no longer be relying on NFS in production. All crash report  submissions are already stored in HBase, but with Socorro 1.7, we will  retrieve the data from HBase for processing and store the processed  result back into HBase.</p>
</li>
<li>
<h3>1.8 (Q2)</h3>
<p style="padding-left: 30px;">In 1.8,  we will migrate the processors and minidump_stackwalk instances to run  on our Hadoop nodes, further distributing our architecture.  This will  give us the ability to scale up to the amount of data we have as it  grows over time. You can see how this will simplify our architecture in  the following diagram.</p>
<p style="padding-left: 30px;"><a href="http://blog.mozilla.com/webdev/files/2010/05/diagram.11.png"><img class="alignnone size-medium wp-image-1020" title="New Socorro  Architecture" src="http://blog.mozilla.com/webdev/files/2010/05/diagram.11-300x142.png" alt="New Socorro Architecture" width="300" height="142" /></a></p>
<p style="padding-left: 30px;">With this  release, the 15% throttling of Firefox release channel crashes goes  away entirely.</p>
</li>
<li>
<h3>2.0 (Q3 2010)</h3>
<p style="padding-left: 30px;">You may  have noticed 1.9 is missing.  In this release we will be making the  power of Hbase available to the end user, so expect some significant UI  changes.</p>
<p style="padding-left: 30px;">Right now  we are in the process of specifying the PRD for 2.0.  This involves  interviewing a lot of people on the Firefox, Platform, and QA teams.  If  we haven&#8217;t scheduled you for an interview and you think we ought to  talk to you, please let us know.</p>
</li>
</ul>
<h2>Features under consideration</h2>
<ul>
<li>Full text search of crashes</li>
<li>Faceted search: start by finding crashes that match a particular  signature, and then drill down into them by category.<br />
Which of these crashes involved a particular extension or plugin?  Which  ones occured within a short time after startup?</li>
<li>The ability to write and run your own Map/Reduce jobs (training will  be provided)</li>
<li> Detection of &#8220;explosive crashes&#8221; that appear quickly</li>
<li>Viewing crashes by &#8220;build time&#8221; instead of clock time</li>
<li> Classification of crashes by component</li>
</ul>
<p>This is a big list, obviously.  We need your feedback - what should  we work on first?</p>
<p>One thing that we&#8217;ve learned so far through the interviews is that  people are not familiar with the existing features of Socorro, so expect  further blog posts with more information on how best to use it!</p>
<h2>How to get involved</h2>
<p>As always, we welcome feedback and input on our plans.</p>
<p>You can contact the team at socorro-dev@mozilla.com, or me personally  at laura@mozilla.com.</p>
<p>In addition, we always welcome contributions.  You can find our code  repository at<br />
<a href="http://code.google.com/p/socorro/">http://code.google.com/p/socorro/</a></p>
<p>We hold project meetings on a Wednesday afternoon - details and  agendas are here<br />
<a href="https://wiki.mozilla.org/Breakpad/Status_Meetings">https://wiki.mozilla.org/Breakpad/Status_Meetings</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2010/05/socorro-mozillas-crash-reporting-system/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Parenting Versus Programming</title>
		<link>http://www.laurathomson.com/2009/12/parenting-versus-programming/</link>
		<comments>http://www.laurathomson.com/2009/12/parenting-versus-programming/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 01:28:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.laurathomson.com/?p=123</guid>
		<description><![CDATA[This post was written for and first appeared in the PHP Advent Calendar 2009.
Advent calendars are about Christmas, and for me Christmas has always been a time for family. This year I have recently joined the ranks of the parents among you. I am taking a short break from work and focusing on being a [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post was written for and <a href='http://phpadvent.org/2009/parenting-versus-programming-by-laura-thomson'>first appeared</a> in the <a href='http://phpadvent.org/2009'>PHP Advent Calendar 2009</a>.</em></p>
<p>Advent calendars are about Christmas, and for me Christmas has always been a time for family. This year I have recently joined the ranks of the parents among you. I am taking a short break from work and focusing on being a mother rather than being a programmer. This has led me to reflect on the similarities between parenting and coding. I present these here for your enlightenment, or so you can laugh at me.</p>
<h2>Lesson One: Smells</h2>
<p>Babies, like programs, are associated with a variety of interesting smells. If you try to ignore the smells associated with babies, they only get worse over time. Then the screaming starts.</p>
<p>It was Martin Fowler who popularized the notion of code smells. These are defined as parts of your code that do things in an ugly way, or to put it a different way, they are hacks. Typically, when we find these parts of code, our eyes begin to glaze over, and we enter a strange, zombie-like state. (This will also be familiar to parents.) In this state, we are paralyzed and thus prevented from doing anything about the smell. It is only when we emerge from the cave of code smells into the daylight of clean code that we can again be productive. I am not sure whether it is the horror of the code, a tendency to procrastinate that is endemic among programmers, or simply a fear of breaking things that prevents most people from doing something about the mess. It is always the smelliest parts of the code that are the most fragile.</p>
<p>The lesson programmers can learn from babies, here, is to face your smells and get rid of them as quickly as possible. Then everybody&#8217;s happy.</p>
<h2>Lesson Two: Sleep</h2>
<p>I have now been programming for <em>mumble</em> years. Not long after I started work at Mozilla, a delightful Canadian journalist asked me what it was like to work with a group of people &#8220;so much younger than myself.&#8221; While I am not actually <em>that</em> old, I am old enough to have picked up some skills. One of these skills is the ability to survive on 4 to 6 hours of sleep a night for extended periods. Although this is not my favorite hobby, I have gained a certain level of mastery.</p>
<p>Another thing I&#8217;ve learned is that surviving on 4 to 6 hours of sleep a night for an extended period makes you mildly deranged. With parenting, as with programming, it is sometimes required. When you achieve a certain level of derangement, you find that very silly things start to sound like good ideas, or they just start to happen, whether you intended them to or not. For example, you find yourself accidentally filing the baby in the filing cabinet or implementing a new framework.</p>
<p>This is a lesson both programmers and parents can learn from the military: sleep when you can do so safely, and as often as possible. If you can snatch a few minutes of nap here and there, it may not make you feel a lot better, but your degraded IQ will recover somewhat.</p>
<h2>Lesson Three: With Great Power Comes Great Responsibility</h2>
<p>When you set out to implement a new web app or raise a child&#8201;&#8212;&#8201;and yes, I do realize these things are not quite on the same scale&#8201;&#8212;&#8201;you have a great responsibility to do a good job. Otherwise, everyone who has to interact with your app or child in the future will curse your name. Repeatedly. Your baby&#8201;&#8212;&#8201;whether it is human or code&#8201;&#8212;&#8201;is totally dependent upon you to do a good job.</p>
<h2>Lesson Four: It Takes a Village</h2>
<p>On that note, it is important to realize that it is very hard to raise a child or write a web app completely on your own. Some things are better done with a little help from your friends. Whether that help is providing a role model, a shoulder to cry on, advice when you just don&#8217;t know what to do, or purely someone to vent to, it really helps to surround yourself with people you can rely on.</p>
<p>That summarizes the commonalities between parenting and programming that I have learned over the last 7 weeks. I suspect I have a great deal more to learn.</p>
<p>One final note: If anyone approaches you to work on a web app that will take 18 years, run away as fast as you can, and do not look back.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2009/12/parenting-versus-programming/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Seven Things</title>
		<link>http://www.laurathomson.com/2009/01/seven-things/</link>
		<comments>http://www.laurathomson.com/2009/01/seven-things/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 15:14:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.laurathomson.com/?p=121</guid>
		<description><![CDATA[I feel like I&#8217;m about last to the party, but after getting tagged by Ben Ramsey I thought I&#8217;d contribute to this meme/tag/whatever that&#8217;s going around the PHP community.  I intend to blog more in 2009, so this is a starting point anyway.
Seven Things you didn&#8217;t know about me:
1.   I learned to program in the [...]]]></description>
			<content:encoded><![CDATA[<p>I feel like I&#8217;m about last to the party, but after getting tagged by <a href="http://benramsey.com/archives/seven-things/">Ben Ramsey</a> I thought I&#8217;d contribute to this meme/tag/whatever that&#8217;s going around the PHP community.  I intend to blog more in 2009, so this is a starting point anyway.</p>
<p>Seven Things you didn&#8217;t know about me:</p>
<p>1.   I learned to program in the 4th grade on an Apple II, in LOGO.  A high school near me had a program where a group of selected nerds from local schools would go there once a week and share two machines.  I was the only one in primary (elementary) school.</p>
<p>2. I used to do a lot of singing - school choir, madrigals, musicals, an a capella group with my friends, and a youth gospel band.  I sing alto.</p>
<p>3. I&#8217;m not religious and consider myself a (non militant) atheist.  We were raised that way since my family is a combination of Catholic, Jewish and Presbyterian and my parents didn&#8217;t believe in organized religion.  Despite this I went to an <a href="http://en.wikipedia.org/wiki/Tintern_Girls_Grammar_School">Anglican girls&#8217; school</a> for 11 years (also see the above mentioned gospel band) and am technically Jewish.</p>
<p>4. I met my husband <a href="http://lukewelling.com/">Luke Welling</a> in Advanced Software Engineering at college (<a href="http://rmit.edu.au/">RMIT University</a> in Melbourne, Australia).  We had to do a review of each other&#8217;s code as part of an assignment.  The first words he ever said to me were, &#8220;This is crap.&#8221;</p>
<p>5.  I moved house every 1-2 years when I was a kid, left school at 16, went back at 19, and then spent far too much time nerding out at college, which I loved.</p>
<p>6.  I&#8217;ve been riding horses since I was four years old.  At four, I rode my Shetland pony Froggy through the house to annoy my mother.  (I believe I succeeded.)</p>
<p>7.  I sold my first article to a magazine when I was about 13 years old.  It was a light humorous piece about the challenges involved in buying a horse and was printed in a national horse magazine.  (I always wanted to be a writer when I grew up&#8230;or possibly a veterinarian&#8230;or maybe a secret agent.  I never thought it would end up being tech books that I wrote.)  I have also written one complete bad novel, and the beginnings of several others.  (<a href="http://www.nanowrimo.org">Nanowrimo</a>, I&#8217;m looking at you.)</p>
<p>OK, now here are my tag-ees.</p>
<ul>
<li><a href="http://lukewelling.com">Luke Welling</a>, my awesome other half</li>
<li><a href="http://zak.greant.com/">Zak Greant</a>, old friend and PHPer, now fellow Mozillian</li>
<li><a href="http://gozer.ectoplasm.org/blog/">Gozer</a>, mod_perl afficionado, who we shall one day convert. (hah!)</li>
<li><a href="http://gravitonic.com/">Andrei Zmievski</a>, White Russian</li>
<li><a href="http://funkatron.com/">Ed Finkler</a>, Chief Funkatron Officer</li>
<li><a href="http://morgamic.com/">Mike Morgan</a>, Mozilla&#8217;s webdev Czar and my boss</li>
<li><a href="http://jeff.loiselles.com/wordpress/">Jeff Loiselle</a>, CakePHPer and muso.</li>
</ul>
<p>Tag-wise, here are the rules:</p>
<ul>
<li>Link your original tagger(s), and list these rules on your blog.</li>
<li>Share seven facts about yourself in the post—some random, some weird.</li>
<li>Tag seven people at the end of your post by leaving their names and the links to their blogs.</li>
<li>Let them know they’ve been tagged by leaving a comment on their blogs and/or Twitter.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2009/01/seven-things/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Year at Mozilla</title>
		<link>http://www.laurathomson.com/2008/09/a-year-at-mozilla/</link>
		<comments>http://www.laurathomson.com/2008/09/a-year-at-mozilla/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 21:41:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Mozilla]]></category>

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

		<guid isPermaLink="false">http://www.laurathomson.com/?p=120</guid>
		<description><![CDATA[This week marks one year I have been at Mozilla.  I&#8217;ve always found milestones a good time for reflection, so I tend to think back around these times.
Since I started at Mozilla, I&#8217;ve been lucky enough to work on some great projects, including:
- Developing the AMO (http://addons.mozilla.org) API, used by Firefox 3 for the Addons [...]]]></description>
			<content:encoded><![CDATA[<p>This week marks one year I have been at Mozilla.  I&#8217;ve always found milestones a good time for reflection, so I tend to think back around these times.</p>
<p>Since I started at Mozilla, I&#8217;ve been lucky enough to work on some great projects, including:</p>
<p>- Developing the AMO (<a title="AMO" href="http://addons.mozilla.org" target="_blank">http://addons.mozilla.org</a>) API, used by Firefox 3 for the Addons Manager</p>
<p>- Scaling SUMO (<a title="SUMO" href="http://support.mozilla.com" target="_blank">http://support.mozilla.com</a>) in preparation for Download Day</p>
<p>- Leading development for SUMO</p>
<p>- Helping plan the PHP5 migration for our web properties, and migrating AMO</p>
<p>- Working with Chris Pollett on full text search for AMO</p>
<p>- Working with Jacob Potter, one of our awesome interns this summer, on Melanion, our loadtesting webapp</p>
<p>- Working with Legal on an upcoming project</p>
<p>- Designing and planning a Single Sign On solution for all of the Mozilla web properties.</p>
<p>There&#8217;s been a lot of travel including to the superb Firefox Summit at Whistler, which was one of the highlights of my year.</p>
<p>I&#8217;ve also been pretty slack about blogging over the last year, I note, because some of these things really deserve their own entries.</p>
<p>The Mozilla firehose takes a while to absorb, but finally it dawns on you that this place is really really different from other companies, and in a very good way.  John Lilly was calling it &#8220;chaord&#8221; which is an excellent description - pushing control and responsibility out to the edges.  In some ways it reminds me of academia, with regard to both the autonomy we have and the rigor in the way we do things, in other ways the organic anarchy of many other Open Source projects.</p>
<p>I&#8217;m also really lucky, and feel privileged, to work with such a good group of people, both in my own team and in the whole of the organization.</p>
<p>On a more personal note, I&#8217;m a much happier person now than I was when I started this job.  I don&#8217;t think I&#8217;ll ever be the same person who came to the USA for three months three years ago, but I guess time changes everyone.  (Even this year hasn&#8217;t been straightforward or quiet on a personal level, but it&#8217;s been easier.)</p>
<p>Here&#8217;s to many more years of good work with the good people at Mozilla.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2008/09/a-year-at-mozilla/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A rare and special day</title>
		<link>http://www.laurathomson.com/2008/07/a-rare-and-special-day/</link>
		<comments>http://www.laurathomson.com/2008/07/a-rare-and-special-day/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 01:22:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.laurathomson.com/?p=119</guid>
		<description><![CDATA[Yesterday was one of the best days I have ever had.
We rented a car and drove from Portland through twisty mountain roads (all alike) to Nehalem State Park on the Oregon Coast.  Luke and I were guided on our adventure by Wendy, her daughter Blake, and helper Tracy from Northwest Equine Outfitters.  (Wendy started running [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday was one of the best days I have ever had.</p>
<p>We rented a car and drove from Portland through twisty mountain roads (all alike) to Nehalem State Park on the Oregon Coast.  Luke and I were guided on our adventure by Wendy, her daughter Blake, and helper Tracy from Northwest Equine Outfitters.  (Wendy started running trail rides because she is a quarter horse breeder, and the horses needed to help with the bills.)</p>
<p>After mounting up we rode through the dunes and scrub of the state park, past deer, and giant gulls.  A mist of rain freshened our faces as we cantered over the sand and down to the beach.  What I thought at first was a pile of rocks turned out to be the local seal colony, some dozing idly, others keeping a watchful eye on us, with tails raised.</p>
<p>We dismounted at the beach and left the horses.  Wendy called for a ride and a tiny boat, with pirate flag astern, came speeding across the estuary to pick us up.  We sailed past the seals - a bit closer this time, so we could see their black little eyes and long whiskers - and then crossed the water to the Jetty, where we bought freshly caught clams, crabs, and oysters.  The fishermen steamed the clams and crabs for us, while we took our oysters to the campfire and cooked them over the open flames. The oysters were the biggest I have ever seen - the meat in each one the size of two hands.  Wendy basted them in a mix of butter, garlic, chili powder, hot sauce, and lime juice.  We sat on giant seats carved out of thousand year old trees around the camp fire, patted the dogs, ate oysters til our fingers dripped with juice, and heard stories of great courage and being lost at sea.</p>
<p>Eventually we sailed back over the water and were reunited with our horses.  We rode down the beach for a couple more hours, returning at last, exhausted and sandy, to the corrals.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2008/07/a-rare-and-special-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Write Beautiful Code at OSCON</title>
		<link>http://www.laurathomson.com/2008/07/write-beautiful-code-at-oscon/</link>
		<comments>http://www.laurathomson.com/2008/07/write-beautiful-code-at-oscon/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 21:59:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.laurathomson.com/?p=117</guid>
		<description><![CDATA[I gave my talk yesterday at OSCON 2008, and here are the slides.
It&#8217;s interesting - I think every time I have given this talk I focus on a slightly different aspect.  Yesterday it was the importance of decoupling parts of your application architecture as much as possible.  This is better for security reasons [...]]]></description>
			<content:encoded><![CDATA[<p>I gave my talk yesterday at OSCON 2008, and here are the <a href="http://www.laurathomson.com/wp-content/uploads/2008/07/write_beautiful_code_oscon2008.pdf">slides</a>.</p>
<p>It&#8217;s interesting - I think every time I have given this talk I focus on a slightly different aspect.  Yesterday it was the importance of decoupling parts of your application architecture as much as possible.  This is better for security reasons (allows paranoid coding practices), for scaling (allows you to switch out and/or scale components independently and quickly), and for maintainability.</p>
<p>OSCON is good as usual - if you&#8217;re here be sure to join Mozilla at <a href="http://upcoming.yahoo.com/event/782117/">Beerforge</a> tonight, and come say hi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2008/07/write-beautiful-code-at-oscon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Why Open Source rocks</title>
		<link>http://www.laurathomson.com/2008/05/why-open-source-rocks/</link>
		<comments>http://www.laurathomson.com/2008/05/why-open-source-rocks/#comments</comments>
		<pubDate>Wed, 14 May 2008 14:54:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Mozilla]]></category>

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

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

		<guid isPermaLink="false">http://www.laurathomson.com/?p=116</guid>
		<description><![CDATA[The interview I did with Bruce Byfield at OpenWeb Vancouver has been posted on linux.com.  In it, I talk about why Free and Open Source Software makes for better programmers, how to make developers happy, and explain why all the passionate people at Mozilla make it a cool place to live.
]]></description>
			<content:encoded><![CDATA[<p>The <a title="Interview on linux.com" href="http://www.linux.com/feature/133560" target="_self">interview</a> I did with <a title="Bruce Byfield" href="http://members.axion.net/~bbyfield/">Bruce Byfield</a> at <a href="http://www.openwebvancouver.ca/">OpenWeb Vancouver</a> has been posted on linux.com.  In it, I talk about why Free and Open Source Software makes for better programmers, how to make developers happy, and explain why all the passionate people at <a href="http://www.mozilla.com">Mozilla</a> make it a cool place to live.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2008/05/why-open-source-rocks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Foxes</title>
		<link>http://www.laurathomson.com/2008/05/foxes/</link>
		<comments>http://www.laurathomson.com/2008/05/foxes/#comments</comments>
		<pubDate>Sun, 11 May 2008 22:05:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

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

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

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

		<guid isPermaLink="false">http://www.laurathomson.com/?p=115</guid>
		<description><![CDATA[We have a litter of fox kits in the back field at our house.  Today we managed to catch them on film.  Please enjoy our very own foxkehs.   

Edited to add: Some people apparently don&#8217;t know Foxkeh&#8230;for comparison:

You can view the whole set here:
http://flickr.com/photos/lauraxthomson/sets/72157605003262452/
]]></description>
			<content:encoded><![CDATA[<p>We have a litter of fox kits in the back field at our house.  Today we managed to catch them on film.  Please enjoy our very own foxkehs.  <img src='http://www.laurathomson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a title="Foxkeh? by lxt, on Flickr" href="http://www.flickr.com/photos/lauraxthomson/2484588296/"><img src="http://farm4.static.flickr.com/3076/2484588296_91dbf3d71d.jpg" alt="Foxkeh?" width="393" height="500" /></a></p>
<p>Edited to add: Some people apparently don&#8217;t know Foxkeh&#8230;for comparison:<br />
<img src="http://www.foxkeh.com/downloads/materials/front.png" alt="Foxkeh,  (C) 2006 Mozilla Japan" /></p>
<p>You can view the whole set here:<br />
<a href="http://flickr.com/photos/lauraxthomson/sets/72157605003262452/">http://flickr.com/photos/lauraxthomson/sets/72157605003262452/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2008/05/foxes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Blog relocation</title>
		<link>http://www.laurathomson.com/2008/04/blog-relocation/</link>
		<comments>http://www.laurathomson.com/2008/04/blog-relocation/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 17:07:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.laurathomson.com/?p=113</guid>
		<description><![CDATA[After a bunch of DNS and other broken-ness issues, I have given up on TypePad and moved my blog to self hosted WordPress.
Some links are still broken (notably About and Talks) but I&#8217;m working on that and hopefully they should be fixed soon.
Links to specific posts will also be broken, but they are all here [...]]]></description>
			<content:encoded><![CDATA[<p>After a bunch of DNS and other broken-ness issues, I have given up on TypePad and moved my blog to self hosted WordPress.</p>
<p>Some links are still broken (notably About and Talks) but I&#8217;m working on that and hopefully they should be fixed soon.</p>
<p>Links to specific posts will also be broken, but they are all here somewhere.  (If I get time I might put in a bunch of rewrite rules but I&#8217;m not sure there are enough links into specific posts here for that to be worth it.  Tell me if you have specific requests.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2008/04/blog-relocation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Firefox 3 Beta 3 Add-ons Manager and Add-ons API</title>
		<link>http://www.laurathomson.com/2008/02/firefox-3-beta-3-add-ons-manager-and-add-ons-api/</link>
		<comments>http://www.laurathomson.com/2008/02/firefox-3-beta-3-add-ons-manager-and-add-ons-api/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 19:12:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

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

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

		<guid isPermaLink="false">http://www.laurathomson.com/?p=111</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Yesterday the <a href="http://www.mozilla.com/en-US/firefox/all-beta.html">beta 3 of Firefox 3</a> was released to the world.&nbsp; This beta contains the new Add-ons Manager, and people seem to be liking it so far - <a href="http://arstechnica.com/news.ars/post/20080212-first-look-firefox-3-beta-3.html">ArsTechnica says</a> </p>
<blockquote><p>One of the most promising and impressive new features in beta 3 is an<br />
integrated add-on installer system that allows users to search for and<br />
install add-ons from <a href="http://addons.mozilla.org">addons.mozilla.org</a> directly through the Add-ons<br />
Manager user interface. </p>
</blockquote>
<p>The new Add-ons Manager is the result of collaboration between a bunch of smart Mozilla people - <a href="http://madhava.com/egotism/">Madhava Enros</a> and <a href="http://www.oxymoronical.com/">Dave Townsend</a> to name two - and a small contribution from yours truly.&nbsp; </p>
<p>The Add-ons Manager pulls data about Recommended addons and search results from the main addons.mozilla.org (AMO) website via the AMO API, which is my project.&nbsp; &nbsp; When you ask for a recommendation, the Add-ons manager pulls a RESTian URL like</p>
<p><a href="https://services.addons.mozilla.org/en-US/firefox/api/list/recommended/all/1">https://services.addons.mozilla.org/en-US/firefox/api/list/recommended/all/</a></p>
<p>checks for addons that you don&#8217;t yet have installed from that list, and displays details of the remaining addons.</p>
<p>The API will be (is) available to the community as well, and promoted once testing is complete.&nbsp; If you&#8217;d like to experiment with the API then draft documentation is available at<br />
<a href="http://wiki.mozilla.org/Update:Remora_API_Docs">http://wiki.mozilla.org/Update:Remora_API_Docs</a><br />
(This will move to the Mozilla Developer Center once it&#8217;s more fleshed out.)&nbsp; Please file any bugs you find. </p>
<p>
I&#8217;m still working on tweaks and bug fixes: I&#8217;ve already fixed a bunch of character encoding issues in different languages, and applied some performance tweaks. (Some still to go into production.)&nbsp; Right now, I&#8217;m working on speeding up search.&nbsp; Search is slow on the whole of AMO, and later this year I plan to implement a full text search.&nbsp; Right now it&#8217;s just tweaking - it&#8217;s slow because when you search all the possible translations are searched (think many left joins), and the plan is to rejig the database to only search your local translation plus English (since many add-ons are only available in English, and we wouldn&#8217;t want you to miss out). </p>
<p>Anyway, it&#8217;s been great fun working on this project so far, and it&#8217;s incredibly rewarding to think that something I wrote is incorporated into my favorite browser.&nbsp; </p>
]]></content:encoded>
			<wfw:commentRss>http://www.laurathomson.com/2008/02/firefox-3-beta-3-add-ons-manager-and-add-ons-api/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
