<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet LCA2010</title>
	<link rel="self" href="http://planet.lca2010.org.nz/atom.xml"/>
	<link href="http://planet.lca2010.org.nz"/>
	<id>http://planet.lca2010.org.nz/atom.xml</id>
	<updated>2010-09-03T02:19:19+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="en">
		<title type="html">Drupal Down Under</title>
		<link href="http://www.linux.org.au/content/drupal-down-under"/>
		<id>http://www.linux.org.au/948 at http://www.linux.org.au</id>
		<updated>2010-09-02T04:41:42+00:00</updated>
		<content type="html">&lt;div class=&quot;field field-type-date field-field-grant-applied-date&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Applied:&amp;nbsp;&lt;/div&gt;
                    &lt;span class=&quot;date-display-single&quot;&gt;Monday, 16 August 2010&lt;/span&gt;        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-date field-field-grant-date&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Granted:&amp;nbsp;&lt;/div&gt;
                    &lt;span class=&quot;date-display-single&quot;&gt;Wednesday, 1 September 2010&lt;/span&gt;        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-text field-field-grant-grantee&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Grantee:&amp;nbsp;&lt;/div&gt;
                    Marmalade Soul        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;field field-type-link field-field-grant-original&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                      &lt;div class=&quot;field-label-inline-first&quot;&gt;
              Original:&amp;nbsp;&lt;/div&gt;
                    &lt;a href=&quot;http://lists.linux.org.au/pipermail/linux-aus/2010-August/018210.html&quot;&gt;http://lists.linux.org.au/pipermail/linux-aus/2010-August/018210.html&lt;/a&gt;        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Dear Linux Australia Council,&lt;/p&gt;
&lt;p&gt;We&amp;#039;re planning a National Drupal conference called DrupalDownunder. We&amp;#039;re backing off LCA 2011 as per discussions with Shaun Nykvist — with Donna Benjamin being our liaison between both parties.&lt;/p&gt;
&lt;p&gt;We&amp;#039;re looking at 200 delegates to attend and we&amp;#039;re currently in discussions with several well-known Drupal speakers enticing them to submit proposals for LCA and in turn DDU (DrupalDownunder).&lt;/p&gt;
&lt;p&gt;We&amp;#039;d love to be a subcommittee of LA, as has been the recommended course of action.&lt;/p&gt;
&lt;div class=&quot;field field-type-filefield field-field-node-image&quot;&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                    &lt;img class=&quot;imagefield imagefield-field_node_image&quot; width=&quot;524&quot; height=&quot;599&quot; alt=&quot;Druplicon&quot; src=&quot;http://www.linux.org.au/files/node_images/524px-Druplicon.vector.svg_.png?1283404419&quot; /&gt;        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Linux Australia</name>
			<uri>http://www.linux.org.au</uri>
		</author>
		<source>
			<title type="html">Linux Australia</title>
			<link rel="self" href="http://www.linux.org.au/rss.xml"/>
			<id>http://www.linux.org.au/rss.xml</id>
			<updated>2010-09-03T02:13:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Explaining MVCC in Postgres: system defined columns</title>
		<link href="http://www.chesnok.com/daily/2010/09/01/explaining-mvcc-in-postgres-system-defined-columns/"/>
		<id>http://www.chesnok.com/daily/?p=1921</id>
		<updated>2010-09-01T15:00:18+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://www.chesnok.com/daily/wp-content/uploads/2010/09/Untitled.png&quot;&gt;&lt;img src=&quot;http://www.chesnok.com/daily/wp-content/uploads/2010/09/Untitled.png&quot; alt=&quot;&quot; title=&quot;How MVCC is implemented in PostgreSQL&quot; width=&quot;300&quot; height=&quot;218&quot; class=&quot;aligncenter size-full wp-image-1922&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m playing around with some diagrams for explaining MVCC that I&amp;#8217;ll be posting here over the next few days. Not sure if I&amp;#8217;ll end up giving up on slides and just use a whiteboard for the talk. I made an &lt;a href=&quot;http://www.slideshare.net/selenamarie/illustrated-buffer-cache&quot;&gt;illustrated shared buffers&lt;/a&gt; deck to go along with Greg Smith&amp;#8217;s excellent talk on shared buffers a while back. This is the beginning of a talk that I hope will emulate that.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.chesnok.com/daily/wp-content/uploads/2010/09/mvcc_in_postgres.pdf&quot;&gt;Here are my first few slides&lt;/a&gt;, showing the system-defined columns. The next few slides will describe optimizations PostgreSQL has for managing the side effects of our pessimistic rollback strategy, and reducing IO during vacuuming and index updates.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2008/11/26/postgres-mailing-list-traffic-over-time/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Postgres mailing list traffic over time&quot;&gt;Postgres mailing list traffic over time&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2009/02/10/fsm-visibility-map-and-new-vacuum-awesomeness/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: FSM, visibility map and new VACUUM awesomeness&quot;&gt;FSM, visibility map and new VACUUM awesomeness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2010/05/26/pgcon-2010-plparrot-simulated-annealing-exclusion-constraints-postgres-xc/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: PgCon 2010 &amp;#8211; PL/Parrot, Simulated Annealing, Exclusion Constraints, Postgres-XC&quot;&gt;PgCon 2010 &amp;#8211; PL/Parrot, Simulated Annealing, Exclusion Constraints, Postgres-XC&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;</content>
		<author>
			<name>Selena Deckelmann</name>
			<uri>http://www.chesnok.com/daily</uri>
		</author>
		<source>
			<title type="html">tending the garden</title>
			<subtitle type="html">selena marie deckelmann's blog</subtitle>
			<link rel="self" href="http://www.chesnok.com/daily/feed/"/>
			<id>http://www.chesnok.com/daily/feed/</id>
			<updated>2010-09-03T01:19:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">New Google Maps Imagery Of Auckland</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/09/new_google_maps.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/09/new_google_maps.html</id>
		<updated>2010-09-01T10:47:19+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;At some point relatively recently, Google added much higher-resolution images of Auckland to Google Maps. These images appear to have been taken by aerial photography and they're quite amazing.
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=8+Kent+St,+Newmarket,+Auckland+1023,+New+Zealand&amp;sll=37.0625,-95.677068&amp;sspn=45.957536,79.013672&amp;ie=UTF8&amp;hq=&amp;hnear=8+Kent+St,+Newmarket,+Auckland+1023,+New+Zealand&amp;t=h&amp;ll=-36.867725,174.77598&amp;spn=0.001483,0.002411&amp;z=19&quot;&gt;Mozilla's Auckland office&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=8+Kent+St,+Newmarket,+Auckland+1023,+New+Zealand&amp;sll=37.0625,-95.677068&amp;sspn=45.957536,79.013672&amp;ie=UTF8&amp;hq=&amp;hnear=8+Kent+St,+Newmarket,+Auckland+1023,+New+Zealand&amp;ll=-36.877542,174.764339&amp;spn=0.001425,0.002411&amp;t=h&amp;z=19&quot;&gt;Mount Eden&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;http://maps.google.com/maps?q=-36.875744,174.77275&amp;num=1&amp;t=h&amp;sll=-36.868012,174.776139&amp;sspn=0.006295,0.006295&amp;ie=UTF8&amp;ll=-36.847255,174.830799&amp;spn=0.001425,0.002411&amp;z=19&quot;&gt;Misson Bay&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;http://maps.google.com/maps?q=-36.875744,174.77275&amp;num=1&amp;t=h&amp;sll=-36.868012,174.776139&amp;sspn=0.006295,0.006295&amp;ie=UTF8&amp;ll=-36.828969,174.812204&amp;spn=0.000713,0.001206&amp;z=20&quot;&gt;North Head defensive emplacement&lt;/a&gt;
&lt;li&gt;&lt;a href=&quot;http://maps.google.com/maps?q=-36.875744,174.77275&amp;num=1&amp;t=h&amp;sll=-36.868012,174.776139&amp;sspn=0.006295,0.006295&amp;ie=UTF8&amp;ll=-36.834884,174.731897&amp;spn=0.000713,0.001206&amp;z=20&quot;&gt;Watchman Island&lt;/a&gt;
&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Best (Scott Pilgrim) meta film review ever</title>
		<link href="http://bethesignal.org/blog/2010/09/01/best-scott-pilgrim-meta-review-ever/"/>
		<id>http://bethesignal.org/?p=1817</id>
		<updated>2010-09-01T06:39:10+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img class=&quot;aligncenter size-full wp-image-1819&quot; title=&quot;Scott Pilgrim vs. The World&quot; src=&quot;http://bethesignal.org/wp-content/uploads/2010/09/scott-pilgrim-meta-review.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;427&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Here&amp;#8217;s what I&amp;#8217;m saying: I&amp;#8217;m a woman, I&amp;#8217;m in my late thirties, I can&amp;#8217;t  handle first-person shooters, I&amp;#8217;m afraid of Comic-Con, and I really,  really liked &lt;em&gt;Scott Pilgrim vs. The World&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I hope I&amp;#8217;m not, you know, &lt;em&gt;blowing your mind.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;#8211; Linda Holmes in her incredibly cool meta-film-review, &lt;a href=&quot;http://www.npr.org/blogs/monkeysee/2010/08/12/129150813/-scott-pilgrim-versus-the-unfortunate-tendency-to-review-the-audience&quot;&gt;&amp;#8216;Scott Pilgrim&amp;#8217; Versus The Unfortunate Tendency To Review The Audience&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Jeff Waugh</name>
			<uri>http://bethesignal.org</uri>
		</author>
		<source>
			<title type="html">Be the signal</title>
			<subtitle type="html">where we're going, we don't need roads...</subtitle>
			<link rel="self" href="http://bethesignal.org/feed/"/>
			<id>http://bethesignal.org/feed/</id>
			<updated>2010-09-03T02:19:14+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Code Quality</title>
		<link href="http://blogs.gnome.org/ebassi/2010/08/31/code-quality/"/>
		<id>http://blogs.gnome.org/ebassi/2010/08/31/code-quality/</id>
		<updated>2010-08-31T15:01:17+00:00</updated>
		<content type="html">&lt;p&gt;Morten, it&amp;#8217;s actually &lt;a href=&quot;http://blogs.gnome.org/mortenw/2010/08/31/code-quality/&quot;&gt;my fault&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;the patch that was submitted was the incorrect one; I&amp;#8217;ve been fixing the implementation since then, mostly because the API is correct &amp;mdash; and went through different eyeballs to ensure that &amp;mdash; and we wanted to land it before the GLib freeze. the implementation, alas, has issues &amp;mdash; and not just the ones you saw.&lt;/p&gt;
&lt;p&gt;as I said, it&amp;#8217;s definitely my fault: I reviewed the original in a way that was less than acceptable. I sincerely apologize for that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;okay, having said that&lt;/strong&gt;, and resuming my usual self: bitching on planet GNOME is not going to get anything fixed. insulting the maintainer when the issue lies mostly in a &amp;#8220;patch lieutenant&amp;#8221; (such as myself) is also not how polite people deal with errors.&lt;/p&gt;
&lt;p&gt;finally, saying that the code &lt;em&gt;needs to be taken out back&lt;/em&gt; is a lame cop-out and it is an untenable position for anyone contributing. the code went in, there were issues, so it needs to be fixed. if we waited for perfect code the amount of merged we&amp;#8217;d get would be zero. that code has been in the bug for the past 6 months, and it&amp;#8217;s been discussed in the past IRC meetings, with public minutes and logs.&lt;/p&gt;
&lt;p&gt;so, please: file bugs. I&amp;#8217;ll try to close them faster than you can open them.&lt;/p&gt;</content>
		<author>
			<name>ebassi</name>
			<uri>http://blogs.gnome.org/ebassi</uri>
		</author>
		<source>
			<title type="html">Context Switch</title>
			<subtitle type="html">Just another GNOME Blogs weblog</subtitle>
			<link rel="self" href="http://blogs.gnome.org/ebassi/feed/atom/"/>
			<id>http://blogs.gnome.org/ebassi/feed/atom/</id>
			<updated>2010-09-01T09:18:53+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Using the Grid plugin in Compiz</title>
		<link href="http://www.guru.net.nz/blog/2010/08/using-the-grid-plugin-in-compiz.html"/>
		<id>http://www.guru.net.nz/blog/?p=345</id>
		<updated>2010-08-31T09:09:51+00:00</updated>
		<content type="html">&lt;p&gt;Recently I&amp;#8217;ve been introduced to the Grid plugin in Compiz &amp;#8211; this is a fantastic little plugin that snaps your windows to predefined positions on the screen.  After using it for the last couple of weeks I can&amp;#8217;t imagine going back to not using it.&lt;/p&gt;
&lt;p&gt;To get access to it you will need to install the compiz settings manager, and load Compiz&amp;#8217;s &amp;#8220;Fusion Plugins Extra&amp;#8221;:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;bash bash&quot;&gt;&lt;span&gt;sudo&lt;/span&gt; &lt;span&gt;apt-get&lt;/span&gt; &lt;span&gt;install&lt;/span&gt; \
    compizconfig-settings-manager \
    compiz-fusion-plugins-extra&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Once you&amp;#8217;ve done this simply enable it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;System, Preferences, CompizConfig Settings Manager&lt;/li&gt;
&lt;li&gt;In the Filter box in the top left, type in &amp;#8220;grid&amp;#8221;&lt;/li&gt;
&lt;li&gt;Tick the box to enable it and click &amp;#8220;Close&amp;#8221; (bottom left)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now try using Ctrl-Alt and numbers on your keypad.  CA-9 will snap a window into the top right corner (press it a few more times to get different sizes) and CA-8 will make it snap to the top half of the screen (the number is the position on the screen, you&amp;#8217;ll get the gist of it).&lt;/p&gt;
&lt;p&gt;Check out this demo video:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Happy Ubuntuing!&lt;/p&gt;</content>
		<author>
			<name>Bob Brown</name>
			<uri>http://www.guru.net.nz/blog</uri>
		</author>
		<source>
			<title type="html">Confessions of a Guru</title>
			<subtitle type="html">Random stuff from a Dunedin (NZ) based web developer, beer drinker and dad</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/ConfessionsOfAGuru"/>
			<id>http://feeds.feedburner.com/ConfessionsOfAGuru</id>
			<updated>2010-08-31T10:12:49+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Going Solo</title>
		<link href="http://horms.org/pleb_blossom/permalink/2010/2010-08-31T17_09_06.shtml"/>
		<id>http://horms.org/pleb_blossom/permalink/2010/2010-08-31T17_09_06.shtml</id>
		<updated>2010-08-31T08:09:06+00:00</updated>
		<content type="html">&lt;img src=&quot;http://horms.org/pleb_blossom/pics/5-3976.jpg&quot; width=&quot;79&quot; height=&quot;120&quot; alt=&quot;[Skydiving in Picton]&quot; align=&quot;right&quot; /&gt;
				I'm going solo, working for myself at
				&lt;a href=&quot;http://horms.net&quot;&gt;Horms&amp;nbsp;Solutions&lt;/a&gt;,
				a boutique free and open source software consultancy.
				&lt;br clear=&quot;right&quot; /&gt;</content>
		<author>
			<name>Simon Horman</name>
			<uri>http://horms.org/</uri>
		</author>
		<source>
			<title type="html">Horms</title>
			<subtitle type="html">Themable Horms!</subtitle>
			<link rel="self" href="http://www.vergenet.net/~horms/pleb_blossom/rss.xml"/>
			<id>http://www.vergenet.net/~horms/pleb_blossom/rss.xml</id>
			<updated>2010-08-31T09:12:49+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">The Naked and Famous</title>
		<link href="http://bethesignal.org/blog/2010/08/31/the-naked-and-famous/"/>
		<id>http://bethesignal.org/?p=1807</id>
		<updated>2010-08-31T05:46:12+00:00</updated>
		<content type="html">&lt;p&gt;If your eclectic tastes include legendary modern music-as-art heroes such as Radiohead, MGMT, Florence and the Machine, Nine Inch Nails and How to Destroy Angels, you simply &lt;strong&gt;must&lt;/strong&gt; check out upcoming New Zealand band &lt;a href=&quot;http://www.thenakedandfamous.com/&quot;&gt;&lt;em&gt;The Naked and Famous&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Their debut album will be released in early September, but they&amp;#8217;ve put out some &lt;a title=&quot;The Naked and Famous on YouTube&quot; href=&quot;http://www.youtube.com/user/tnafofficial&quot;&gt;mind-blowingly good singles already&lt;/a&gt;&amp;#8230; here&amp;#8217;s &lt;em&gt;Young Blood&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-1807&quot;&gt;&lt;/span&gt;&lt;strong&gt;Update:&lt;/strong&gt; Okay, I can&amp;#8217;t just link the one. Here are my other favourites so far&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content>
		<author>
			<name>Jeff Waugh</name>
			<uri>http://bethesignal.org</uri>
		</author>
		<source>
			<title type="html">Be the signal</title>
			<subtitle type="html">where we're going, we don't need roads...</subtitle>
			<link rel="self" href="http://bethesignal.org/feed/"/>
			<id>http://bethesignal.org/feed/</id>
			<updated>2010-09-03T02:19:14+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">rbd (rados block device) status</title>
		<link href="http://ceph.newdream.net/2010/08/rbd-rados-block-device-status/"/>
		<id>http://ceph.newdream.net/?p=124</id>
		<updated>2010-08-30T19:44:59+00:00</updated>
		<content type="html">&lt;p&gt;The &lt;a href=&quot;http://ceph.newdream.net/wiki/Rbd&quot;&gt;rados block device (rbd)&lt;/a&gt; is looking pretty good at this point.  The basic feature set:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;network block device backed by objects in the Ceph distributed object store (rados)&lt;/li&gt;
&lt;li&gt;thinly provisioned&lt;/li&gt;
&lt;li&gt;image resizing&lt;/li&gt;
&lt;li&gt;image export/import/copy/rename&lt;/li&gt;
&lt;li&gt;read-only snapshots&lt;/li&gt;
&lt;li&gt;revert to snapshot&lt;/li&gt;
&lt;li&gt;Linux and qemu/kvm clients&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Main items on the the to-do list:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TRIM&lt;/li&gt;
&lt;li&gt;image layering/copy-on-write&lt;/li&gt;
&lt;li&gt;locking&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The server side components are in place in both the v0.21 releases and the unstable branch.  On the client side, there are two options.&lt;/p&gt;
&lt;p&gt;First, qemu/kvm can be patched to map an rbd image as a block device.  The code is available in git from&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://ceph.newdream.net/git/?p=qemu-kvm.git;a=shortlog;h=refs/heads/rbd&quot;&gt;git://ceph.newdream.net/git/qemu-kvm.git&lt;/a&gt; (branch rbd)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alternatively, Wido has built some patched Ubuntu 10.4 packages for both qemu and libvirt, available from&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;deb http://pcx.apt-get.eu/ubuntu lucid unofficial&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The qemu/kvm patches will likely be included in the next major qemu release.&lt;/p&gt;
&lt;p&gt;The native Linux kernel rbd kernel driver is also quite stable, but did not make it upstream for the 2.6.36 release cycle.  We hope to have it in 2.6.37.  The code for that is available at&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://ceph.newdream.net/git/?p=ceph-client.git;a=shortlog;h=refs/heads/rbd&quot;&gt;git://ceph.newdream.net/git/ceph-client.git&lt;/a&gt; (branch rbd)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The main hold up there is that the addition of rbd involves refactoring a lot of the common Ceph file system client code into a libceph module that is shared by both rbd and the file system client.  This makes rebasing more difficult, so that branch may not have the most recent fixes in the master branch or the current -rc kernels.  Also, the code reorganization completely breaks my semi-automated ceph-client-standalone.git updates, so for now you can&amp;#8217;t clone and build it as a standalone module.&lt;/p&gt;
&lt;p&gt;For more information, see the &lt;a href=&quot;http://ceph.newdream.net/wiki/Rbd&quot;&gt;rbd&lt;/a&gt; and &lt;a href=&quot;http://ceph.newdream.net/wiki/Kvm-rbd&quot;&gt;kvm-rbd&lt;/a&gt; wiki pages.&lt;/p&gt;</content>
		<author>
			<name>Sage Weil</name>
			<uri>http://ceph.newdream.net</uri>
		</author>
		<source>
			<title type="html">Ceph</title>
			<subtitle type="html">open source distributed storage</subtitle>
			<link rel="self" href="http://ceph.newdream.net/feed/"/>
			<id>http://ceph.newdream.net/feed/</id>
			<updated>2010-08-30T20:12:19+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">More web site revisions</title>
		<link href="http://blog.man7.org/2010/08/more-web-site-revisions.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-3128641333061837021</id>
		<updated>2010-08-30T19:17:00+00:00</updated>
		<content type="html">I've made some more revisions to the &lt;a href=&quot;http://man7.org/tlpi/&quot;&gt;book web site&lt;/a&gt;. The changes include include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Slight tweaks to the structure of the &lt;a href=&quot;http://www.man7.org/tlpi/code/index.html&quot;&gt;source code tarballs&lt;/a&gt; (thanks to &lt;a href=&quot;http://users.physik.fu-berlin.de/%7Ejtt/&quot;&gt;Jens Thoms Toerring&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;A new page with pointers to slides from various &lt;a href=&quot;http://www.man7.org/conf/index.html&quot;&gt;conference presentations &lt;/a&gt;I've made in the last few years.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-3128641333061837021?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Meta-contacts in Empathy (and beyond!)</title>
		<link href="http://treitter.livejournal.com/12309.html"/>
		<id>http://treitter.livejournal.com/12309.html</id>
		<updated>2010-08-30T17:34:49+00:00</updated>
		<content type="html">We've finally closed &lt;a href=&quot;https://bugzilla.gnome.org/show_bug.cgi?id=460647&quot;&gt;Gnome Bug #460647 (Empathy: Support metacontacts)&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Let's get right to the pictures:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/treitter/4942433702/&quot; title=&quot;metacontacts-linking-dialog by travisreitter, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4101/4942433702_053d15e3ee.jpg&quot; width=&quot;500&quot; height=&quot;422&quot; alt=&quot;metacontacts-linking-dialog&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is our &quot;Link Contacts&quot; dialog. Selecting a number of contacts on the left side designates which contacts will be included in the Individual (read: meta-contact) at right.&lt;br /&gt;&lt;br /&gt;We currently auto-link contacts with the same service ID (foo@example.org) contained in multiple accounts. In the future, we're going to push as much into auto-linking as possible. My goal is that most users would never need to use this dialog. Until then, this dialog is how you designate meta-contacts in Empathy.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/treitter/4941849125/&quot; title=&quot;metacontacts-edit-dialog by travisreitter, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4114/4941849125_1497160d95.jpg&quot; width=&quot;382&quot; height=&quot;391&quot; alt=&quot;metacontacts-edit-dialog&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you accidentally link together contacts you didn't mean to, you can simply open the Individual's info dialog and hit Unlink to start over.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/treitter/4941849223/&quot; title=&quot;metacontacts-persona-menus by travisreitter, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4093/4941849223_f30fd7f46e.jpg&quot; width=&quot;500&quot; height=&quot;330&quot; alt=&quot;metacontacts-persona-menus&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One of the first benefits of meta-contacts is pulling together multiple modes of contact for a person into a single place. So if you've got a friend with separate work and personal IM, you can be an upstanding citizen and only send funny cat pictures to their personal IM address. (If they sign on to both at work, at least you tried your best).&lt;br /&gt;&lt;br /&gt;We've kept the 1-click Chat/Audio Call/Send File/etc. actions for the (I think, more-common) case that you just want to communicate and you don't care about the specifics. This just uses any valid (ie, online) account for that Individual.&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;Thanks&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;This meta-contacts functionality is all possible thanks to the &lt;a href=&quot;http://telepathy.freedesktop.org/wiki/Folks&quot;&gt;Folks project&lt;/a&gt;. It's a collection of libraries (so far, all distributed together) that collect contact information through various backends (Telepathy so far; many more to come) and aggregate Individuals (ie, People). Empathy was our starting point, but we really plan to integrate very well into the Gnome desktop and beyond. Think: typing -Alice- to start a chat with Alice through the &lt;a href=&quot;http://live.gnome.org/GnomeShell&quot;&gt;Gnome Shell&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'll discuss Folks in greater detail in future posts.&lt;br /&gt;&lt;br /&gt;I'd like to thank my colleagues &lt;a href=&quot;http://tecnocode.co.uk/&quot;&gt;Philip &quot;code factory&quot; Withnall&lt;/a&gt; for helping with Folks development/Empathy integration and Empathy maintainer &lt;a href=&quot;http://blog.desmottes.be/&quot;&gt;Guillaume Desmottes&lt;/a&gt; for letting us know exactly what we broke in each commit. And, of course, a special thanks to our employer, &lt;a href=&quot;http://collabora.co.uk&quot;&gt;Collabora&lt;/a&gt;, for sponsoring us to work on this full-time.&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;Try it now!&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;Since you're no doubt very excited about these new features in Empathy, you can use them Right Now™ in &lt;a href=&quot;ftp://ftp.gnome.org/pub/gnome/sources/empathy/2.31/&quot;&gt;version 2.31.91&lt;/a&gt; (also coming to Debian experimental shortly). Be sure to file any and all bugs you run into, so this will be as solid a stable release as any other!&lt;br /&gt;&lt;br /&gt;If software bugs have you leaping onto the nearest elevated furniture, no problem -- Empathy will, of course, by included in Gnome 2.32, coming to a friendly Linux distribution near you!</content>
		<author>
			<name>Travis Reitter</name>
			<uri>http://treitter.livejournal.com/</uri>
		</author>
		<source>
			<title type="html">Let's Push Things Forward</title>
			<subtitle type="html">Let's Push Things Forward - LiveJournal.com</subtitle>
			<link rel="self" href="http://treitter.livejournal.com/data/rss"/>
			<id>http://treitter.livejournal.com/data/rss</id>
			<updated>2010-08-30T20:18:31+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Variable substitution with psql</title>
		<link href="http://www.chesnok.com/daily/2010/08/30/variable-substitution-with-psql/"/>
		<id>http://www.chesnok.com/daily/?p=1901</id>
		<updated>2010-08-30T16:00:50+00:00</updated>
		<content type="html">&lt;p&gt;&lt;b&gt;Updated:&lt;/b&gt; Thanks @johto for s/:bar/:foo/. &lt;img src=&quot;http://www.chesnok.com/daily/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;A coworker asked about variable substitution with psql using &lt;code&gt;\set&lt;/code&gt;, and so I looked into it a bit further.&lt;/p&gt;
&lt;p&gt;You definitely can do things like this:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
16:55 sdeckelmann@[local]:5432|postgres=&gt; \set test 'select * from :foo limit 10;'&lt;br /&gt;
16:56 sdeckelmann@[local]:5432|postgres=&gt; \set foo 'test'&lt;br /&gt;
16:56 sdeckelmann@[local]:5432|postgres=&gt; :test&lt;br /&gt;
myint&lt;br /&gt;
-------&lt;br /&gt;
     1&lt;br /&gt;
     2&lt;br /&gt;
     3&lt;br /&gt;
     4&lt;br /&gt;
     5&lt;br /&gt;
     6&lt;br /&gt;
     7&lt;br /&gt;
     8&lt;br /&gt;
     9&lt;br /&gt;
    10&lt;br /&gt;
(10 rows)&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;But, what about something like this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
=&gt; \set test 'select * from :var limit 10;'&lt;br /&gt;
=&gt; :test mytable&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, this isn&amp;#8217;t supported. &lt;/p&gt;
&lt;p&gt;The best you could do is something pathological like:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;=&gt; \set s 'select * from '&lt;br /&gt;
=&gt; \set pr ' limit 10;'&lt;br /&gt;
=&gt; :s mytable :pr&lt;br /&gt;
=&gt; :s test :pr&lt;br /&gt;
myint&lt;br /&gt;
-------&lt;br /&gt;
     1&lt;br /&gt;
     2&lt;br /&gt;
     3&lt;br /&gt;
     4&lt;br /&gt;
     5&lt;br /&gt;
     6&lt;br /&gt;
     7&lt;br /&gt;
     8&lt;br /&gt;
     9&lt;br /&gt;
    10&lt;br /&gt;
(10 rows)&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2010/07/12/quick-start-on-hot-standby/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Quick start on Hot Standby&quot;&gt;Quick start on Hot Standby&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2007/10/13/psql-and-file-csv-exports/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: psql and file, CSV exports&quot;&gt;psql and file, CSV exports&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2007/09/18/an-example-for-upcoming-very-brief-normalization-talk-part-1/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: an example for upcoming very brief normalization talk (part 1)&quot;&gt;an example for upcoming very brief normalization talk (part 1)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;</content>
		<author>
			<name>Selena Deckelmann</name>
			<uri>http://www.chesnok.com/daily</uri>
		</author>
		<source>
			<title type="html">tending the garden</title>
			<subtitle type="html">selena marie deckelmann's blog</subtitle>
			<link rel="self" href="http://www.chesnok.com/daily/feed/"/>
			<id>http://www.chesnok.com/daily/feed/</id>
			<updated>2010-09-03T01:19:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">A Night Out</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/a_night_out.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/a_night_out.html</id>
		<updated>2010-08-30T12:04:23+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;I had a very nice dinner at &quot;Wildfire Churrascaria&quot; courtesy of Microsoft. Lots of yummy, fatty, salty meat.
&lt;p&gt;I went to catch my bus and missed it by one minute. At 10:41pm, the next bus was at 11:10pm.
&lt;p&gt;Being impatient, instead of waiting for the next bus I ran home ... well, half-ran, half-walked ... 5.5km In 42 minutes. Not fast, but then I had a backpack full of Microsoft swag plus my laptop, and a belly full of meat. Faster than the bus anyway.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Cc and Bcc field size in Gmail</title>
		<link href="http://www.guru.net.nz/blog/2010/08/cc-and-bcc-field-size-in-gmail.html"/>
		<id>http://www.guru.net.nz/blog/?p=343</id>
		<updated>2010-08-30T10:13:34+00:00</updated>
		<content type="html">&lt;p&gt;The Cc and Bcc field sizes in Gmail are too small to work with if you&amp;#8217;re sending to more than about 20 email addresses.  The following bookmarklet will increase their height when used:&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;javascript javascript&quot;&gt;javascript&lt;span&gt;:&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#123;&lt;/span&gt;var&lt;span&gt;%&lt;/span&gt;20e&lt;span&gt;=&lt;/span&gt;window.&lt;span&gt;frames&lt;/span&gt;&lt;span&gt;&amp;#91;&lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;&amp;#93;&lt;/span&gt;.&lt;span&gt;document&lt;/span&gt;.&lt;span&gt;getElementsByTagName&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;'textarea'&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;;%20for&lt;span&gt;&amp;#40;&lt;/span&gt;i&lt;span&gt;=&lt;/span&gt;0;i&lt;span&gt;&amp;amp;&lt;/span&gt;lt;e.&lt;span&gt;length&lt;/span&gt;;i&lt;span&gt;++&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#123;&lt;/span&gt;&lt;span&gt;%&lt;/span&gt;20if&lt;span&gt;&amp;#40;&lt;/span&gt;e&lt;span&gt;&amp;#91;&lt;/span&gt;i&lt;span&gt;&amp;#93;&lt;/span&gt;.&lt;span&gt;name&lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt;'cc'&lt;/span&gt;&lt;span&gt;%&lt;/span&gt;20of&lt;span&gt;%&lt;/span&gt;20e&lt;span&gt;&amp;#91;&lt;/span&gt;i&lt;span&gt;&amp;#93;&lt;/span&gt;.&lt;span&gt;name&lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt;'bcc'&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;%&lt;/span&gt;20&lt;span&gt;&amp;#123;&lt;/span&gt;&lt;span&gt;%&lt;/span&gt;20e&lt;span&gt;&amp;#91;&lt;/span&gt;i&lt;span&gt;&amp;#93;&lt;/span&gt;.&lt;span&gt;style&lt;/span&gt;.&lt;span&gt;height&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;'150px'&lt;/span&gt;;%20&lt;span&gt;&amp;#125;&lt;/span&gt;&lt;span&gt;%&lt;/span&gt;20&lt;span&gt;&amp;#125;&lt;/span&gt;;&lt;span&gt;&amp;#125;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To install (in Firefox).&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Right click on your Bookmarks toolbar and choose &amp;#8220;New Bookmark&amp;#8221;&lt;/li&gt;
&lt;li&gt;Enter a name for the Bookmark, e.g. &amp;#8220;Big Cc Field&amp;#8221;&lt;/li&gt;
&lt;li&gt;Into the location, paste the above code&lt;/li&gt;
&lt;li&gt;Save the bookmark&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now when at Gmail and you can see the Cc or Bcc fields you can click the new Bookmark link to make them bigger.&lt;/p&gt;
&lt;p&gt;To find out more about Bookmarklets, check out the &lt;a href=&quot;http://en.wikipedia.org/wiki/Bookmarklet&quot;&gt;Bookmarklet page on Wikipedia&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Bob Brown</name>
			<uri>http://www.guru.net.nz/blog</uri>
		</author>
		<source>
			<title type="html">Confessions of a Guru</title>
			<subtitle type="html">Random stuff from a Dunedin (NZ) based web developer, beer drinker and dad</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/ConfessionsOfAGuru"/>
			<id>http://feeds.feedburner.com/ConfessionsOfAGuru</id>
			<updated>2010-08-31T10:12:49+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">TechEd</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/teched.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/teched.html</id>
		<updated>2010-08-30T07:08:05+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;I'm at &lt;a href=&quot;http://newzealand.msteched.com/default.aspx&quot;&gt;Microsoft TechEd&lt;/a&gt; in Auckland today and tomorrow --- they reached out to invite a few open source people, so I thought I'd go and check out their messages. It's fun too. One of the highlights of today was a talk about geolocation APIs ... the presenter showed the creation of a toy HTML geolocation app, but couldn't get it working in Chrome and had to switch to Firefox :-). And apparently IE9 isn't going to support the geo APIs at all as far as anyone knows. Funny sort of demo for a Microsoft conference!
&lt;p&gt;In fact so far I haven't seen anything about IE9 at all. There's a lot more Silverlight/WIndows Phone 7. I wonder if that's accidental (this is just the first day after all) ... or not.&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Taxonomy in Drupal</title>
		<link href="http://levlafayette.com/node/140"/>
		<id>http://levlafayette.com/140 at http://levlafayette.com</id>
		<updated>2010-08-30T04:21:32+00:00</updated>
		<content type="html">&lt;p&gt;The taxonomy module is a very useful utility for Drupal sites, especially for those of any size. Primarily summarised from the &lt;a href=&quot;http://drupal.org/handbook/modules/taxonomy&quot;&gt;Drupal Handbook&lt;/a&gt; on the subject, the following gives a basic summary of the subject.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://levlafayette.com/node/140&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Lev Lafayette</name>
			<uri>http://levlafayette.com/blog</uri>
		</author>
		<source>
			<title type="html">Lev Lafayette blogs</title>
			<link rel="self" href="http://levlafayette.com/blog/feed"/>
			<id>http://levlafayette.com/blog/feed</id>
			<updated>2010-09-03T02:19:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Installing Molden on a 64-bit AMD Opteron Cluster running CentOS 5 Linux</title>
		<link href="http://levlafayette.com/node/139"/>
		<id>http://levlafayette.com/139 at http://levlafayette.com</id>
		<updated>2010-08-30T00:51:19+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://www.cmbi.ru.nl/molden/molden.html&quot;&gt;Molden&lt;/a&gt; displays molecular density from the &lt;i&gt;ab initio&lt;/i&gt; packages GAMESS and GAUSSIAN and others. Molden reads all the required information from the GAMESS / GAUSSIAN outputfile. Molden is capable of displaying molecular orbitals, electron density and molecular minus atomic density.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://levlafayette.com/node/139&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Lev Lafayette</name>
			<uri>http://levlafayette.com/blog</uri>
		</author>
		<source>
			<title type="html">Lev Lafayette blogs</title>
			<link rel="self" href="http://levlafayette.com/blog/feed"/>
			<id>http://levlafayette.com/blog/feed</id>
			<updated>2010-09-03T02:19:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Using logger with pg_standby</title>
		<link href="http://www.chesnok.com/daily/2010/08/29/using-logger-with-pg_standby/"/>
		<id>http://www.chesnok.com/daily/?p=1887</id>
		<updated>2010-08-29T16:00:26+00:00</updated>
		<content type="html">&lt;p&gt;Piping logs to syslog is pretty useful for automating log rotation and forwarding lots of different logs to a central log server. &lt;/p&gt;
&lt;p&gt;To that end, the command-line utility &amp;#8216;logger&amp;#8217; is nice for piping output from utilities like pg_standby without having to add syslogging code to the utility itself. Another thing is that logger comes by default with modern packages of syslog.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s an easy way to implement this: &lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
restore_command = 'pg_standby -d -s 2 -t /pgdata/trigger /shared/wal_archive/ %f %p %r 2&gt;&amp;#038;1 | logger -p local3.info -t pgstandby'&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2010/08/03/customizing-the-rpms-from-pgrpms-org/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Customizing the RPMs from pgrpms.org&quot;&gt;Customizing the RPMs from pgrpms.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2009/10/04/snow-leopard-and-postgresql-installation-help-links/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Snow Leopard and PostgreSQL: installation help links&quot;&gt;Snow Leopard and PostgreSQL: installation help links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2009/04/02/gregs-three-talks-at-postgresql-conference-east/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Greg&amp;#8217;s THREE talks at PostgreSQL Conference East&quot;&gt;Greg&amp;#8217;s THREE talks at PostgreSQL Conference East&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;</content>
		<author>
			<name>Selena Deckelmann</name>
			<uri>http://www.chesnok.com/daily</uri>
		</author>
		<source>
			<title type="html">tending the garden</title>
			<subtitle type="html">selena marie deckelmann's blog</subtitle>
			<link rel="self" href="http://www.chesnok.com/daily/feed/"/>
			<id>http://www.chesnok.com/daily/feed/</id>
			<updated>2010-09-03T01:19:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Online aggregation paper from 1997 and PSU’s database reading group</title>
		<link href="http://www.chesnok.com/daily/2010/08/28/online-aggregation-paper-from-1997-and-psus-database-reading-grouop/"/>
		<id>http://www.chesnok.com/daily/?p=1889</id>
		<updated>2010-08-28T23:03:36+00:00</updated>
		<content type="html">&lt;p&gt;A couple weeks ago, Mark Wong and I took a field trip over to the Database Reading Group at Portland State University. It&amp;#8217;s a group of students and professors that meet weekly throughout the school year to go over research papers. The papers are picked by the participants, and vary in topic from obscure to very practical.&lt;/p&gt;
&lt;p&gt;This week&amp;#8217;s paper reading was led by Professor Len Shapiro, and titled &amp;#8220;&lt;a href=&quot;http://research.microsoft.com/en-us/um/people/helenw/papers/online.ps.gz&quot;&gt;Online Aggregation&lt;/a&gt;&amp;#8220;. The paper is considered a foundational paper about SQL aggregates (like COUNT() or AVERAGE), and was published in 1997 by researchers from UC Berkeley and IBM. It&amp;#8217;s also precursor to research into query parallelization and streaming databases. It was also awarded the SIGMOD &amp;#8220;Test of Time&amp;#8221; award in 2007, and is cited by over 170 other papers in the ACM archive.&lt;/p&gt;
&lt;p&gt;The basic idea behind the paper centered around how to improve user experience in reporting results of aggregate queries &amp;#8211; asking questions about how to solve three key problems when solving aggregates: blocking, fairness and control (from a user&amp;#8217;s perspective). Roughly: Blocking is what happens when some part of the system waits and doesn&amp;#8217;t return results to the user as a result of the waiting. Fairness concerns whether certain types of operations prevent certain groups of data from being processed (the example given had to do with GROUP BY and groups being processed one at a time). Control concerns whether or not a user can exert control over the speed of computation applied to a group (example given being a lever that &amp;#8220;speeds up&amp;#8221; processing of a set).&lt;/p&gt;
&lt;p&gt;One insight from the paper is how online aggregates should be treated differently than traditional query processing &amp;#8211; which might favor expensive plans involving sorts so that the output is ordered. When you&amp;#8217;re dealing with online aggregates, you prefer unordered, or ideally random order, because your intermediate results will be more representative of the ultimate result. I guess that&amp;#8217;s probably obvious once you think about it, but the paper provided some concrete examples.&lt;/p&gt;
&lt;p&gt;Another interesting thought experiment involving the planner is how you pick plans that favor non-blocking, fairness and user control. Each of those properties is not narrowly defined, and changes based on individual user expectation. Professor Kristen Tufte mentioned that she&amp;#8217;d be interested in how the ideas presented in this paper would be applied today, and Professor David Meier brought up that we might most be interested in applications involving managing Hadoop.&lt;/p&gt;
&lt;p&gt;Prof Meier also brought up an interesting paper involving &lt;a href=&quot;http://db.cs.berkeley.edu/papers/S2K-94-45.pdf&quot;&gt;alternating nested loop joins&lt;/a&gt; during a discussion about optimizing JOIN algorithms for online aggregates. Another cool thing about the paper is that it involved modifications to Postgres!  Granted, it was Postgres95, which doesn&amp;#8217;t resemble the modern PostgreSQL 9.0 very much. But it was nice to revisit research that used Postgres that&amp;#8217;s still relevant today.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2009/10/04/user-group-idea-the-after-party/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: User Group Idea: The After-party&quot;&gt;User Group Idea: The After-party&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2009/09/18/user-group-idea-patch-review-party/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: User Group Idea: Patch Review Party&quot;&gt;User Group Idea: Patch Review Party&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2008/02/01/focus-group/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Women in Open Source: a focus group in March&quot;&gt;Women in Open Source: a focus group in March&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;</content>
		<author>
			<name>Selena Deckelmann</name>
			<uri>http://www.chesnok.com/daily</uri>
		</author>
		<source>
			<title type="html">tending the garden</title>
			<subtitle type="html">selena marie deckelmann's blog</subtitle>
			<link rel="self" href="http://www.chesnok.com/daily/feed/"/>
			<id>http://www.chesnok.com/daily/feed/</id>
			<updated>2010-09-03T01:19:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">v0.21.2 released</title>
		<link href="http://ceph.newdream.net/2010/08/v0-21-2-released/"/>
		<id>http://ceph.newdream.net/?p=120</id>
		<updated>2010-08-28T16:49:28+00:00</updated>
		<content type="html">&lt;p&gt;This is a second bugfix release for the v0.21 series.  Changes include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;osd: less log noise&lt;/li&gt;
&lt;li&gt;osd: mark down old heartbeat peers&lt;/li&gt;
&lt;li&gt;filejournal: clean up init sequence, less confusing errors on startup&lt;/li&gt;
&lt;li&gt;msgr: fix throttler leak (fixes deadlock)&lt;/li&gt;
&lt;li&gt;osdmaptool: don&amp;#8217;t crash on corrupt input&lt;/li&gt;
&lt;li&gt;mds: error to client on invalid opcode&lt;/li&gt;
&lt;li&gt;mds: fix ENOTEMPTY checks on rmdir&lt;/li&gt;
&lt;li&gt;osd: fix race between reads and cloned objects&lt;/li&gt;
&lt;li&gt;auth: fix keyring search path when $HOME not defined&lt;/li&gt;
&lt;li&gt;client: fix xattr writeback&lt;/li&gt;
&lt;li&gt;client: fix snap vs metadata writeback&lt;/li&gt;
&lt;li&gt;osd: fix journal, btrfs throttling&lt;/li&gt;
&lt;li&gt;msgr: fix memory leak on closed connections&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Relevant URLs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Direct download at &lt;a href=&quot;http://ceph.newdream.net/../download/ceph-0.21.2.tar.gz&quot;&gt;http://ceph.newdream.net/download/ceph-0.21.2.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;For Debian packages see &lt;a href=&quot;http://ceph.newdream.net/../wiki/Debian&quot;&gt;http://ceph.newdream.net/wiki/Debian&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>Sage Weil</name>
			<uri>http://ceph.newdream.net</uri>
		</author>
		<source>
			<title type="html">Ceph</title>
			<subtitle type="html">open source distributed storage</subtitle>
			<link rel="self" href="http://ceph.newdream.net/feed/"/>
			<id>http://ceph.newdream.net/feed/</id>
			<updated>2010-08-30T20:12:19+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Walk the line</title>
		<link href="http://blogs.gnome.org/ebassi/2010/08/14/walk-the-line/"/>
		<id>http://blogs.gnome.org/ebassi/?p=373</id>
		<updated>2010-08-28T16:08:06+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;ve noticed that I haven&amp;#8217;t blogged about &lt;a href=&quot;http://live.gnome.org/JsonGlib&quot;&gt;JSON-GLib&lt;/a&gt; in &lt;a href=&quot;http://blogs.gnome.org/ebassi/2009/10/14/remember-to-breathe/&quot;&gt;a while&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;since the last time, I release version 0.10, which had a lot of fixes in the JSON ⬌ GObject transformation code, thanks to the contributions of Tristan Van Berkom. the 0.10 release allowed to transform all GObject properties of fundamental types &amp;mdash; and to register transformation functions for boxed types as well. it also had bugs fixes coming from Clutter and other projects using JSON-GLib.&lt;/p&gt;
&lt;p&gt;now we&amp;#8217;re near the 0.12 release &amp;mdash; I released the first release candidate on August 2nd, and I plan to do another release candidate along with the GNOME 2.31.90 snapshot.&lt;/p&gt;
&lt;p&gt;for this cycle I&amp;#8217;ve had the contribution of Luca Bruno, who wrote a &lt;code&gt;JsonBuilder&lt;/code&gt; class which provides a simple API for building JSON trees. &lt;code&gt;JsonBuilder&lt;/code&gt; has been inspired by &lt;a href=&quot;http://www.json.org/javadoc/org/json/JSONWriter.html&quot;&gt;JSONWriter&lt;/a&gt; and by &lt;a href=&quot;http://library.gnome.org/devel/glib/stable/glib-GVariant.html#GVariantBuilder&quot;&gt;GVariantBuilder&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
JsonBuilder *builder = json_builder_new ();

json_builder_begin_object (builder);

json_builder_set_member_name (builder, &lt;span&gt;&amp;quot;url&amp;quot;&lt;/span&gt;);
json_builder_add_string_value (builder, &lt;span&gt;&amp;quot;http://www.gnome.org/img/flash/two-thirty.png&amp;quot;&lt;/span&gt;);

json_builder_set_member_name (builder, &lt;span&gt;&amp;quot;size&amp;quot;&lt;/span&gt;);
json_builder_begin_array (builder);
json_builder_add_int_value (builder, &lt;span&gt;652&lt;/span&gt;);
json_builder_add_int_value (builder, &lt;span&gt;242&lt;/span&gt;);
json_builder_end_array (builder);

json_builder_end_object (builder);

JsonGenerator *gen = json_generator_new ();
json_generator_set_root (json_builder_get_root (builder));
&lt;span&gt;char&lt;/span&gt; *str = json_generator_to_data (generator);

g_object_unref (generator);
g_object_unref (builder);

&lt;span&gt;/* &quot;str&quot; now contains the string:
 * { &quot;url&quot; : &quot;http://www.gnome.org/img/flash/two-thirty.png&quot;, &quot;size&quot; : [ 652, 242 ] }
 */&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;in the same spirit, I had a fun two hours hacking session that resulted in an XmlReader-like API for JSON trees, called &lt;code&gt;JsonReader&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
&lt;span&gt;/* str contains the JSON from the example above */&lt;/span&gt;
JsonParser *parser = json_parser_new ();
json_parser_load_from_data (parser, str, &lt;span&gt;-1&lt;/span&gt;, &lt;span&gt;NULL&lt;/span&gt;);

JsonReader *reader = json_reader_new (json_parser_get_root (parser));

json_reader_read_member (reader, &lt;span&gt;&amp;quot;url&amp;quot;&lt;/span&gt;);
&lt;span&gt;const char&lt;/span&gt; *url = json_reader_get_string_value (reader);
json_reader_end_member (reader);

json_reader_read_member (reader, &lt;span&gt;&amp;quot;size&amp;quot;&lt;/span&gt;);

json_reader_read_element (reader, &lt;span&gt;0&lt;/span&gt;);
&lt;span&gt;int&lt;/span&gt; width = json_reader_get_int_value (reader);
json_reader_end_element (reader);

json_reader_read_element (reader, &lt;span&gt;1&lt;/span&gt;);
&lt;span&gt;int&lt;/span&gt; height = json_reader_get_int_value (reader);
json_reader_end_element (reader);

json_reader_end_member (reader);

g_object_unref (reader);
g_object_unref (parser);
&lt;/pre&gt;
&lt;p&gt;I also added support for parsing (synchronously and asynchronously) JSON from a &lt;code&gt;GInputStream&lt;/code&gt; and generating stringified JSON to a &lt;code&gt;GOutputStream&lt;/code&gt; (in this case, only synchronously). this means that JSON-GLib now depends on GIO.&lt;/p&gt;
&lt;p&gt;for the next cycle, which is going to be fairly relaxed in terms of duration, I&amp;#8217;m planning some new features like support for the &lt;a href=&quot;http://tools.ietf.org/html/draft-zyp-json-schema-02&quot;&gt;JSON Schema draft&lt;/a&gt; in the &lt;code&gt;JsonParser&lt;/code&gt; class; and a sensible implementation of a Path API for direct access of members.&lt;/p&gt;
&lt;p&gt;if you have bug reports, feature requests, or code you want to contribute, feel free to hop in Bugzilla and &lt;a href=&quot;http://bugzilla.gnome.org/enter_bug.cgi?product=json-glib&quot;&gt;file a new ticket&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;have fun!&lt;/p&gt;</content>
		<author>
			<name>ebassi</name>
			<uri>http://blogs.gnome.org/ebassi</uri>
		</author>
		<source>
			<title type="html">Context Switch</title>
			<subtitle type="html">Just another GNOME Blogs weblog</subtitle>
			<link rel="self" href="http://blogs.gnome.org/ebassi/feed/atom/"/>
			<id>http://blogs.gnome.org/ebassi/feed/atom/</id>
			<updated>2010-09-01T09:18:53+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">More Dell Fail (Or Maybe NVidia)</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/more_dell_fail.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/more_dell_fail.html</id>
		<updated>2010-08-28T10:10:16+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;I bought a Dell ST2410 monitor for my new home computer (a Dell XPS 8100 shipped with an NVidia GTX260 graphics card, which has two DVI ports). Dell shipped a VGA cable and a DVI-VGA converter, so I thought I'd go out and buy a digital connector. Dell shipped me a DVI-HDMI converter dongle (made by NVidia apparently), the Dell monitor has HDMI and my TV has HDMI so I thought I'd get an HDMI cable and this would be easy. Wrong. The monitor completely fails to detect any signal from the computer. I tried everything I can think of. Even my old Macbook Pro can drive the monitor through its DVI port, the DVI-HDMI dongle and the HDMI cable. So apart from the cable, which obviously works, we have here three parts all shipped by Dell that don't work together. Sigh. I guess I'll try a DVI cable next...&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Sunshine Rises Again</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/sunshine_rises.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/sunshine_rises.html</id>
		<updated>2010-08-28T07:20:54+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;As previously reported, the wonderful &quot;Sunshine&quot; Chinese restaurant in Market Place near the Viaduct Harbour suffered a tragic demise. And also as previously reported, it has been reincarnated. Today our family visited the new incarnation, &quot;Crystal Harbour&quot;. I am very pleased to report that the new version is very similar indeed to the old &quot;Sunshine&quot;. The decor is the same, the layout is the same, the lack of queues is the same, and most importantly the food is very much as it was. Where Sunshine excelled --- the unique barbeque pork buns, the seaweed plate, the ice cream dumplings --- so does Crystal Harbour. Crystal Harbour's promotional material claims there's a new chef, but clearly (and fortunately) a lot has been preserved. One change is that there were a lot more people there today than I ever saw at Sunshine. It could be the novelty factor, but I hope Crystal Harbour does well. I certainly plan to contribute as often as I can!&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry>
		<title type="html">Returning to normal life</title>
		<link href="http://blog.man7.org/2010/08/returning-to-normal-life.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-501743746932766173</id>
		<updated>2010-08-27T04:56:40+00:00</updated>
		<content type="html">Now that production of the book is done, life has started returning somewhat more to normal. For the first time in well over a year, I found time to read someone else's book: &lt;a href=&quot;http://www.antonybeevor.com/&quot;&gt;Antony Beevor&lt;/a&gt;'s excellent &lt;a href=&quot;http://www.amazon.com/gp/product/0670021199?ie=UTF8&amp;tag=man7org-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0670021199&quot;&gt;D-Day: The Battle for Normandy&lt;/a&gt;. Another reminder that the USA once helped save Europe from itself seems timely.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/0670021199?ie=UTF8&amp;tag=man7org-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0670021199&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_L1QrHboT9_c/THYASCdB5GI/AAAAAAAAATs/URVWM9MxBsI/s320/D-Day.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5509591504030655586&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-501743746932766173?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Free linux.conf.au swag for Software Freedom Day</title>
		<link href="http://www.linux.org.au/news/community-news/free-linuxconfau-swag-software-freedom-day"/>
		<id>http://www.linux.org.au/946 at http://www.linux.org.au</id>
		<updated>2010-08-25T14:27:16+00:00</updated>
		<content type="html">&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;Over the years Linux Australia has collected a number of swag items&lt;br /&gt;
that have become left over from conferences and events. To help combat&lt;br /&gt;
this problem of where to store it and what to do with it Linux&lt;br /&gt;
Australia would like to help supply registered Software Freedom Day[1]&lt;br /&gt;
teams with extra goodies to give away and help promote free software!&lt;/p&gt;
&lt;p&gt;Since SFD is less than a month away we need responses as quickly as&lt;br /&gt;
possible! If you are running a free software promotion type event and&lt;br /&gt;
would like some extra swag to give away please email the Linux&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.linux.org.au/news/community-news/free-linuxconfau-swag-software-freedom-day&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Linux Australia</name>
			<uri>http://www.linux.org.au</uri>
		</author>
		<source>
			<title type="html">Linux Australia</title>
			<link rel="self" href="http://www.linux.org.au/rss.xml"/>
			<id>http://www.linux.org.au/rss.xml</id>
			<updated>2010-09-03T02:13:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">iOS4 Background Audio Revisited</title>
		<link href="http://digitaldj.net/2010/08/25/ios4-background-audio-revisited/"/>
		<id>http://digitaldj.net/?p=2940</id>
		<updated>2010-08-25T11:08:44+00:00</updated>
		<content type="html">&lt;p&gt;The other day I went ahead and revisited streaming audio apps for iOS4. I blogged previously about how it is the biggest pain in the ass to get working&amp;#8230;.&lt;strong&gt;properly&lt;/strong&gt;. And it still is.  Background buffering was a pain to do, but I finally worked out how to apply it to AudioStreamer (a github project by mattgallagher). The solution in this &lt;a href=&quot;http://stackoverflow.com/questions/3161635/entering-background-on-ios4-to-play-audio/3161899#3161899&quot; target=&quot;_blank&quot;&gt;StackOverflow&lt;/a&gt; post is incredibly useful.&lt;/p&gt;
&lt;p&gt;So, I decided I&amp;#8217;d checkout AudioStreamer from git, take a look at other people&amp;#8217;s forks, try to merge all the fixes and features then add my own. That&amp;#8217;s what I did the other day.&lt;/p&gt;
&lt;p&gt;My current github fork of AudioStreamer is here: &lt;a href=&quot;http://github.com/DigitalDJ/AudioStreamer&quot; target=&quot;_blank&quot;&gt;http://github.com/DigitalDJ/AudioStreamer&lt;/a&gt; (and it&amp;#8217;s pretty damn stable, just sayin&amp;#8217;).&lt;/p&gt;
&lt;p&gt;Basically, my fork cherry-picks some commits from other users, notably:&lt;/p&gt;
&lt;p&gt;- Shoutcast metadata [jfricker]&lt;br /&gt;
- MIME type detection [andybee]&lt;br /&gt;
- HE-AACv2 [idevsoftware]&lt;br /&gt;
- Level Metering [idevsoftware]&lt;br /&gt;
- NSThread memory leak [mattgallagher]&lt;/p&gt;
&lt;p&gt;Then I set out to try and fix the bugs I had encountered&amp;#8230;and fix up the sample app so that it worked fully with iOS4 multitasking:&lt;/p&gt;
&lt;p&gt;- Fixed interruption crashes (crashes when you use iPod app then re-use the sample app, or receive a phone call)&lt;br /&gt;
- Background buffering (!!! AudioStreamer now buffers properly in the background)&lt;br /&gt;
- Play/pause from iPod controls (The sample app now works properly with the iPod controls)&lt;br /&gt;
- Stop all UI updating and timers while backgrounded (The sample app now correctly follows guidelines to stop all UI updating and unnecessary timers to save battery life)&lt;/p&gt;
&lt;p&gt;- Retina display example (The sample app now has a retina display example&amp;#8230;just to be iPhone 4 compatible)&lt;/p&gt;
&lt;p&gt;- Support for Pause button in UI (Pausing now works properly, even for streams that don&amp;#8217;t support it)&lt;br /&gt;
- Local Notifications (outside app) on error (Notification popup if there is a lack of connectivity when playing music outside the application)&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s just one more bug for me to squash, and frankly I can&amp;#8217;t figure it out. Notifications are sent from AudioStreamer to the UI  in case of an error, the UI then handles the notification with a UIAlertView. Sometimes the alerts refuse to show up, or instead, multiple show up, or&amp;#8230;..sometimes it just works as intended (i.e. one alert popup). I&amp;#8217;m not sure if it&amp;#8217;s an iOS bug or something in my code. It&amp;#8217;s rather odd as it isn&amp;#8217;t easily reproducible and often a reboot of the device will fix the issue. Very very odd.&lt;/p&gt;</content>
		<author>
			<name>Grant Pannell</name>
			<uri>http://digitaldj.net</uri>
		</author>
		<source>
			<title type="html">Grant Pannell</title>
			<subtitle type="html">I am Grant. This is my site.</subtitle>
			<link rel="self" href="http://digitaldj.net/feed/"/>
			<id>http://digitaldj.net/feed/</id>
			<updated>2010-08-30T04:13:42+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">A Possible Fix: Xen HVM &amp;amp; Windows 2008</title>
		<link href="http://digitaldj.net/2010/08/25/a-possible-fix-xen-hvm-windows-2008/"/>
		<id>http://digitaldj.net/?p=2934</id>
		<updated>2010-08-25T11:01:51+00:00</updated>
		<content type="html">&lt;p&gt;Recently, I switched my VPS from VMware ESX to a provider with Xen HVM since my original host disappeared off the face of the planet. However, the Xen HVM VPS has decided to randomly BSOD every 24-48 hours or so. Here&amp;#8217;s how I troubleshooted and possibly fixed the issue.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Issue:&lt;/strong&gt;&lt;br /&gt;
BSODs randomly occur with the error &amp;#8220;A clock interrupt was not received on a secondary processor within the allocated time interval.&amp;#8221; and STOP code 0&amp;#215;00000101.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Caused by:&lt;/strong&gt;&lt;br /&gt;
Well, the exact issue is unknown. I have a feeling that this occurs when the host has a higher than usual load, which causes some sort of delay of the RTC and eventual crashes. Examining 3 crash dumps showed that the Realtek networking driver (Rtnic64.sys) is always near the top of the stack trace with something to do with the RTC in the kernel.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The solution:&lt;/strong&gt;&lt;br /&gt;
There are a few solutions. I&amp;#8217;m not sure which one fixes the issue exactly, but here&amp;#8217;s what you can try:&lt;/p&gt;
&lt;p&gt;First try modifying your VM config to add these options (the first ensures time is always &amp;#8220;wall clock time&amp;#8221; and the second exposes the Hyper-V interface to the VM):&lt;br /&gt;
&lt;code&gt;timer_mode = 2&lt;br /&gt;
viridian = 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can then also try&lt;br /&gt;
&lt;code&gt;os_variant = &quot;vista&quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And if worse comes to worse, limit to 1 CPU core&lt;br /&gt;
&lt;code&gt;vcpus = 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Finally, if you run Windows you should install the GPL PV drivers. If you want to run Windows, you MUST use Xen HVM (Xen PV is unavailable). The default drivers when using HVM are designed to work with QEMU&amp;#8217;s emulated devices and therefore carry a performance degrading overhead. Luckily, there&amp;#8217;s been an effort to create PV drivers for Windows, so the VM can work more directly with the host&amp;#8217;s hardware, creating less overheads and a significant performance boost.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Download the latest drivers (32 or 64bit, 2003/2008)&lt;/strong&gt; from: &lt;a href=&quot;http://www.meadowcourt.org/downloads/&quot;&gt;http://www.meadowcourt.org/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you run a 64-bit version of Windows later than 2003 (i.e. Vista, 7, 2008, 2008 R2) you need to disable driver signature integrity checks. You can also create a secondary boot option to disable the PV drivers and revert back to the less optimized drivers. For example:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disable Driver Integrity Checks&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;bcdedit /set loadoptions DISABLE_INTEGRITY_CHECKS&lt;br /&gt;
bcdedit /set testsigning ON&lt;br /&gt;
bcdedit /set nointegritychecks ON&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Create secondary boot option&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;bcdedit /enum /v&lt;br /&gt;
&lt;em&gt;Note the GUID string next to &quot;identifier&quot; under &quot;Windows Boot Loader&quot;&lt;/em&gt;&lt;br /&gt;
bcdedit /copy {string from above} /d &quot;Windows Server 2008 NOGPLPV&quot;&lt;br /&gt;
&lt;em&gt;Description can be whatever you want&lt;/em&gt;&lt;br /&gt;
bcdedit /set {new GUID from above} LOADOPTIONS &quot;NOGPLPV&quot;&lt;br /&gt;
&lt;em&gt;Use the GUID outputted from the 2nd command&lt;/em&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now install the MSI, restart, open up Device Manager and you should find you have no more &amp;#8220;Unknown Devices&amp;#8221; and that you now have a different network card (among other things) installed.&lt;/p&gt;</content>
		<author>
			<name>Grant Pannell</name>
			<uri>http://digitaldj.net</uri>
		</author>
		<source>
			<title type="html">Grant Pannell</title>
			<subtitle type="html">I am Grant. This is my site.</subtitle>
			<link rel="self" href="http://digitaldj.net/feed/"/>
			<id>http://digitaldj.net/feed/</id>
			<updated>2010-08-30T04:13:42+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Cloudy Horizons</title>
		<link href="http://passthesource.org.nz/2010/08/25/cloudy-horizons/"/>
		<id>http://passthesource.org.nz/?p=288</id>
		<updated>2010-08-25T05:32:20+00:00</updated>
		<content type="html">&lt;p&gt;I was asked to write this article for an IT publication a month ago but missed the publishing deadline. Due to the wonders of modern technology the world is still able to share and acclaim my wise words:&lt;/p&gt;
&lt;div id=&quot;attachment_294&quot; class=&quot;wp-caption aligncenter&quot;&gt;&lt;img class=&quot;size-medium wp-image-294 &quot; title=&quot;Photo Google Schwag (CC) Attribution-ShareAlike 3.0 Some rights reserved&quot; src=&quot;http://passthesource.org.nz/wp-uploads/2010/08/googcloudumbsmall-300x200.jpg&quot; alt=&quot;Photo Google Schwag (CC) Attribution-ShareAlike 3.0 Some rights reserved&quot; width=&quot;300&quot; height=&quot;200&quot; /&gt;&lt;p class=&quot;wp-caption-text&quot;&gt;Photo Google Schwag (CC) Attribution-ShareAlike 3.0 Some rights reserved&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;The&lt;/strong&gt; Cloud application of the moment is Facebook. Facebook represents the web within the web. It is a privately owned world that is more populated than most countries. It allows individuals and businesses to create their own identities, manage their contacts, find new contacts, conduct business and develop applications specific to Facebook&amp;#8217;s technologies.&lt;/p&gt;
&lt;p&gt;It seems everyone is “on” Facebook, whether you are a government department, Telecommunications business or simply someone with funny cat photos to share.&lt;/p&gt;
&lt;p&gt;But there is a cloud on the horizon. The Bloomburg Business Week is reporting that Facebook founder, Mark Zuckerberg, may have signed a contract which if upheld, would see the company transfer ownership (&lt;a href=&quot;http://www.businessweek.com/news/2010-07-20/facebook-lawyer-unsure-zuckerberg-signed-contract.html&quot; target=&quot;_blank&quot;&gt;http://www.businessweek.com/news/2010-07-20/facebook-lawyer-unsure-zuckerberg-signed-contract.html&lt;/a&gt;).  In addition to its ownership uncertainty, Facebook has a nasty habit of making unilateral changes to the usage policies, effectively the contract it has with each Facebook user. This is a risky proposition for businesses relying on Facebook for their future, and for individuals putting significant parts of their life on one platform.&lt;/p&gt;
&lt;p&gt;While I was in the UK recently I heard about a musical instrument supplier.  They have sold their goods through Amazon for many years, with Amazon taking about a 7 percent commission. That week Amazon announced that it was getting into the musical instrument vending business itself. Co-incidentally Amazon was also unilaterally doubling the commission they were charging to third party music instrument vendors.&lt;/p&gt;
&lt;p&gt;So what do these anecdotes mean for people who have invested everything in “the cloud”. The people who rely on Facebook, or Google apps, or Amazon, to be the “internet of everything”, for their livelihood?&lt;/p&gt;
&lt;p&gt;How do you shift from one vendor to another? If their infrastructure is cutting out, or the terms of service becoming more and more unfavourable, or your ISP is favouring a competitor&amp;#8217;s traffic, or your clients are moving from one application to another (Bebo anyone?) how do you move? How do you get your data and applications transferred? Is the data you created even yours in the first place?&lt;/p&gt;
&lt;p&gt;The success of “the cloud” is also its massive failing &amp;#8211; scale. The scale of the cloud has pushed down costs and increased convenience significantly. But, as Google&amp;#8217;s Vint Cerf points out, there are no accepted standards or protocols for cloud services and systems to store and exchange information and systems.&lt;/p&gt;
&lt;p&gt;With the huge scale that the internet has enabled comes an equally huge imbalance in the nature of the relationship between cloud service vendors and users. The magnitude of the lock-in that users of cloud applications find themselves committed to far outweighs anything that has preceded the current phenomenon.&lt;/p&gt;
&lt;p&gt;So, what do we do? If the convenience of cloud services is impossible to ignore then the pitfalls and potential for “all of business” disasters are should be evaluated and mitigated.&lt;/p&gt;
&lt;p&gt;To start with, your data should be available to you on a device of your choosing at any time and in an open format that can be easily recognised by different software systems. This means that you should be able to backup and download your data easily and at regular intervals.&lt;/p&gt;
&lt;p&gt;Secondly, you should easily be able to transfer from one platform to another. The best way of achieving this is to ensure that whatever cloud service you are using is based on software that is free and open source. This is easier than you might imagine. For every Google app, Twitter, Amazon Web Service, there is an open source alternative. Most, if not all, of these also run as cloud services. Examples include Wordpress, Status.net, Teambox, RedMine, FengOffice and WikiMedia. Using open source cloud services ensures that transferring from one provider to another is not just possible, but straightforward. It also guarantees that your data can be processed if you decide you have to make the shift.&lt;/p&gt;
&lt;p&gt;To conclude, the advantages of cloud services have been well sold, I would say oversold. They represent a privatisation of what we used to call “The Internet”. The pitfalls are less well expressed but they exist.&lt;/p&gt;
&lt;p&gt;The trick for businesses and government in particular is to ensure that they avoid becoming enslaved on a scale that has never previously been possible. Fortunately free and open source software proves, yet again, to be an effective way of getting the best of all worlds &amp;#8211; access to high quality technology and services without the proprietary capture and other business risks that are a feature of many cloud services.&lt;/p&gt;</content>
		<author>
			<name>Don Christie</name>
			<uri>http://passthesource.org.nz</uri>
		</author>
		<source>
			<title type="html">Pass the Source</title>
			<subtitle type="html">Free software today</subtitle>
			<link rel="self" href="http://passthesource.org.nz/feed/"/>
			<id>http://passthesource.org.nz/feed/</id>
			<updated>2010-09-02T21:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">-moz-element Landed</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/mozelement_land.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/mozelement_land.html</id>
		<updated>2010-08-25T02:43:27+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;Markus Stange picked up &lt;a href=&quot;http://weblogs.mozillazine.org/roc/archives/2008/07/the_latest_feat.html&quot;&gt;the work I did in 2008&lt;/a&gt; on the &quot;-moz-element()&quot; CSS extension (which was later extended by Ryo Kawaguchi), made some major improvements and got it reviewed and landed. Check out &lt;a href=&quot;http://hacks.mozilla.org/2010/08/mozelement/&quot;&gt;his blog post&lt;/a&gt;. -moz-element lets you render the contents of an element as the background image for any other element. This is a very powerful tool that can be used in very interesting ways; check out Markus' amazing demos. This feature is on trunk now and will be in Firefox 4. We will also propose this to the CSS WG.
&lt;p&gt;Note for browser UI and extension authors: eventually -moz-element will be the preferred way to render &quot;live&quot; copies of Web page contents (insteading of using MozAfterPaint/drawWindow). Right now, -moz-element can be used to render the contents of a &amp;lt;browser&amp;gt; element elsewhere, although it's less well-tested and is less tweakable for performance. Post-FF4, we can tie -moz-element into the layers framework so that in many cases --- such as tab thumbnails --- rendering -moz-element just recomposites a layer subtree, fully GPU-accelerated.&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Vinge</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/vinge.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/vinge.html</id>
		<updated>2010-08-23T21:17:48+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;The first Vernor Vinge books I read were &lt;em&gt;A Fire Upon The Deep&lt;/em&gt; and &lt;em&gt;A Deepness In The Sky&lt;/em&gt; ... not surprising, since they're the most famous, and also the best. I was &lt;a href=&quot;http://weblogs.mozillazine.org/roc/archives/2010/03/rainbows_end.html&quot;&gt;a bit disappointed&lt;/a&gt; by &lt;em&gt;Rainbows End&lt;/em&gt;. Just recently I read two of his earlier novels (written in the 80s), &lt;em&gt;The Peace War&lt;/em&gt; and &lt;em&gt;Marooned In Realtime&lt;/em&gt; --- the latter being a sequel to the former --- and I think they're excellent, perhaps not as good as &lt;em&gt;Fire&lt;/em&gt; and &lt;em&gt;Deepness&lt;/em&gt;, but &lt;em&gt;Marooned&lt;/em&gt; in particular I found more intriguing and even quite moving.
&lt;p&gt;&lt;strong&gt;Warning: if you haven't read these books, go out now and read them before you come back to the rest of this post, because spoilers are ahead...&lt;/strong&gt;
&lt;p&gt;Marooned and Rainbows End present two rather different visions of human development, and Rainbows End is far closer to my own thinking even though I like the book less. I'm ignoring the bobbles here --- they're a wonderful plot device, but I think the real themes of Marooned are the technological Singularity and a yearning for anarcho-capitalism. At heart I think Marooned is fundamentally an optimistic view of human progress to the Singularity. Rainbows End, on the other hand, seems to me to be a much darker view, a view of humanity lurching from one potential planet-killing catastrophe to the next at decreasing intervals, with no Singularity-salvation in sight. Now, Vinge may make a liar of me yet, since he's said he'd like to do a sequel to Rainbows End, but based on what he's written so far I guess in the twenty years between the books he's become more pessimistic. Although curiously, he may have become a lot more optimistic about governments --- in Marooned he hates governments, in Rainbows End we see a benign totalitarian state.
&lt;p&gt;Personally I think Rainbows End is too optimistic :-). I &lt;a href=&quot;http://weblogs.mozillazine.org/roc/archives/2005/06/i_have_a_dream.html&quot;&gt;wrote about this a while ago&lt;/a&gt; and I stand by it: the technology that could eventually lead to some kind of Singularity (&lt;em&gt;very&lt;/em&gt; eventually; this stuff is way, way harder than most techo-futurists imagine), leads much sooner to either the total elimination of cognitive freedom or the destruction of all intelligent life. It's just not realistic to imagine we can walk the ever-thinning razor's edge for long. Man is fallen, but he still has a long way to fall. God is going to have to save us from ourselves, again.
&lt;p&gt;Time to stop. Excessive futurist navel-gazing is definitely a sin :-).&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Brisbane Pics</title>
		<link href="http://www.hovo.id.au/2010/08/brisbane-pics/"/>
		<id>http://www.hovo.id.au/2010/08/brisbane-pics/</id>
		<updated>2010-08-22T07:12:57+00:00</updated>
		<content type="html">The Great White Out The ferry service was canceled till about lunch time, this placed a huge stress on the busses picking up the slack on the ferry services.. &amp;#160; Botanical Gardens A few pics from the botanical gardens next to the Queensland University of Technology. &amp;#160; On the river &amp;#160; Rock Climbing Kangaroo Point [...]</content>
		<author>
			<name>Luke Hovington</name>
			<uri>http://www.hovo.id.au</uri>
		</author>
		<source>
			<title type="html">Yes I Can To..</title>
			<subtitle type="html">Blogging, Something worth trying?</subtitle>
			<link rel="self" href="http://www.hovo.id.au/feed/rss/"/>
			<id>http://www.hovo.id.au/feed/rss/</id>
			<updated>2010-08-23T03:12:45+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">The other half of the hottest 100 songs</title>
		<link href="http://geekscape.vox.com/library/post/the-other-half-of-the-hottest-100-songs.html?_c=feed-atom"/>
		<id>tag:vox.com,2009-08-09:asset-6a00e398a4672600020110185f4341860f</id>
		<updated>2010-08-21T23:59:52+00:00</updated>
		<content type="html">&lt;div&gt;
    
    
        
            
            
            As many people have pointed out, the recent Triple-J Hottest 100 Songs of All Time had a baffling bias.  Fortunately, Naomi Eve is proactively restoring the balance, with a Hottest 100 Songs by Women poll and list.  My list of favorite women artis...
        
    
                &lt;p&gt;

    &lt;a href=&quot;http://geekscape.vox.com/library/post/the-other-half-of-the-hottest-100-songs.html?_c=feed-atom#comments&quot;&gt;Read and post comments&lt;/a&gt;

 | 

    
    &lt;a href=&quot;http://www.vox.com/share/6a00e398a4672600020110185f4341860f?_c=feed-atom&quot;&gt;Send to a friend&lt;/a&gt;

&lt;/p&gt;

                &lt;/div&gt;</content>
		<author>
			<name>geekscape</name>
			<uri>http://geekscape.vox.com/library/posts/page/1/</uri>
		</author>
		<source>
			<title type="html">geekscape’s blog</title>
			<subtitle type="html">Hacker At Large</subtitle>
			<link rel="self" href="http://geekscape.vox.com/library/posts/atom.xml"/>
			<id>tag:vox.com,2006:6p00e398a467260002/</id>
			<updated>2010-08-22T00:13:11+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Proposing a mentoring partnership framework for Ubuntu Women</title>
		<link href="http://www.geekosophical.net/?p=504"/>
		<id>http://www.geekosophical.net/?p=504</id>
		<updated>2010-08-21T14:11:57+00:00</updated>
		<content type="html">&lt;p&gt;Back in December while starting to scurry about to pull together the competitions framework which I was hoping would make a few splashes, I was already thinking ahead to after the competitions, thinking of ways to kick the mentoring programme in to gear through which the target audience attention could be catalysed to participation.&lt;/p&gt;
&lt;p&gt;A few weeks ago, as Alan Bell was poking me wondering about the code we&amp;#8217;d used for the competition voting polls, it dawned on me. The result of that epiphany is my new pet project, &lt;a href=&quot;http://www.geekosophical.net/?p=500&quot;&gt;Pollka&lt;/a&gt;, a php project that aims to build a quickly deployable, standalone, simple polling web application.&lt;/p&gt;
&lt;p&gt;Pollka is not part of Ubuntu, and is &lt;em&gt;not&lt;/em&gt; an Ubuntu project. It &lt;em&gt;is&lt;/em&gt; however a real project which intends to &lt;em&gt;partner&lt;/em&gt; with the Ubuntu Women Project to mentor interested members in the purposeful use of tools such as bzr, launchpad tools and packaging, and concepts such as reporting bugs and documenting. The aim being to give prospective women contributors a chance to gain confidence in methodologies that will ease their integration path in to activities that are considered &amp;#8220;contributions to Ubuntu&amp;#8221;.&lt;/p&gt;
&lt;p&gt;I believe this real world project sandpit concept is a missing link in &lt;a href=&quot;http://wiki.ubuntu-women.org/MentoringFAQ?action=recall&amp;rev=26&quot;&gt;the current UW mentoring structure&lt;/a&gt;. Jumping straight in to a massive project with commercial responsibilities like Ubuntu is daunting, especially so for inexperienced people who &lt;a href=&quot;http://nielsenhayden.com/makinglight/archives/011418.html&quot;&gt;feel an extra burden&lt;/a&gt; in&lt;a href=&quot;http://xkcd.com/385/&quot;&gt; proving themselves&lt;/a&gt;. I want UW to be able to help interested women break out of that self-fulfilling prophecy cycle.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-women/2010-August/002965.html&quot;&gt;I am proposing&lt;/a&gt; that a mentoring partnership framework be established to compliment the current UW mentoring pathways, and I intend to use Pollka as a proof of concept partner project. I&amp;#8217;ve added the blueprint to the next &lt;a href=&quot;http://wiki.ubuntu-women.org/Meetings/August2010/Agenda&quot;&gt;UW meeting agenda&lt;/a&gt; and hopefully we can use this as a deliverable for the Natty cycle.&lt;/p&gt;</content>
		<author>
			<name>Melissa Draper</name>
			<uri>http://www.geekosophical.net</uri>
		</author>
		<source>
			<title type="html">Geekosophical</title>
			<subtitle type="html">&quot;One's philosophy is not best expressed in words; it is expressed in the choices one makes ... and the choices we make are ultimately our responsibility.&quot; Eleanor Roosevelt (1884 - 1962)</subtitle>
			<link rel="self" href="http://www.geekosophical.net/?feed=rss2"/>
			<id>http://www.geekosophical.net/?feed=rss2</id>
			<updated>2010-08-21T14:21:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">OpenOffice.org is the most frustrating piece of software I use</title>
		<link href="http://www.flamingspork.com/blog/2010/08/21/openoffice-org-is-the-most-frustrating-piece-of-software-i-use/"/>
		<id>http://www.flamingspork.com/blog/2010/08/21/openoffice-org-is-the-most-frustrating-piece-of-software-i-use/</id>
		<updated>2010-08-21T01:41:03+00:00</updated>
		<content type="html">&lt;p&gt;No, really.&lt;/p&gt;
&lt;p&gt;I have recently been constructing a 100 page document going over a whole bunch of the details for the Monorail we&amp;#8217;re building at Burning Man this year.&lt;/p&gt;
&lt;p&gt;Apart from randomly freezing, and then suddenly not displaying images until I had restarted it &amp;#8211; it&amp;#8217;s also really slow.&lt;/p&gt;
&lt;p&gt;The last straw was when leafing through the document before getting it printed. I had inserted a bunch of pages before this last section. But now, there was this empty page in the last section of the document.  The part that I hadn&amp;#8217;t touched for days. If I tried to remove the blank page, all the images on nearby pages moved so that they were on top of each other.&lt;/p&gt;
&lt;p&gt;I ended up just printing it. There is a blank page that I can&amp;#8217;t get rid of.&lt;/p&gt;
&lt;p&gt;It is a piece of software that worries me. Is this really meant to be an alternative? It has NEVER worked well for me. Basic tasks sure, but I continually find myself pining for Word 5.1a on the Mac (System 7 that is) or Nisus Writer or even ClarisWorks.&lt;/p&gt;
&lt;p&gt;If opening Microsoft Word documents fairly accurately is your only good feature, how do you expect to survive in the free (software) world?&lt;/p&gt;
&lt;p&gt;So, while my twitter stream may suggest desires for punning the developers in the face or their early demise through painful methods&amp;#8230;.. I really just wish that sometime in the past 10 years you had made it not shit me to tears.&lt;/p&gt;
&lt;p&gt;Certainly another failure of Sun Microsystems and I don&amp;#8217;t expect Oracle to do any better at all (especially considering recent actions).&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/08/21/openoffice-org-is-the-most-frustrating-piece-of-software-i-use/&amp;t=OpenOffice.org+is+the+most+frustrating+piece+of+software+I+use&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=OpenOffice.org+is+the+most+frustrating+piece+of+software+I+use+-+http://b2l.me/ajugta&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/08/21/openoffice-org-is-the-most-frustrating-piece-of-software-i-use/&amp;title=OpenOffice.org+is+the+most+frustrating+piece+of+software+I+use&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/08/21/openoffice-org-is-the-most-frustrating-piece-of-software-i-use/&amp;title=OpenOffice.org+is+the+most+frustrating+piece+of+software+I+use&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/08/21/openoffice-org-is-the-most-frustrating-piece-of-software-i-use/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Source code tarball now available</title>
		<link href="http://blog.man7.org/2010/08/source-code-tarball-now-available.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-4838134212471642166</id>
		<updated>2010-08-20T22:55:00+00:00</updated>
		<content type="html">I've made some more revisions to the &lt;a href=&quot;http://man7.org/tlpi/&quot;&gt;web site of my book&lt;/a&gt;. The most notable change is that you can now download the &lt;a href=&quot;http://man7.org/tlpi/code/&quot;&gt;source code&lt;/a&gt; for the sample programs. (It's also possible to browse individual program files online &lt;a href=&quot;http://man7.org/tlpi/code/online/&quot;&gt;here&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;The source code tarball is provided in two versions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Distribution version&lt;/span&gt;: a version of the source code that includes extra material not shown in the book. Probably, this is the version of the code that you want.&lt;/li&gt;&lt;li&gt;&lt;span&gt;Book version&lt;/span&gt;: the source code as it appears in the book.&lt;/li&gt;&lt;/ul&gt;The web site &lt;a href=&quot;http://man7.org/tlpi/code/why_diff.html&quot;&gt;explains&lt;/a&gt; why there are two versions.&lt;br /&gt;&lt;br /&gt;I'd like to hear of any problems that you encounter building (either version of) the code on various Linux systems, especially older distributions. I'll use feedback to build out the &lt;a href=&quot;http://man7.org/tlpi/code/faq.html&quot;&gt;source code FAQ&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-4838134212471642166?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">SHOW CREATE TABLE using table protobuf message</title>
		<link href="http://www.flamingspork.com/blog/2010/08/20/show-create-table-using-table-protobuf-message/"/>
		<id>http://www.flamingspork.com/blog/?p=2121</id>
		<updated>2010-08-20T03:37:45+00:00</updated>
		<content type="html">&lt;p&gt;&amp;#8230; and &lt;strong&gt;really&lt;/strong&gt; testing the replication code path for CREATE TABLE.&lt;/p&gt;
&lt;p&gt;So, for a very long time now, &lt;a href=&quot;http://drizzle.org&quot;&gt;Drizzle&lt;/a&gt; has been using a &lt;a href=&quot;http://code.google.com/p/protobuf/&quot;&gt;protobuf&lt;/a&gt; based structure to describe the structure of tables. The idea was to be able to have engines rather painlessly generate this structure themselves (which several now do). A secondary idea was to use this structure itself for CREATE TABLE (in progress, and embedded_innodb does in fact does only use the table message for its CREATE TABLE codepath). The third idea was to just put the table protobuf message into the replication stream instead of the CREATE TABLE statement (i.e. a SQL string). This means that you could (easily) write a replicator to a DBMS with different SQL syntax, or to a system that doesn&amp;#8217;t speak SQL at all.&lt;/p&gt;
&lt;p&gt;The final step, to reduce duplicated code functionality, would be to have the code that does SHOW CREATE TABLE to use a common bit of code for turning a table protobuf message back into a SQL string.&lt;/p&gt;
&lt;p&gt;We now have that.&lt;/p&gt;
&lt;p&gt;Just now, my branch to replace the old SHOW CREATE TABLE code (that was using TableShare and friends) with the statement_transform code (that we also use in converting a replication log to SQL commands) hit trunk.&lt;/p&gt;
&lt;p&gt;Yay.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/08/20/show-create-table-using-table-protobuf-message/&amp;t=SHOW+CREATE+TABLE+using+table+protobuf+message&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=SHOW+CREATE+TABLE+using+table+protobuf+message+-+http://b2l.me/ajk8k3&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/08/20/show-create-table-using-table-protobuf-message/&amp;title=SHOW+CREATE+TABLE+using+table+protobuf+message&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/08/20/show-create-table-using-table-protobuf-message/&amp;title=SHOW+CREATE+TABLE+using+table+protobuf+message&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/08/20/show-create-table-using-table-protobuf-message/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">CSS Units Changes Landed</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/css_units_chang.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/css_units_chang.html</id>
		<updated>2010-08-19T23:36:27+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;The CSS units changes that I &lt;a href=&quot;http://weblogs.mozillazine.org/roc/archives/2010/01/css_absolute_le.html&quot;&gt;blogged about&lt;/a&gt; in January have landed and will be in the next Firefox milestone. With these changes, 1in = 96px always. Likewise 3pt = 4px, 25.4mm = 96px, etc.
This matches the behaviour of Internet Explorer, Safari and Chrome.
&lt;p&gt;By default, when printing, 1in is rendered as one physical inch. For other output media, all these units are scaled in a medium-dependent and platform-dependent way by default. One goal of this scaling is to give results consistent with user expectations and other applications on the system. For example, standard form controls such as checkboxes should look the same in Web pages as in other applications, by default. Another goal is to choose default scaling so that a document designed to print well on normal-sized paper will be readable on the output device, e.g., a phone. So, the advice for authors using CSS physical units is to set lengths so the document looks good when printed without scaling; the browser will then scale those lengths to display the document suitably on different kinds of screens.
&lt;p&gt;There are some &lt;em&gt;rare&lt;/em&gt; cases where it makes sense to include true physical measurements in a Web document --- for example, &quot;life size&quot; diagrams, or elements in a touch interface. For these cases we have introduced a new experimental unit, &quot;mozmm&quot;. For media such as screens that can be touched, 1mozmm is rendered as one physical millimetre (or as close as we can get based on what we know about the medium). For other media, such as contact lens displays, brain-implanted electrodes, or lasers projecting into the sky, we reserve the right to treat 'mozmm' similarly to 'mm'. Authors should only use mozmm for elements which really need the same physical size on, for example, a 4&quot; phone screen and a 24&quot; monitor. This is hardly ever going to be what you want.
&lt;p&gt;Internally, our DPI code has been overhauled. Everything is now controlled by two parameters: for each window, the number of device pixels per inch (returned by nsIWidget::GetDPI), and also for each window, the default scale (returned by nsIWidget::GetDefaultScale). The 'layout.css.dpi' about:config pref overrides the result of nsIWidget::GetDPI, if present. nsIWidget::GetDPI only affects the interpretation of mozmm (unlike before, where on some platforms, some DPI values would trigger automatic scaling). We set CSS 1px to one device pixel times GetDefaultScale times the current zoom factor. Currently GetDefaultScale always returns 1.0 on all platforms, although on Mac we should set it to the system &quot;default UI scale&quot; (and change some other code to compensate), and on Windows we should set it based on the &quot;system font DPI&quot;, which is essentially a user preference that controls scaling of all applications on the system. It's important that the default scale be based on a system-wide setting; that will keep Firefox consistent with the rest of the system, and ensure that the user doesn't get a surprise.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Franklin Street Statement PDF</title>
		<link href="http://bethesignal.org/blog/2010/08/20/franklin-street-statement-pdf/"/>
		<id>http://bethesignal.org/?p=1800</id>
		<updated>2010-08-19T17:00:48+00:00</updated>
		<content type="html">&lt;p&gt;The Franklin Street Statement can be found on the web in the form of a fairly &lt;a title=&quot;Franklin Street Statement on Freedom and Network Services&quot; href=&quot;http://autonomo.us/2008/07/franklin-street-statement/&quot;&gt;ugly blog post&lt;/a&gt;, which does not befit a document of such importance&amp;#8230; and for that matter, neither does the printed form of that page.&lt;/p&gt;
&lt;p&gt;I wanted a nice paper copy of the statement to put in a prominent position on my desk, and figured it would make sense to share my rendering. It may be an interesting thing to hand out at developer conferences or Software Freedom Day events.&lt;/p&gt;
&lt;p&gt;The document is set in Free typefaces, &lt;a href=&quot;https://fedorahosted.org/liberation-fonts/&quot;&gt;Liberation Serif&lt;/a&gt; and &lt;a href=&quot;http://www.theleagueofmoveabletype.com/fonts/7-league-gothic&quot;&gt;League Gothic&lt;/a&gt; &amp;#8212; appropriate, given that League is a wonderful Free alternative to &lt;em&gt;Franklin&lt;/em&gt; Gothic! I know, I know, you see what I did there. Now&amp;#8230; &lt;a title=&quot;Franklin Street Statement on Freedom and Network Services PDF&quot; href=&quot;http://bethesignal.org/wp-content/uploads/2010/08/franklin-street-statement.pdf&quot;&gt;Download the Franklin Street Statement PDF&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; I wish the source ODF had survived the wrath of  OpenOffice.org&amp;#8217;s &amp;#8220;eat my document&amp;#8221; crash recovery feature, but at least  the resulting PDF is fairly easy to edit. &lt;img width=&quot;16&quot; height=&quot;16&quot; src=&quot;http://bethesignal.org/wp-content/plugins/tango-smilies/tango/face-smile.png&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bethesignal.org/wp-content/uploads/2010/08/franklin-street-statement.pdf&quot;&gt;&lt;img class=&quot;aligncenter size-full wp-image-1801&quot; title=&quot;Franklin Street Statement&quot; src=&quot;http://bethesignal.org/wp-content/uploads/2010/08/franklin-street-statement.png&quot; alt=&quot;&quot; width=&quot;636&quot; height=&quot;900&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Jeff Waugh</name>
			<uri>http://bethesignal.org</uri>
		</author>
		<source>
			<title type="html">Be the signal</title>
			<subtitle type="html">where we're going, we don't need roads...</subtitle>
			<link rel="self" href="http://bethesignal.org/feed/"/>
			<id>http://bethesignal.org/feed/</id>
			<updated>2010-09-03T02:19:14+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Some people march to a different drummer – and some people polka</title>
		<link href="http://www.geekosophical.net/?p=500"/>
		<id>http://www.geekosophical.net/?p=500</id>
		<updated>2010-08-19T15:14:49+00:00</updated>
		<content type="html">&lt;p&gt;You may remember that over a few months earlier this year, the Ubuntu Women Project ran some competitions in which people voted; firstly a story contest, then a photo one.&lt;/p&gt;
&lt;p&gt;The voting websites were powered by some (really quite messy) php that I put together over a few wee-hours sessions, after being unsuccessful in finding something that was functional but at the same time not more complicated than the purpose required.&lt;/p&gt;
&lt;p&gt;After a few months and some prodding by Alan Bell as he wanted to build on it for deciding on a new logo for Ubuntu-UK, I did some refactoring of the code a few weeks back and pushed up to LP.&lt;/p&gt;
&lt;p&gt;Originally I put it up in my junk directory, but then I had an idea &amp;lt;insert ominous music here&amp;gt;.&lt;/p&gt;
&lt;p&gt;Why not &lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-women/2010-August/002955.html&quot;&gt;use the project to mentor Ubuntu Women members&lt;/a&gt; who&amp;#8217;ve benefited from and found the UW project via the competitions. I suggested this to others in #ubuntu-women and they agreed that it was a good idea, and decided it should be called &amp;#8220;Pollka&amp;#8221;. Awesome sauce.&lt;/p&gt;
&lt;p&gt;The aim of Pollka is to have a quickly deployable simple web application for polling between a number of choices. It currently uses php and mysql, but ideally other database options will be catered for in the future. If you want to help out, more information can be found at the following locations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://launchpad.net/~pollka-devs &quot;&gt;https://launchpad.net/~pollka-devs &lt;/a&gt;is the development team, and&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://launchpad.net/pollka&quot;&gt;https://launchpad.net/pollka&lt;/a&gt; is the project page on LP.&lt;/li&gt;
&lt;li&gt;#pollka on the same network as Ubuntu&amp;#8217;s channels, irc.freenode.net&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>Melissa Draper</name>
			<uri>http://www.geekosophical.net</uri>
		</author>
		<source>
			<title type="html">Geekosophical</title>
			<subtitle type="html">&quot;One's philosophy is not best expressed in words; it is expressed in the choices one makes ... and the choices we make are ultimately our responsibility.&quot; Eleanor Roosevelt (1884 - 1962)</subtitle>
			<link rel="self" href="http://www.geekosophical.net/?feed=rss2"/>
			<id>http://www.geekosophical.net/?feed=rss2</id>
			<updated>2010-08-21T14:21:09+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">19 Aug 2010</title>
		<link href="http://www.advogato.org/person/dwmw2/diary.html?start=221"/>
		<id>http://www.advogato.org/person/dwmw2/diary.html?start=221</id>
		<updated>2010-08-19T00:32:13+00:00</updated>
		<content type="html">I wanted to update a Nokia E71 to the latest firmware. So I
booted a Windows 7 VM, went to the Nokia web site and
downloaded the update tool. It took about quarter of an hour
to download 33MiB over my crappy ADSL line.&lt;p&gt;
When it finally finished downloading, I installed it and
rebooted as it asked me to, then tried to start it using the
icon it had installed on the desktop.&lt;p&gt;
It told me there was an update available, and I couldn't use
it until I updated. I muttered darkly at this idiocy, but
let it update. It spent another quarter of an hour
downloading, and only &lt;em&gt;then&lt;/em&gt; did it check and tell me
that it couldn't proceed because it needed to be run as
Administrator.&lt;p&gt;
&lt;p&gt;So I right-clicked on it and used the 'run as
Administrator' option, and watched it download itself for
the &lt;em&gt;third&lt;/em&gt; time. But still it failed, complaining
that I had to run it as Administrator.
&lt;p&gt;So I logged out completely and logged in using the
Administrator account, and I ran it &lt;em&gt;again&lt;/em&gt;. After
downloading the entire thing for a &lt;em&gt;fourth&lt;/em&gt; time it
failed again, still complaining that it has insufficient
privileges and needed to be run as the Administrator.&lt;p&gt;
I am stunned &amp;mdash; Nokia really ought to be ashamed at
this crap.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>David Woodhouse</name>
			<uri>http://www.advogato.org/person/dwmw2/</uri>
		</author>
		<source>
			<title type="html">Advogato blog for dwmw2</title>
			<subtitle type="html">Advogato blog for dwmw2</subtitle>
			<link rel="self" href="http://www.advogato.org/person/dwmw2/rss.xml"/>
			<id>http://www.advogato.org/person/dwmw2/rss.xml</id>
			<updated>2010-09-03T02:13:01+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Storage Engine independent test suite</title>
		<link href="http://www.flamingspork.com/blog/2010/08/18/storage-engine-independent-test-suite/"/>
		<id>http://www.flamingspork.com/blog/?p=2118</id>
		<updated>2010-08-18T01:57:16+00:00</updated>
		<content type="html">&lt;p&gt;This is something that has never existed in the MySQL world. Nothing to help you start developing your engine.&lt;/p&gt;
&lt;p&gt;Sure, you could start running the whole test suite against your engine&amp;#8230;. but where it wasn&amp;#8217;t specifically MyISAM, you&amp;#8217;d certainly hit things that were.. well&amp;#8230; as simple as having to change the result file so that SHOW CREATE TABLE masked out the ENGINE= part.&lt;/p&gt;
&lt;p&gt;Also, if you were just starting out and were trying to incrementally write your engine, instead of just hacking away for 6 months on &amp;#8220;everything&amp;#8221; and then testing &amp;#8220;everything&amp;#8221; and hoping that &lt;strong&gt;anything&lt;/strong&gt; at all worked &amp;#8211; you were out of luck.&lt;/p&gt;
&lt;p&gt;So when working on the embedded_innodb engine for Drizzle I wanted to finally fix this problem. I was not going to fix it perfectly, or completely. What I wanted was a set of simple tests, that were very short and that tested distinct bits of the engine.&lt;/p&gt;
&lt;p&gt;So&amp;#8230; if you look in the Drizzle tree, in plugin/embedded_innodb/tests/ you&amp;#8217;ll find a bunch of test cases beginning with basic_ (they&amp;#8217;re also now in plugin/pbxt/tests). These check very basic functionality and should be useful when starting to write your own storage engine.&lt;/p&gt;
&lt;p&gt;They should also port easily to MySQL too (possibly without changes), but I haven&amp;#8217;t tried it. Porting to PBXT was simple.. a regex to replace InnoDB with PBXT.&lt;/p&gt;
&lt;p&gt;Enjoy.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/08/18/storage-engine-independent-test-suite/&amp;t=Storage+Engine+independent+test+suite&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=Storage+Engine+independent+test+suite+-+File: /data/app/webapp/functions.php&lt;br /&gt;Line: 7&lt;br /&gt;Message: Too many connections&amp;source=shareaholic&quot;&gt;&lt;br /&gt;Line: 7&lt;br /&gt;Message: Too many connections&amp;amp;source=shareaholic&quot;&gt;&lt;br /&gt;Line: 7&lt;br /&gt;Message: Too many connections&amp;amp;source=shareaholic&quot;&gt;&lt;br /&gt;Line: 7&lt;br /&gt;Message: Too many connections&amp;amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/08/18/storage-engine-independent-test-suite/&amp;title=Storage+Engine+independent+test+suite&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/08/18/storage-engine-independent-test-suite/&amp;title=Storage+Engine+independent+test+suite&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/08/18/storage-engine-independent-test-suite/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Show them that you care</title>
		<link href="http://passthesource.org.nz/2010/08/18/show-them-that-you-care/"/>
		<id>http://passthesource.org.nz/?p=285</id>
		<updated>2010-08-18T01:51:11+00:00</updated>
		<content type="html">&lt;p&gt;There&amp;#8217;s just 29 days left to get your nominations in for this year&amp;#8217;s &lt;a href=&quot;http://www.nzosa.org.nz/&quot;&gt;New Zealand Open Source Awards&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are 8 categories this year: Open Source Use in Government, Open Source Use in Business, Open Source Use in Education, Open Source Use in The Arts, Open Source Software Project, Open Source Contributor, Open Source Advocate, Open Source People&amp;#8217;s Choice Award&lt;/p&gt;
&lt;p&gt;Think about the people in the New Zealand open source community whose contributions have made a difference to your life or your business over the last couple of years &amp;#8211; the last awards ceremony was in 2008 &amp;#8211; and send in your &lt;a href=&quot;http://www.nzosa.org.nz/node/add/nomination&quot;&gt;nominations now&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Remember that these awards aren&amp;#8217;t just for the coders, but also for the supporting cast of people contributing, using and making a difference with open source software. Don&amp;#8217;t forget to nominate your own contributions, projects, or even yourself if you&amp;#8217;ve been doing great work that you like to see more widely recognised.&lt;/p&gt;</content>
		<author>
			<name>Don Christie</name>
			<uri>http://passthesource.org.nz</uri>
		</author>
		<source>
			<title type="html">Pass the Source</title>
			<subtitle type="html">Free software today</subtitle>
			<link rel="self" href="http://passthesource.org.nz/feed/"/>
			<id>http://passthesource.org.nz/feed/</id>
			<updated>2010-09-02T21:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Wired? Tired? Expired.</title>
		<link href="http://bethesignal.org/blog/2010/08/18/wired-tired-expired/"/>
		<id>http://bethesignal.org/?p=1779</id>
		<updated>2010-08-17T20:57:27+00:00</updated>
		<content type="html">&lt;p&gt;Glyn Moody &lt;a href=&quot;http://twitter.com/glynmoody/status/21405468872&quot;&gt;pointed out&lt;/a&gt; an &lt;a href=&quot;http://www.wired.com/magazine/2010/08/ff_webrip/all/1&quot;&gt;awful article&lt;/a&gt; written by Chris Anderson (of Long Tail infamy) and Michael Wolff, &amp;#8220;The Web is Dead. Long Live the Internet&amp;#8221;. It is &lt;em&gt;almost&lt;/em&gt; Nick Carr-esque in its pursuit of overwrought claims with little to no basis in fact.&lt;/p&gt;
&lt;p&gt;The lunacy of this article will resonate with anyone remotely connected with the technology industry, let alone those involved in software and web development.&lt;/p&gt;
&lt;p&gt;But here are my favourite bits of abject cluelessness:&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;size-full wp-image-1788 aligncenter&quot; title=&quot;Then/Now Applications&quot; src=&quot;http://bethesignal.org/wp-content/uploads/2010/08/ff_webrip5_f.jpg&quot; alt=&quot;&quot; width=&quot;295&quot; height=&quot;168&quot; /&gt;&lt;/p&gt;
&lt;p&gt;JavaScript then, &lt;em&gt;Objective-C&lt;/em&gt; now? HTML then, &lt;em&gt;XML&lt;/em&gt; now? What the fuck have you been smoking, Chris Anderson? &amp;#8230; and don&amp;#8217;t tell me it was some &amp;#8220;junior staffer&amp;#8221; subbing the living crap out of your stupid lack of perspective.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;size-full wp-image-1787 aligncenter&quot; title=&quot;Then/Now People&quot; src=&quot;http://bethesignal.org/wp-content/uploads/2010/08/ff_webrip4_f.jpg&quot; alt=&quot;&quot; width=&quot;315&quot; height=&quot;209&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8230; and then this little gem to finish things off, ignoring years of evidence that we enjoy temporary dalliances with convenience before returning to (often quite) revolutionary openness:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The Internet is the real revolution, as important as electricity; what we do with it is still evolving. As it moved from your desktop to your pocket, the nature of the Net changed. The delirious chaos of the open Web was an adolescent phase subsidized by industrial giants groping their way in a new world. Now they’re doing what industrialists do best &amp;#8212; finding choke points. And by the looks of it, we’re loving it.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I&amp;#8217;ll make my own bold, unsubstantiated claim&amp;#8230; Wired: Tired &lt;em&gt;and&lt;/em&gt; expired.&lt;/p&gt;
&lt;p&gt;Glad I have that off my chest. Thank you, ball boys.&lt;/p&gt;
&lt;p&gt;* * *&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Check out this hilarious take-down from Boing Boing &amp;#8230; with facts! &amp;#8230; and analysis! &amp;#8230; and &lt;a title=&quot;Is the web really dead?&quot; href=&quot;http://www.boingboing.net/2010/08/17/is-the-web-really-de.html&quot;&gt;pretty graphs&lt;/a&gt;!&lt;/p&gt;</content>
		<author>
			<name>Jeff Waugh</name>
			<uri>http://bethesignal.org</uri>
		</author>
		<source>
			<title type="html">Be the signal</title>
			<subtitle type="html">where we're going, we don't need roads...</subtitle>
			<link rel="self" href="http://bethesignal.org/feed/"/>
			<id>http://bethesignal.org/feed/</id>
			<updated>2010-09-03T02:19:14+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">embedded_innodb engine (HailDB Engine)</title>
		<link href="http://www.flamingspork.com/blog/2010/08/18/embedded_innodb-engine-haildb-engine/"/>
		<id>http://www.flamingspork.com/blog/?p=2115</id>
		<updated>2010-08-17T18:45:06+00:00</updated>
		<content type="html">&lt;p&gt;A whole bunch of stuff got merged to the embedded_innodb engine recently. The end game is to have the embedded_innodb engine be just linking to &lt;a href=&quot;http://www.haildb.com&quot;&gt;HailDB&lt;/a&gt; (where we&amp;#8217;re continuing maintenance of Embedded InnoDB).&lt;/p&gt;
&lt;p&gt;So, what made it in? A lot of bug fixes (especially around error reporting and tables without an explicit primary key), SELECT FOR UPDATE, support for temporary tables and support of prefix indexes.&lt;/p&gt;
&lt;p&gt;We also now, if it&amp;#8217;s available, link to &lt;a href=&quot;http://www.haildb.com&quot;&gt;HailDB&lt;/a&gt; instead of Embedded InnoDB. At some point &amp;#8220;soon&amp;#8221; we shall just require HailDB.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/08/18/embedded_innodb-engine-haildb-engine/&amp;t=embedded_innodb+engine+%28HailDB+Engine%29+&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=embedded_innodb+engine+%28HailDB+Engine%29++-+http://b2l.me/ahz4em&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/08/18/embedded_innodb-engine-haildb-engine/&amp;title=embedded_innodb+engine+%28HailDB+Engine%29+&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/08/18/embedded_innodb-engine-haildb-engine/&amp;title=embedded_innodb+engine+%28HailDB+Engine%29+&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/08/18/embedded_innodb-engine-haildb-engine/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">The mozRequestAnimationFrame Frame Rate Limit</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/the_mozrequesta.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/the_mozrequesta.html</id>
		<updated>2010-08-16T21:49:24+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;A few people have been playing with &lt;a href=&quot;http://weblogs.mozillazine.org/roc/archives/2010/08/mozrequestanima.html&quot;&gt;mozRequestAnimationFrame&lt;/a&gt; and noticed that they can't get more than 50 frames per second. &lt;em&gt;This is intentional, and it's a good feature.&lt;/em&gt;
&lt;p&gt;On modern systems an application usually cannot get more than 50-60 frames per second onto the screen. There are multiple reasons for this. Some of them are hardware limitations: CRTs have a fixed refresh rate, and LCDs are also limited in the rate at which they can update the screen due to &lt;a href=&quot;http://www.tweakguides.com/Graphics_8.html&quot;&gt;bandwidth limitations in the DVI connector and other reasons&lt;/a&gt;. Another big reason is that modern operating systems tend to use &quot;compositing window managers&quot; which redraw the entire desktop at a fixed rate. So even if an application updates its window 100 times a second, the user won't be able to see more than about half of those updates. (Some applications on some platforms, typically games, can go full-screen, bypass the window manager and get updates onto the screen as fast as the hardware allows, but obviously desktop browsers aren't usually going to do that.)
&lt;p&gt;So, firing a MozBeforePaint event more than about 50 times a second is going to achieve nothing other than wasting CPU (i.e., power). So we don't. Apart from saving power, reducing animation CPU usage helps overall performance because we can use the free time to perform garbage collection or other house-cleaning tasks, reducing the incidence or length of frame skips.
&lt;p&gt;We need to do some followup work to make sure that on each platform we use the optimal rate; modern platforms have APIs to tell us the window manager's composition rate. But 50Hz is almost always pretty close.
&lt;p&gt;This all means that measuring FPS is a bad way to measure performance, once you're up to 50 or more. At that point you need to increase the difficulty of your workload.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">v0.21.1 released</title>
		<link href="http://ceph.newdream.net/2010/08/v0-21-1-released/"/>
		<id>http://ceph.newdream.net/?p=118</id>
		<updated>2010-08-16T15:02:36+00:00</updated>
		<content type="html">&lt;p&gt;We&amp;#8217;ve made a bugfix release for v0.21 last week.  Changes include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;debian and rpm packaging fixes&lt;/li&gt;
&lt;li&gt;mds: fixed crash on some mds-&amp;gt;client messages&lt;/li&gt;
&lt;li&gt;mds: fix snaprealm behavior on readdir (occasional client misbehavior)&lt;/li&gt;
&lt;li&gt;monmaptool: man page typo&lt;/li&gt;
&lt;li&gt;rados: usage fix&lt;/li&gt;
&lt;li&gt;osd: fix heartbeat to/from osds (fixing osd up/down flapping)&lt;/li&gt;
&lt;li&gt;osd: fix replies to dup/committed requests (fixes client hangs)&lt;/li&gt;
&lt;li&gt;librados: .hpp fix&lt;/li&gt;
&lt;li&gt;cclass: fix .so loading&lt;/li&gt;
&lt;li&gt;cauthtool: fix man page example for fs clients&lt;/li&gt;
&lt;li&gt;fix log rotation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Relevant URLs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Direct download at &lt;a href=&quot;http://ceph.newdream.net/../download/ceph-0.21.1.tar.gz&quot;&gt;http://ceph.newdream.net/download/ceph-0.21.1.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;For Debian packages see &lt;a href=&quot;http://ceph.newdream.net/../wiki/Debian&quot;&gt;http://ceph.newdream.net/wiki/Debian&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>Sage Weil</name>
			<uri>http://ceph.newdream.net</uri>
		</author>
		<source>
			<title type="html">Ceph</title>
			<subtitle type="html">open source distributed storage</subtitle>
			<link rel="self" href="http://ceph.newdream.net/feed/"/>
			<id>http://ceph.newdream.net/feed/</id>
			<updated>2010-08-30T20:12:19+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Web site revisions</title>
		<link href="http://blog.man7.org/2010/08/web-site-revisions.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-7890433429007231512</id>
		<updated>2010-08-15T23:44:08+00:00</updated>
		<content type="html">I've started making some more substantial additions and changes to the &lt;a href=&quot;http://www.man7.org/tlpi/&quot;&gt;website for my book&lt;/a&gt;. With the latest revisions, you can now see:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A more &lt;a href=&quot;http://www.man7.org/tlpi/tlpi_in_detail.html&quot;&gt;detailed description&lt;/a&gt; of the book&lt;/li&gt;&lt;li&gt;The short and long table of contents&lt;/li&gt;&lt;li&gt;The &lt;a href=&quot;http://www.man7.org/tlpi/download/TLPI-00-Preface.pdf&quot;&gt;preface&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href=&quot;http://www.man7.org/tlpi/download/TLPI-Index.pdf&quot;&gt;index&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A sample chapter from the book (&lt;a href=&quot;http://www.man7.org/tlpi/download/TLPI-04-File_IO_The_Universal_IO_Model.pdf&quot;&gt;Chapter 4: &lt;span&gt;File I/O: The Universal I/O Model&lt;/span&gt;&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;The &lt;a href=&quot;http://www.man7.org/tlpi/code/online/index.html&quot;&gt;source code of all of the example programs&lt;/a&gt; in the book, with each file shown as a separate web page (a tarball of the source code will appear later).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-7890433429007231512?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Packet and Denby</title>
		<link href="http://bethesignal.org/blog/2010/08/15/packet-and-denby/"/>
		<id>http://bethesignal.org/?p=1741</id>
		<updated>2010-08-15T13:53:33+00:00</updated>
		<content type="html">&lt;h2&gt;This is Packet.&lt;/h2&gt;
&lt;p&gt;&lt;img class=&quot;aligncenter size-large wp-image-1755&quot; title=&quot;Packet's Speedo vs. Speed&quot; src=&quot;http://bethesignal.org/wp-content/uploads/2010/08/speedo-220-bike-50-640x478.jpg&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;478&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;This is &lt;a title=&quot;Denby&quot; href=&quot;http://www.hellodenby.com/&quot;&gt;Denby&lt;/a&gt;.&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://bethesignal.org/wp-content/uploads/2010/08/denby-01-prototype.ogv&quot;&gt;&lt;img class=&quot;aligncenter size-large wp-image-1759&quot; title=&quot;Denby Prototype Video (Ogg/Theora)&quot; src=&quot;http://bethesignal.org/wp-content/uploads/2010/08/denby-01-prototype-640x284.png&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;284&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I mention in the video that it&amp;#8217;ll end up being &amp;#8220;like TweetDeck&amp;#8221;. I breezed past that a tad too quickly &amp;#8212; it&amp;#8217;s definitely not going to be an HTML5 clone of TweetDeck! (Turns out they&amp;#8217;re working on one of those already.)&lt;/p&gt;
&lt;p&gt;Instead, it will take inspiration from the multi-column approach, but hopefully improve the user experience on a number of levels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;#8217;ll be 100% Free Software / Open Source&amp;#8230; and one hopes, peer produced.&lt;/li&gt;
&lt;li&gt;JavaScript on the server, JavaScript on the client, with liberal doses of &amp;#8220;HTML5&amp;#8243; (the platform your platform could be), whatever that means to you.&lt;/li&gt;
&lt;li&gt;No Adobe AIR, and thus, no vicious memory and CPU abuse! Seriously: &lt;del title=&quot;Firefox? What was I thinking when I wrote this?&quot;&gt;Firefox&lt;/del&gt; TweetDeck is wasting more CPU time sitting &amp;#8220;idle&amp;#8221; than Chromium and node.js are using to run Denby. Oh, and node.js is 12MB resident.&lt;/li&gt;
&lt;li&gt;It can work a bit like a desktop app&amp;#8230; use the &amp;#8220;web page as application&amp;#8221; tool your browser provides. Firefox has Prism, Chromium has&amp;#8230; a menu item. &lt;img width=&quot;16&quot; height=&quot;16&quot; src=&quot;http://bethesignal.org/wp-content/plugins/tango-smilies/tango/face-wink.png&quot; alt=&quot;;-)&quot; class=&quot;wp-smiley&quot; /&gt;  Denby will support things like desktop notifications, audio bleeps, drag-n-drop (for media uploads), inline display of media, etc.&lt;/li&gt;
&lt;li&gt;Run local or hosted. Once I&amp;#8217;m happy with the user experience, I&amp;#8217;ll start thinking about cool things the server could do while you&amp;#8217;re not connected to it! For now, it only maintains the connection to Twitter while a client is connected.&lt;/li&gt;
&lt;li&gt;I want to build delicious multiple account support, without complicating the single account experience. It&amp;#8217;ll merge streams, detect the context you&amp;#8217;re acting upon (click reply and you&amp;#8217;ll be replying from the appropriate account), etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Please comment if you have any thoughts or suggestions&amp;#8230; crimes committed by other Twitter clients, ideas for lovely web/desktop integration, and so on. Thanks! &lt;img width=&quot;16&quot; height=&quot;16&quot; src=&quot;http://bethesignal.org/wp-content/plugins/tango-smilies/tango/face-smile.png&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;Denby&quot; href=&quot;http://www.hellodenby.com/&quot;&gt;HELLO DENBY&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;* * *&lt;/p&gt;
&lt;p&gt;Note that I&amp;#8217;ve already had questions about StatusNet and identi.ca support. Thus far, they don&amp;#8217;t have user streams, which was one of the main reasons behind building Denby. That said, it is entirely possible for the Denby server to poll the REST API (given that it already talks to Twitter&amp;#8217;s) and send the results down the WebSockets tube&amp;#8230; so, we&amp;#8217;ll see.&lt;/p&gt;
&lt;p&gt;Hmm. Perhaps this is the best way to build a user streams API for StatusNet anyway? The web app could send JSON messages to node.js, which could relay them to the intended users&amp;#8230; via multiple protocols! Long-running HTTP, WebSockets, whatever. If anyone is inspired to do this, StatusNet could have a bi-directional WebSockets API before Twitter does!&lt;/p&gt;
&lt;p&gt;* * *&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I made another quick video, showing a few improvements (including update bleeps &amp;#8212; no chicken noises as yet), Denby in Firefox&amp;#8217;s Prism environment, and sharing some thoughts about the web as a development platform. Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bethesignal.org/wp-content/uploads/2010/08/denby-02-prototype.ogv&quot;&gt;&lt;img class=&quot;aligncenter size-large wp-image-1771&quot; title=&quot;Denby Prototype Video 2 (Ogg/Theora)&quot; src=&quot;http://bethesignal.org/wp-content/uploads/2010/08/denby-02-prototype-640x330.png&quot; alt=&quot;&quot; width=&quot;640&quot; height=&quot;330&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Jeff Waugh</name>
			<uri>http://bethesignal.org</uri>
		</author>
		<source>
			<title type="html">Be the signal</title>
			<subtitle type="html">where we're going, we don't need roads...</subtitle>
			<link rel="self" href="http://bethesignal.org/feed/"/>
			<id>http://bethesignal.org/feed/</id>
			<updated>2010-09-03T02:19:14+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Auckland Food</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/auckland_food.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/auckland_food.html</id>
		<updated>2010-08-15T07:42:38+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;For cheap tasty food, BBQ King on Wyndham Street West is hard to beat. Today I went there with family and based on past experience, we ordered only two dishes for four people, &quot;BBQ pork and crispy pork stirred noodle&quot; for $13.50 and &quot;seafood fried rice&quot; for $12. After eating the free soup and then dividing the first dish among four of us, we were pretty much satisfied, so boxed the second dish and brought it home. Crazy!
&lt;p&gt;Tragically, my favourite Chinese restaurant in the city --- Sunshine --- closed several months ago. I can understand when a bad restaurant goes under, but not a good one; the imperfections of a market economy! But I have heard rumours that a new Chinese restaurant has taken its place. This needs investigation.
&lt;p&gt;Daikoku Teppanyaki on Quay St is now open for lunch seven days a week. The $13.50 lunch special is still great value.
&lt;p&gt;Around Newmarket: Happy Valley, the Chinese cafe, has closed down. That's sad, since they'd been serving pretty good food since the early 90s.
&lt;p&gt;The Organic Pizza Co.'s $10 lunch specials are pretty good. Their pizzas are about as good as Archie's, but you get a free drink and the place is far less crowded.
&lt;p&gt;Selera, Night Spice, Crazy Noodle and Dee Jai are frequent targets of visits from the Mozilla office, as is the food court under the Rialto carpark. The actual Rialto food court next to the cinema seems to be declining --- two outlets have closed recently --- but they still have the only Subway in the area. We'd go to Hansan more but we're too lazy to walk there except for special occasions.
&lt;p&gt;Pearl Garden still the best yum cha in Newmarket, followed by Sun World and Sunnytown. There's a new place whose name escapes me over near Davis Crescent; not bad, but not great. I need to try it again.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry>
		<title type="html">Standards and Portability in TLPI</title>
		<link href="http://blog.man7.org/2010/08/standards-and-portability-in-tlpi.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-1450576955384992574</id>
		<updated>2010-08-15T07:17:37+00:00</updated>
		<content type="html">As Linux becomes more and more prevalent, many programmers are targeting just one system: Linux. For these programmers, &lt;a href=&quot;http://www.man7.org/tlpi/&quot;&gt;The Linux Programming Interface&lt;/a&gt; is ideal.&lt;br /&gt;&lt;br /&gt;However, all the world is not Linux, and many of the most interesting UNIX applications need to be truly portable across systems: Linux, the BSDs, Solaris, HP-UX, AIX, and so on. For these applications, following portable programming practices and adhering to formal standards such as POSIX and the Single UNIX Specification are important.&lt;br /&gt;&lt;br /&gt;Although I've focused on Linux in the book, I've also given close attention to formal and implementation standards, and clearly distinguished details that are Linux-specific from the features that are common across most or all UNIX implementations. This means that TLPI will be useful to programmers working on &lt;span&gt;any&lt;/span&gt; UNIX system (but it won't provide you with too many of the nonstandard and system-specific details of those other systems). That's why we subtitled the book &lt;span&gt;A Linux and UNIX System Programming Handbook&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;A few statistics illustrate TLPI's emphasis on standards and portability. Of the just over half a million words in the book, here are a few word counts:&lt;br /&gt;&lt;br /&gt;POSIX, 714&lt;br /&gt;SUSv3/SUSv4, 730&lt;br /&gt;standard(s)/nonstandard/standardized, 685&lt;br /&gt;portable/nonportable/portability/portably, 231&lt;br /&gt;UNIX, 1039&lt;br /&gt;BSD, 254&lt;br /&gt;System V (excluding discussion of System V IPC), 108&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-1450576955384992574?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Firefox Sync</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/firefox_sync.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/firefox_sync.html</id>
		<updated>2010-08-15T05:32:12+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;I just tried using Firefox Sync to synchronize data between my main Firefox profile and my newly-installed home computer's Firefox profile. It was easy to set up and worked perfectly --- and it was fast too! I have to confess my expectations were not high for a feature that just got turned on for beta 4 :-). Well done everyone! This is definitely going to make my life a little easier.&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry>
		<title type="html">unittest, part 3</title>
		<link href="http://code.mumak.net/2010/08/unittest-part-3.html"/>
		<id>tag:blogger.com,1999:blog-5733547231775030285.post-1242385780460889239</id>
		<updated>2010-08-14T15:34:41+00:00</updated>
		<content type="html">So far, we've talked about &lt;code&gt;TestSuite&lt;/code&gt;s, &lt;code&gt;TestCase&lt;/code&gt;s and &lt;code&gt;TestResult&lt;/code&gt;s. We've seen how these objects interact with each other &amp;nbsp;and how they can generally be thought about as having more than one interface. &lt;code&gt;TestResult&lt;/code&gt; has an interface for the &lt;code&gt;TestCase&lt;/code&gt; and an interface used for querying the results, &lt;code&gt;TestCase&lt;/code&gt; has an interface for test runners and an interface for test authors, and so forth.&lt;br /&gt;&lt;br /&gt;Now we need to give some time to the bits that glue everything together: the test runner and the test loader.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;code&gt;TestRunner&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You will not find a class in unittest.py called &lt;code&gt;TestRunner&lt;/code&gt;. A test runner is simply something that takes user input about a test run – what tests to run, what manner to run them in, how to display the results – and does it.&lt;br /&gt;&lt;br /&gt;Essentially, it does something like this:&lt;pre&gt;  test = TestLoader().loadTests(user_specified_test_string)&lt;br /&gt;  result = makeTestResult(options_specified_by_user)&lt;br /&gt;  result.startTestRun()&lt;br /&gt;  try:&lt;br /&gt;    test.run(result)&lt;br /&gt;  finally:&lt;br /&gt;    result.stopTestRun()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And that's it.&lt;br /&gt;&lt;br /&gt;You see that the test runner is responsible for instantiating the test loader and the test result. It's perhaps excusable for a test runner to be tightly bound to particular implementations of test loader and test result. Certainly, before &lt;code&gt;TestResult&lt;/code&gt; grew &lt;code&gt;startTestRun&lt;/code&gt; and &lt;code&gt;stopTestRun&lt;/code&gt; it was inevitable: since the test runner was responsible for summarizing the results of a test run, overall responsibility for displaying the results was split between the runner and the result.&lt;br /&gt;&lt;br /&gt;Nowadays, the tight coupling can be limited. If your test runner has an option to display stack traces as it gets them, then that's pretty much going to force you to use a particular result. However, you can still write your code internally such that someone could pass in a different result that still works, even though it doesn't do exactly what the user asked for.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;code&gt;TestLoader&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;From the point of view of interfaces and compatibility, this is a pretty boring class, and that's a good thing. The test loader's job is to find tests based on some user input and construct a single &lt;code&gt;ITest&lt;/code&gt; object for them.&lt;br /&gt;&lt;br /&gt;When it does more than this, one runs the risk of having the behaviour of a test suite depend too much on the runner itself. The ideal is to have the test suite run in any runner: trial, nose, unittest2, py.test, whatever.&lt;br /&gt;&lt;br /&gt;Some &lt;code&gt;TestLoader&lt;/code&gt;s provide hooks so that users with complicated test suites can customize the way their tests are loaded. Whenever the Trial &lt;code&gt;TestLoader&lt;/code&gt; sees a &lt;code&gt;test_suite()&lt;/code&gt; function in a module, it lets that function take charge of the loading.&lt;br /&gt;&lt;br /&gt;The standard library in 2.7 has a new hook, inspired by an innovation in bzrlib, but slightly different. &lt;code&gt;load_tests(loader, standard_tests, pattern)&lt;/code&gt; is given the loader used by the test runner, the tests that the loader would have loaded, and if appropriate, a glob used for matching test module files. The advantage of this hook is that it reduces the danger of customizations made to the loader, since the test suite has access to the same loader. It also makes custom loading easier by giving the standard tests as a starting point. bzrlib uses this to run the same set of tests against many implementations.&lt;br /&gt;&lt;br /&gt;I &lt;i&gt;think &lt;/i&gt;that's all I have to say about these two, which means that's pretty much all I have to say about unittest's API for test frameworks. Still one more post to go though: interfaces for test authors.&lt;br /&gt;&lt;br /&gt;Let me know if I've missed anything, if anything here surprises you or contradicts something I said in the past or if things are unclear. The comments on the previous two posts have really helped!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5733547231775030285-1242385780460889239?l=code.mumak.net&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>jml</name>
			<email>noreply@blogger.com</email>
			<uri>http://code.mumak.net/</uri>
		</author>
		<source>
			<title type="html">Mere Code</title>
			<subtitle type="html">Hacking, Software Collaboration, Testing and Diverse Other Topics of General Interest to the Practicing Programmer</subtitle>
			<link rel="self" href="http://code.mumak.net/rss.xml"/>
			<id>tag:blogger.com,1999:blog-5733547231775030285</id>
			<updated>2010-09-02T13:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">mozRequestAnimationFrame</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/mozrequestanima.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/mozrequestanima.html</id>
		<updated>2010-08-14T10:13:53+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;In Firefox 4 we've added support for two major standards for declarative animation --- SVG Animation (aka SMIL) and CSS Transitions. However, I also feel strongly that the Web needs better support for JS-based animations. No matter how rich we make declarative animations, sometimes you'll still need to write JS code to compute (&quot;sample&quot;) the state of each animation frame. Furthermore there's a lot of JS animation code already on the Web, and it would be nice to improve its performance and smoothness without requiring authors to rewrite it into a declarative form.
&lt;p&gt;Obviously you can implement animations in JS today using setTimeout/setInterval to trigger animation samples and calling Date.now() to track animation progress. There are two big problems with that approach. The biggest problem is that there is no &quot;right&quot; timeout value to use. Ideally, the animation would be sampled exactly as often as the browser is able to repaint the screen, up to some maximum limit (e.g., the screen refresh rate). But the author has no idea what that frame rate is going to be, and of course it can even vary from moment to moment. Under some conditions (e.g. the animation is not visible), the animation should stop sampling altogether. A secondary problem is that when there are multiple animations running --- some in JS, and some declarative animations --- it's hard to keep them synchronized. For example you'd like a script to be able to start a CSS transition and a JS animation with the same duration and have agreement on the exact moment in time when the animations are deemed to have started. At each paint you'd also like to have them sampled using the same &quot;current time&quot;.
&lt;p&gt;These problems have come up from time to time on mailing lists, for example on &lt;a href=&quot;http://www.mail-archive.com/public-webapps@w3.org/msg05877.html&quot;&gt;public-webapps&lt;/a&gt;. A while ago I worked out &lt;a href=&quot;http://weblogs.mozillazine.org/roc/archives/2009/07/progress.html&quot;&gt;an API proposal&lt;/a&gt; and Boris Zbarsky just implemented it; it's in Firefox 4 beta 4. Here's the API, it's really simple:
&lt;ul&gt;
&lt;li&gt;&lt;tt&gt;window.mozRequestAnimationFrame()&lt;/tt&gt;: Signals that an animation is in progress, requests that the browser schedule a repaint of the window for the next animation frame, and requests that a &lt;tt&gt;MozBeforePaint&lt;/tt&gt; event be fired before that repaint.
&lt;li&gt;The browser fires a &lt;tt&gt;MozBeforePaint&lt;/tt&gt; event at the window before we repaint it. The &lt;tt&gt;timeStamp&lt;/tt&gt; attribute of the event is the time, in milliseconds since the epoch, deemed to be the &quot;current time&quot; for all animations for this repaint.
&lt;li&gt;There is also a &lt;tt&gt;window.mozAnimationStartTime&lt;/tt&gt; attribute, also in milliseconds since the epoch. When a script starts an animation, this attribute indicates when that animation should be deemed to have started.  This is different from Date.now() because we ensure that between any two repaints of the window, the value of window.mozAnimationStartTime is constant, so all animations started during the same frame get the same start time. CSS transitions and SMIL animations triggered during that interval also use that start time. (In beta 4 there's a bug that means we don't quite achieve that, but we'll fix it.)
&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;That's it! Here's &lt;a href=&quot;http://people.mozilla.com/~roc/mozRequestAnimationFrame-demo.html&quot;&gt;an example&lt;/a&gt;; the relevant sample code:
&lt;pre&gt;var start = window.mozAnimationStartTime;
function step(event) {
  var progress = event.timeStamp - start;
  d.style.left = Math.min(progress/10, 200) + &quot;px&quot;;
  if (progress  2000) {
    window.mozRequestAnimationFrame();
  } else {
    window.removeEventListener(&quot;MozBeforePaint&quot;, step, false);
  }
}
window.addEventListener(&quot;MozBeforePaint&quot;, step, false);
window.mozRequestAnimationFrame();&lt;/pre&gt;
&lt;p&gt;It's not very different from the usual setTimeout/Date.now() implementation. We use window.mozAnimationStartTime and event.timeStamp instead of calling Date.now(). We call window.mozRequestAnimationFrame() instead of setTimeout(). Converting existing code should usually be easy. You could even abstract over the differences with a wrapper that calls setTimeout/Date.now if mozAnimationStartTime/mozRequestAnimationFrame are not available. Of course, we want this to become a standard so eventually such wrappers will not be necessary!
&lt;p&gt;Using this API has a few advantages, even in this simple case. The author doesn't have to guess a timeout value. If the browser is overloaded the animation will degrade gracefully instead of uselessly running the step script more times than necessary. If the page is in a hidden tab, we'll be able to throttle the frame rate down to a very low value (e.g. one frame per second), saving CPU load. (This feature has not landed yet though.)
&lt;p&gt;One important feature of this API is that mozRequestAnimationFrame is &quot;one-shot&quot;. You have to call it again from your event handler if your animation is still running. An alternative would be to have a &quot;beginAnimation&quot;/&quot;endAnimation&quot; API, but that seems more complex and slightly more likely to leave animations running forever (wasting CPU time) in error situations.
&lt;p&gt;This API is compatible with browser implementations that offload some declarative animations to a dedicated &quot;compositing thread&quot; so they can be animated even while the main thread is blocked. (Safari does this, and we're building something like it too.) If the main thread is blocked on a single event for a long time (e.g. if a MozBeforePaint handler takes a very long time to run) it's obviously impossible for JS animations to stay in sync with animations offloaded to a compositing thread. But if the main thread stays responsive, so MozBeforePaint events can be dispatched and serviced between each compositing step performed by the compositing thread, I think we can keep JS animations in sync with the offloaded animations. We need to carefully choose the animation timestamps returned by mozAnimationStartTime and event.timeStamp and dispatch MozBeforePaint events &quot;early enough&quot;.
&lt;p&gt;&lt;tt&gt;mozRequestAnimationFrame&lt;/tt&gt; is an experimental API. We do not guarantee to support it forever, and I wouldn't evangelize sites to depend on it. We've implemented it so that people can experiment with it and we can collect feedback. At the same time we'll propose it as a standard (minus the moz prefix, obviously), and author feedback on our implementation will help us make a better standard.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">President's Report August 2010</title>
		<link href="http://www.linux.org.au/news/linux-australia-news/presidents-report-august-2010"/>
		<id>http://www.linux.org.au/937 at http://www.linux.org.au</id>
		<updated>2010-08-14T07:34:14+00:00</updated>
		<content type="html">&lt;p&gt;It’s been just over a month since my last presidents report, which according to past presidents means that I’m doing well. Apparently the first report is the easy one, maintaining momentum is the key!&lt;/p&gt;
&lt;h3&gt;LCA2011&lt;/h3&gt;
&lt;p&gt;We are now well and truly into the run up to linux,conf.au 2011. The LCA Call for Papers, Miniconfs, Posters and Tutorials (that is quite a mouthful!), has been open since the 13th of July. The CFP closes at midnight tonight, so it’s still not too late to get a proposal in.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.linux.org.au/news/linux-australia-news/presidents-report-august-2010&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Linux Australia</name>
			<uri>http://www.linux.org.au</uri>
		</author>
		<source>
			<title type="html">Linux Australia</title>
			<link rel="self" href="http://www.linux.org.au/rss.xml"/>
			<id>http://www.linux.org.au/rss.xml</id>
			<updated>2010-09-03T02:13:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Google vs Oracle</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/google_vs_oracl.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/google_vs_oracl.html</id>
		<updated>2010-08-13T22:46:39+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;I don't know much about the Google/Oracle dispute so I'll limit my remarks, but here they are:
&lt;p&gt;I don't understand why Oracle is doing this. They may wish Google was using Java ME, but I would have thought having more developers using Java was good for Java overall. Probably there are important background discussions we are not privy to.
&lt;p&gt;Dalvik is open source, but it's very much a Google project that Google happens to release under an open source license, rather than a community project. So I think of this as two big companies scrapping rather than Oracle launching an attack on the open source community.
&lt;p&gt;However, this extends a disturbing trend of large mainstream companies using software patents to attack competitors, especially prominent in the mobile space. Observers of software patents, including myself --- and even Bill Gates in his infamous 1991 memo --- have always seen that volumes of easily obtained software patents on straightforward ideas could be a powerful weapon to crush competition; software development is so inventive that most programmers daily write code that someone patented somewhere. Fortunately, for a long time, other than &quot;patent trolls&quot;, serious industry players declined to use that power. But now that grace has departed and I fear patent armageddon is upon us. In the end the open source community is likely to be particularly hard-hit, since it's easy to detect infringement, and open source communities have limited funds for defense. People have argued that open source communities are less of a target because they have less money to extract, but the most dangerous suits are about shutting down competition, not about extracting licensing fees --- like this Google/Oracle suit, apparently.
&lt;p&gt;Overall I'm extremely gloomy about the situation. A world where each programmer has to be shepherded by a dozen lawyers through patent minefields is not one I will enjoy working in, and it will be disastrous for the progress of software. I call on employees of Oracle, Apple and other litigating companies to protest to their management in the strongest possible terms, including resignation. Google and Mozilla are hiring :-).
&lt;p&gt;It's little consolation that some enlightened countries --- like New Zealand, apparently --- will hopefully remain free of software patents. A software company --- or an open source project --- that can't do business or get distribution in the USA or many other countries (including most of Europe, given the 'method patent' regime) is somewhat crippled.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry>
		<title type="html">Chapter 4 available online</title>
		<link href="http://blog.man7.org/2010/08/chapter-4-available-online.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-8950272493229610166</id>
		<updated>2010-08-11T23:15:03+00:00</updated>
		<content type="html">No Starch Press now has a sample chapter from my book available online: &lt;span&gt;Chapter 4: File I/O: The Universal I/O Model&lt;/span&gt;. You can find the chapter &lt;a href=&quot;http://www.nostarch.com/linuxprogramming.htm&quot;&gt;here&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-8950272493229610166?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Dell Fail</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/dell_fail.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/dell_fail.html</id>
		<updated>2010-08-11T09:19:33+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;Separate from the laptop discussion, I just bought a new home machine. I just wanted a generic PC, high-ish end for longevity and in case I (or someone else) wants to hack on it. This machine will definitely run Linux, but I'm going to keep the Windows 7 install in a partition in case we ever need it. So I'm going through Dell's Windows 7 first-run experience, and it's not great.
&lt;p&gt;The initial Microsoft setup screens are pretty good, although it all seems to take longer than it should. Then you get to a Dell screen asking you to opt into some Dell stuff, which for some unfathomable reason is rendered in the Windows 95/2000 &quot;Classic&quot; theme, gray box scrollbars and all. It's ugly, jarring and totally mystifying.
&lt;p&gt;Soon you're offered the chance to burn system recovery DVDs. I don't understand why they ask users to obtain blank DVDs and burn them instead of just shipping those DVDs; shipping them with every system would add a few dollars to the system cost, but probably save more in support calls and give a much better user experience.
&lt;p&gt;The application that burns the recovery DVDs has one crazy screen that shows you some information and asks you to click &quot;Next&quot;. But there is no &quot;Next&quot; button visible. But there's a vertical scrollbar! Scrolling down, you can get to a &quot;Next&quot; button. Of course, the window is not resizable, and it contains lots of blank vertical space so there is no possible reason why the &quot;Next&quot; button should not be visible.
&lt;p&gt;Microsoft's initial Windows network setup asks you whether you're on a &quot;Home&quot;, &quot;Work&quot; or &quot;Public&quot; network, which I bet is often hard for people to answer. I wonder how Windows uses that information. But right after choosing that option, the (preinstalled) McAfee antivirus software pops up an ugly little box in which you have to choose those same options again.
&lt;p&gt;Of course I still have to analyze the system for the paid-to-be-there crapware (including McAfee) and uninstall most of it.
&lt;p&gt;I'm genuinely curious about what motivates system vendors like Dell to sully what could have been a better experience. It's not apathy, since they obviously paid people to develop many of these &quot;extras&quot;. Whatever it is, it's no surprise platform vendors want to sell directly to the customer instead of working through partners like Dell.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Kodak Portra</title>
		<link href="http://www.flamingspork.com/blog/2010/08/11/kodak-portra/"/>
		<id>http://www.flamingspork.com/blog/?p=2108</id>
		<updated>2010-08-10T20:57:45+00:00</updated>
		<content type="html">&lt;p&gt;I started to realise that I was liking the look of photos shot on Kodak Portra. I wanted to shoot some of it to see what I thought. I bought a pack of 5 rolls of 160VC from &lt;a href=&quot;http://www.glazerscamera.com/&quot;&gt;Glazer&amp;#8217;s&lt;/a&gt; just before heading to &lt;a href=&quot;http://www.oscon.com&quot;&gt;OSCON&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here are some of the shots I got:&lt;br /&gt;
&lt;a title=&quot;Selena by macplusg3, on Flickr&quot; href=&quot;http://www.flickr.com/photos/stewartsmith/4837009472/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4084/4837009472_714f53db4f.jpg&quot; alt=&quot;Selena&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;Dustin by macplusg3, on Flickr&quot; href=&quot;http://www.flickr.com/photos/stewartsmith/4837009458/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4150/4837009458_d8f8b82ed0.jpg&quot; alt=&quot;Dustin&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;Mark by macplusg3, on Flickr&quot; href=&quot;http://www.flickr.com/photos/stewartsmith/4844135766/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4086/4844135766_8675414db2.jpg&quot; alt=&quot;Mark&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;Helen by macplusg3, on Flickr&quot; href=&quot;http://www.flickr.com/photos/stewartsmith/4850177146/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4119/4850177146_d04895e15e.jpg&quot; alt=&quot;Helen&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;Untitled by macplusg3, on Flickr&quot; href=&quot;http://www.flickr.com/photos/stewartsmith/4864238229/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4098/4864238229_58ee32a6ea.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
(granted I didn&amp;#8217;t press the shutter release, but I like it)&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;HiPurr Camp! by macplusg3, on Flickr&quot; href=&quot;http://www.flickr.com/photos/stewartsmith/4840610193/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4111/4840610193_7123457850.jpg&quot; alt=&quot;HiPurr Camp!&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
Is the one that sealed it for me. This was the &amp;#8220;ahh&amp;#8230; I can use this for all sorts&amp;#8221; shot.&lt;/p&gt;
&lt;p&gt;All of these were developed and scanned at the Walgreens down the street. I could probably do better scans of some&amp;#8230; but this was awfully less work for me.&lt;/p&gt;
&lt;p&gt;I am really liking the skin tones from it. The vividness of colours also comes through while retaining excellent skin tones (certainly not always the case). I may even end up shooting some at Burning Man (did buy more rolls yesterday!)&lt;/p&gt;
&lt;p&gt;There is (of course) more being added to my &lt;a href=&quot;http://www.flickr.com/photos/stewartsmith/sets/72157624599600066/&quot;&gt;Kodak Portra 160VC set on flickr&lt;/a&gt;.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/08/11/kodak-portra/&amp;t=Kodak+Portra&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=Kodak+Portra+-+http://b2l.me/agd5fg&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/08/11/kodak-portra/&amp;title=Kodak+Portra&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/08/11/kodak-portra/&amp;title=Kodak+Portra&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/08/11/kodak-portra/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Choosing Sides</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/08/choosing_sides_1.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/08/choosing_sides_1.html</id>
		<updated>2010-08-10T11:36:08+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;My Macbook Pro is 3.5 years old and still works pretty well, apart from the disk being full, frequently spontaneous wake-ups in my backpack which heat everything up alarmingly, and flaky wireless connection. Plus the turn of Moore's Law means I can now get a quad-core laptop and a lot more RAM and disk. So it's finally time to upgrade. I'm opting for non-Apple hardware; Apple have gone beyond the pale pursuing patent warfare and platform lockdown, and I can no longer live with buying their products. A Lenovo W510 is probably in my future.
&lt;p&gt;Now I'm faced with a somewhat difficult decision: Linux vs Windows. There are good reasons on both sides. The best thing about developing in Windows is that it's good to have developers on the platform that most of our users use. VMWare record and replay is also very attractive. The Mozilla build and tools situation on Windows used to be terrible --- very slow builds, horrible profiling --- but it's gotten a lot better thanks to pymake and xperf. But Microsoft, while not as dangerous as Apple at the moment, still aspires to be, and I won't embrace them gladly.
&lt;p&gt;Linux, of course, has the virtue of freedom, and a chance to regain Miguel's love. On Linux you get valgrind. But not many of our users use Linux, and VMWare's record and replay doesn't really work there. I'd have to use X11, which I loathe with passion.
&lt;p&gt;Tough call. Another thing to consider is that whichever way I go, I'll end up using the other in a VM quite often. Dual-booting is also an option.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry>
		<title type="html">We Melted Gold(ish)!</title>
		<link href="http://vik-olliver.blogspot.com/2010/08/we-melted-goldish.html"/>
		<id>tag:blogger.com,1999:blog-6757261993703476074.post-269087538192787279</id>
		<updated>2010-08-09T05:24:00+00:00</updated>
		<content type="html">&lt;a href=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TF-SQINgZOI/AAAAAAAABEQ/__8IDljNM-w/s1600/20100808_002.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TF-SQINgZOI/AAAAAAAABEQ/__8IDljNM-w/s200/20100808_002.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5503278075449730274&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Kate had a bunch of copper wire clippings spare, so I tried melting them in the furnace. Using a sawn-off steel CO2 container with its bottom flattened as a crucible and the sawn-off bit poked into the top to reduce oxidation. I also added a bit of glass to float any slag.&lt;br /&gt;&lt;br /&gt;As you can see, I managed to get it up to a fair old temperature, glowing yellow hot and some. The copper melted inside the container with an amazing amount of outgassing.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_w0pYYVNavoE/TF-TEZjwryI/AAAAAAAABEY/T328Z84Sifw/s1600/20100808_003.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_w0pYYVNavoE/TF-TEZjwryI/AAAAAAAABEY/T328Z84Sifw/s200/20100808_003.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5503278973459672866&quot; /&gt;&lt;/a&gt;So the picture makes it look like gold, but it was copper. Not that there's much of a difference in melting point. The big surprise is that it came out as bead-like globules. Hopefully a clean re-melt will fix it.&lt;br /&gt;&lt;br /&gt;This melt was done with homemade charcoal, which produced an excellent heat. Next I'll be using smaller chunks, and mould a sloping trench to direct the charcoal into the path of the incoming air blast. Out into the rain we go to mould the clay while it's damp...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/6757261993703476074-269087538192787279?l=vik-olliver.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Vik Olliver</name>
			<email>noreply@blogger.com</email>
			<uri>http://vik-olliver.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Artifex</title>
			<link rel="self" href="http://vik-olliver.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-6757261993703476074</id>
			<updated>2010-08-23T03:12:12+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">&quot;The Trouble with Multicore&quot; by David Patterson in July 2010 IEEE Spectrum</title>
		<link href="http://paulmck.livejournal.com/20849.html"/>
		<id>http://paulmck.livejournal.com/20849.html</id>
		<updated>2010-08-09T00:06:04+00:00</updated>
		<content type="html">Patterson's article is quite interesting, and brings out some good points.  I was of course happy that he mentioned Sequent, my old employer, despite the fact that the mention was on a list of &amp;ldquo;long-gone parallel hopefuls.&amp;rdquo;  An unflattering mention, perhaps, but undeniably true.&lt;br /&gt;&lt;br /&gt;However, I was especially happy to see the following sentence:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;So rather than working on general programming languages or computer designs, we  are instead trying to create a few important applications that can take advantage of many-core microprocessors.&lt;/blockquote&gt;&lt;br /&gt;Focusing on parallelization in the large is a great improvement over the traditional academic focus on parallelization in the small.  All else being equal, the larger the software artifact, the larger the units of work, and the smaller the fraction of computational resources spent on communication.  The less the communication, the better the performance, and usually the greater the scalability.  So Patterson's pronouncement is a welcome change, especially given his group's earlier focus on &lt;a href=&quot;http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.html&quot;&gt;small-scale computational kernels&lt;/a&gt;.  I hope that the fact that Patterson has now joined the growing group of academics focused on parallelization in the large will encourage other academics to do the same.&lt;br /&gt;&lt;br /&gt;Of course, I could raise a number of quibbles with the paper:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;	The analogy of parallel processing with journalism (last full paragraph of the last column on page 30) misses the mark.  Patterson notwithstanding, the fact is that most writers do in fact use parallel processing: there will be a reporter, a copy-editor, and so on.  It is in fact quite common for authors of large works to acknowledge those who did research, fact-checking, and other tasks.  Of course, to Patterson's point, there must be a limit to the degree of parallelism that can be achieved.  But the success of things like &lt;a href=&quot;http://www.wikipedia.org&quot;&gt;Wikipedia&lt;/a&gt; indicates that the potential for parallelism is much larger than has been commonly thought.&lt;br /&gt;&lt;li&gt;	Patterson argues that desktop applications rarely have sufficient intellectual horsepower behind them to make good use of multicore systems (last sentence of page 31).  History has shown, however, that it is not raw intellectual horsepower that is required, but rather &lt;a href=&quot;http://paulmck.livejournal.com/15977.html&quot;&gt; experience and proper training&lt;/a&gt;.&lt;br /&gt;&lt;li&gt;	Patterson also seems to believe that parallel programmers should start small and work their way up to larger systems (last sentence of first paragraph of page 32).  Sequent's experience indicates otherwise: by starting off with 30-CPU systems from the get-go, Sequent avoided the typical parallel-programming experience, which is to rewrite the program from scratch multiple times, first to accommodate parallelism at all, next to scale beyond two CPUs, next to get beyond the 16-32-CPU level, and so on.  Diving into the deep end of the parallel-programming pool can be quite a bit cheaper and easier than gingerly paddling out from the shallows.&lt;br /&gt;&lt;li&gt;	Patterson complains that large systems (128 cores) are not being manufactured, and that software emulation is painfully slow (middle of third column on page 32).  Such large systems have in fact been available for quite some time from a number of manufacturers.  Of course, they are still quite expensive, which can certainly render them unavailable to most developers.  However, there is little need for universities to fabricate them, unless of course they are conducting research on the hardware itself.&lt;br /&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Finally, the box on page 31 entitled &amp;ldquo;Easy as Pi&amp;rdquo; deserves special attention.  In this box, Patterson contrasts a sequential method for calculating the quantity &amp;pi;/4, namely summing the infinite series for the arctangent of one radian, with a parallel Monte Carlo method, which generates pairs of random floating-point numbers between -1 and +1, then counts the fraction that lie within the unit circle.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://kernel.org/pub/linux/kernel/people/paulmck/Answers/pi.html&quot;&gt;How good are these algorithms&lt;/a&gt;?</content>
		<author>
			<name>Paul McKenney</name>
			<uri>http://paulmck.livejournal.com/</uri>
		</author>
		<source>
			<title type="html">Paul E. McKenney's Journal</title>
			<subtitle type="html">Paul E. McKenney's Journal - LiveJournal.com</subtitle>
			<link rel="self" href="http://paulmck.livejournal.com/data/rss"/>
			<id>http://paulmck.livejournal.com/data/rss</id>
			<updated>2010-08-09T00:12:53+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Kicking Javascript to the Footer in Drupal 8?</title>
		<link href="http://feedproxy.google.com/~r/skwashd/~3/gQhqzTCb3G0/kicking-javascript-footer-drupal-8"/>
		<id>http://davehall.com.au/140 at http://davehall.com.au</id>
		<updated>2010-08-08T09:14:28+00:00</updated>
		<content type="html">&lt;p&gt;As a platform, Drupal has excellent javascript support.  Drupal 7 will ship with jQuery 1.4.2 and jQuery UI 1.8, which will make it even easier to build rich user interactions with Drupal.&lt;/p&gt;
&lt;p&gt;Drupal supports aggregating javascript files to reduce the number of network connections a browser must open to load a page.  It is common practice for Drupal themes to put the &amp;lt;script&amp;gt; tag in the &amp;lt;head&amp;gt; section of the page.  Unfortunately this has a performance impact, as all browsers will stop processing the page and start loading and processing the referenced javascript file.  For this reason, both &lt;a href=&quot;http://developer.yahoo.com/performance/rules.html#js_bottom&quot; rel=&quot;nofollow&quot;&gt;Yahoo!&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-au/scriptjunkie/ff743754.aspx&quot; rel=&quot;nofollow&quot;&gt;Microsoft&lt;/a&gt; recommend placing all javascript just before the closing &amp;lt;/body&amp;gt; tag in a page so it is loaded and processed after the content.&lt;/p&gt;
&lt;p&gt;Making this change in Drupal is a pretty straight forward process.  It is already possible to do this in Drupal 6 or 7. &lt;a href=&quot;http://davehall.com.au&quot; rel=&quot;nofollow&quot;&gt;My site&lt;/a&gt; places the &lt;code&gt;$scripts&lt;/code&gt; variable at the end of the page.  Unfortunately some modules rely on javascript being in the &amp;lt;head&amp;gt;er, and some even place &amp;lt;script&amp;gt;s in the body to allow inline function calls.&lt;/p&gt;
&lt;p&gt;It is too late to implement this change in Drupal 7, but the transition can occur now.  Documentation can be updated to inform theme developers that they can place the $script variable at the end of the page, just above where the $closure variable is placed. The module development guide can be updated to strongly recommend against relying on the value 'header' for the 'scope' element of the &lt;code&gt;$options&lt;/code&gt; array for &lt;code&gt;drupal_add_js()&lt;/code&gt; meaning that the javascript will end up in the header and to not place any inline  javascript code in themes or modules.  In Drupal 8 the scope element for the &lt;code&gt;$options&lt;/code&gt; array can be dropped.&lt;/p&gt;
&lt;p&gt;If theme and module developers adopt this best practice approach for their Drupal 7 releases there should be minimal transition work for this change in the version 8 release cycle.&lt;/p&gt;
&lt;p&gt;I am hoping to discuss this at the &lt;a href=&quot;http://cph2010.drupal.org/news/core-developer-summit&quot; rel=&quot;nofollow&quot;&gt;Core Developers Summit&lt;/a&gt; at &lt;a href=&quot;http://cph2010.drupal.org/&quot; rel=&quot;nofollow&quot;&gt;DrupalCon Copenhagen&lt;/a&gt; later this month.&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/skwashd/~4/gQhqzTCb3G0&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Dave Hall</name>
			<uri>http://davehall.com.au/blog/dave</uri>
		</author>
		<source>
			<title type="html">Dave's blog</title>
			<link rel="self" href="http://feeds.feedburner.com/skwashd"/>
			<id>http://feeds.feedburner.com/skwashd</id>
			<updated>2010-08-30T11:18:58+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">WebSRT and HTML5 media accessibility</title>
		<link href="http://blog.gingertech.net/2010/08/07/websrt-and-html5-media-accessibility/"/>
		<id>http://blog.gingertech.net/?p=1040</id>
		<updated>2010-08-07T01:09:13+00:00</updated>
		<content type="html">&lt;p&gt;On 23rd July, Ian Hickson, the HTML5 editor, &lt;a href=&quot;http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-July/027386.html&quot;&gt;posted an update to the WHATWG mailing list&lt;/a&gt; introducing the first draft of a platform for accessibility for the HTML5 &amp;lt;video&gt; element. The platform provides for captions, subtitles, audio descriptions, chapter markers and similar time-synchronized text both in-band (inside the video resource) and out-of-band (as external text files). Right now, the proposal only regards &amp;lt;video&gt;, but I personally believe the same can be applied to the &amp;lt;audio&gt; element, except we have to be a bit more flexible with the rendering approach. Anyway&amp;#8230;&lt;/p&gt;
&lt;p&gt;What I want to do here is to summarize what was introduced, together with the improvements that I and some &lt;a href=&quot;http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-July/027283.html&quot;&gt;others&lt;/a&gt; have proposed in &lt;a href=&quot;http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-July/027339.html&quot;&gt;follow-up&lt;/a&gt; &lt;a href=&quot;http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-August/027648.html&quot;&gt;emails&lt;/a&gt;, and list some of the media accessibility needs that we are not yet dealing with.&lt;/p&gt;
&lt;p&gt;For those wanting to only selectively read some sections, here is a clickable table of contents of this rather long blog post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.gingertech.net/feed/#WebSRT&quot;&gt;THE WebSRT TIMED TEXT FORMAT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.gingertech.net/feed/#track&quot;&gt;ASSOCIATING EXTERNAL TIMED TEXT RESOURCES WITH A VIDEO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.gingertech.net/feed/#API&quot;&gt;EXPOSING A LIST OF TimedTracks TO JAVASCRIPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.gingertech.net/feed/#rendering&quot;&gt;RENDERING TimedTracks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.gingertech.net/feed/#summary&quot;&gt;SUMMARY AND FURTHER NEEDS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;WebSRT&quot;&gt;THE &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/websrt.html&quot;&gt;WebSRT&lt;/a&gt; TIMED TEXT FORMAT&lt;/h3&gt;
&lt;p&gt;The first and to everyone probably most surprising part is the new file format that is being proposed to contain out-of-band time-synchronized text for video. A new format was necessary after the &lt;a href=&quot;http://wiki.whatwg.org/wiki/Timed_track_formats&quot;&gt;analysis of all relevant existing formats&lt;/a&gt; determined that they were either insufficient or hard to use in a Web environment.&lt;/p&gt;
&lt;p&gt;The new format is called &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#websrt-0&quot;&gt;WebSRT&lt;/a&gt; and is an extension to the existing &lt;a href=&quot;http://en.wikipedia.org/wiki/SubRip&quot;&gt;SRT SubRip&lt;/a&gt; format. It is actually also the part of the new specification that I am personally most uncomfortable with. Not that WebSRT is a bad format. It&amp;#8217;s just not sufficient yet to provide all the functionality that a good time-synchronized text format for Web media should. Let&amp;#8217;s look at some examples.&lt;/p&gt;
&lt;p&gt;WebSRT is composed of a sequence of &lt;em&gt;timed text cues&lt;/em&gt; (that&amp;#8217;s what we&amp;#8217;ve decided to call the pieces of text that are active during a certain time interval). Because of its ancestry of SRT, the text cues can optionally be numbered through. The content of the text cues is currently allowed to contain three different types of text: plain text, minimal markup, and anything at all (also called &amp;#8220;metadata&amp;#8221;).&lt;/p&gt;
&lt;p&gt;In its most simple form, a WebSRT file is just an ordinary old SRT file with optional cue numbers and only plain text in cues:&lt;/p&gt;
&lt;pre&gt;
  1
  00:00:15.00 --&gt; 00:00:17.95
  At the left we can see...

  2
  00:00:18.16 --&gt; 00:00:20.08
  At the right we can see the...

  3
  00:00:20.11 --&gt; 00:00:21.96
  ...the head-snarlers
&lt;/pre&gt;
&lt;p&gt;A bit of a more complex example results if we introduce minimal markup:&lt;/p&gt;
&lt;pre&gt;
  00:00:15.00 --&gt; 00:00:17.95 A:start
  Auf der &amp;lt;i&gt;linken&amp;lt;/i&gt; Seite sehen wir...

  00:00:18.16 --&gt; 00:00:20.08 A:end
  Auf der &amp;lt;b&gt;rechten&amp;lt;/b&gt; Seite sehen wir die....

  00:00:20.11 --&gt; 00:00:21.96 A:end
  &amp;lt;1&gt;...die Enthaupter.

  00:00:21.99 --&gt; 00:00:24.36 A:start
  &amp;lt;2&gt;Alles ist sicher.
  Vollkommen &amp;lt;b&gt;sicher&amp;lt;/b&gt;.
&lt;/pre&gt;
&lt;p&gt;and add to this a CSS to provide for some colors and special formatting:&lt;/p&gt;
&lt;pre&gt;
    ::cue { background: rgba(0,0,0,0.5); }
    ::cue-part(1) { color: red; }
    ::cue-part(2, b) { font-style: normal; text-decoration: underline; }
&lt;/pre&gt;
&lt;p&gt;Minimal markup accepts &amp;lt;i&gt;, &amp;lt;b&gt;, &amp;lt;ruby&gt; and a timestamp in &amp;lt;&gt;, providing for italics, bold, and ruby markup as well as karaoke timestamps. Any further styling can be done using the CSS pseudo-elements ::cue and ::cue-part, which accept the features &amp;#8216;color&amp;#8217;, &amp;#8216;text-shadow&amp;#8217;, &amp;#8216;text-outline&amp;#8217;, &amp;#8216;background&amp;#8217;, &amp;#8216;outline&amp;#8217;, and &amp;#8216;font&amp;#8217;.&lt;/p&gt;
&lt;p&gt;Note that positioning requires some special notes at the end of the start/end timestamps which can provide for vertical text, line position, text position, size and alignment cue setting. Here is an example with vertically rendered Chinese text, right-aligned at 98% of the video frame:&lt;/p&gt;
&lt;pre&gt;
  00:00:15.00 --&gt; 00:00:17.95 A:start D:vertical L:98%
  在左边我们可以看到...

  00:00:18.16 --&gt; 00:00:20.08 A:start D:vertical L:98%
  在右边我们可以看到...

  00:00:20.11 --&gt; 00:00:21.96 A:start D:vertical L:98%
  ...捕蝇草械.

  00:00:21.99 --&gt; 00:00:24.36 A:start D:vertical L:98%
  一切都安全.
  非常地安全.
&lt;/pre&gt;
&lt;p&gt;Finally, WebSRT files can be authored with abstract metadata inside cues, which practically means anything at all. Here&amp;#8217;s an example with HTML content:&lt;/p&gt;
&lt;pre&gt;
  00:00:15.00 --&gt; 00:00:17.95 A:start
  &amp;lt;img src=&quot;pic1.png&quot;/&gt;Auf der &amp;lt;i&gt;linken&amp;lt;/i&gt; Seite sehen wir...

  00:00:18.16 --&gt; 00:00:20.08 A:end
  &amp;lt;img src=&quot;pic2.png&quot;/&gt;Auf der &amp;lt;b&gt;rechten&amp;lt;/b&gt; Seite sehen wir die....

  00:00:20.11 --&gt; 00:00:21.96 A:end
  &amp;lt;img src=&quot;pic3.png&quot;/&gt;...die &amp;lt;a href=&quot;http://members.chello.nl/j.kassenaar/
elephantsdream/subtitles.html&quot;&gt;Enthaupter&amp;lt;/a&gt;.

  00:00:21.99 --&gt; 00:00:24.36 A:start
  &amp;lt;img src=&quot;pic4.png&quot;/&gt;Alles ist &amp;lt;mark&gt;sicher&amp;lt;/mark&gt;.&amp;lt;br/&gt;Vollkommen &amp;lt;b&gt;sicher&amp;lt;/b&gt;.
&lt;/pre&gt;
&lt;p&gt;Here is another example with JSON in the cues:&lt;/p&gt;
&lt;pre&gt;
  00:00:00.00 --&gt; 00:00:44.00
  {
    slide: intro.png,
    title: &quot;Really Achieving Your Childhood Dreams&quot; by Randy Pausch,
             Carnegie Mellon University, Sept 18, 2007
  }

  00:00:44.00 --&gt; 00:01:18.00
  {
    slide: elephant.png,
    title: The elephant in the room...
  }

  00:01:18.00 --&gt; 00:02:05.00
  {
    slide: denial.png,
    title: I'm not in denial...
  }
&lt;/pre&gt;
&lt;p&gt;What I like about WebSRT:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;it allows for all sorts of different content in the text cues &amp;#8211; plain text is useful for &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements#Texted_Audio_Description&quot;&gt;texted audio descriptions&lt;/a&gt;, minimal markup is useful for subtitles, captions, karaoke and &lt;a href=&quot;http://wiki.whatwg.org/wiki/Use_cases_for_API-level_access_to_timed_tracks#Chapter_Markers&quot;&gt;chapters&lt;/a&gt;, and &amp;#8220;metadata&amp;#8221; is useful for, well, any data.&lt;/li&gt;
&lt;li&gt;it can be easily encapsulated into media resources and thus turned into in-band tracks by regarding each cue as a data packet with time stamps.&lt;/li&gt;
&lt;li&gt;it is not verbose&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Where I think WebSRT still needs improvements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;break with the SRT history: since WebSRT and SRT files are so different, WebSRT should get its own MIME type, e.g. text/websrt, and file extensions, e.g. .wsrt; this will free WebSRT for changes that wouldn&amp;#8217;t be possible by trying to keep conformant with SRT&lt;/li&gt;
&lt;li&gt;introduce some header fields into WebSRT: the format needs
&lt;ul&gt;
&lt;li&gt;file-wide name-value metadata, such as author, date, copyright, etc&lt;/li&gt;
&lt;li&gt;language specification for the file as a hint for font selection and speech synthesis&lt;/li&gt;
&lt;li&gt;a possibility for style sheet association in the file header&lt;/li&gt;
&lt;li&gt;a means to identify which parser is required for the cues&lt;/li&gt;
&lt;li&gt;a magic identifier and a version string of the format&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;allow innerHTML as an additional format in the cues with the CSS pseudo-elements applying to all HTML elements&lt;/li&gt;
&lt;li&gt;allow full use of CSS instead of just the restricted features and also use it for positioning instead of the hard to understand positioning hints&lt;/li&gt;
&lt;li&gt;on the minimum markup, provide a neutral structuring element such as &amp;lt;span @id @class @lang&gt; to associate specific styles or specific languages with a subpart of the cue&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note that I undertook some experiments with an alternative format that is XML-based and called &lt;a href=&quot;https://wiki.mozilla.org/Accessibility/Video_Text_Format&quot;&gt;WMML&lt;/a&gt; to gain most of these insights and determine the advantages/disadvantages of a xml-based format. The foremost advantage is that there is no automatism with newlines and displayed new lines, which can make the source text file more readable. The foremost disadvantages are verbosity and that there needs to be a simple encoding step to remove all encapsulating header-type content from around the timed text cues before encoding it into a binary media resource.&lt;/p&gt;
&lt;h3 id=&quot;track&quot;&gt;&lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/complete/video.html#the-track-element&quot;&gt;ASSOCIATING EXTERNAL TIMED TEXT RESOURCES WITH A VIDEO&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Now that we have a timed text format, we need to be able to associate it with a media resource in HTML5. This is what the &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/complete/video.html#the-track-element&quot;&gt;&lt;i&gt;&amp;lt;track&gt; element&lt;/i&gt;&lt;/a&gt; was introduced for. It associates the timestamps in the timed text cues with the timeline of the video resource. The browser is then expected to render these during the time interval in which the cues are expected to be active.&lt;/p&gt;
&lt;p&gt;Here is an example for how to associate multiple subtitle tracks with a video:&lt;/p&gt;
&lt;pre&gt;
  &amp;lt;video src=&quot;california.webm&quot; controls&gt;
    &amp;lt;track label=&quot;English&quot; kind=&quot;subtitles&quot; src=&quot;calif_eng.wsrt&quot; srclang=&quot;en&quot;&gt;
    &amp;lt;track label=&quot;German&quot; kind=&quot;subtitles&quot; src=&quot;calif_de.wsrt&quot; srclang=&quot;de&quot;&gt;
    &amp;lt;track label=&quot;Chinese&quot; kind=&quot;subtitles&quot; src=&quot;calif_zh.wsrt&quot; srclang=&quot;zh&quot;&gt;
  &amp;lt;/video&gt;
&lt;/pre&gt;
&lt;p&gt;In this case, the UA is expected to provide a text menu with a subtitle entry with these three tracks and their label as part of the video controls. Thus, the user can interactively activate one of the tracks.&lt;/p&gt;
&lt;p&gt;Here is an example for multiple tracks of different kinds:&lt;/p&gt;
&lt;pre&gt;
  &amp;lt;video src=&quot;california.webm&quot; controls&gt;
    &amp;lt;track label=&quot;English&quot; kind=&quot;subtitles&quot; src=&quot;calif_eng.wsrt&quot; srclang=&quot;en&quot;&gt;
    &amp;lt;track label=&quot;German&quot; kind=&quot;captions&quot; src=&quot;calif_de.wsrt&quot; srclang=&quot;de&quot;&gt;
    &amp;lt;track label=&quot;French&quot; kind=&quot;chapter&quot; src=&quot;calif_fr.wsrt&quot; srclang=&quot;fr&quot;&gt;
    &amp;lt;track label=&quot;English&quot; kind=&quot;metadata&quot; src=&quot;calif_meta.wsrt&quot; srclang=&quot;en&quot;&gt;
    &amp;lt;track label=&quot;Chinese&quot; kind=&quot;descriptions&quot; src=&quot;calif_zh.wsrt&quot; srclang=&quot;zh&quot;&gt;
  &amp;lt;/video&gt;
&lt;/pre&gt;
&lt;p&gt;In this case, the UA is expected to provide a text menu with a list of track kinds with one entry each for subtitles, captions and descriptions through the controls. The chapter tracks are expected to provide some sort of visual subdivision on the timeline and the metadata tracks are not exposed visually, but are only available through the JavaScript API.&lt;/p&gt;
&lt;p&gt;Here are several ideas for improving the &amp;lt;track&gt; specification:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;lt;track&gt; is currently only defined for WebSRT resources &amp;#8211; it should be made generic and then browsers can compete on the formats for which they provide support. WebSRT could be the baseline format. A @type attribute could be added to hint at the MIME type of the provided resource.&lt;/li&gt;
&lt;li&gt;&amp;lt;track&gt; needs a means for authors to mark certain tracks as active, others as inactive. This can be overruled by browser settings e.g. on @srclang and by user interaction.&lt;/li&gt;
&lt;li&gt;karaoke and lyrics are supported by WebSRT, but aren&amp;#8217;t in the HTML5 spec as track kinds &amp;#8211; they should be added and made visible like subtitles or captions.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;API&quot;&gt;&lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/complete/video.html#timed-tracks&quot;&gt;EXPOSING A LIST OF TimedTracks TO JAVASCRIPT&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This is where we take an extra step and move to a uniform handling of both in-band and out-of-band timed text tracks. Futher, a third type of timed text track has been introduced in the form of a MutableTimedTrack &amp;#8211; i.e. one that can be authored and added through JavaScript alone.&lt;/p&gt;
&lt;p&gt;The JavaScript API that is exposed for any of these track type is identical. A media element now has this additional IDL interface:&lt;/p&gt;
&lt;pre&gt;
interface HTMLMediaElement : HTMLElement {
...
  readonly attribute TimedTrack[] tracks;
  MutableTimedTrack addTrack(in DOMString label, in DOMString kind,
                                 in DOMString language);
};
&lt;/pre&gt;
&lt;p&gt;A media element thus manages a list of TimedTracks and provides for adding TimedTracks through addTrack().&lt;/p&gt;
&lt;p&gt;The timed tracks are associated with a media resource in the following order:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The &amp;lt;track&gt; element children of the media element, in tree order.&lt;/li&gt;
&lt;li&gt;Tracks created through the addTrack() method, in the order they were added, oldest first.&lt;/li&gt;
&lt;li&gt;In-band timed text tracks, in the order defined by the media resource&amp;#8217;s format specification.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The IDL interface of a TimedTrack is as follows:&lt;/p&gt;
&lt;pre&gt;
interface TimedTrack {
  readonly attribute DOMString kind;
  readonly attribute DOMString label;
  readonly attribute DOMString language;
  readonly attribute unsigned short readyState;
           attribute unsigned short mode;
  readonly attribute TimedTrackCueList cues;
  readonly attribute TimedTrackCueList activeCues;
  readonly attribute Function onload;
  readonly attribute Function onerror;
  readonly attribute Function oncuechange;
};
&lt;/pre&gt;
&lt;p&gt;The first three capture the value of the @kind, @label and @srclang attributes and are provided by the addTrack() function for MutableTimedTracks and exposed from metadata in the binary resource for in-band tracks.&lt;/p&gt;
&lt;p&gt;The readyState captures whether the data is available and is one of &amp;#8220;not loaded&amp;#8221;, &amp;#8220;loading&amp;#8221;, &amp;#8220;loaded&amp;#8221;, &amp;#8220;failed to load&amp;#8221;. Data is only availalbe in &amp;#8220;loaded&amp;#8221; state.&lt;/p&gt;
&lt;p&gt;The mode attribute captures whether the data is activate to be displayed and is one of &amp;#8220;disabled&amp;#8221;, &amp;#8220;hidden&amp;#8221; and &amp;#8220;showing&amp;#8221;. In the &amp;#8220;disabled&amp;#8221; mode, the UA doesn&amp;#8217;t have to download the resource, allowing for some bandwidth management.&lt;/p&gt;
&lt;p&gt;The cues and activeCues attributes provide the list of parsed cues for the given track and the subpart thereof that is currently active.&lt;/p&gt;
&lt;p&gt;The onload, onerror, and oncuechange functions are event handlers for the load, error and cuechange events of the TimedTrack.&lt;/p&gt;
&lt;p&gt;Individual cues expose the following IDL interface:&lt;/p&gt;
&lt;pre&gt;
interface TimedTrackCue {
  readonly attribute TimedTrack track;
  readonly attribute DOMString id;
  readonly attribute float startTime;
  readonly attribute float endTime;
  DOMString getCueAsSource();
  DocumentFragment getCueAsHTML();
  readonly attribute boolean pauseOnExit;
  readonly attribute Function onenter;
  readonly attribute Function onexit;
  readonly attribute DOMString direction;
  readonly attribute boolean snapToLines;
  readonly attribute long linePosition;
  readonly attribute long textPosition;
  readonly attribute long size;
  readonly attribute DOMString alignment;
  readonly attribute DOMString voice;
};
&lt;/pre&gt;
&lt;p&gt;The @track attribute links the cue to its TimedTrack.&lt;/p&gt;
&lt;p&gt;The @id, @startTime, @endTime attributes expose a cue identifier and its associated time interval. The getCueAsSource() and getCueAsHTML() functions provide either an unparsed cue text content or a text content parsed into a HTML DOM subtree.&lt;/p&gt;
&lt;p&gt;The @pauseOnExit attribute can be set to true/false and indicates whether at the end of the cue&amp;#8217;s time interval the media playback should be paused and wait for user interaction to continue. This is particularly important as we are trying to support &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements#Extended_audio_description&quot;&gt;extended audio descriptions&lt;/a&gt; and &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements#Extended_Time-aligned_Captions.2FSubtitles&quot;&gt;extended captions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The onenter and onexit functions are event handlers for the enter and exit events of the TimedTrackCue.&lt;/p&gt;
&lt;p&gt;The @direction, @snapToLines, @linePosition, @textPosition, @size, @alignment and @voice attributes expose WebSRT positioning and semantic markup of the cue.&lt;/p&gt;
&lt;p&gt;My only concerns with this part of the specification are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The WebSRT-related attributes in the TimedTrackCue are in conflict with CSS attributes and really should not be introduced into HTML5, since they are WebSRT-specific. They will not exist in other types of in-band or out-of-band timed text tracks. As there is a mapping to do already, why not rely on already available CSS features.&lt;/li&gt;
&lt;li&gt;There is no API to expose header-specific metadata from timed text tracks into JavaScript. This such as the copyright holder, the creation date and the usage rights of a timed text track would be useful to have available. I would propose to add a list of name-value metadata elements to the TimedTrack API.&lt;/li&gt;
&lt;li&gt;In addition, I would propose to allow media fragment hyperlinks in a &amp;lt;video&gt; @src attribute to point to the @id of a TimedTextCue, thus defining that the playback position should be moved to the time offset of that TimedTextCue. This is a useful feature and builds on bringing named media fragment URIs and TimedTracks together.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;rendering&quot;&gt;&lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/complete/rendering.html#timed-tracks-0&quot;&gt;RENDERING TimedTracks&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The third part of the timed track framework deals with how to render the timed text cues in a Web page.  The rendering rules are explained in the &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/complete/rendering.html#timed-tracks-0&quot;&gt;HTML5 rendering section&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve extracted the following rough steps from the rendering algorithm:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;All timed tracks of a media resource that are in &amp;#8220;showing&amp;#8221; mode are rendered together to avoid overlapping text from multiple tracks.&lt;/li&gt;
&lt;li&gt;The timed tracks cues that are to be rendered are collected from the active timed tracks and ordered by the timed track order first and by their start time second. Where there are identical start times, the cues are ordered by their end time, earliest first, or by their creation order if all else is identical.&lt;/li&gt;
&lt;li&gt; Each cue gets its own CSS box.&lt;/li&gt;
&lt;li&gt;The text in the CSS boxes is positioned and formated by interpreting the positioning and formatting instructions of WebSRT that are provided on the cues.&lt;/li&gt;
&lt;li&gt;An anonymous inline CSS box is created into which all the cue CSS boxes are wrapped.&lt;/li&gt;
&lt;li&gt;The wrapping CSS box gets the dimensions of the video viewport. The cue CSS boxes are positioned so they don&amp;#8217;t overlap. The text inside the cue CSS boxes inside the wrapping CSS box is wrapped at the edges if necessary.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To overcome security concerns with this kind of direct rendering of a CSS box into the Web page where text comes potentially from a different and malicious Web site, it is required to have the cues come from the same origin as the Web page.&lt;/p&gt;
&lt;p&gt;To allow application of a restricted set of CSS properties to the timed text cues, a set of pseudo-selectors was introduced. This is necessary since all the CSS boxes are anonymous and cannot be addressed from the Web page. The introduced pseudo-selectors are ::cue to address a complete cue CSS box, and ::cue-part to address a subpart of a cue CSS box based on a set of identifiers provided by WebSRT.&lt;/p&gt;
&lt;p&gt;I have several issues with this approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I believe that it is not a good idea to only restrict rendering to same-origin files. This will disallow the use of external captioning services (or even just a separate caption server of the same company) to link to for providing the captions to a video. &lt;a href=&quot;http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2010-July/027283.html&quot;&gt;Henri Sivonen proposed&lt;/a&gt; a means to overcome this by parsing every cue basically as its own HTML document (well, the body of a document) and then rendering these in iFrame-manner into the Web page. This would overcome the same-origin restriction. It would also allow to do away with the new ::cue CSS selectors, thus simplifying the solution.&lt;/li&gt;
&lt;li&gt;In general I am concerned about how tightly the rendering is tied to WebSRT. Step 4 should not be in the HTML5 specification, but only apply to WebSRT. Every external format should provide its own mapping to CSS. As it is specified right now, other formats, such as e.g. 3GPP in MPEG-4 or Kate in Ogg, are required to map their format and positioning information to WebSRT instructions. These are then converted again using the WebSRT to CSS mapping rules. That seems overkill.&lt;/li&gt;
&lt;li&gt;I also find step 6 very limiting, since only the video viewport is regarded as a potential rendering area &amp;#8211; this is also the reason why there is no rendering for audio elements. Instead, it would make a lot more sense if a CSS box was provided by the HTML page &amp;#8211; the default being the video viewport, but it could be changed to any area on screen. This would allow to render music lyrics under or above an audio element, or render captions below a video element to avoid any overlap at all.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;summary&quot;&gt;SUMMARY AND FURTHER NEEDS&lt;/h3&gt;
&lt;p&gt;We&amp;#8217;ve made huge progress on accessibility features for HTML5 media elements with the specifications that Ian proposed. I think we can move it to a flexible and feature-rich framework as the improvements that Henri, myself and others have proposed are included.&lt;/p&gt;
&lt;p&gt;This will meet most of the &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements&quot;&gt;requirements that the W3C HTML Accessibility Task Force has collected for media elements&lt;/a&gt; where the requirements relate to accessibility functionality provided through alternative &lt;strong&gt;text&lt;/strong&gt; resources.&lt;/p&gt;
&lt;p&gt;However, we are not solving any of the accessibility needs that relate to alternative audio-visual tracks and resources. In particular there is no solution yet to deal with multi-track audio or video files that have e.g. sign language or audio description tracks in them &amp;#8211; not to speak of the issues that can be introduced through dealing with separate media resources from several sites that need to be played back in sync. This latter may be a challenge for future versions of HTML5, since needs for such synchoronisation of multiple resources have to be explored further.&lt;/p&gt;
&lt;p&gt;In a first instance, we will require an API to expose in-band tracks, a means to control their activation interactively in a UI, and a description of how they should be rendered. E.g. should a sign language track be rendered as pciture-in-picture? &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements#Clear_audio&quot;&gt;Clear audio&lt;/a&gt; and &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements#Sign_Translation&quot;&gt;Sign translation&lt;/a&gt; are the two key accessibility needs that can be satisfied with such a multi-track solution.&lt;/p&gt;
&lt;p&gt;Finally, another key requirement area for media accessibility is described in a section called &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements#Content_Navigation_by_Content_Structure&quot;&gt;&amp;#8220;Content Navigation by Content Structure&amp;#8221;&lt;/a&gt;. This describes the need for vision-impaired users to be able to navigate through a media resource based on semantic markup &amp;#8211; think of it as similar to a navigation through a book by book chapters and paragraphs. The introduction of chapter markers goes some way towards satisfying this need, but chapter markers tend to address only big time intervals in a video and don&amp;#8217;t let you navigate on a different level to subchapters and paragraphs. It is possible to provide that navigation through providing several chapter tracks at different resolution levels, but then they are not linked together and navigation cannot easily swap between resolution levels.&lt;/p&gt;
&lt;p&gt;An alternative might be to include different resolution levels inside a single chapter track and somehow control the UI to manage them as different resolutions. This would only require an additional attribute on text cues and could be useful to other types of text tracks, too. For example, captions could be navigated based on scenes, shots, coversations, or individual captions. Some experimentation will be required here before we can introduce a sensible extension to the given media accessibility framework.&lt;/p&gt;</content>
		<author>
			<name>Silvia Pfeiffer</name>
			<uri>http://blog.gingertech.net</uri>
		</author>
		<source>
			<title type="html">ginger's thoughts</title>
			<subtitle type="html">Silvia's blog</subtitle>
			<link rel="self" href="http://blog.gingertech.net/feed/"/>
			<id>http://blog.gingertech.net/feed/</id>
			<updated>2010-08-07T11:20:01+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Flash for iPhone 4? Yes! Frash 0.02!</title>
		<link href="http://digitaldj.net/2010/08/06/flash-for-iphone-4-yes-frash-0-02/"/>
		<id>http://digitaldj.net/?p=2911</id>
		<updated>2010-08-06T09:58:22+00:00</updated>
		<content type="html">&lt;p&gt;&lt;strong&gt;DISCLAIMER: The compiled binaries are based upon ALPHA code by COMEX. Code from the github repository can change minutely creating a significantly more stable version of code. DO NOT expect this compiled code to work on every Flash object or even be the slightest bit stable.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So, jailbreak for the iPhone 4 is out and &lt;a href=&quot;http://twitter.com/comex&quot; target=&quot;_blank&quot;&gt;comex&lt;/a&gt; seems to have gotten around to updating the &lt;a href=&quot;http://github.com/comex/frash&quot; target=&quot;_blank&quot;&gt;Frash source on github&lt;/a&gt; for both iOS and iPhone 4. Hooray! I set out on a mission to compile it from scratch. Here I&amp;#8217;ll detail the steps you need to produce to compile it and provide a pre-compiled binary for the less so technical (or lazy). This is essentially Frash version 0.02, but as noted before, the github repository can be updated at any time fixing any number of bugs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;As far as I know this will only work with armv7 devices, so: iPhone 3GS, iPod Touch 3G, iPad, iPhone 4. iOS4 / iPad 3.2.x only.&lt;br /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HOW TO INSTALL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1. Download the precompiled binary (&lt;a href=&quot;http://digitaldj.net/iphone/Frash-0.02.deb&quot; target=&quot;_blank&quot;&gt;Frash-0.02.deb&lt;/a&gt; | &lt;a href=&quot;http://www.multiupload.com/GEAI8QB7NX&quot; target=&quot;_blank&quot;&gt;Mirror&lt;/a&gt;) and SFTP it to /tmp on your iPhone/iPad&lt;/p&gt;
&lt;p&gt;2. SSH into your phone as root and type:&lt;/p&gt;
&lt;pre&gt;dpkg -i /tmp/Frash-0.02.deb
&lt;/pre&gt;
&lt;p&gt;NOTE: If you had Frash 0.01 installed on your iPad, remove it first  (look for it in Cydia packages). Also, I haven&amp;#8217;t yet tested this on iPad, but it certainly works on iPhone 4 with iOS 4.0.1.&lt;/p&gt;
&lt;p&gt;3. Reboot your device if you want, but you shouldn&amp;#8217;t need to.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HOW TO COMPILE (ADVANCED USERS&lt;/strong&gt;)&lt;/p&gt;
&lt;p&gt;What you&amp;#8217;ll need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mac OS X 10.6 with iPhone SDK 4.0 / 4.0.1 installed&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/git-osx-installer/&quot; target=&quot;_blank&quot;&gt;git-osx-installer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;libflashplayer.so from an Android 2.2 (Froyo) image (no link for this due to copyright issues, Google it!)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/debmaker-osx/&quot; target=&quot;_blank&quot;&gt;DebMaker-osx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/networkpx/downloads/detail?name=ldid&quot; target=&quot;_blank&quot;&gt;ldid&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Instructions:&lt;/p&gt;
&lt;p&gt;1. Install git (just run the downloaded DMG) and check out the Frash git repository&lt;/p&gt;
&lt;pre&gt;git clone http://github.com/comex/frash.git&lt;/pre&gt;
&lt;div id=&quot;_mcePaste&quot;&gt;
&lt;pre&gt;libflashplayer.so&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;2. Patch Xcode to compile Dynamic Libraries for iOS&lt;/p&gt;
&lt;p&gt;a) Edit /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneOSProductTypes.xcspec&lt;/p&gt;
&lt;p&gt;Make sure to place the code snippet in between the first &amp;#8220;(&amp;#8221; and the first &amp;#8220;{&amp;#8220;&lt;/p&gt;
&lt;pre&gt;    // Dynamic library
    {   Type = ProductType;
        Identifier = com.apple.product-type.library.dynamic;
        Class = PBXDynamicLibraryProductType;
        Name = &quot;Dynamic Library&quot;;
        Description = &quot;Dynamic library&quot;;
        IconNamePrefix = &quot;TargetPlugin&quot;;
        DefaultTargetName = &quot;Dynamic Library&quot;;
        DefaultBuildProperties = {
            FULL_PRODUCT_NAME = &quot;$(EXECUTABLE_NAME)&quot;;
            MACH_O_TYPE = &quot;mh_dylib&quot;;
            REZ_EXECUTABLE = YES;
            EXECUTABLE_SUFFIX = &quot;.$(EXECUTABLE_EXTENSION)&quot;;
            EXECUTABLE_EXTENSION = &quot;dylib&quot;;
            PUBLIC_HEADERS_FOLDER_PATH = &quot;/usr/local/include&quot;;
            PRIVATE_HEADERS_FOLDER_PATH = &quot;/usr/local/include&quot;;
            INSTALL_PATH = &quot;/usr/local/lib&quot;;
            DYLIB_INSTALL_NAME_BASE = &quot;$(INSTALL_PATH)&quot;;
            LD_DYLIB_INSTALL_NAME = &quot;$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)&quot;;
            DYLIB_COMPATIBILITY_VERSION = &quot;1&quot;;
            DYLIB_CURRENT_VERSION = &quot;1&quot;;
            FRAMEWORK_FLAG_PREFIX = &quot;-framework&quot;;
            LIBRARY_FLAG_PREFIX = &quot;-l&quot;;
            LIBRARY_FLAG_NOSPACE = YES;
            STRIP_STYLE = &quot;debugging&quot;;
            GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
            CODE_SIGNING_ALLOWED = YES;
        };
        PackageTypes = (
            com.apple.package-type.mach-o-dylib   // default
        );
    },&lt;/pre&gt;
&lt;p&gt;b) Edit /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneOSPackageTypes.xcspec&lt;/p&gt;
&lt;p&gt;Make sure to place the code snippet in between the first &amp;#8220;(&amp;#8221; and the first &amp;#8220;{&amp;#8220;&lt;/p&gt;
&lt;pre&gt;    // Mach-O dynamic library
    {   Type = PackageType;
        Identifier = com.apple.package-type.mach-o-dylib;
        Name = &quot;Mach-O Dynamic Library&quot;;
        Description = &quot;Mach-O dynamic library&quot;;
        DefaultBuildSettings = {
            EXECUTABLE_PREFIX = &quot;&quot;;
            EXECUTABLE_SUFFIX = &quot;&quot;;
            EXECUTABLE_NAME = &quot;$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)&quot;;
            EXECUTABLE_PATH = &quot;$(EXECUTABLE_NAME)&quot;;
        };
        ProductReference = {
            FileType = compiled.mach-o.dylib;
            Name = &quot;$(EXECUTABLE_NAME)&quot;;
            IsLaunchable = NO;
        };
    },&lt;/pre&gt;
&lt;p&gt;3. Patch Xcode to allow compilation without a Provisioning Profile (i.e. not paying the $99 Apple tax)&lt;/p&gt;
&lt;p&gt;a) Open /Developer/Platforms/iPhoneOS.platform/Info.plist and replace all instances of &amp;#8220;XCiPhoneOSCodeSignContext&amp;#8221; with &amp;#8220;XCCodeSignContext&amp;#8221;&lt;/p&gt;
&lt;p&gt;4. Create a self-signed certificate to sign the Frash libraries&lt;/p&gt;
&lt;p&gt;a) Open Applications &amp;gt; Utilities &amp;gt; Keychain Access&lt;/p&gt;
&lt;p&gt;b) From the Keychain Access menu choose Certificate Assistant &amp;gt; Create a Certificate&lt;/p&gt;
&lt;p&gt;c) Choose any name, set the type to &amp;#8220;Self Signed Root&amp;#8221;, check &amp;#8220;Let me override defaults&amp;#8221; and make it a &amp;#8220;Code Signing&amp;#8221; certificate&lt;/p&gt;
&lt;p&gt;d) Specify any serial number, set the expiry to whatever you want. Longer than a year if you want to compile other iPhone libraries in the future.&lt;/p&gt;
&lt;p&gt;e) Fill in any details for Certificate Information&lt;/p&gt;
&lt;p&gt;f) Skip to the end of the wizard, using the default settings&lt;/p&gt;
&lt;p&gt;5. Install ldid&lt;/p&gt;
&lt;p&gt;a) Copy the ldid file to /usr/bin and make it executable (as root)&lt;/p&gt;
&lt;pre&gt;sudo cp ldid /usr/bin/
sudo chmod +x /usr/bin/ldid
&lt;/pre&gt;
&lt;p&gt;6. Install DebMaker&lt;/p&gt;
&lt;p&gt;a) Extract the DebMaker zip and extract dpkg-dep for later use&lt;/p&gt;
&lt;pre&gt;sudo cp DebMaker.app/Contents/Resources/dpkg-deb /usr/bin/
sudo chmod +x /usr/bin/dpkg-deb
&lt;/pre&gt;
&lt;p&gt;7. Edit the default Xcode configuration for Frash&lt;/p&gt;
&lt;p&gt;a) Open Player2/Player2.xcodeproj in Xcode&lt;/p&gt;
&lt;p&gt;b) Make sure to switch the current configuration to Device 3.2 | Release&lt;/p&gt;
&lt;p&gt;c) Open up &amp;#8220;Get Info&amp;#8221; for the Device 3.2 | Release configuration and  set the &amp;#8220;Code Signing Identity&amp;#8221; to the self-signed certificate made earlier and ensure the project is compiling for iPhone Device 3.2. Ignore warnings about setting to compile for armv6, keep it compiling for armv7.&lt;/p&gt;
&lt;p&gt;d) Save the project and exit Xcode&lt;/p&gt;
&lt;p&gt;8. Time to compile! Comex provides the build steps in the README for iPhone OS 3.2 but it needs to be changed slightly:&lt;/p&gt;
&lt;pre&gt;sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk /var/sdk
sudo export PATH=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:$PATH
sudo cp -a /System/Library/Frameworks/IOSurface.framework/Versions/A/Headers Player2/IOSurface
sudo cp -a /System/Library/Frameworks/IOSurface.framework/Versions/A/Headers food/IOSurface
sudo cp -a /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/Headers food/CoreText
sudo cp -a /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/ food/IOKit
sudo cp -a /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/ Player2/IOKit
sudo cp /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/Entitlements.plist .
sudo make -C rpc
sudo make -C utils
sudo make -C libgcc
sudo make -C food
sudo xcodebuild -alltargets -project Player2/Player2.xcodeproj
&lt;/pre&gt;
&lt;p&gt;9. Now package it up into a deb&lt;/p&gt;
&lt;p&gt;a) Edit DEBIAN/control and add a conflicts line to the end of the file. This will conflict with the Frash 0.01 deb released previously. You should remove that before installing this.&lt;/p&gt;
&lt;pre&gt;Conflicts: net.ozzapoo.frash
&lt;/pre&gt;
&lt;p&gt;b) Place your copy of libflashplayer.so in the frash directory.&lt;/p&gt;
&lt;p&gt;c) Modify fakeinstall to include libflashplayer.so by adding a line before &amp;#8220;chown -R 501 iroot/var/mobile&amp;#8221;&lt;/p&gt;
&lt;pre&gt;cp -a libflashplayer.so iroot/var/mobile/frash/
&lt;/pre&gt;
&lt;p&gt;d) Make fakeinstall executable and run it as root. You should end up with a frash.deb file.&lt;/p&gt;
&lt;pre&gt;chmod +x fakeinstall
sudo ./fakeinstal
mv frash.deb Frash-0.02.deb
&lt;/pre&gt;
&lt;p&gt;10. Hooray! Now follow the novice install section using the deb you just compiled (instead of the precompiled version, duh) to install Frash!&lt;/p&gt;</content>
		<author>
			<name>Grant Pannell</name>
			<uri>http://digitaldj.net</uri>
		</author>
		<source>
			<title type="html">Grant Pannell</title>
			<subtitle type="html">I am Grant. This is my site.</subtitle>
			<link rel="self" href="http://digitaldj.net/feed/"/>
			<id>http://digitaldj.net/feed/</id>
			<updated>2010-08-30T04:13:42+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Boston</title>
		<link href="http://horms.org/pleb_blossom/permalink/2010/2010-08-06T11_54_25.shtml"/>
		<id>http://horms.org/pleb_blossom/permalink/2010/2010-08-06T11_54_25.shtml</id>
		<updated>2010-08-06T02:54:25+00:00</updated>
		<content type="html">&lt;img src=&quot;http://horms.org/pleb_blossom/pics/2_9510.jpg&quot; width=&quot;120&quot; height=&quot;79&quot; alt=&quot;[Billboard somewhere in the Mojhave Desert]&quot; align=&quot;right&quot; /&gt;
				&lt;p&gt;
				I will be in Boston next week to give a presentation on
				Network Bandwidth Control in Virtualized Environments at
				&lt;a href=&quot;http://events.linuxfoundation.org/events/linuxcon&quot;&gt;LinuxCon&lt;/a&gt;
				and attend the related mini-summits. Its been a while
				since I've attended an event in North America, I'm looking forward to it.
				&lt;br clear=&quot;right&quot; /&gt;&lt;/p&gt;</content>
		<author>
			<name>Simon Horman</name>
			<uri>http://horms.org/</uri>
		</author>
		<source>
			<title type="html">Horms</title>
			<subtitle type="html">Themable Horms!</subtitle>
			<link rel="self" href="http://www.vergenet.net/~horms/pleb_blossom/rss.xml"/>
			<id>http://www.vergenet.net/~horms/pleb_blossom/rss.xml</id>
			<updated>2010-08-31T09:12:49+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Off to the printer today!</title>
		<link href="http://blog.man7.org/2010/08/off-to-printer-today.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-4340421499281135373</id>
		<updated>2010-08-05T18:09:00+00:00</updated>
		<content type="html">The files go to the printer today. All 1552 pages...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-4340421499281135373?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Burning Man shower test</title>
		<link href="http://www.flamingspork.com/blog/2010/08/05/burning-man-shower-test/"/>
		<id>http://www.flamingspork.com/blog/2010/08/05/burning-man-shower-test/</id>
		<updated>2010-08-05T00:19:35+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img alt=&quot;image&quot; src=&quot;http://www.flamingspork.com/blog/wp-content/uploads/2010/08/wpid-IMG_20100804_172436.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Yazz has been making an epic over engineered shower for camp.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/08/05/burning-man-shower-test/&amp;t=Burning+Man+shower+test&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=Burning+Man+shower+test+-+http://b2l.me/ae3r6t&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/08/05/burning-man-shower-test/&amp;title=Burning+Man+shower+test&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/08/05/burning-man-shower-test/&amp;title=Burning+Man+shower+test&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/08/05/burning-man-shower-test/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Update on “A Tale Of a Bug”</title>
		<link href="http://www.flamingspork.com/blog/2010/08/05/update-on-a-tale-of-a-bug/"/>
		<id>http://www.flamingspork.com/blog/?p=2101</id>
		<updated>2010-08-04T16:14:34+00:00</updated>
		<content type="html">&lt;p&gt;The bug &lt;a href=&quot;http://www.flamingspork.com/blog/2010/07/22/a-tale-of-a-bug/&quot;&gt;I talked about a little while ago&lt;/a&gt; has now also had the fix I wrote committed to the mysql-trunk 5.5.6-m3 repository.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/08/05/update-on-a-tale-of-a-bug/&amp;t=Update+on+%22A+Tale+Of+a+Bug%22&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=Update+on+%22A+Tale+Of+a+Bug%22+-+http://b2l.me/aey9fg&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/08/05/update-on-a-tale-of-a-bug/&amp;title=Update+on+%22A+Tale+Of+a+Bug%22&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/08/05/update-on-a-tale-of-a-bug/&amp;title=Update+on+%22A+Tale+Of+a+Bug%22&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/08/05/update-on-a-tale-of-a-bug/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">4 Aug 2010</title>
		<link href="http://www.advogato.org/person/dwmw2/diary.html?start=220"/>
		<id>http://www.advogato.org/person/dwmw2/diary.html?start=220</id>
		<updated>2010-08-04T12:46:11+00:00</updated>
		<content type="html">A while ago, I reluctantly took over maintaining the
get_iplayer tool: &lt;a href=&quot;http://www.infradead.org/get_iplayer/&quot;&gt;http://www.infradead.org/get_iplayer/&lt;/a&gt;.

&lt;p&gt; When you search for it by name, my page isn't very high up
on the list of results. Hopefully a few syndicated links to
it from various planets that carry this will help...&lt;/p&gt;</content>
		<author>
			<name>David Woodhouse</name>
			<uri>http://www.advogato.org/person/dwmw2/</uri>
		</author>
		<source>
			<title type="html">Advogato blog for dwmw2</title>
			<subtitle type="html">Advogato blog for dwmw2</subtitle>
			<link rel="self" href="http://www.advogato.org/person/dwmw2/rss.xml"/>
			<id>http://www.advogato.org/person/dwmw2/rss.xml</id>
			<updated>2010-09-03T02:13:01+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">IRC Meet for LUGs</title>
		<link href="http://www.linux.org.au/event/2010/08/31/irc-meet-lugs"/>
		<id>http://www.linux.org.au/933 at http://www.linux.org.au</id>
		<updated>2010-08-04T03:25:15+00:00</updated>
		<content type="html">&lt;div class=&quot;field field-type-datetime field-field-event-date&quot;&gt;
      &lt;div class=&quot;field-label&quot;&gt;Date:&amp;nbsp;&lt;/div&gt;
    &lt;div class=&quot;field-items&quot;&gt;
            &lt;div class=&quot;field-item odd&quot;&gt;
                    &lt;div&gt;Repeats every month   on the last Tuesday  until Tue Dec 28 2010 .&lt;/div&gt;&lt;span class=&quot;date-display-single&quot;&gt;Tuesday, 31 August 2010 - &lt;span class=&quot;date-display-start&quot;&gt;8:00pm&lt;/span&gt;&lt;span class=&quot;date-display-separator&quot;&gt; - &lt;/span&gt;&lt;span class=&quot;date-display-end&quot;&gt;8:30pm&lt;/span&gt;&lt;/span&gt;        &lt;/div&gt;
              &lt;div class=&quot;field-item even&quot;&gt;
                    &lt;span class=&quot;date-display-single&quot;&gt;Tuesday, 28 September 2010 - &lt;span class=&quot;date-display-start&quot;&gt;8:00pm&lt;/span&gt;&lt;span class=&quot;date-display-separator&quot;&gt; - &lt;/span&gt;&lt;span class=&quot;date-display-end&quot;&gt;8:30pm&lt;/span&gt;&lt;/span&gt;        &lt;/div&gt;
              &lt;div class=&quot;field-item odd&quot;&gt;
                    &lt;span class=&quot;date-display-single&quot;&gt;Tuesday, 26 October 2010 - &lt;span class=&quot;date-display-start&quot;&gt;8:00pm&lt;/span&gt;&lt;span class=&quot;date-display-separator&quot;&gt; - &lt;/span&gt;&lt;span class=&quot;date-display-end&quot;&gt;8:30pm&lt;/span&gt;&lt;/span&gt;        &lt;/div&gt;
              &lt;div class=&quot;field-item even&quot;&gt;
                    &lt;span class=&quot;date-display-single&quot;&gt;Tuesday, 30 November 2010 - &lt;span class=&quot;date-display-start&quot;&gt;8:00pm&lt;/span&gt;&lt;span class=&quot;date-display-separator&quot;&gt; - &lt;/span&gt;&lt;span class=&quot;date-display-end&quot;&gt;8:30pm&lt;/span&gt;&lt;/span&gt;        &lt;/div&gt;
        &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;LUGComms IRC Meeting in #linux-aus-lugs on freenode.&lt;/p&gt;
&lt;p&gt;A chance for organisers and members of Linux Groups around Australia to discuss issues, share ideas and lead their teams.&lt;/p&gt;</content>
		<author>
			<name>Linux Australia</name>
			<uri>http://www.linux.org.au</uri>
		</author>
		<source>
			<title type="html">Linux Australia</title>
			<link rel="self" href="http://www.linux.org.au/rss.xml"/>
			<id>http://www.linux.org.au/rss.xml</id>
			<updated>2010-09-03T02:13:23+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Customizing the RPMs from pgrpms.org</title>
		<link href="http://www.chesnok.com/daily/2010/08/03/customizing-the-rpms-from-pgrpms-org/"/>
		<id>http://www.chesnok.com/daily/?p=1862</id>
		<updated>2010-08-04T02:00:23+00:00</updated>
		<content type="html">&lt;p&gt;To pick up &lt;a href=&quot;http://people.planetpostgresql.org/devrim/index.php?/archives/44-How-To-Build-Your-Own-PostgreSQL-and-related-software-RPMs-on-CentOSRHELFedora.html&quot;&gt;where Devrim left off&lt;/a&gt; in customizing RPMs, here are some more tips for getting your very own RPMs built:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a VM with your favorite operating system (I&amp;#8217;m using versions of CentOS). I need both 32-bit OS and 64-bit OS. This is much easier to manage with separate, local VMs.
&lt;/li&gt;
&lt;li&gt;Install spectool (&lt;a href=&quot;http://packages.sw.be/spectool/&quot;&gt;available here&lt;/a&gt;), and SVN
&lt;/li&gt;
&lt;li&gt;The other dependancies were: gcc glibc-devel bison flex python-devel tcl-devel readline-devel zlib-devel openssl-devel krb5-devel e2fsprocs-devel libxml2-devel libxslt-devel pam-devel
&lt;/li&gt;
&lt;li&gt;Edit the postgresql-$VERSION.spec file to your liking: If you&amp;#8217;re adding patches, you need to add them in TWO places &amp;#8211; first in the Patch#: group, and then again below where the %patch# series starts. Finally, if you&amp;#8217;re adding an entirely new package (say in 8.2, pg_standby in contrib), you&amp;#8217;ll need to also add the binary (or library, or whatever) to the appropriate %files clause later in the spec file.  It&amp;#8217;s also a good idea to modify &amp;#8216;Release&amp;#8217;. Here&amp;#8217;s a sample diff of my spec file:
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
--- postgresql-8.2.spec (revision 188)&lt;br /&gt;
+++ postgresql-8.2.spec (working copy)&lt;br /&gt;
@@ -74,7 +74,7 @@&lt;br /&gt;
 Summary:       PostgreSQL client programs and libraries&lt;br /&gt;
 Name:          postgresql&lt;br /&gt;
 Version:       8.2.17&lt;br /&gt;
-Release:       1PGDG%{?dist}&lt;br /&gt;
+Release:       1test%{?dist}&lt;br /&gt;
 License:       BSD&lt;br /&gt;
 Group:         Applications/Databases&lt;br /&gt;
 Url:           http://www.postgresql.org/&lt;br /&gt;
@@ -95,7 +95,9 @@&lt;br /&gt;
 Patch4:                postgresql-test.patch&lt;br /&gt;
 Patch6:                postgresql-perl-rpath.patch&lt;br /&gt;
 Patch8:                postgresql-prefer-ncurses.patch&lt;br /&gt;
+Patch7:                postgresql-pgstat-dir.patch&lt;br /&gt;
 Patch9:                postgresql-use-zoneinfo.patch&lt;br /&gt;
+Patch10:               pg_standby.patch&lt;/code&gt;&lt;/p&gt;
&lt;p&gt; Buildrequires: perl glibc-devel bison flex&lt;br /&gt;
 Requires:      /sbin/ldconfig initscripts&lt;br /&gt;
@@ -282,7 +284,9 @@&lt;br /&gt;
 %patch4 -p1&lt;br /&gt;
 %patch6 -p1&lt;br /&gt;
 %patch8 -p1&lt;br /&gt;
+%patch7 -p1&lt;br /&gt;
 %patch9 -p1&lt;br /&gt;
+%patch10 -p1&lt;/p&gt;
&lt;p&gt; pushd doc&lt;br /&gt;
 tar -zcf postgres.tar.gz *.html stylesheet.css&lt;br /&gt;
@@ -604,6 +608,7 @@&lt;br /&gt;
 %{_bindir}/pg_controldata&lt;br /&gt;
 %{_bindir}/pg_ctl&lt;br /&gt;
 %{_bindir}/pg_resetxlog&lt;br /&gt;
+%{_bindir}/pg_standby&lt;br /&gt;
 %{_bindir}/postgres&lt;br /&gt;
 %{_bindir}/postmaster&lt;br /&gt;
 %{_mandir}/man1/initdb.*&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;How have you customized RPMs using this repo? Share your .spec files!&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2010/05/20/need-reviewers-preparing-for-the-first-commitfest-for-9-1/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Need reviewers &amp;#8211; preparing for the first commitfest for 9.1&quot;&gt;Need reviewers &amp;#8211; preparing for the first commitfest for 9.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2010/08/29/using-logger-with-pg_standby/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Using logger with pg_standby&quot;&gt;Using logger with pg_standby&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2009/09/18/user-group-idea-patch-review-party/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: User Group Idea: Patch Review Party&quot;&gt;User Group Idea: Patch Review Party&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;</content>
		<author>
			<name>Selena Deckelmann</name>
			<uri>http://www.chesnok.com/daily</uri>
		</author>
		<source>
			<title type="html">tending the garden</title>
			<subtitle type="html">selena marie deckelmann's blog</subtitle>
			<link rel="self" href="http://www.chesnok.com/daily/feed/"/>
			<id>http://www.chesnok.com/daily/feed/</id>
			<updated>2010-09-03T01:19:03+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Complete cover</title>
		<link href="http://blog.man7.org/2010/08/complete-cover.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-8794328690499320708</id>
		<updated>2010-08-03T22:06:48+00:00</updated>
		<content type="html">The folk at &lt;a href=&quot;http://www.nostarch.com/&quot;&gt;No Starch&lt;/a&gt; have done a fantastic job with the cover! The text color on the front got tweaked a little, and now we have the spine and back cover design as well. Here's the complete cover.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_L1QrHboT9_c/TFEdzGfFehI/AAAAAAAAATk/TRzRp75RRIk/s1600/TLPI-cover.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_L1QrHboT9_c/TFEdzGfFehI/AAAAAAAAATk/TRzRp75RRIk/s320/TLPI-cover.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5499209383747615250&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Front cover photo: &lt;a href=&quot;http://www.naturespic.com/&quot;&gt;Rob Suisted&lt;/a&gt;&lt;br /&gt;Back cover photo: Lynley Cook&lt;br /&gt;Cover Design: &lt;a href=&quot;http://www.octopodstudios.com/&quot;&gt;Octopod Studios&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-8794328690499320708?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">HailDB 2.0.0 released!</title>
		<link href="http://www.flamingspork.com/blog/2010/08/03/haildb-2-0-0-released/"/>
		<id>http://www.flamingspork.com/blog/?p=2099</id>
		<updated>2010-08-03T00:52:59+00:00</updated>
		<content type="html">&lt;p&gt;(Reposted from the &lt;a href=&quot;http://www.haildb.com/2010/08/03/haildb-2-0-0-released/&quot;&gt;HailDB Blog&lt;/a&gt;. See also the &lt;a href=&quot;http://blog.drizzle.org/2010/08/02/haildb-version-2-0-0-has-been-released/&quot;&gt;announcement on the Drizzle Blog&lt;/a&gt;.)&lt;br /&gt;
We&amp;#8217;ve made our first HailDB release! We&amp;#8217;ve decided to make this a very conservative release. Fixing some minor bugs, getting a lot of compiler warnings fixed and start to make the name change in the source from Embedded InnoDB to HailDB.&lt;/p&gt;
&lt;p&gt;Migrating your software to use HailDB is really simple. In fact, for this release, it shouldn&amp;#8217;t take more than 5 minutes.&lt;/p&gt;
&lt;p&gt;Highlights of this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A lot of compiler warnings have been fixed.&lt;/li&gt;
&lt;li&gt;The build system is now pandora-build.&lt;/li&gt;
&lt;li&gt;some small bugs have been fixed&lt;/li&gt;
&lt;li&gt;Header file is now haildb.h instead of innodb.h&lt;/li&gt;
&lt;li&gt;We display &amp;#8220;HailDB&amp;#8221; instead of &amp;#8220;Embedded InnoDB&amp;#8221;&lt;/li&gt;
&lt;li&gt;Library name is libhaildb instead of libinnodb&lt;/li&gt;
&lt;li&gt;It is probably binary compatible with the last Embedded InnoDB release, but we don&amp;#8217;t have explicit tests for that, so YMMV.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Check out the &lt;a href=&quot;https://launchpad.net/haildb/2.0/release-2.0&quot;&gt;Launchpad page on 2.0.0&lt;/a&gt; and you can download the tarball either from there or right here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://c2101702.cdn.cloudfiles.rackspacecloud.com/haildb-2.0.0.tar.gz&quot;&gt;haildb-2.0.0.tar.gz&lt;/a&gt;&lt;br /&gt;
MD5:  ﻿﻿﻿﻿183b81bfe2303aed435cdc8babf11d2b&lt;br /&gt;
SHA1:  065e6a2f2cb2949efd7b8f3ed664bc1ac655cd75&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/08/03/haildb-2-0-0-released/&amp;t=HailDB+2.0.0+released%21&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=HailDB+2.0.0+released%21+-+http://b2l.me/aekpmY&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/08/03/haildb-2-0-0-released/&amp;title=HailDB+2.0.0+released%21&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/08/03/haildb-2-0-0-released/&amp;title=HailDB+2.0.0+released%21&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/08/03/haildb-2-0-0-released/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Last changes today</title>
		<link href="http://blog.man7.org/2010/08/last-changes-today_02.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-8558421945801900738</id>
		<updated>2010-08-02T22:57:00+00:00</updated>
		<content type="html">The &lt;a href=&quot;http://lwn.net/Articles/398360/&quot;&gt;release of Linux 2.6.35&lt;/a&gt; necessitated what is hopefully the last change I make to the book (in the preface). Files should go the printer this week!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-8558421945801900738?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">unittest API, part 2</title>
		<link href="http://code.mumak.net/2010/07/unittest-api-part-2.html"/>
		<id>tag:blogger.com,1999:blog-5733547231775030285.post-1905966562519966887</id>
		<updated>2010-08-02T12:15:15+00:00</updated>
		<content type="html">In &lt;a href=&quot;http://code.mumak.net/2010/07/unittest-api-part-1.html&quot;&gt;part 1&lt;/a&gt; of this humble attempt to document the interfaces and contracts that unittest actually cares about, we talked about &lt;code&gt;TestSuite&lt;/code&gt; and &lt;code&gt;TestCase&lt;/code&gt;, how they both implement a common interface that's used for running tests, &lt;b&gt;&lt;code&gt;ITest&lt;/code&gt;&lt;/b&gt; and how they each implement their own interfaces, &lt;b&gt;&lt;code&gt;ITestSuite&lt;/code&gt;&lt;/b&gt; and &lt;b&gt;&lt;code&gt;ITestCase&lt;/code&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Now we're moving on to a much more complicated object, &lt;code&gt;TestResult&lt;/code&gt;, to see how we can pick apart the ways it interacts with the rest of the system.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;code&gt;TestResult&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A &lt;code&gt;TestResult&lt;/code&gt; object is all about dealing with the results of tests, as you might expect. However, it doesn't generally represent a &lt;i&gt;single&lt;/i&gt; test result. You could say it represents the results of a number of tests, but I don't think that's terribly helpful.&lt;br /&gt;&lt;br /&gt;Better to think of a &lt;code&gt;TestResult&lt;/code&gt; object as an event handler. A &lt;code&gt;TestResult&lt;/code&gt; object receives events from a test run and then does something with them.&lt;br /&gt;&lt;br /&gt;Just as &lt;code&gt;TestCase&lt;/code&gt; has a two-faced nature, presenting one interface to the testing framework and another to test authors, so to &lt;code&gt;TestResult&lt;/code&gt; can be thought of has having many interfaces:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Its interface to a &lt;code&gt;TestCase&lt;/code&gt;. This can be thought of as the &lt;i&gt;test event handling &lt;/i&gt;interface&lt;/li&gt;&lt;li&gt;A &lt;i&gt;result querying&lt;/i&gt;&amp;nbsp;interface, normally used by a test runner&lt;/li&gt;&lt;li&gt;An interface for events that come from the test runner, the &lt;i&gt;runner event handling&lt;/i&gt; interface.&lt;/li&gt;&lt;li&gt;An &lt;i&gt;execution control&lt;/i&gt; interface.&lt;/li&gt;&lt;/ol&gt;Note that the &lt;i&gt;result querying&lt;/i&gt;&amp;nbsp;interface and the &lt;i&gt;runner event handling&lt;/i&gt;&amp;nbsp;interface together make up the interface between the &lt;code&gt;TestResult&lt;/code&gt; and test runner.&lt;br /&gt;&lt;br /&gt;Let's start with the &lt;i&gt;test event handling&lt;/i&gt; interface. The methods below are the interface between &lt;code&gt;TestCase.run()&lt;/code&gt; and &lt;code&gt;TestResult&lt;/code&gt;. (I guess &lt;code&gt;TestCase.debug&lt;/code&gt; too, but no one cares about it).&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;startTest(test)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Called when &lt;code&gt;test&lt;/code&gt; commences running. Although not enforced, it's impolite to provide any results for &lt;code&gt;test&lt;/code&gt; before calling this.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;stopTest(test)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Called when &lt;code&gt;test&lt;/code&gt; is completely finished. Although not enforced, it's impolite to provide any more results for &lt;code&gt;test&lt;/code&gt; after calling this, unless you call &lt;code&gt;startTest(test)&lt;/code&gt; again first.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;addSuccess(test)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Called when &lt;code&gt;test&lt;/code&gt; has been shown to be successful. The default implementation does nothing.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;addError(test, err)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Called when &lt;code&gt;test&lt;/code&gt; raises an unexpected error. &lt;code&gt;err&lt;/code&gt; is a tuple such as you might get from &lt;code&gt;sys.exc_info()&lt;/code&gt;. Calling this method for the first time must change the result of &lt;code&gt;wasSuccessful()&lt;/code&gt;.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;addFailure(test, err)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Called when &lt;code&gt;test&lt;/code&gt; has failed one of its assertions. &lt;code&gt;err&lt;/code&gt; is a tuple such as you might get from &lt;code&gt;sys.exc_info()&lt;/code&gt;.&lt;/dd&gt;&lt;/dl&gt;The above interface is tightly coupled to the implementation of &lt;code&gt;TestCase.run()&lt;/code&gt;. In particular, if you wish to add more kinds of results to your testing framework (&quot;skip&quot; results are a fairly common addition), then you must change both &lt;code&gt;TestCase.run()&lt;/code&gt; and the &lt;code&gt;TestResult&lt;/code&gt; interface.&lt;br /&gt;&lt;br /&gt;If you do something like that, I recommend making sure that your modified &lt;code&gt;TestCase&lt;/code&gt; can handle &lt;code&gt;TestResult&lt;/code&gt; objects that do not provide the extensions to the interface that you need. One common way of doing this is to have the &lt;code&gt;TestCase&lt;/code&gt; fall back to the primitive result types, e.g. &quot;skip&quot; might become &quot;success&quot; for a &lt;code&gt;TestResult&lt;/code&gt; that doesn't know what skipping means.&lt;br /&gt;&lt;br /&gt;Importantly, the interface between &lt;code&gt;TestCase&lt;/code&gt; and &lt;code&gt;TestResult&lt;/code&gt; has been fattened in Python 2.7.&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;addSkip(test, reason)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Called when &lt;code&gt;test&lt;/code&gt; is skipped. &lt;code&gt;reason&lt;/code&gt; is a string explaining why the test was skipped.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;addExpectedFailure(test, err)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Called when &lt;code&gt;test&lt;/code&gt; failed in a way that was expected. &lt;code&gt;err&lt;/code&gt; is a tuple such as the one returned by &lt;code&gt;sys.exc_info()&lt;/code&gt;.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;addUnexpectedSuccess(test)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Called when &lt;code&gt;test&lt;/code&gt; was expected to fail, but didn't.&lt;/dd&gt;&lt;/dl&gt;The following interface is a way of learning about test results after they have happened, the &lt;i&gt;result querying&lt;/i&gt; interface, and is part of the contract between the test runner and the TestResult.&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;wasSuccessful()&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;If there have been no errors and no failures, return &lt;code&gt;True&lt;/code&gt;. Return &lt;code&gt;False&lt;/code&gt; otherwise.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;testsRun&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;An integer that is the number of tests that have been run.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;errors&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;A list of tuples of &lt;code&gt;(test, error_message)&lt;/code&gt; for all of the tests with unexpected errors, where &lt;code&gt;test&lt;/code&gt; is an &lt;code&gt;ITestCase&lt;/code&gt; and &lt;code&gt;error_message&lt;/code&gt; is a string suitable for display to humans, generally containing a traceback.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;failures&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;A list of tuples of &lt;code&gt;(test, error_message)&lt;/code&gt; for all of the failing tests, where &lt;code&gt;test&lt;/code&gt; is an &lt;code&gt;ITestCase&lt;/code&gt; and &lt;code&gt;error_message&lt;/code&gt; is a string suitable for display to humans, generally containing a traceback.&lt;/dd&gt; &lt;/dl&gt;And of course, Python 2.7 fattens this interface again to have the following:&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;skipped&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;A list of tuples of &lt;code&gt;(test, reason)&lt;/code&gt; for all of the skipped tests, where &lt;code&gt;test&lt;/code&gt; is an &lt;code&gt;ITestCase&lt;/code&gt; and &lt;code&gt;reason&lt;/code&gt; is a string suitable for display to humans, generally containing a traceback.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;expectedFailures&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;A list of tuples of &lt;code&gt;(test, error_message)&lt;/code&gt; for all of the tests that were expected to fail and failed in the manner they were expected to, where &lt;code&gt;test&lt;/code&gt; is an &lt;code&gt;ITestCase&lt;/code&gt; and &lt;code&gt;error_message&lt;/code&gt; is a string suitable for display to humans, generally containing a traceback.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;unexpectedSuccesses&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;A list of all of the tests that unexpectedly succeeded. Members of the list are &lt;code&gt;ITestCase&lt;/code&gt;s.&lt;/dd&gt;&lt;/dl&gt;In Python 2.7,&amp;nbsp;&lt;code&gt;TestResult&lt;/code&gt;&amp;nbsp;also extended its interface to the test runner beyond simple result querying and into allowing the test runner itself to send two very important events to the &lt;code&gt;TestResult&lt;/code&gt;, behold the &lt;i&gt;runner event handling&lt;/i&gt; interface:&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;startTestRun()&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;div&gt;Called before any tests have been run. It is impolite to provide any test results before calling this.&lt;/div&gt;&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;stopTestRun()&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;&lt;div&gt;Called after all the tests have finished running. It is impolite to provide any test results after calling this. A&amp;nbsp;&lt;code&gt;TestResult&lt;/code&gt;&amp;nbsp;object is generally not expected to handle any events at all after this method has been called.&lt;/div&gt;&lt;/dd&gt;&lt;/dl&gt;Some test runners rely on &lt;code&gt;TestResult&lt;/code&gt;s to use those events to display the results to the user. These runners frequently do not use the result querying part of the interface.&lt;br /&gt;&lt;br /&gt;There is one more interface that &lt;code&gt;TestResult&lt;/code&gt; implements: the &lt;i&gt;execution control&lt;/i&gt; interface:&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;stop()&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Signal that the execution of further tests should stop now. Sets &lt;code&gt;shouldStop&lt;/code&gt; to &lt;code&gt;True&lt;/code&gt;.&lt;/dd&gt;&lt;dt&gt;&lt;code&gt;shouldStop&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;If &lt;code&gt;True&lt;/code&gt;, then test execution should stop. &lt;code&gt;TestSuite.run()&lt;/code&gt; should monitor this value and stop execution if ever it is &lt;code&gt;True&lt;/code&gt;.&lt;/dd&gt;&lt;dt&gt;&lt;/dt&gt;&lt;/dl&gt;This interface is mostly used as a way of handling &lt;code&gt;KeyboardInterrupt&lt;/code&gt;s cleanly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you want your &lt;code&gt;TestResult&lt;/code&gt; object to work with standard Python &lt;code&gt;TestCase&lt;/code&gt; objects, or any &lt;code&gt;TestCase&lt;/code&gt; objects that try to stick close to the standard, then you must provide the &lt;i&gt;test&amp;nbsp;event handling&lt;/i&gt; interface described above. If you are writing your own test framework or test runner, you care about this, because you want to run everyone's unit tests.&lt;br /&gt;&lt;br /&gt;If you want your &lt;code&gt;TestResult&lt;/code&gt; object to work with the standard Python test runner before Python 2.7, then you must provide the &lt;i&gt;result querying&lt;/i&gt; interface. If you are using the standard Python test runner, you care about this. For Trial or testtools, you must provide the &lt;i&gt;runner event handling&lt;/i&gt;&amp;nbsp;interface.&amp;nbsp;For anything else, I'm afraid you are on your own.&lt;br /&gt;&lt;br /&gt;Always provide the &lt;i&gt;execution control&lt;/i&gt; interface.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Comments&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In this documentation, I've been trying to describe the various interfaces without inserting too much of my own opinion about their design. However, I think some commentary might actually help to make things easier to understand.&lt;br /&gt;&lt;br /&gt;By providing a querying interface for &lt;code&gt;TestResult&lt;/code&gt; to be used by a test runner, the original designers of unittest practically insisted that responsibility for displaying the results of a test run be split between two different classes. The &lt;code&gt;TestResult&lt;/code&gt; takes care of displaying incremental feedback from the running tests and the test runner takes care of displaying the summary. You can see evidence of this design in Python 2.6's unittest.py, where there's a hidden &lt;code&gt;_TextTestResult&lt;/code&gt; subclass which has extra methods that are called only by a special &lt;code&gt;TextTestRunner&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;The addition of &lt;code&gt;startTestRun()&lt;/code&gt; and &lt;code&gt;stopTestRun()&lt;/code&gt; mean that now a &lt;code&gt;TestResult&lt;/code&gt; object can be fully in charge of displaying its results. As such, providing a query interface and exposing details like the list of test failures somewhat vestigial. &lt;br /&gt;&lt;br /&gt;I'm less happy with this post than the previous one. As such your critique is even more welcome.&lt;br /&gt;&lt;br /&gt;Still to come: the interface for test authors and just what is a test runner anyway?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Remove ambiguity in &lt;code&gt;expectedFailures&lt;/code&gt; description (see comments). Thanks Aaron.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5733547231775030285-1905966562519966887?l=code.mumak.net&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>jml</name>
			<email>noreply@blogger.com</email>
			<uri>http://code.mumak.net/</uri>
		</author>
		<source>
			<title type="html">Mere Code</title>
			<subtitle type="html">Hacking, Software Collaboration, Testing and Diverse Other Topics of General Interest to the Practicing Programmer</subtitle>
			<link rel="self" href="http://code.mumak.net/rss.xml"/>
			<id>tag:blogger.com,1999:blog-5733547231775030285</id>
			<updated>2010-09-02T13:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Installing NCARG and NCL on a 64-bit AMD Opteron Cluster running CentOS 5 Linux</title>
		<link href="http://levlafayette.com/node/138"/>
		<id>http://levlafayette.com/138 at http://levlafayette.com</id>
		<updated>2010-08-02T05:22:38+00:00</updated>
		<content type="html">&lt;p&gt;NCAR is the (US) &lt;a href=&quot;http://www.ncar.ucar.edu/&quot;&gt;National Centre for Atmospheric Research&lt;/a&gt;, &lt;a href=&quot;http://ngwww.ucar.edu/index.html&quot;&gt;NCARG&lt;/a&gt; is a graphics library, maps database and applications for the same, and &lt;a href=&quot;http://www.ncl.ucar.edu/&quot;&gt;NCAR Command Language&lt;/a&gt; (NCL) is interpreted language for the above. Installing the software from source is not recommended: &quot;We highly recommend that you use a precompiled NCL binary rather than attempting a build from source code....&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://levlafayette.com/node/138&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Lev Lafayette</name>
			<uri>http://levlafayette.com/blog</uri>
		</author>
		<source>
			<title type="html">Lev Lafayette blogs</title>
			<link rel="self" href="http://levlafayette.com/blog/feed"/>
			<id>http://levlafayette.com/blog/feed</id>
			<updated>2010-09-03T02:19:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Show and tell</title>
		<link href="http://passthesource.org.nz/2010/08/02/show-and-tell/"/>
		<id>http://passthesource.org.nz/?p=281</id>
		<updated>2010-08-01T22:42:32+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://ossat.org/&quot;&gt;OSSAT&lt;/a&gt; (that is, Open Source Show and Tell) events have been happening in London on a 3-6 monthly basis since 2008. The events are a showcase for people working with open source, open standards, open data to tell people about what they&amp;#8217;ve been up to and share what&amp;#8217;s great about it.&lt;/p&gt;
&lt;p&gt;Now it&amp;#8217;s Wellington&amp;#8217;s turn. Grant McLean has been busy setting up &lt;a href=&quot;http://wossat.org.nz/&quot;&gt;WOSSAT&lt;/a&gt; &amp;#8211; Wellington open source show and tell &amp;#8211; and he&amp;#8217;s written &lt;a href=&quot;http://grantmclean.vox.com/library/post/why-wossat.html&quot;&gt;a blog post all about it&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Get involved: follow @wossat on &lt;a href=&quot;http://twitter.com/wossat&quot;&gt;twitter&lt;/a&gt; or &lt;a href=&quot;http://identi.ca/wossat&quot;&gt;identi.ca&lt;/a&gt;; even better, if you&amp;#8217;ve got a story that you&amp;#8217;re itching to tell, &lt;a title=&quot;Email WOSSAT&quot; href=&quot;mailto:info@wossat.org.nz&quot;&gt;get in touch with Grant&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Don Christie</name>
			<uri>http://passthesource.org.nz</uri>
		</author>
		<source>
			<title type="html">Pass the Source</title>
			<subtitle type="html">Free software today</subtitle>
			<link rel="self" href="http://passthesource.org.nz/feed/"/>
			<id>http://passthesource.org.nz/feed/</id>
			<updated>2010-09-02T21:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Pinnacles Tramp</title>
		<link href="http://linuxsoftware.co.nz/blog/2010/08/01/pinnacles-tramp"/>
		<id>http://linuxsoftware.co.nz/blog/?p=727</id>
		<updated>2010-08-01T11:10:25+00:00</updated>
		<content type="html">&lt;p&gt;Took Friday off and tramped up to the Pinnacles in the Kauaeranga valley in the Coromandel.  The Pinnacles Hut is handy to Auckland being couple of of hours drive away.  This was the fifth time I&amp;#8217;ve been up there (though one time was just a day trip).&lt;/p&gt;
&lt;p&gt;Tramped Tarawaere track which gets a bit rough and isn&amp;#8217;t the usual way of getting to the hut, but is much more interesting.  Having started late, I ended up tramping in the dark by headlamp for the last part along Billygoat track.  It is interesting how the colour gradually fades and the shadows get deeper and deeper, but you hold off using a torch because once you do all that is visible is the spot it points at and that lacks depth (is that a hole or a rock?).  At least that is how it is with my torch, maybe I need a better one.&lt;/p&gt;
&lt;p&gt;Got to the hut about 7pm to find I was the only one staying there that night.  And I had been worried about crowds.  Slept in the dining area with the fire going.&lt;/p&gt;
&lt;p&gt;Next day I climbed up the Pinnacles themselves.  DoC have added new steps and ladders, it&amp;#8217;s all a lot easier than the mud and rock handholds, I&amp;#8217;m not complaining.  Got a nice view of the inside of a cloud there.  Was hoping it might clear, but I guess I&amp;#8217;ve seen the views before.&lt;/p&gt;
&lt;p&gt;Came back down via Webb Creek.  So many stairs!  But nice in a ferny mossy waterfall way.  Then back to the car and drove home to soak tired legs.&lt;/p&gt;
&lt;div class=&quot;wpg2tag-image&quot;&gt;&lt;a href=&quot;http://linuxsoftware.co.nz/blog/v/2010/pinnacles5/P1010677.JPG.html&quot; title=&quot;P1010677&quot;&gt;&lt;img src=&quot;http://linuxsoftware.co.nz/photos/d/7037-2/P1010677.JPG&quot; width=&quot;150&quot; height=&quot;113&quot; id=&quot;IFid5&quot; class=&quot;ImageFrame_None&quot; alt=&quot;P1010677&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;wpg2tag-image&quot;&gt;&lt;a href=&quot;http://linuxsoftware.co.nz/blog/v/2010/pinnacles5/P1010679.JPG.html&quot; title=&quot;P1010679&quot;&gt;&lt;img src=&quot;http://linuxsoftware.co.nz/photos/d/7043-2/P1010679.JPG&quot; width=&quot;150&quot; height=&quot;113&quot; id=&quot;IFid6&quot; class=&quot;ImageFrame_None&quot; alt=&quot;P1010679&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;wpg2tag-image&quot;&gt;&lt;a href=&quot;http://linuxsoftware.co.nz/blog/v/2010/pinnacles5/P1010689.JPG.html&quot; title=&quot;P1010689&quot;&gt;&lt;img src=&quot;http://linuxsoftware.co.nz/photos/d/7064-2/P1010689.JPG&quot; width=&quot;150&quot; height=&quot;113&quot; id=&quot;IFid7&quot; class=&quot;ImageFrame_None&quot; alt=&quot;P1010689&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;wpg2tag-image&quot;&gt;&lt;a href=&quot;http://linuxsoftware.co.nz/blog/v/2010/pinnacles5/P1010701.JPG.html&quot; title=&quot;P1010701&quot;&gt;&lt;img src=&quot;http://linuxsoftware.co.nz/photos/d/7088-2/P1010701.JPG&quot; width=&quot;150&quot; height=&quot;113&quot; id=&quot;IFid8&quot; class=&quot;ImageFrame_None&quot; alt=&quot;P1010701&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://linuxsoftware.co.nz/photos/v/2010/pinnacles5&quot;&gt;More photos&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>david</name>
			<uri>http://linuxsoftware.co.nz/blog</uri>
		</author>
		<source>
			<title type="html">LinuxSoftware » LCA2010</title>
			<subtitle type="html">Coding and tramping in Aotearoa / New Zealand</subtitle>
			<link rel="self" href="http://linuxsoftware.co.nz/blog/category/lca2010/feed/atom"/>
			<id>http://linuxsoftware.co.nz/blog/feed/atom</id>
			<updated>2010-08-01T11:13:34+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Life after Weta?</title>
		<link href="http://adam.shand.net/iki/2010/life_after_weta/"/>
		<id>http://adam.shand.net/iki/2010/life_after_weta/</id>
		<updated>2010-07-31T17:11:32+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/jcraveiro/2685329853/&quot;&gt; &lt;img align=&quot;right&quot; height=&quot;256&quot; src=&quot;http://dl.dropbox.com/u/288232/blog/road_to_where.jpg&quot; /&gt;&lt;/a&gt;
I keep forgetting that we aren't all connected to the same hive mind and am surprised when friends don't know that I have left &lt;a href=&quot;http://www.wetadigital.com/&quot;&gt;Weta&lt;/a&gt; (again).  Everybody asks why I chose to leave, and the answer is simple.  Despite the fact that I adore my job, doing it left me with very little emotional energy to do anything else.  I realised that for most of my adult life, work really has been my life.  For a long time that was fine because I loved my work and was happy to make it my life.  However with each passing year that compromise has seemed less acceptable.  With &quot;Avatar&quot; wrapping up, and especially now that I'm single again, it felt foolish to not take a punt and try something different.&lt;/p&gt;

&lt;p&gt;Of course this leaves the question of what exactly is the next step, and honestly the answer is that I don't know.  What I do know is I've been talking about travelling the world for longer then I can remember.  As a kid, shuttling between California and New Zealand with my parents, I remember idolising the scruffy hippy kids that I'd see congregating in the corners of airports.  Over the last &amp;#60;gulp&amp;#62; twenty years I've ended relationships and quit jobs to head off on this journey more times then I care to count. Yet I always allowed life to pull me back before the final plunge. The time has arrived to stare the dream square in the face and either plunge in … or get over it.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/rosh/246187583/&quot;&gt; &lt;img align=&quot;left&quot; height=&quot;256&quot; src=&quot;http://dl.dropbox.com/u/288232/blog/expression_of_freedom.jpg&quot; /&gt;&lt;/a&gt;
What I do know is that I'll be spending the next couple months in Wellington enjoying summer and the company of friends.  Then around April I'll be heading off towards Southeast Asia.  My destination?  The cheapest flight that gets me to Southeast Asia, I'm guessing Bangkok but hope to be surprised.  From there I intend to slowly make my way westward.  Since I'm not in a hurry I intend to stop for as long as I like and enjoy everything which seems worth savouring.  I'll be avoiding planes and will instead travel by foot, bicycle, motorbike, boat and bus as much as possible.  After exploring Southeast Asia I hope to make my way into China and from there to Tibet, down through Nepal and into India.  After that I really have no idea, I suspect my initial travel companions will have headed for home by then so I'll be properly on my own.  Then depending on how comfortable I am in my new traveller shoes, Africa or Eastern Europe seem the most likely choices.&lt;/p&gt;

&lt;p&gt;I've been saying that this is going to be a years trip but really I have no idea.  More realistically it'll end when I: get sick of it, run out of money, find something I don't want to leave or end up back in New Zealand.  &lt;/p&gt;

&lt;p&gt;Between now and then I hope to keep the new &lt;a href=&quot;http://adam.shand.net/iki/travel/&quot;&gt;travel&lt;/a&gt; section of this updated with what I learn and experience along the way.  &lt;/p&gt;</content>
		<author>
			<name>adam.shand.net/iki</name>
			<uri>http://adam.shand.net/iki/</uri>
		</author>
		<source>
			<title type="html">adam.shand.net/iki</title>
			<subtitle type="html">adam.shand.net/iki</subtitle>
			<link rel="self" href="http://adam.shand.net/iki/index.atom"/>
			<id>http://adam.shand.net/iki/</id>
			<updated>2010-09-03T01:12:59+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Staying quit</title>
		<link href="http://adam.shand.net/iki/2010/staying_quit/"/>
		<id>http://adam.shand.net/iki/2010/staying_quit/</id>
		<updated>2010-07-31T17:01:13+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Not everybody smokes in Indonesia, but it seems like everybody does.  Pinched between gnarled fingers or hanging carelessly from lips — stall owners, bikers and touts all peer out at the world through clouds of smoke.  Within hours of landing the cloying smell of clove cigarettes has jolted me back back ten years, memories jostling for attention as they flicker before my eyes.  Simultaneously my dormant addiction begins wriggling into consciousness, reaching out into my thoughts, looking for leverage to make &quot;yes&quot; the only answer.&lt;/p&gt;

&lt;p&gt;My introduction to clove cigarettes was through Kaleigh and her civilised habit of smoking a single Djarum in the evenings.  My ignorance was fascinated and I quickly discovered that lounging in the evening sun, a quiet buzz in hand, was the perfect antidote to whatever stresses the day had delivered.  I had not yet learned about addiction, how it waits and yearns, how it lingers in the corners never quite allowing absolution.  It is images from this honeymoon period, as my addiction and I become acquainted, which now fill my mind.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Driving with Kaleigh from Seattle to Anchorage over the Alcan Highway.  We barely knew each other and were trapped in her jeep, desperately trying to keep the conversation alive through two and a half thousand miles of British Columbia's icy wasteland.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;At the end of our relationship, standing on my porch and solemnly swearing off women for the next five years, only to meet Teresa less then a month later.  Huddling with her on the back steps of Internet Alaska as she bummed cloves from me, the subzero temperatures providing the perfect excuse to sit close enough to kindle an office romance.  I still didn't think of myself as a smoker and I remember my confusion when several weeks later she showed up on the steps with a pack of Camels. I discovered that she was an ex-smoker, and she discovered that cloves are three quarters tobacco.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Watching our friend Mark, as he watched Teresa and I, transition from smoking cloves to smoking Camels.  No words were spoken but I understood what he had recognised, and why he no longer joined us for the occasional smoke.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Moving to Portland and discovering a city I could love, a city I still miss.  Those endless hours with other volunteers from Personal Telco, sitting around and dreaming in bars and cafes about how we were going to build a free citywide wireless cloud with nothing but geek fervour.   The collapse of the dotcom era, my friends and I falling in and out of employment as the economy heaved and twisted.  Being trapped in a job I didn't yet realise I detested, and failing to adjust to the grim realities of an enterprise support role at a doomed startup.  It still astounds me that James had the grace to allow me to work four ten hour days, so I could spend a day each week at home working to help Personal Telco's dreams become reality.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In the stinking hot week of Portland's summer, relaxing barefoot in the shade on our front steps.  With sudden conviction I knew that I wanted to have kids, that I wanted to get married and that I'd really like for us to own our own home.  Then the bitter realisation that despite a lifetime of privilege and opportunity, I had nothing but memories to show for it.  In those moments I lost the sense that I had all the time in the world, I robbed myself of the freedom to let every experience unfurl in its own time. Years later I realise that there are many things right with having nothing but memories to show for your life.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The honeymoon ended the first time I tried to quit, and failed, but the memories don't stop.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;My first extended travels — three months with Teresa chain smoking through England, France, Holland, Germany, New Zealand and Australia.  My failed proposal attempt at the Eiffel Tower and a successful one in the Coromandel. Successfully quitting with Teresa at the end of our travels.  Becoming a smoker again through the final months of our marriage and plunging into the abyss of divorce.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Modern etiquette won't let me say that that smoking was a good companion, but it has been a companion.  As I write this I'm shocked at how much of my life has been spent as a smoker.  How many memories I can conjure of me with a fag in one hand and a coffee or beer in the other. &lt;/p&gt;

&lt;p&gt;I remember reading in &lt;a href=&quot;http://www.wired.com/wired/archive/11.02/smoking.html&quot;&gt;Wired&lt;/a&gt; that a big tobacco executive thought that he was going to get rich creating genetically modified tobacco that didn't have any nicotine.  Cigarettes that are just as dangerous but not addictive.  I howled with laughter, reading it out loud through snorts of derision, at this gross misunderstanding.  They had it completely backwards.  What they need to do is create a cigarette which is still addictive, but that doesn't kill you.  The addiction is the point.&lt;/p&gt;

&lt;p&gt;Smoking provided a reason to get up from my desk and spend ten minutes away from the computer.  A reason to meet Teresa on the front porch in the evenings where we would talk and dream about our lives.  Rituals full of comfort in cars and airports, coffee shops and bars.  A way to be occupied while being alone.  And never underestimate the camaraderie of smokers in a world in which they are beset.  Each shared cigarette is the beginning of a new friendship, and all smokers share.&lt;/p&gt;

&lt;p&gt;For me it's not the quitting which is hard, it's the staying quit. As the challenge of abstinence fades, my vigilance wanes. It didn't take long, maybe a week?  A couple beers in Nusa Lembongan and I was bumming smokes from Tania.  The surfers in Medewi were more then happy to share their cloves.  A week later I succumbed to the pleasures of my own pack, purchased at the Bromo Permai hotel.  &lt;/p&gt;

&lt;p&gt;Today I'm in Singapore, sitting at a table full of Nick's dive buddies, laughing my ass off as they joke and tease, teaching me swear words in Bahasa, Hokkien and Thai.  Everybody at the table is smoking, drinking and laughing but only I know that I'm smoking my last pack. Tomorrow we get on the train for Malaysia, and in these final hours each one tastes sweeter.&lt;/p&gt;</content>
		<author>
			<name>Adam Shand</name>
			<uri>http://adam.shand.net/iki/</uri>
		</author>
		<source>
			<title type="html">adam.shand.net/iki</title>
			<subtitle type="html">adam.shand.net/iki</subtitle>
			<link rel="self" href="http://adam.shand.net/iki/index.atom"/>
			<id>http://adam.shand.net/iki/</id>
			<updated>2010-09-03T01:12:59+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Can Melting Update</title>
		<link href="http://vik-olliver.blogspot.com/2010/07/can-melting-update.html"/>
		<id>tag:blogger.com,1999:blog-6757261993703476074.post-512229901225124292</id>
		<updated>2010-07-31T10:04:00+00:00</updated>
		<content type="html">&lt;a href=&quot;http://3.bp.blogspot.com/_w0pYYVNavoE/TFP2o1aWfeI/AAAAAAAABEI/gWNLzbnnqj0/s1600/20100731_001.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_w0pYYVNavoE/TFP2o1aWfeI/AAAAAAAABEI/gWNLzbnnqj0/s200/20100731_001.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5500010751342312930&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Using the bottom of a MAPP gas can, which is larger and sturdier than a coconut cream tin, I've managed to melt and cast 20 cans at a go - and I still have a lot of my $6 bag of BBQ charcoal left.&lt;br /&gt;&lt;br /&gt;When you get enough in the can, the aluminium squeezes out of the dross easier and you can pour it directly into a mould.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/6757261993703476074-512229901225124292?l=vik-olliver.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Vik Olliver</name>
			<email>noreply@blogger.com</email>
			<uri>http://vik-olliver.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Artifex</title>
			<link rel="self" href="http://vik-olliver.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-6757261993703476074</id>
			<updated>2010-08-23T03:12:12+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">30 Jul 2010</title>
		<link href="http://www.advogato.org/person/dwmw2/diary.html?start=219"/>
		<id>http://www.advogato.org/person/dwmw2/diary.html?start=219</id>
		<updated>2010-07-30T15:03:02+00:00</updated>
		<content type="html">Got bored of having to run '&lt;tt&gt;make install&lt;/tt&gt;' when
hacking on Evolution, partly because libtool insanity makes
it take too long &amp;mdash; as for some reason it relinks
everything as
it installs it. Perhaps that was needed for FORTRAN77
programs on OSF/1, but it &lt;em&gt;isn't&lt;/em&gt; needed on my modern
Linux
system. I hate libtool. But even without that, re-running
'&lt;tt&gt;make install&lt;/tt&gt;' every time you change a line of code
is a pain.
&lt;p&gt;
For a while I took to manually symlinking the libraries and
executables I was working on, from my build directory into
their installed locations. But I kept missing some out and
that was a pain too.
&lt;p&gt;
My current solution, which excited &lt;a href=&quot;http://mbarnes.livejournal.com/&quot;&gt;mbarnes&lt;/a&gt;
sufficiently that I felt I ought to share it more widely, is
to re-run &lt;tt&gt;autogen.sh&lt;/tt&gt; with the
&lt;tt&gt;--enable-fast-install&lt;/tt&gt; argument, then build it and
run '&lt;tt&gt;make
INSTALL=&lt;a href=&quot;http://david.woodhou.se/install_symlink.sh&quot;&gt;install_symlink.sh&lt;/a&gt;
install&lt;/tt&gt;'. Then &lt;em&gt;all&lt;/em&gt; files get installed as
symlinks instead of being copied, and all I have to do is
hack code, type 'make', and run evolution again.&lt;p&gt;
The script is a dirty hack and there are much better ways to
do it &amp;mdash; some of which would even cope with filenames
that have spaces in. But it works for me, and makes
Evolution hacking a little easier.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>David Woodhouse</name>
			<uri>http://www.advogato.org/person/dwmw2/</uri>
		</author>
		<source>
			<title type="html">Advogato blog for dwmw2</title>
			<subtitle type="html">Advogato blog for dwmw2</subtitle>
			<link rel="self" href="http://www.advogato.org/person/dwmw2/rss.xml"/>
			<id>http://www.advogato.org/person/dwmw2/rss.xml</id>
			<updated>2010-09-03T02:13:01+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Installing GCC on a cluster running Linux</title>
		<link href="http://levlafayette.com/node/137"/>
		<id>http://levlafayette.com/137 at http://levlafayette.com</id>
		<updated>2010-07-29T23:37:05+00:00</updated>
		<content type="html">&lt;p&gt;The GNU Compiler Collection (usually shortened to GCC) is a compiler system for C (gcc), C++ (g++), Java (gcj), Ada (GNAT), Objective-C (gobjc), Objective-C++ (gobjc++), and Fortran (gfortran). Circumstances will arise when you will want to use a particular version of GCC rather than the system version. &lt;/p&gt;
&lt;p&gt;Set the environment variables manually for GMP, MPFR and MPC. Or use modules.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
module load gmp/4.3.1&lt;br /&gt;
module load mpfr&lt;br /&gt;
module load mpc&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://levlafayette.com/node/137&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Lev Lafayette</name>
			<uri>http://levlafayette.com/blog</uri>
		</author>
		<source>
			<title type="html">Lev Lafayette blogs</title>
			<link rel="self" href="http://levlafayette.com/blog/feed"/>
			<id>http://levlafayette.com/blog/feed</id>
			<updated>2010-09-03T02:19:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">540W of LED rope for monorail track</title>
		<link href="http://www.flamingspork.com/blog/2010/07/30/540w-of-led-rope-for-monorail-track/"/>
		<id>http://www.flamingspork.com/blog/2010/07/30/540w-of-led-rope-for-monorail-track/</id>
		<updated>2010-07-29T22:21:29+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img alt=&quot;image&quot; src=&quot;http://www.flamingspork.com/blog/wp-content/uploads/2010/07/wpid-IMG_20100729_152057.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Testing how much power the rope will pull off the generators &lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/07/30/540w-of-led-rope-for-monorail-track/&amp;t=540W+of+LED+rope+for+monorail+track&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=540W+of+LED+rope+for+monorail+track+-+http://b2l.me/adkxce&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/07/30/540w-of-led-rope-for-monorail-track/&amp;title=540W+of+LED+rope+for+monorail+track&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/07/30/540w-of-led-rope-for-monorail-track/&amp;title=540W+of+LED+rope+for+monorail+track&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/07/30/540w-of-led-rope-for-monorail-track/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Index</title>
		<link href="http://blog.man7.org/2010/07/index.html"/>
		<id>tag:blogger.com,1999:blog-1864735639277925058.post-6062498099738481595</id>
		<updated>2010-07-29T20:02:00+00:00</updated>
		<content type="html">We're getting close now. The index is nearly done. It has about 5900 entries, with about 9600 locators. (I've rounded the numbers because they'll probably change a little as we do some fine tuning.) We're typesetting the index small (8.5 point), but it's still going to run to 60 pages. Current target is for files to go to the printer in about a week, and for the printing to be finished near the end of August, which means available in September.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1864735639277925058-6062498099738481595?l=blog.man7.org&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>mtk</name>
			<email>noreply@blogger.com</email>
			<uri>http://blog.man7.org/</uri>
		</author>
		<source>
			<title type="html">man7.org</title>
			<link rel="self" href="http://blog.man7.org/feeds/posts/default"/>
			<id>tag:blogger.com,1999:blog-1864735639277925058</id>
			<updated>2010-09-02T08:18:50+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">v0.21 released</title>
		<link href="http://ceph.newdream.net/2010/07/v0-21-released/"/>
		<id>http://ceph.newdream.net/?p=114</id>
		<updated>2010-07-29T20:00:08+00:00</updated>
		<content type="html">&lt;p&gt;It&amp;#8217;s been a while, but v0.21 is ready.  Most of the work this time around has been on stability. There is one key new feature, however: RBD, the rados block device, which let you create a virtual disk backed by objects stored in the Ceph cluster.  The images can be mapped natively by the ceph kernel module or via a driver in qemu/KVM.  Although neither of those drivers is upstream yet, the server side functionality and admin tools are in place.&lt;/p&gt;
&lt;p&gt;Changes since v0.20 include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;improved logging infrastructure&lt;/li&gt;
&lt;li&gt;log rotate&lt;/li&gt;
&lt;li&gt;mkfs improvements&lt;/li&gt;
&lt;li&gt;rbd tool, and rados class&lt;/li&gt;
&lt;li&gt;mds: return ENOTEMPTY when removing directory with snapshots&lt;/li&gt;
&lt;li&gt;mds: lazy io support (experimental)&lt;/li&gt;
&lt;li&gt;msgr: send messages directory to connection handles (more efficient)&lt;/li&gt;
&lt;li&gt;faster atomic_t via libatomic-ops&lt;/li&gt;
&lt;li&gt;mon: recovery improvements, fixes (e.g. when one mon is down for a long time)&lt;/li&gt;
&lt;li&gt;mon: warn on monitor clock drift&lt;/li&gt;
&lt;li&gt;osd: large object support&lt;/li&gt;
&lt;li&gt;osd: heartbeat improvements, fixes&lt;/li&gt;
&lt;li&gt;osd: journaling fixes, improvements (bugs, better use of direct io)&lt;/li&gt;
&lt;li&gt;osd: snapshot rollback op (for rbd)&lt;/li&gt;
&lt;li&gt;radosgw fixes, improvements&lt;/li&gt;
&lt;li&gt;many memory leaks and other bugs fixed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The project roadmap has been updated and is &lt;a href=&quot;http://tracker.newdream.net/projects/ceph/roadmap&quot;&gt;available via the issue tracker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Relevant URLs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Direct download at &lt;a href=&quot;http://ceph.newdream.net/download/ceph-0.21.tar.gz&quot;&gt;http://ceph.newdream.net/download/ceph-0.21.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;For Debian packages see &lt;a href=&quot;http://ceph.newdream.net/../wiki/Debian&quot;&gt;http://ceph.newdream.net/wiki/Debian&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content>
		<author>
			<name>Sage Weil</name>
			<uri>http://ceph.newdream.net</uri>
		</author>
		<source>
			<title type="html">Ceph</title>
			<subtitle type="html">open source distributed storage</subtitle>
			<link rel="self" href="http://ceph.newdream.net/feed/"/>
			<id>http://ceph.newdream.net/feed/</id>
			<updated>2010-08-30T20:12:19+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">unittest API, part 1</title>
		<link href="http://code.mumak.net/2010/07/unittest-api-part-1.html"/>
		<id>tag:blogger.com,1999:blog-5733547231775030285.post-7311314017139476052</id>
		<updated>2010-07-29T17:56:11+00:00</updated>
		<content type="html">It's a little known fact, but unittest actually has an API.&lt;br /&gt;&lt;br /&gt;This isn't the API that you deal with when you write tests, but rather an API that unittest itself uses when running tests. You could think of it as two interfaces: one for test frameworks and one for test authors. Both APIs are real, but both are poorly documented and often misunderstood or abused.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;code&gt;TestCase&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;An instance of &lt;code&gt;TestCase&lt;/code&gt; represents a single test. What you think of as a single test is up to you, but most of the time it's a unit test.&lt;br /&gt;&lt;br /&gt;A &lt;code&gt;TestCase&lt;/code&gt; object &lt;i&gt;must&lt;/i&gt; provide the following methods.&lt;br /&gt;&lt;br /&gt;This first list of methods can be thought of as a single interface, which these blog posts will call &lt;b&gt;&lt;code&gt;ITest&lt;/code&gt;&lt;/b&gt; given the lack of any better name.&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;countTestCases()&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;A method that returns the number of test cases this represents. It should always return 1.  &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;run(result=None)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Calling this method actually runs the test. &lt;code&gt;result&lt;/code&gt; is a &lt;code&gt;TestResult&lt;/code&gt; object. &lt;code&gt;run&lt;/code&gt; must call &lt;code&gt;result.startTest(self)&lt;/code&gt; when it commences running the test and &lt;code&gt;result.stopTest(self)&lt;/code&gt; when it is finished. Between these calls it must call a method on &lt;code&gt;result&lt;/code&gt; to signal the result of the test. &lt;code&gt;run&lt;/code&gt; must never raise an exception, and its return value is ignored. If &lt;code&gt;result&lt;/code&gt; is not provided, the &lt;code&gt;TestCase&lt;/code&gt; is obliged to make one.  &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;__call__(result)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Identical to &lt;code&gt;run(result)&lt;/code&gt;, provided for backwards compatibility.  &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;debug()&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Calling this method runs the test without collecting its results. It may raise exceptions. This method is rarely called by test frameworks.&lt;/dd&gt;&lt;/dl&gt;&lt;br /&gt;The following methods are specific to individual test case objects. We call this interface &lt;b&gt;&lt;code&gt;ITestCase&lt;/code&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;id()&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Should return a string that uniquely identifies the test. For Python tests, the fully-qualified Python name works well. The uniqueness of the id is not enforced.  &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;shortDescription()&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Should return a string that describes the test. Many test frameworks use this value to display test results.  &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;__str__&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Should return a string that describes the test. Frequently the same as either &lt;code&gt;shortDescription()&lt;/code&gt; or &lt;code&gt;id()&lt;/code&gt;. Many test frameworks use this value to display test results.&lt;/dd&gt;&lt;/dl&gt;There is also a second interface, one that matters to code that subclasses &lt;code&gt;TestCase&lt;/code&gt;. We'll deal with that in a later post.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;code&gt;TestSuite&lt;/code&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A &lt;code&gt;TestSuite&lt;/code&gt; represents nothing more or less than a bunch of tests.&lt;br /&gt;&lt;br /&gt;A &lt;code&gt;TestSuite&lt;/code&gt; must provide the &lt;code&gt;ITest&lt;/code&gt; interface described above, with the differences that you would expect from something that represents many tests: &lt;code&gt;countTestCases&lt;/code&gt; returns the number of tests in the suite; &lt;code&gt;run&lt;/code&gt; runs many tests and thus calls &lt;code&gt;result.startTest&lt;/code&gt; and kin many times over; &lt;code&gt;debug&lt;/code&gt; is the same and can explode anywhere.&lt;br /&gt;&lt;br /&gt;One difference is that &lt;code&gt;TestSuite.run&lt;/code&gt; must stop running tests as soon as it detects that &lt;code&gt;result.shouldStop&lt;/code&gt; is true.&lt;br /&gt;&lt;br /&gt;In addition, &lt;code&gt;TestSuite&lt;/code&gt; implements the following interface, which I'm giving the completely arbitrary non-existent name of &lt;code&gt;&lt;b&gt;ITestSuite&lt;/b&gt;&lt;/code&gt;.&lt;br /&gt;&lt;dl&gt;&lt;dt&gt;&lt;code&gt;addTest(test)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Takes an &lt;code&gt;ITest&lt;/code&gt; and adds it to the suite.  &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;addTests(tests)&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;Takes an iterable of &lt;code&gt;ITest&lt;/code&gt;s and adds them to the suite. Normally equivalent to &lt;code&gt;[suite.addTest(test) for test in tests]&lt;/code&gt;.  &lt;/dd&gt;&lt;dt&gt;&lt;code&gt;__iter__&lt;/code&gt;&lt;/dt&gt;&lt;dd&gt;All test suites must be iterable. Iterating over a test suite yields &lt;code&gt;ITest&lt;/code&gt;s. These may differ from the &lt;code&gt;ITest&lt;/code&gt;s provided to &lt;code&gt;addTest&lt;/code&gt; and &lt;code&gt;addTests&lt;/code&gt;.&lt;/dd&gt; &lt;/dl&gt;In later posts, I hope to document &lt;code&gt;TestResult&lt;/code&gt;, the subclassing interface of &lt;code&gt;TestCase&lt;/code&gt; and tell you exactly what I think about test loaders, test runners and the like.&lt;br /&gt;&lt;br /&gt;I'm blogging this partly because I don't know where else to write this up, but mostly because I need your help to make sure that I'm being clear and correct. Please comment with questions and corrections, and let me know if you find this at all helpful.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5733547231775030285-7311314017139476052?l=code.mumak.net&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>jml</name>
			<email>noreply@blogger.com</email>
			<uri>http://code.mumak.net/</uri>
		</author>
		<source>
			<title type="html">Mere Code</title>
			<subtitle type="html">Hacking, Software Collaboration, Testing and Diverse Other Topics of General Interest to the Practicing Programmer</subtitle>
			<link rel="self" href="http://code.mumak.net/rss.xml"/>
			<id>tag:blogger.com,1999:blog-5733547231775030285</id>
			<updated>2010-09-02T13:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Perdition 1.19-rc3 Released</title>
		<link href="http://horms.org/pleb_blossom/permalink/2010/2010-07-29T17_16_17.shtml"/>
		<id>http://horms.org/pleb_blossom/permalink/2010/2010-07-29T17_16_17.shtml</id>
		<updated>2010-07-29T08:16:17+00:00</updated>
		<content type="html">&lt;img src=&quot;http://horms.org/pleb_blossom/pics/2_8707.jpg&quot; width=&quot;120&quot; height=&quot;79&quot; alt=&quot;[Container Ship]&quot; align=&quot;left&quot; /&gt;
				&lt;p&gt;
				I have released version 1.19-rc3 of Perdition.
				This release fixes several problems. Perhaps most significantly,
				Thunderbird 3.1 can now re-connect to perdition SSL/TLS.
				&lt;p&gt;
				The code and related libraries are available as tarballs
				&lt;a href=&quot;http://horms.net/linux/perdition/download/1.19-rc3/&quot;&gt;here&lt;/a&gt;.
				More information is available in the &lt;a href=&quot;http://lists.vergenet.net/pipermail/perdition-users/2010-July/002367.html&quot;&gt;announcement email&lt;/a&gt;.
				More information about perdition &lt;a href=&quot;http://horms.net/linux/perdition/&quot;&gt;here&lt;/a&gt;.
				&lt;br clear=&quot;right&quot; /&gt;
				&lt;br clear=&quot;left&quot; /&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Simon Horman</name>
			<uri>http://horms.org/</uri>
		</author>
		<source>
			<title type="html">Horms</title>
			<subtitle type="html">Themable Horms!</subtitle>
			<link rel="self" href="http://www.vergenet.net/~horms/pleb_blossom/rss.xml"/>
			<id>http://www.vergenet.net/~horms/pleb_blossom/rss.xml</id>
			<updated>2010-08-31T09:12:49+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">kexec-tools 2.0.2 Released</title>
		<link href="http://horms.org/pleb_blossom/permalink/2010/2010-07-29T14_01_27.shtml"/>
		<id>http://horms.org/pleb_blossom/permalink/2010/2010-07-29T14_01_27.shtml</id>
		<updated>2010-07-29T05:01:27+00:00</updated>
		<content type="html">&lt;img src=&quot;http://horms.org/pleb_blossom/pics/2_7142.jpg&quot; width=&quot;120&quot; height=&quot;79&quot; alt=&quot;[Sumo]&quot; align=&quot;right&quot; /&gt;
				&lt;p&gt;
				I have released version 2.0.2 of kexec-tools.
				the user-space portion of kexec
				a soft-reboot and crash-dump facility of Linux and Xen.
				&lt;p&gt;
				There are changes since 2.0.2-rc1.
				&lt;p&gt;
				The code is available as a tarball &lt;a href=&quot;http://kernel.org/pub/linux/utils/kernel/kexec/kexec-tools-2.0.2-rc2.tar.gz&quot;&gt;here&lt;/a&gt; and in git &lt;a href=&quot;http://git.kernel.org/?p=utils/kernel/kexec/kexec-tools.git&quot;&gt;here&lt;/a&gt;.
				More information is available in the &lt;a href=&quot;http://lists.infradead.org/pipermail/kexec/2010-July/004301.html&quot;&gt;announcement email.
				&lt;p&gt;
				kexec-tools recently moved, so the URLs above are new.
				&lt;br clear=&quot;right&quot; /&gt;&lt;/p&gt;&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Simon Horman</name>
			<uri>http://horms.org/</uri>
		</author>
		<source>
			<title type="html">Horms</title>
			<subtitle type="html">Themable Horms!</subtitle>
			<link rel="self" href="http://www.vergenet.net/~horms/pleb_blossom/rss.xml"/>
			<id>http://www.vergenet.net/~horms/pleb_blossom/rss.xml</id>
			<updated>2010-08-31T09:12:49+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Moved</title>
		<link href="http://horms.org/pleb_blossom/permalink/2010/2010-07-29T12_23_52.shtml"/>
		<id>http://horms.org/pleb_blossom/permalink/2010/2010-07-29T12_23_52.shtml</id>
		<updated>2010-07-29T03:23:52+00:00</updated>
		<content type="html">&lt;img src=&quot;http://horms.org/pleb_blossom/pics/3_2309.jpg&quot; width=&quot;120&quot; height=&quot;79&quot; alt=&quot;[Coral in Miyakojima]&quot; align=&quot;left&quot; /&gt;
				My home page and blog have moved.  The new locations are:
				&lt;ul&gt;
				&lt;li&gt;Home: &lt;a href=&quot;http://horms.org/&quot;&gt;horms.org/&lt;/a&gt;
				&lt;li&gt;Feed: &lt;a href=&quot;http://horms.org/pleb_blossom/rss.xml&quot;&gt;horms.org/pleb_blossom/rss.xml&lt;/a&gt;
				&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
				&lt;br clear=&quot;left&quot; /&gt;</content>
		<author>
			<name>Simon Horman</name>
			<uri>http://horms.org/</uri>
		</author>
		<source>
			<title type="html">Horms</title>
			<subtitle type="html">Themable Horms!</subtitle>
			<link rel="self" href="http://www.vergenet.net/~horms/pleb_blossom/rss.xml"/>
			<id>http://www.vergenet.net/~horms/pleb_blossom/rss.xml</id>
			<updated>2010-08-31T09:12:49+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">GTK+ Meeting @ GUADEC 2010 &amp;#8211; update</title>
		<link href="http://blogs.gnome.org/ebassi/2010/07/28/gtk-meeting-guadec-2010-update/"/>
		<id>http://blogs.gnome.org/ebassi/2010/07/28/gtk-meeting-guadec-2010-update/</id>
		<updated>2010-07-28T12:42:58+00:00</updated>
		<content type="html">&lt;p&gt;since I&amp;#8217;m stupid and I scheduled the team meeting before I could actually be in The Hague, I had to move the meeting. and, again, since I&amp;#8217;m stupid I managed to schedule it against important talks of the day &amp;mdash; and my own.&lt;/p&gt;
&lt;p&gt;so: the GTK+ team meeting has been moved to the common area after the last talk of Wednesday, July 28th. sorry for the inconvenience I caused, and please don&amp;#8217;t hurt me when you see me.&lt;/p&gt;</content>
		<author>
			<name>ebassi</name>
			<uri>http://blogs.gnome.org/ebassi</uri>
		</author>
		<source>
			<title type="html">Context Switch</title>
			<subtitle type="html">Just another GNOME Blogs weblog</subtitle>
			<link rel="self" href="http://blogs.gnome.org/ebassi/feed/atom/"/>
			<id>http://blogs.gnome.org/ebassi/feed/atom/</id>
			<updated>2010-09-01T09:18:53+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">28 Jul 2010</title>
		<link href="http://www.advogato.org/person/dwmw2/diary.html?start=218"/>
		<id>http://www.advogato.org/person/dwmw2/diary.html?start=218</id>
		<updated>2010-07-28T08:08:19+00:00</updated>
		<content type="html">Things I hate today include:
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Symbian on my Nokia N97&lt;/b&gt; &amp;mdash; for
spontaneously rebooting as soon as I got off the ferry.
&lt;li&gt;&lt;b&gt;Google Maps&lt;/b&gt; &amp;mdash; for not caching the map tiles
I'd carefully downloaded while I was on the free ferry
wireless, showing my route to the hotel.
&lt;li&gt;&lt;b&gt;Mobile phone networks&lt;/b&gt; &amp;mdash; for the insane
amount of money it will have cost me to re-download the same
map tiles again, as I was driving.
&lt;/li&gt;&lt;/li&gt;&lt;/li&gt;&lt;/ul&gt;
It's almost as if it's a conspiracy &amp;mdash; especially
between the latter two.
&lt;p&gt;
I really need to get myself an N900 and start using
maemo-mapper again. Every time I try to use non-free
software, it hurts.&lt;/p&gt;</content>
		<author>
			<name>David Woodhouse</name>
			<uri>http://www.advogato.org/person/dwmw2/</uri>
		</author>
		<source>
			<title type="html">Advogato blog for dwmw2</title>
			<subtitle type="html">Advogato blog for dwmw2</subtitle>
			<link rel="self" href="http://www.advogato.org/person/dwmw2/rss.xml"/>
			<id>http://www.advogato.org/person/dwmw2/rss.xml</id>
			<updated>2010-09-03T02:13:01+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Drupal Bookmarks Module</title>
		<link href="http://levlafayette.com/node/136"/>
		<id>http://levlafayette.com/136 at http://levlafayette.com</id>
		<updated>2010-07-28T02:10:41+00:00</updated>
		<content type="html">&lt;p&gt;When developing a website, and in particular an intranet, for an organisation there is often a debate on what should be on the frontpage.&lt;/p&gt;
&lt;p&gt;Different departments and different individuals all seem to have &quot;strong opinions&quot; on the matter.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://levlafayette.com/node/136&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Lev Lafayette</name>
			<uri>http://levlafayette.com/blog</uri>
		</author>
		<source>
			<title type="html">Lev Lafayette blogs</title>
			<link rel="self" href="http://levlafayette.com/blog/feed"/>
			<id>http://levlafayette.com/blog/feed</id>
			<updated>2010-09-03T02:19:08+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">HOWTO screw up launching a free software project</title>
		<link href="http://www.flamingspork.com/blog/2010/07/28/howto-screw-up-launching-a-free-software-project/"/>
		<id>http://www.flamingspork.com/blog/?p=2088</id>
		<updated>2010-07-27T18:40:54+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://it.toolbox.com/people/josh_berkus/&quot;&gt;Josh Berkus&lt;/a&gt; gave a great talk at &lt;a href=&quot;http://www.lca2010.org.nz/&quot;&gt;linux.conf.au 2010&lt;/a&gt; (the CFP for &lt;a href=&quot;http://lca2011.linux.org.au/&quot;&gt;linux.conf.au 2011&lt;/a&gt; is open until August 7th) entitled &amp;#8220;How to destroy your community&amp;#8221; (&lt;a href=&quot;http://lwn.net/Articles/370157/&quot;&gt;lwn coverage&lt;/a&gt;). It was a simple, patented, 10 step program, finely homed over time to have maximum effect. Each step is simple and we can all name a dozen companies that have done at least three of them.&lt;/p&gt;
&lt;p&gt;Simon Phipps this past week at OSCON talked about &lt;a href=&quot;http://www.oscon.com/oscon2010/public/schedule/detail/15407&quot;&gt;Open Source Continuity in practice&lt;/a&gt; &amp;#8211; specifically mentioning some open source software projects that were at Sun but have since been abandoned by Oracle and different strategies you can put in place to ensure your software survives, and check lists for software you use to see if it will survive.&lt;/p&gt;
&lt;p&gt;So what can you do to not destroy your community, but ensure you never get one to begin with?&lt;/p&gt;
&lt;p&gt;Similar to destroying your community, you can just make it hard: &amp;#8220;&lt;strong&gt;&lt;em&gt;#1&lt;/em&gt;&lt;/strong&gt;&lt;em&gt; is to make the project depend as much as possible on difficult tools.&lt;/em&gt;&amp;#8221;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#1 A Contributor License Agreement and Copyright Assignment.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you happen to be in the unfortunate situation of being employed, this means you get to talk to lawyers. While your employer may well have an excellent Open Source Contribution Policy that lets you hack on GPL software on nights and weekends without a problem &amp;#8211; if you&amp;#8217;re handing over all the rights to another company &amp;#8211; there gets to be lawyer time.&lt;/p&gt;
&lt;p&gt;Your 1hr of contribution has now just ballooned. You&amp;#8217;re going to use up resources of your employer (hey, lawyers are &lt;strong&gt;not&lt;/strong&gt; cheap), it&amp;#8217;s going to suck up your work time talking to them, and if you can get away from this in under several hours over a few weeks, you&amp;#8217;re doing amazingly well &amp;#8211; especially if you work for a large company.&lt;/p&gt;
&lt;p&gt;If you are the kind of person with strong moral convictions, this is a non-starter. It is completely valid to not want to waste your employers&amp;#8217; time and money for a weekend project.&lt;/p&gt;
&lt;p&gt;People scratching their own itch, however small is how free software gets to be so awesome.&lt;/p&gt;
&lt;p&gt;I think we got this almost right with OpenStack. If you compare the agreement to the Apache License, there&amp;#8217;s so much common wording it ends up pretty much saying that you agree you are able to submit things to the project under the Apache license.  This (of course) makes the entire thing pretty redundant as if people are going to be dishonest about submitting things under the Apache licnese there&amp;#8217;s no reason they&amp;#8217;re not going to be dishonest and sign this too.&lt;/p&gt;
&lt;p&gt;You could also never make it about people &amp;#8211; just make it about your company.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#2 Make it all about the company, and never about the project&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;People are not going to show up, do free work for you to make your company big, huge and yourself rich.&lt;/p&gt;
&lt;p&gt;People are self serving. They see software they want only a few patches away, they see software that serves their company only a few patches away. They see software that is an excellent starting point for something totally different.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m not sure why this is down at number three&amp;#8230; it&amp;#8217;s possibly the biggest one for danger signs that you&amp;#8217;re going to destroy something that doesn&amp;#8217;t even yet exist&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#3 Open Core&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This pretty much automatically means that you&amp;#8217;re not going to accept certain patches for reasons of increasing your own company&amp;#8217;s short term profit. i.e. software is no longer judged on technical merits, but rather political ones.&lt;/p&gt;
&lt;p&gt;There is enough politics in free software as it is, creating more is not a feature.&lt;/p&gt;
&lt;p&gt;So when people ask me about how I think the OpenStack launch went, I really want people to know how amazing it can be to just not fuck it up to begin with. Initial damage is &lt;strong&gt;very&lt;/strong&gt;, &lt;strong&gt;&lt;em&gt;very&lt;/em&gt;&lt;/strong&gt; hard to ever undo. The number of Open Source software projects originally coming out of a company that are long running, have a wide variety of contributors and survive the original company are much smaller than you think.&lt;/p&gt;
&lt;p&gt;PostgreSQL has survived many companies coming and going around it, and is stronger than ever. MySQL only has a developer community around it almost in spite of the companies that have shepherded the project. With Drizzle I think we&amp;#8217;ve been doing okay &amp;#8211; I think we need to work on some things, but they&amp;#8217;re more generic to teams of people working on software in general rather than anything to do with a company.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/07/28/howto-screw-up-launching-a-free-software-project/&amp;t=HOWTO+screw+up+launching+a+free+software+project&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=HOWTO+screw+up+launching+a+free+software+project+-+http://b2l.me/ac34bv&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/07/28/howto-screw-up-launching-a-free-software-project/&amp;title=HOWTO+screw+up+launching+a+free+software+project&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/07/28/howto-screw-up-launching-a-free-software-project/&amp;title=HOWTO+screw+up+launching+a+free+software+project&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/07/28/howto-screw-up-launching-a-free-software-project/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Unexpected Downtime</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/07/unexpected_down.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/07/unexpected_down.html</id>
		<updated>2010-07-27T05:39:54+00:00</updated>
		<content type="html">&lt;p&gt;I seem to have picked up some sort of virus. I'm mostly offline while I wait for this to clear up. Please forgive any delays...&lt;/p&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry>
		<title type="html">Python 3</title>
		<link href="http://code.mumak.net/2010/07/python-3.html"/>
		<id>tag:blogger.com,1999:blog-5733547231775030285.post-1104916405873983161</id>
		<updated>2010-07-27T00:40:28+00:00</updated>
		<content type="html">I would be much more sympathetic to the whole Python 3 endeavour if they had made a serious effort to keep the major 2.x releases mutually compatible.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5733547231775030285-1104916405873983161?l=code.mumak.net&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>jml</name>
			<email>noreply@blogger.com</email>
			<uri>http://code.mumak.net/</uri>
		</author>
		<source>
			<title type="html">Mere Code</title>
			<subtitle type="html">Hacking, Software Collaboration, Testing and Diverse Other Topics of General Interest to the Practicing Programmer</subtitle>
			<link rel="self" href="http://code.mumak.net/rss.xml"/>
			<id>tag:blogger.com,1999:blog-5733547231775030285</id>
			<updated>2010-09-02T13:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Installing LAMMPS on a 64-bit AMD Opteron Cluster running CentOS 5 Linux (again)</title>
		<link href="http://levlafayette.com/node/134"/>
		<id>http://levlafayette.com/134 at http://levlafayette.com</id>
		<updated>2010-07-26T06:28:12+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://lammps.sandia.gov/&quot;&gt;LAMMPS&lt;/a&gt; (Large-scale Atomic/Molecular Massively Parallel Simulator) is used to model atoms or as a parallel particle simulator at the atomic, meso, or continuum scale. It has potentials for soft materials (biomolecules, polymers) and solid-state materials (metals, semiconductors) and coarse-grained or mesoscopic systems. You &lt;a href=&quot;http://levlafayette.com/node/121&quot;&gt;may remember&lt;/a&gt; a difficult install from the past.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://levlafayette.com/node/134&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Lev Lafayette</name>
			<uri>http://levlafayette.com/blog</uri>
		</author>
		<source>
			<title type="html">Lev Lafayette blogs</title>
			<link rel="self" href="http://levlafayette.com/blog/feed"/>
			<id>http://levlafayette.com/blog/feed</id>
			<updated>2010-09-03T02:19:08+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">In stillness …</title>
		<link href="http://adam.shand.net/iki/2010/in_stillness/"/>
		<id>http://adam.shand.net/iki/2010/in_stillness/</id>
		<updated>2010-07-25T09:44:06+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Bending into Padahastasana, the energy courses through my legs.  In sympathetic unison the crickets count the seconds away.&lt;/p&gt;

&lt;p&gt;Listening to the drone of my teachers voice, I feel a gecko scurry over my toes to hunt for moths in the glare of the lights.&lt;/p&gt;

&lt;p&gt;Looking up from my book, I see ochre tinged cliffs melting into the jungle below.  Fork-tailed swallows flit through the skies chasing insects and cuddle on the roof, sharing chirps of intimacy.&lt;/p&gt;

&lt;p&gt;Drifting in the pool, I strain to float effortlessly. Above me, in a haze of yellow and black butterflies, swarms of red dragonflies zigzag across the water.&lt;/p&gt;

&lt;p&gt;Playing on the beach, we are joined by two young children.  They howl in Thai as we skim a frisbee over their heads and laugh with unspoken pride when they pry the disk from the sky.&lt;/p&gt;

&lt;p&gt;Hanging out in an empty pub, we make aimless conversation with the owner. As we laugh and talk a party slowly forms around us, John and Boi on the guitar, Kris and I singing.&lt;/p&gt;

&lt;p&gt;Struggling to shape my thoughts into words, I'm approached by a young Indian boy who stares longingly at my computer.  To his astonishment I don't have any games installed, instead we entertain ourselves by taking silly pictures while his father looks on and laughs.&lt;/p&gt;

&lt;p&gt;Watching children play in the distance with a broken surfboard in the sea. Skimming it across the wash they shriek with laughter each time one of them gets catapulted into the air by an incoming wave.&lt;/p&gt;

&lt;p&gt;Sitting, facing north, I close my eyes.  I can hear the wind in the trees and feel the beat of my heart as I begin to count my breath.&lt;/p&gt;</content>
		<author>
			<name>Adam Shand</name>
			<uri>http://adam.shand.net/iki/</uri>
		</author>
		<source>
			<title type="html">adam.shand.net/iki</title>
			<subtitle type="html">adam.shand.net/iki</subtitle>
			<link rel="self" href="http://adam.shand.net/iki/index.atom"/>
			<id>http://adam.shand.net/iki/</id>
			<updated>2010-09-03T01:12:59+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Cans to Metal</title>
		<link href="http://vik-olliver.blogspot.com/2010/07/cans-to-metal.html"/>
		<id>tag:blogger.com,1999:blog-6757261993703476074.post-5893700635965275331</id>
		<updated>2010-07-24T04:14:00+00:00</updated>
		<content type="html">I was always told that the first thing you need to know about melting aluminium cans is that you don't really want to melt aluminium cans; it's too hard. Find other chunkier scrap aluminium instead. But I'm a sucker so I did it anyway.&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_w0pYYVNavoE/TEpw-giA6lI/AAAAAAAABDQ/nYPJbnLtmys/s1600/20100724_007.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_w0pYYVNavoE/TEpw-giA6lI/AAAAAAAABDQ/nYPJbnLtmys/s200/20100724_007.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5497330514345912914&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The big problem is that there is a lot of surface area on the cans, and that this encourages the aluminium to oxidise. Oxidised aluminium holds on to the liquid aluminium like a sponge, so unlike when you melt lead or pewter the metal does not all automagically drop to the bottom. It needs fluxes, chemicals, special furnaces and the like. Yeah, right.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TEp1cy4KBQI/AAAAAAAABEA/C0RwfYhWols/s1600/20100724_002.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TEp1cy4KBQI/AAAAAAAABEA/C0RwfYhWols/s200/20100724_002.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5497335432713209090&quot; /&gt;&lt;/a&gt;&lt;br /&gt;So, take a load of heatproof bricks or pavers and in a stable location away from flammable stuff construct a sturdy furnace. You'll note that mine is built from ordinary pavers on a mud bank, surrounded by foliage, and looks like it'll collapse at any moment. The trick is to have a long tunnel going into the bottom of the furnace, with a little doorway on top to allow you to put things in and take them out. The chimney takes the sparks up and away from your face and hair, and needs to be narrower than the furnace bottom.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TEpzRAOxWdI/AAAAAAAABDg/AXxWBCM-1jk/s1600/20100724_003.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TEpzRAOxWdI/AAAAAAAABDg/AXxWBCM-1jk/s200/20100724_003.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5497333031116036562&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Down the tunnel, you direct a hair-dryer, blower, hot-air stripper (good idea Forrest!), powerful fan or similar. This encourages flames and sparks from ordinary BBQ charcoal at the bottom of the furnace. Do not place the fan up against the tunnel or it may get flamed. If I need to tell you to keep a bucket of water and hose at hand, and warn you not to wet the fan you really shouldn't be doing this.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_w0pYYVNavoE/TEpzowM4LuI/AAAAAAAABDo/7iTfqh6yNuM/s1600/20100724_001.jpg&quot;&gt;&lt;img src=&quot;http://4.bp.blogspot.com/_w0pYYVNavoE/TEpzowM4LuI/AAAAAAAABDo/7iTfqh6yNuM/s200/20100724_001.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5497333439129988834&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Back to the cans. Flatten these as much as possible and pack the flattened remains hard into a steel can. This steel can lasts only one burn, so pack in as much as you can.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TEp0M8WOveI/AAAAAAAABDw/JStnj97tiMA/s1600/20100724_006.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TEp0M8WOveI/AAAAAAAABDw/JStnj97tiMA/s200/20100724_006.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5497334060865732066&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Now light the furnace. A couple of lit newspaper balls in the tunnel generally does the trick, or poke a blowtorch in there. Once you turn the fan on it's a matter of moments before the whole thing flares up. Once it's going turn off the fan, open the door and rearrange the charcoal so you can put the can inside. Put more charcoal against the can, close the door and turn the fan on again. At this point you realise the value of some peep-hole or crack through which you can watch the inferno.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TEp0mkLLnwI/AAAAAAAABD4/eVoC9uA5RpY/s1600/20100724_009.jpg&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_w0pYYVNavoE/TEp0mkLLnwI/AAAAAAAABD4/eVoC9uA5RpY/s200/20100724_009.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5497334501053538050&quot; /&gt;&lt;/a&gt;&lt;br /&gt;When the can is orange hot the contents miraculously shrink. once everything in the can is a nice, bright orange, turn off the fan and take it out - I use BBQ tongs. Rattle the contents about a bit, then turn it upside-down on a wide fireproof surface. Squish the pile of dross and molten aluminium streams out. Try to round these up into big blobs so they don't oxidise much when you re-melt them.&lt;br /&gt;&lt;br /&gt;Now you have reasonably-sized lumps of aluminium that you can do traditional backyard casting with.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/6757261993703476074-5893700635965275331?l=vik-olliver.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Vik Olliver</name>
			<email>noreply@blogger.com</email>
			<uri>http://vik-olliver.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Artifex</title>
			<link rel="self" href="http://vik-olliver.blogspot.com/feeds/posts/default?alt=rss"/>
			<id>tag:blogger.com,1999:blog-6757261993703476074</id>
			<updated>2010-08-23T03:12:12+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Waiting in the rain</title>
		<link href="http://passthesource.org.nz/2010/07/23/waiting-in-the-rain/"/>
		<id>http://passthesource.org.nz/?p=278</id>
		<updated>2010-07-22T21:58:51+00:00</updated>
		<content type="html">&lt;p&gt;By 8am this morning, a crowd of 13 people had gathered in the drizzle outside Wellington&amp;#8217;s Magnummac store, eagerly awaiting the New Zealand launch of Apple&amp;#8217;s iPad.&lt;/p&gt;
&lt;p&gt;I decided to ask them why.&lt;/p&gt;
&lt;p&gt;&amp;#8220;This device is changing the rules of digital engagement&amp;#8221;, I couldn&amp;#8217;t wait to get my hands on one; I want to be the first person in New Zealand to get one.&amp;#8221; The hopeful, but ill-informed, gentleman at the head of the queue told me.&lt;/p&gt;
&lt;p&gt;&amp;#8220;You know that people have been importing them for months?&amp;#8221;&lt;/p&gt;
&lt;p&gt;&amp;#8220;This device is changing the rules of digital engagement&amp;#8221; he replied, effectively ending the interview.&lt;/p&gt;
&lt;p&gt;I moved along the queue, stopping in front of a lady who, I quickly noticed, had a tattoo of a heart with an apple in the middle of it on each hand and &amp;#8220;A-P-L-E&amp;#8221; spelled out across her knuckles.  I moved along the queue.&lt;/p&gt;
&lt;p&gt;A normal looking gentleman told me: &amp;#8220;We want to stand at the intersection of computers and humanism&amp;#8221;.  I noticed that he was nervously fingering a small white book on which I could make out the title &amp;#8220;The Quotations of Chairman Jobs&amp;#8221;, and I fled.&lt;/p&gt;
&lt;p&gt;As I passed the last person, he grabbed me and confided that, in his inebriated state, he&amp;#8217;d thought it was the queue for the soup kitchen.  I explained.  We fled together along Vivian Street.&lt;/p&gt;</content>
		<author>
			<name>Don Christie</name>
			<uri>http://passthesource.org.nz</uri>
		</author>
		<source>
			<title type="html">Pass the Source</title>
			<subtitle type="html">Free software today</subtitle>
			<link rel="self" href="http://passthesource.org.nz/feed/"/>
			<id>http://passthesource.org.nz/feed/</id>
			<updated>2010-09-02T21:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Travelling, Speaking, Scaling and Aegiring</title>
		<link href="http://feedproxy.google.com/~r/skwashd/~3/hlkRpUdtQQU/travelling-speaking-scaling-and-aegiring"/>
		<id>http://davehall.com.au/139 at http://davehall.com.au</id>
		<updated>2010-07-22T12:23:18+00:00</updated>
		<content type="html">&lt;p&gt;The next couple of months are going to be a crazy ride.  I will be visiting at least 7 countries, speaking on 8 or more days in a 5 week period.  The talks will be focused on Drupal and Aegir.  My schedule is below.&lt;/p&gt;
&lt;h2&gt;Horizontally Scaling Drupal - Melbourne&lt;/h2&gt;
&lt;p&gt;On 7 August I'll be running a 1 day workshop around the theme of &lt;a href=&quot;http://workshops.davehall.com.au/workshop/horizontally-scaling-drupal-2010-08-07&quot;&gt;horizontally scaling Drupal&lt;/a&gt;.  The content is built on the knowledge I developed building, deploying and managing around 2100 sites for a client.  This event has very limited capacity and has almost sold out.&lt;/p&gt;
&lt;h2&gt;DrupalCon - Denmark&lt;/h2&gt;
&lt;p&gt;Denmark is hosting the European leg of &lt;a href=&quot;http://cph2010.drupal.org&quot;&gt;DrupalCon&lt;/a&gt; this year.  I will be attending the full conference.  I won't be presenting, but I will be getting involved with some of the BoFs.  I had a ball at &lt;a href=&quot;http://sf2010.drupal.org&quot;&gt;DrupalCon San Francisco&lt;/a&gt; earlier in the year.&lt;/p&gt;
&lt;h2&gt;Efficiently Managing Many Drupal Sites - Slovakia&lt;/h2&gt;
&lt;p&gt;After spending a couple of days recovering from DrupalCon, I'll be teaming up with the crew at &lt;a href=&quot;http://sven.sk&quot;&gt;Sven Creative&lt;/a&gt; in Bratslavia, to run a 2 day intensive workshop on horizontally scaling Drupal and development workflows.  For more information &lt;a href=&quot;http://www.sven.sk/training&quot;&gt;check out the workshop website&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Free Software Balkans - Albania&lt;/h2&gt;
&lt;p&gt;On the weekend of 11-12 September, the inaugural &lt;a href=&quot;http://flossal.org/freesb-2010-conference/&quot;&gt;Free Software Balkans Conference&lt;/a&gt; will be held at the University of Vlore, Albania.  I'll be there speaking about Drupal and Aegir.  In addition to this I will be running half day build your first Drupal site workshops around the country.  The dates and locations for the workshops are still being finalised.&lt;/p&gt;
&lt;h2&gt;OSI Days - India&lt;/h2&gt;
&lt;p&gt;On my way back to Australia I will be taking a side trip to Chennai, via Delhi, for &lt;a href=&quot;http://osidays.com&quot;&gt;OSI Days 2010&lt;/a&gt;, Asia's largest open source conference.  I will be presenting sessions on Aegir and Drupal.  This looks like it will be a huge event.&lt;/p&gt;
&lt;h2&gt;Other Events&lt;/h2&gt;
&lt;p&gt;I've launched a new site &lt;a href=&quot;http://workshops.davehall.com.au&quot;&gt;workshops.davehall.com.au&lt;/a&gt; to list my training and speaking engagements.  As dates are locked in I'll be adding them to the site.&lt;/p&gt;
&lt;p&gt;If you would like to meet with me while I'm on the road, &lt;a href=&quot;http://www.tripit.com/people/skwashd&quot;&gt;add me to your tripit network&lt;/a&gt;, &lt;a href=&quot;http://identi.ca/skwashd&quot;&gt;follow me on identi.ca&lt;/a&gt; or &lt;a href=&quot;http://twitter.com/skwashd&quot;&gt;twitter&lt;/a&gt; or &lt;a href=&quot;http://linkedin.com/in/davehall&quot;&gt;add me to your network on LinkedIn&lt;/a&gt;.&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/skwashd/~4/hlkRpUdtQQU&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Dave Hall</name>
			<uri>http://davehall.com.au/blog/dave</uri>
		</author>
		<source>
			<title type="html">Dave's blog</title>
			<link rel="self" href="http://feeds.feedburner.com/skwashd"/>
			<id>http://feeds.feedburner.com/skwashd</id>
			<updated>2010-08-30T11:18:58+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">A tale of a bug…</title>
		<link href="http://www.flamingspork.com/blog/2010/07/22/a-tale-of-a-bug/"/>
		<id>http://www.flamingspork.com/blog/?p=2083</id>
		<updated>2010-07-22T00:10:19+00:00</updated>
		<content type="html">&lt;p&gt;So I sometimes get asked if we funnel back bug reports or patches back to &lt;a href=&quot;http://mysql.com&quot;&gt;MySQL&lt;/a&gt; from &lt;a href=&quot;http://drizzle.org&quot;&gt;Drizzle&lt;/a&gt;. Also, &lt;a href=&quot;http://mariadb.org/&quot;&gt;MariaDB&lt;/a&gt; adds some interest here as they are a lot closer (and indeed compatible with) to MySQL. With &lt;a href=&quot;http://drizzle.org&quot;&gt;Drizzle&lt;/a&gt;, we have deviated really quite heavily from the MySQL codebase. There are still some common areas, but they&amp;#8217;re getting rarer (especially to just directly apply a patch).&lt;/p&gt;
&lt;p&gt;Back in June 2009, while working on Drizzle at Sun, I found a bug that I knew would affect both. The patch would even directly apply (well&amp;#8230; close, but I made one anyway).&lt;/p&gt;
&lt;p&gt;So the typical process of me filing a MySQL bug these days is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stewart files bug&lt;/li&gt;
&lt;li&gt;In the next window of Sveta being awake, it&amp;#8217;s verified.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This happened within a really short time.&lt;/p&gt;
&lt;p&gt;Unfortunately, what happens next isn&amp;#8217;t nearly as awesome.&lt;/p&gt;
&lt;p&gt;Namely, nothing. For a year.&lt;/p&gt;
&lt;p&gt;So a year later, I filed it in launchpad for MariaDB.&lt;/p&gt;
&lt;p&gt;So, MariaDB is gearing up for a release, it&amp;#8217;s a relatively low priority bug (but it does have a working, correct and obvious patch), within 2 months, Monty applied it and improved the error checking around it.&lt;/p&gt;
&lt;p&gt;So &lt;a href=&quot;https://bugs.launchpad.net/maria/+bug/588599&quot;&gt;MariaDB bug 588599&lt;/a&gt; is Fix Committed (June 2nd 2010 &amp;#8211; July 20th 2010), &lt;a href=&quot;http://bugs.mysql.com/bug.php?id=45377&quot;&gt;MySQL Bug ﻿﻿45377&lt;/a&gt; is still Verified (July 20th 2009 &amp;#8211; &amp;#8230;.).&lt;/p&gt;
&lt;p&gt;(and yes, this tends to be a general pattern I find)&lt;/p&gt;
&lt;p&gt;But Mark says he gets things through&amp;#8230; so yay for him.2&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/07/22/a-tale-of-a-bug/&amp;t=A+tale+of+a+bug...&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=A+tale+of+a+bug...+-+http://b2l.me/abqvws&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/07/22/a-tale-of-a-bug/&amp;title=A+tale+of+a+bug...&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/07/22/a-tale-of-a-bug/&amp;title=A+tale+of+a+bug...&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/07/22/a-tale-of-a-bug/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">How we solve problems</title>
		<link href="http://adam.shand.net/iki/2010/how_we_solve_problems/"/>
		<id>http://adam.shand.net/iki/2010/how_we_solve_problems/</id>
		<updated>2010-07-21T07:23:01+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;This description from &lt;a href=&quot;http://www.newsweek.com/2010/07/10/the-creativity-crisis.html&quot;&gt;Newsweek&lt;/a&gt; on what happens in our brains when we're creatively solving problems is wonderful.  I don't think I could have come up with these words but they describe &lt;strong&gt;exactly&lt;/strong&gt; what it feels like to me when I'm involved in difficult problem solving.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;When you try to solve a problem, you begin by concentrating on obvious facts and familiar solutions, to see if the answer lies there. This is a mostly left-brain stage of attack. If the answer doesn’t come, the right and left hemispheres of the brain activate together. Neural networks on the right side scan remote memories that could be vaguely relevant. A wide range of distant information that is normally tuned out becomes available to the left hemisphere, which searches for unseen patterns, alternative meanings, and high-level abstractions.&lt;/p&gt;
  
  &lt;p&gt;Having glimpsed such a connection, the left brain must quickly lock in on it before it escapes. The attention system must radically reverse gears, going from defocused attention to extremely focused attention. In a flash, the brain pulls together these disparate shreds of thought and binds them into a new single idea that enters consciousness. This is the “aha!” moment of insight, often followed by a spark of pleasure as the brain recognizes the novelty of what it’s come up with.&lt;/p&gt;
  
  &lt;p&gt;Now the brain must evaluate the idea it just generated. Is it worth pursuing? Creativity requires constant shifting, blender pulses of both divergent thinking and convergent thinking, to combine new information with old and forgotten ideas. Highly creative people are very good at marshaling their brains into bilateral mode, and the more creative they are, the more they dual-activate.&lt;/p&gt;
&lt;/blockquote&gt;</content>
		<author>
			<name>Po Bronson and Ashley Merryman</name>
			<uri>http://adam.shand.net/iki/</uri>
		</author>
		<source>
			<title type="html">adam.shand.net/iki</title>
			<subtitle type="html">adam.shand.net/iki</subtitle>
			<link rel="self" href="http://adam.shand.net/iki/index.atom"/>
			<id>http://adam.shand.net/iki/</id>
			<updated>2010-09-03T01:12:59+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Coding Style As A Failure Of Language Design</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/07/coding_style_as.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/07/coding_style_as.html</id>
		<updated>2010-07-21T04:41:17+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;Variance in coding style is a huge problem. Reading code where the style varies all over the place is painful. Moving code from one place to another and having to restyle it is awful. Constantly adjusting the style in which you're writing code to conform to the local style of the project, module, file, function or line you're modifying is miring.
&lt;p&gt;Therefore projects adopt style rules to encourage and enforce a uniform style for the project's code. However, these rules still have to be learned, and adherence to them checked and corrected, usually by humans. This takes a lot of time and effort, and imperfect enforcement means code style consistency gradually decays over time. And even if it were not so, code moving between projects looks out of place because style rules are rarely identical between projects --- unless you reformat it all, in which case you damage the relationship with the original code.
&lt;p&gt;I see this as a failure of language design. Languages already make rules about syntax that are somewhat arbitrary. Projects imposing additional syntax restrictions indicate that the language did not constrain the syntax enough; if the language syntax was sufficiently constrained, projects would not feel the need to do it. Syntax would be uniform within and across projects, and developers would not need to learn multiple variants of the same language. More syntactic restrictions would be checked and enforced by the compiler, reducing the need for human (or even tool-assisted) review. IDE assistance could be more precise.
&lt;p&gt;Two major counter-arguments arise. People will argue that coding style is a personal preference and therefore diversity should be allowed. This is true if you only participate in particularly small projects, but if you work in a large project then --- unless you are exceptionally fortunate --- you will have to deal with a coding style that is not your preference, no matter what. (Maciej Stachowiak once said that willingness to subjugate one's personal preferences to a project's preferences is a useful barometer of character, and I agree!)
&lt;p&gt;A more interesting counter-argument is that many coding style rules aren't sufficiently formalized so as to be machine-checkable, and might even be very difficult to formalize at all. This is true; for example, line-breaking rules or variable naming rules might be very difficult to formalize. So I relax my thesis to claim that at least those rules which can be formalized should be baked into the language.
&lt;p&gt;(Figuring out exactly which rules can be formalized, and exploring alternative syntax designs that maximize automatic style checkability while still being nice syntax, sound like fun research! Programming language syntax is one of those areas that I think has been greatly under-researched, especially from the HCI point of view.)&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry>
		<title type="html">pyflakes-doctest</title>
		<link href="http://code.mumak.net/2010/07/pyflakes-doctest.html"/>
		<id>tag:blogger.com,1999:blog-5733547231775030285.post-2949402571919150537</id>
		<updated>2010-07-20T14:08:10+00:00</updated>
		<content type="html">Someone at Canonical (I don't know who) wrote something cool once to get &lt;a href=&quot;http://divmod.org/trac/wiki/DivmodPyflakes&quot;&gt;Pyflakes&lt;/a&gt; (the best Python linter)&amp;nbsp;to run on doctests.&lt;br /&gt;&lt;br /&gt;It has recently been deleted from the &lt;a href=&quot;https://code.launchpad.net/~launchpad-pqm/launchpad/stable&quot;&gt;Launchpad tree&lt;/a&gt;, but since it's so useful I thought I'd make it available.&lt;br /&gt;&lt;br /&gt;Download &lt;a href=&quot;http://people.canonical.com/~jml/pyflakes-doctest&quot;&gt;pyflakes-doctest&lt;/a&gt; whenever you'd like. If you can get it into Pyflakes trunk, then you'll become even more wonderfully, deliciously fabulous and creamy than you undoubtedly are already. Get rid of the Launchpad-specific stuff though.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5733547231775030285-2949402571919150537?l=code.mumak.net&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>jml</name>
			<email>noreply@blogger.com</email>
			<uri>http://code.mumak.net/</uri>
		</author>
		<source>
			<title type="html">Mere Code</title>
			<subtitle type="html">Hacking, Software Collaboration, Testing and Diverse Other Topics of General Interest to the Practicing Programmer</subtitle>
			<link rel="self" href="http://code.mumak.net/rss.xml"/>
			<id>tag:blogger.com,1999:blog-5733547231775030285</id>
			<updated>2010-09-02T13:12:55+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">At OSCON</title>
		<link href="http://www.flamingspork.com/blog/2010/07/20/at-oscon/"/>
		<id>http://www.flamingspork.com/blog/?p=2079</id>
		<updated>2010-07-20T02:24:15+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;m at OSCON this week. Come say hi and talk Drizzle, Rackspace, cloud, photography, vegan food or brewing.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/07/20/at-oscon/&amp;t=At+OSCON&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=At+OSCON+-+File: /data/app/webapp/functions.php&lt;br /&gt;Line: 43&lt;br /&gt;Message: Table 'b2l_shrinker.phurl_urls' doesn't exist&amp;source=shareaholic&quot;&gt;&lt;br /&gt;Line: 43&lt;br /&gt;Message: Table 'b2l_shrinker.phurl_urls' doesn't exist&amp;amp;source=shareaholic&quot;&gt;&lt;br /&gt;Line: 43&lt;br /&gt;Message: Table 'b2l_shrinker.phurl_urls' doesn't exist&amp;amp;source=shareaholic&quot;&gt;&lt;br /&gt;Line: 43&lt;br /&gt;Message: Table 'b2l_shrinker.phurl_urls' doesn't exist&amp;amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/07/20/at-oscon/&amp;title=At+OSCON&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/07/20/at-oscon/&amp;title=At+OSCON&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/07/20/at-oscon/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Flying</title>
		<link href="http://horms.org/pleb_blossom/permalink/2010/2010-07-20T09_55_18.shtml"/>
		<id>http://horms.org/pleb_blossom/permalink/2010/2010-07-20T09_55_18.shtml</id>
		<updated>2010-07-20T00:55:18+00:00</updated>
		<content type="html">&lt;img src=&quot;http://horms.org/pleb_blossom/pics/3_8409.jpg&quot; width=&quot;120&quot; height=&quot;79&quot; alt=&quot;[This is not my bicycle]&quot; align=&quot;right&quot; /&gt;
				&lt;p&gt;
				Due to tyre troubles with my other two bikes I was &quot;forced&quot; to ride my
				Cannondale road bike to work this morning. The first time I've ridden it since
				well before Hikari was born last November. Wow, that bike is light and voom
				it flies. (And I put the brakes back together correctly after shipping it
				from Sydney!)
				&lt;p&gt;
				In semi-related news, its really warm in Tokyo at the moment.
				&lt;br clear=&quot;right&quot; /&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Simon Horman</name>
			<uri>http://horms.org/</uri>
		</author>
		<source>
			<title type="html">Horms</title>
			<subtitle type="html">Themable Horms!</subtitle>
			<link rel="self" href="http://www.vergenet.net/~horms/pleb_blossom/rss.xml"/>
			<id>http://www.vergenet.net/~horms/pleb_blossom/rss.xml</id>
			<updated>2010-08-31T09:12:49+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Perks</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/07/perks.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/07/perks.html</id>
		<updated>2010-07-19T21:14:04+00:00</updated>
		<content type="html">&lt;p&gt;Working on plugin bugs sucks, but sometimes it's fun to watch &lt;a href=&quot;http://www.youtube.com/watch?v=lx4fc9oRerw&quot;&gt;a video clip&lt;/a&gt; over and over again.&lt;/p&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Every Single (Awesome) Game I’ve Played</title>
		<link href="http://digitaldj.net/2010/07/20/every-single-awesome-game-ive-played/"/>
		<id>http://digitaldj.net/?p=2897</id>
		<updated>2010-07-19T17:12:04+00:00</updated>
		<content type="html">&lt;p&gt;Today, I spent a couple of hours thinking back to how awesome the good ol&amp;#8217; days of DOS games were and that now&amp;#8230;I hardly play games. Mainly because I find them all pretty damn boring. I thought it&amp;#8217;d be awesome to make a 1995 super-computer, say a couple of Pentium Pros and a kick-ass 3dfx Voodoo card (or two), just to play some retro games. Alas, finding rare parts, even on eBay, is rather difficult and it&amp;#8217;d probably be a pretty expensive ordeal. Guess I&amp;#8217;ll just have to stick with DOSbox and VMware.&lt;/p&gt;
&lt;p&gt;On another note, I present you with the list of awesome game I&amp;#8217;ve played. You&amp;#8217;ll notice how it begins with a shit-ton of DOS games, ventures briefly into Windows, then heads to the PSX, then to WoW, and finally, the world of casual gaming.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The DOS Era (1991 &amp;#8211; 1997)&lt;/strong&gt;&lt;br /&gt;
Ancients&lt;br /&gt;
Battle Chess 4000&lt;br /&gt;
Bio Menace&lt;br /&gt;
Blake Stone&lt;br /&gt;
Blood&lt;br /&gt;
Blues Brothers &amp;#8211; Jukebox Adventure&lt;br /&gt;
Bouncing Babies&lt;br /&gt;
Captain Comic&lt;br /&gt;
Carmageddon&lt;br /&gt;
Catacombs 3-D&lt;br /&gt;
CD-Man&lt;br /&gt;
Command &amp;amp; Conquer: Red Alert&lt;br /&gt;
Commander Keen 1, 2, 3, 4, 5, Dreams, 6&lt;br /&gt;
Companions of Xanth&lt;br /&gt;
Cosmo&amp;#8217;s Cosmic Adventure&lt;br /&gt;
Crysal Caves&lt;br /&gt;
Dangerous Dave&lt;br /&gt;
Descent, 2&lt;br /&gt;
Doom 1, 2&lt;br /&gt;
Duke Nukem 1, 2, 3D (Atomic)&lt;br /&gt;
Dune&lt;br /&gt;
Earthworm Jim&lt;br /&gt;
ElectroMan&lt;br /&gt;
Epic Pinball&lt;br /&gt;
Fantastic Dizzy&lt;br /&gt;
Flashback&lt;br /&gt;
Freddy Pharkas &amp;#8211; Frontier Pharmacist&lt;br /&gt;
Fuzzy&amp;#8217;s World of Miniature Space Golf&lt;br /&gt;
Gertrude&amp;#8217;s Secrets&lt;br /&gt;
Goldfields&lt;br /&gt;
Gorillas (QBASIC)&lt;br /&gt;
Grand Theft Auto 1, 2&lt;br /&gt;
Heretic, Shadow of the Serpent Riders&lt;br /&gt;
Hexen: Beyond Heretic, Deathkings of the Dark Citadel&lt;br /&gt;
Hocus Pocus&lt;br /&gt;
Hugo&amp;#8217;s House of Horrors, Whodunit, Jungle of Doom&lt;br /&gt;
IndyCar Racing&lt;br /&gt;
Jazz Jackrabbit, 2&lt;br /&gt;
Jetpack&lt;br /&gt;
Ken&amp;#8217;s Labyrinth&lt;br /&gt;
King&amp;#8217;s Quest 1, 2, 3, 4, 5, 6, 7&lt;br /&gt;
Lamborghini: American Challenge&lt;br /&gt;
Lemmings&lt;br /&gt;
Links: The Challenge of Golf&lt;br /&gt;
Lotus III: The Ultimate Challenge&lt;br /&gt;
Mario Is Missing&lt;br /&gt;
Monster Bash&lt;br /&gt;
Need for Speed&lt;br /&gt;
Nibbles (QBASIC)&lt;br /&gt;
Oddworld: Abe&amp;#8217;s Oddysee&lt;br /&gt;
One Must Fall: 2097&lt;br /&gt;
Prince of Persia&lt;br /&gt;
Quake&lt;br /&gt;
Raptor&lt;br /&gt;
Reader Rabbit&lt;br /&gt;
Rise of the Triad&lt;br /&gt;
Sango Fighter&lt;br /&gt;
Shadow Warrior&lt;br /&gt;
Sherlock Holmes: Consulting Detective&lt;br /&gt;
Sim City 2000&lt;br /&gt;
Sim City Classic&lt;br /&gt;
Sim Farm&lt;br /&gt;
Stunts&lt;br /&gt;
SWIV 3D&lt;br /&gt;
Terminal Velocity&lt;br /&gt;
The Incredible Machine&lt;br /&gt;
Theme Park&lt;br /&gt;
Tomb Raider&lt;br /&gt;
Turok&lt;br /&gt;
Wacky Wheels&lt;br /&gt;
Warcraft 1, 2&lt;br /&gt;
Wipeout&lt;br /&gt;
Wolfenstein 3D (Spear of Destiny)&lt;br /&gt;
WordMAX&lt;br /&gt;
Worms&lt;br /&gt;
Zool&lt;br /&gt;
&lt;strong&gt;The Windows Era (~1995 &amp;#8211; 2004)&lt;/strong&gt;&lt;br /&gt;
3D Movie Maker&lt;br /&gt;
3D Pinball for Windows&lt;br /&gt;
Age of Empires 1, 2, 3&lt;br /&gt;
Ballistics&lt;br /&gt;
Battlefield 1942&lt;br /&gt;
Catz&lt;br /&gt;
Chip&amp;#8217;s Challenge&lt;br /&gt;
Counter Strike&lt;br /&gt;
Crazy Taxi&lt;br /&gt;
Daytona USA&lt;br /&gt;
Deer Hunter&lt;br /&gt;
Destruction Derby&lt;br /&gt;
DogDay&lt;br /&gt;
Doom 3&lt;br /&gt;
Doom 3, Resurrection of Evil&lt;br /&gt;
Dope Wars&lt;br /&gt;
Elasto Mania&lt;br /&gt;
Enter The Matrix&lt;br /&gt;
FIFA 97&lt;br /&gt;
Flight Simulator 2004&lt;br /&gt;
Fury3&lt;br /&gt;
Grim Fandango&lt;br /&gt;
Half Life&lt;br /&gt;
Halo&lt;br /&gt;
Heretic II&lt;br /&gt;
HeXen II, Portal of Praevus&lt;br /&gt;
Hitman: Codename 47, 2: Silent Assassin, Contracts, Blood Money&lt;br /&gt;
Hong Kong Mahjong&lt;br /&gt;
Hover!&lt;br /&gt;
I.G.I.&lt;br /&gt;
Jurassic Park: Chaos Island&lt;br /&gt;
Kid Pix&lt;br /&gt;
Kingpin: Life of Crime&lt;br /&gt;
Math Blaster&lt;br /&gt;
Math Circus&lt;br /&gt;
Max Payne, Max Payne II&lt;br /&gt;
MechWarrior 2&lt;br /&gt;
Metal Gear Solid 2&lt;br /&gt;
Micro Machines V3&lt;br /&gt;
Microsoft Golf&lt;br /&gt;
MindMaze (that game in Microsoft Encarta!)&lt;br /&gt;
Monster Truck Madness&lt;br /&gt;
Motocross Madness 1, 2&lt;br /&gt;
Myst, Riven, III, IV, V, realMYST&lt;br /&gt;
Need for Speed 2&lt;br /&gt;
Need for Speed: Underground, Underground 2&lt;br /&gt;
Postal, 2&lt;br /&gt;
Putt-Putt&lt;br /&gt;
Pyst&lt;br /&gt;
Quake II, The Reckoning, Ground Zero&lt;br /&gt;
Quake III Arena, Team Arena, Quake Live,&lt;br /&gt;
Rainbow Six: Rouge Spear&lt;br /&gt;
Rally Championship&lt;br /&gt;
Red Faction&lt;br /&gt;
Redneck Rampage&lt;br /&gt;
Sega Rally&lt;br /&gt;
Sim Park&lt;br /&gt;
SimTower&lt;br /&gt;
SkiFree&lt;br /&gt;
Soldier of Fortune&lt;br /&gt;
Sonic CD&lt;br /&gt;
Starcraft, Brood War&lt;br /&gt;
SWAT&lt;br /&gt;
The Land of Um&lt;br /&gt;
The Sims&lt;br /&gt;
Theme Hospital&lt;br /&gt;
Titanic: Adventure Out Of Time&lt;br /&gt;
ToCA Race Driver 2&lt;br /&gt;
Typing of the Dead&lt;br /&gt;
Unreal, Unreal Tournament, Unreal Tournament 2003, Unreal 2, Unreal Tournament 2004,&lt;br /&gt;
Virtua Cop&lt;br /&gt;
V-Rally&lt;br /&gt;
Where In The World Is Carmen Sandiego?&lt;br /&gt;
Yoot Tower&lt;br /&gt;
&lt;strong&gt;The PSX Era (1999 &amp;#8211; 2002)&lt;/strong&gt;&lt;br /&gt;
Ace Combat 1, 2&lt;br /&gt;
Colin McRae Rally 1, 2.0&lt;br /&gt;
Crash Bandicoot, 2:Cortex Strikes Back, 3:Warped&lt;br /&gt;
Croc 1, 2&lt;br /&gt;
Die Hard&lt;br /&gt;
Dino Crisis&lt;br /&gt;
Driver&lt;br /&gt;
Gex&lt;br /&gt;
Gran Turismo 1, 2&lt;br /&gt;
Metal Gear Solid: Integral&lt;br /&gt;
Point Blank&lt;br /&gt;
R4: Ridge Racer Type 4&lt;br /&gt;
Silent Hill&lt;br /&gt;
Siphon Filter&lt;br /&gt;
Spyro the Dragon&lt;br /&gt;
Tenchu&lt;br /&gt;
Time Crisis&lt;br /&gt;
Wargames: Defcon 1&lt;br /&gt;
&lt;strong&gt;WoW Era (2005 &amp;#8211; 2009)&lt;/strong&gt;&lt;br /&gt;
World of Warcraft, Burning Crusade, Wrath of the Lich King&lt;br /&gt;
&lt;strong&gt;Post-WoW Era (2008 &amp;#8211; 2010)&lt;/strong&gt;&lt;br /&gt;
Colin McRae: DiRT 1, DiRT 2&lt;br /&gt;
Counter-Strike: Source&lt;br /&gt;
Crysis&lt;br /&gt;
Knytt, Stories&lt;br /&gt;
Left 4 Dead 1, Left 4 Dead 2&lt;br /&gt;
Portal&lt;br /&gt;
Team Fortress 2&lt;br /&gt;
Unreal Tournament 3&lt;br /&gt;
Within A Deep Forest&lt;br /&gt;
&lt;strong&gt;iPhone Era (2009 &amp;#8211; 2010)&lt;/strong&gt;&lt;br /&gt;
Angry Birds&lt;br /&gt;
BubblePRO&lt;br /&gt;
Doodle Jump&lt;br /&gt;
Flight Control&lt;br /&gt;
Need for Speed Undercover&lt;br /&gt;
Paper Toss&lt;br /&gt;
Peggle&lt;br /&gt;
Plants vs. Zombies&lt;br /&gt;
Rock Band&lt;br /&gt;
Spikey&amp;#8217;s Bounce Around&lt;br /&gt;
Super Monkey Ball 1, 2&lt;br /&gt;
Tap Tap Revenge&lt;br /&gt;
&lt;strong&gt;Other&lt;/strong&gt;&lt;br /&gt;
Donkey Kong Country (SNES)&lt;br /&gt;
GoldenEye (N64)&lt;br /&gt;
Granny&amp;#8217;s Garden (C64)&lt;br /&gt;
Guitar Hero (Xbox 360)&lt;br /&gt;
Pokemon Red, Blue, Green, Yellow (GB)&lt;br /&gt;
Sonic 1, 2, 3, &amp;amp; Knuckles (Mega Drive)&lt;br /&gt;
Super Mario World (SNES)&lt;br /&gt;
Wayne Gretzky&amp;#8217;s 3D Hockey (N64)&lt;br /&gt;
Wii Sports (Wii)&lt;/p&gt;
&lt;p&gt;I am sure to update this list as I can think of any DOS games that come to mind. I currently have one game racking my brain that I played a ton and just can&amp;#8217;t remember the name, sigh.&lt;/p&gt;</content>
		<author>
			<name>Grant Pannell</name>
			<uri>http://digitaldj.net</uri>
		</author>
		<source>
			<title type="html">Grant Pannell</title>
			<subtitle type="html">I am Grant. This is my site.</subtitle>
			<link rel="self" href="http://digitaldj.net/feed/"/>
			<id>http://digitaldj.net/feed/</id>
			<updated>2010-08-30T04:13:42+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Summit</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/07/summit.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/07/summit.html</id>
		<updated>2010-07-19T13:07:19+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;I'd better say something about the Mozilla summit at Whistler before it recedes into the past...
&lt;p&gt;It was fabulous, of course. The setting, the food, the people, the talks, the work, the demos, the mission, all really good.
&lt;p&gt;Whistler was lovely. It had been cold up to the week we arrived so while it was 30C in the village at times later in the week, 20 minutes in a chairlift brought you up into the snow. And on top of Whistler Mountain the snow banks were six metres deep in places.
&lt;p&gt;I wisely arrived a couple of days early and on the Monday I spent almost the entire day hiking alone up to Singing Pass. Unfortunately I didn't reach Singing Pass --- around the snow line the track was completely blocked by fallen trees (see below). I climbed over a couple of dozen of them but with no end in sight, decided that was a losing proposition and turned back. Nevertheless it was a wonderful time and some solitude was excellent fortification for the subsequent social overload.
&lt;p&gt;I'm not really a party person and working large groups of people is a learned skill for me. It's helpful when I have goals to accomplish and I know a lot of the people. In some ways it wasn't all that different from networking at an academic conference, except we're all on the same side.
&lt;p&gt;The main downside of the summit was that I was completely exhausted during most of it because I was simply too excited to sleep. Talking to people, going to sessions, playing games, and hacking code are irresistible.
&lt;p&gt;Next time we should plan some &quot;work week&quot; days immediately after the summit. This would give us more time to talk in depth --- there were so many people at the summit I wanted to talk to, I couldn't give lots of time to more than a few. It would give us more time to code. We should have done it this time but I wasn't on the ball.
&lt;p&gt;As usual I met many contributors for the first time. That's one of the best things about the summits. A few I really wanted to meet didn't make it --- you know who you are!
&lt;p&gt;I managed to get together with some Mozilla Christians for some prayer time. That was very encouraging.
&lt;p&gt;I saw bears. Woohoo!&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class=&quot;image&quot;&gt;&lt;img alt=&quot;trees fallen across the path up to Singing Pass&quot; src=&quot;http://weblogs.mozillazine.org/roc/images/FallenTrees.jpg&quot; width=&quot;800&quot; height=&quot;600&quot; /&gt;&lt;/div&gt;
&lt;div&gt;This is the track near the head of the valley leading up to Singing Pass. I'm looking &lt;em&gt;back&lt;/em&gt; along the track at the trees I've already clambered over! Definitely more trees than track at this point. People told me it was probably the leftovers of an avalanche.&lt;/div&gt;
&lt;div class=&quot;image&quot;&gt;&lt;img alt=&quot;view over Whistler valley&quot; src=&quot;http://weblogs.mozillazine.org/roc/images/WhistlerValley.jpg&quot; width=&quot;800&quot; height=&quot;600&quot; /&gt;&lt;/div&gt;
&lt;div&gt;View over Whistler valley from the top of Whistler Peak.&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Western Digital to fix Licensing?</title>
		<link href="http://feedproxy.google.com/~r/skwashd/~3/Rk8N2IjOw0g/western-digital-fix-licensing"/>
		<id>http://davehall.com.au/138 at http://davehall.com.au</id>
		<updated>2010-07-18T13:50:53+00:00</updated>
		<content type="html">&lt;p&gt;Over the last few months months I've been corresponding with &lt;a href=&quot;http://www.linkedin.com/pub/dennis-ulrich/0/277/2b3&quot;&gt;Dennis Ulrich of Western Digital (WDC)&lt;/a&gt; about &lt;a href=&quot;http://davehall.com.au/blog/dave/2010/02/20/western-digital-my-book-world-edition-licensing-and-gpl&quot;&gt;my concerns with the EULA for the My Book World Edition (MBWE) and their obligations under the GPL&lt;/a&gt;.  To say it has been a drawn out process is an understatement.&lt;/p&gt;
&lt;p&gt;It has taken some time to get WDC to understand the situation.  There has been confusing messages about what the situation is with the EULA, the GPL and what license covers what pieces of code.  The bottom line is that currently users must check the header of each file to ascertain which license applies to it, even though the &lt;a href=&quot;http://support.wdc.com/product/download.asp?groupid=117&amp;sid=116&amp;lang=en&quot;&gt;downloads are marked as GPL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Although WDC is moving slowly, they do seem to be commited to making the situation clearer in the next iteration of their MBWE product line.  Based on a recent phone call with Dennis, the legal and engineering teams are working together to ensure various licenses complied with and their software engineers are aware of their obligations.&lt;/p&gt;
&lt;p&gt;The next version of the MBWE is likely to ship with a revised EULA and properly inform the users of their rights under the GPL.  This text is still being developed.  At the same time it is still unclear if WDC will backport their changes to their existing NAS products.  As it is a simple string change it shouldn't be too hard for them to dedicate a few resources to audit the code and update the strings.&lt;/p&gt;
&lt;p&gt;It is unfortunate that WDC appears to have little interest in developing their MBWE product range as a hacker friendly FOSS product.  It appears the licensing fix that will be implemented by WDC will more clearly delinate the FOSS and non free components of the MBWE firmware.  Clarity is always an important legal consideration, but doesn't help foster a community.  WDC seem to have little interest in fostering a hacker community around their products.  This is an unfortunate decision by the company.&lt;/p&gt;
&lt;p&gt;Many manufacturers of embedded devices only start releasing source for their firmware after being caught out for violating the GPL.  WDC is to be commended for complying with the requirements of the GPL from the start.  Altough there is no legal requirement for them to make the web gui code and other non free components available, WDC already does.  It would be disappointing if they chose to take a backward step and stopped distributing parts of the firmware.&lt;/p&gt;
&lt;p&gt;It is possible, and perfectly legal, for WDC to stop distributing the source for the proprietary components.  At the same time it would not take much effort for them to release the whole platform as GPL or another FOSS friendly license.  WDC is already required to do a code drop every time they release a new version of their hardware or firmware.  I suspect it would be faster and easier to push all code to a public git repository than pick through and dump selected components as tarballs on a website.&lt;/p&gt;
&lt;p&gt;WDC already have their support team dealing with customer bug reports.  Maintaining a mailing list, a bug tracker, a wiki and maybe a public source code repository on somewhere like &lt;a href=&quot;http://gitorious.org/&quot;&gt;gitorious&lt;/a&gt; is likely to take less than 1 full time employee.  The benefit for WDC would be great.&lt;/p&gt;
&lt;p&gt;Not only is the hacker community likely to contribute bugs fixes and propose or even develop new features, they can help increase sales.  I'm sure the good will generated by the switch to truly open approach to the MBWE product line would outweigh  the cost of the additional resources required.&lt;/p&gt;
&lt;p&gt;Let's hope Western Digital's fix is a FOSS friendly one.  I will post more news as things progress.&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/skwashd/~4/Rk8N2IjOw0g&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Dave Hall</name>
			<uri>http://davehall.com.au/blog/dave</uri>
		</author>
		<source>
			<title type="html">Dave's blog</title>
			<link rel="self" href="http://feeds.feedburner.com/skwashd"/>
			<id>http://feeds.feedburner.com/skwashd</id>
			<updated>2010-08-30T11:18:58+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">PDXPUG Day 2010: 9.0 and all sorts of good stuff</title>
		<link href="http://www.chesnok.com/daily/2010/07/17/pdxpug-day-2010-9-0-and-all-sorts-of-good-stuff/"/>
		<id>http://www.chesnok.com/daily/?p=1844</id>
		<updated>2010-07-18T07:49:14+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;m nearly ready for &lt;a href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;PDXPUG Day 2010&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We&amp;#8217;ve got some fun talks lined up from leaders in the Postgres community in town for OSCON. It&amp;#8217;s free to attend.  We&amp;#8217;ll at the Oregon Convention Center, room D131.&lt;/p&gt;
&lt;p&gt;Stop by sometime during the day if you&amp;#8217;re in town!&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s &lt;a href=&quot;http://wiki.postgresql.org/wiki/PDXPUGDay2010&quot;&gt;our schedule:&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;10am: What&amp;#8217;s new in 9.0 &amp;#8211; Selena Deckelmann&lt;br /&gt;
11am: ORMs and Their Discontents &amp;#8211; Christophe Pettus&lt;br /&gt;
1:30pm:	 Mining Your Logs For Fun and Profit &amp;#8211; Josh Berkus&lt;br /&gt;
2:30pm:	 PORTAL &amp;#8211; Dan Colish&lt;br /&gt;
3:30pm:	 An Introduction to Managing and Troubleshooting PostgreSQL on Windows &amp;#8211; Tim Bruce&lt;br /&gt;
4:30pm:	 PostgreSQL in Brazilian Army and Air Force &amp;#8211; Luis Dosso&lt;/p&gt;
&lt;p&gt;6pm-10pm: Party at the &lt;a href=&quot;http://www.gothamtavern.com/&quot;&gt;Gotham Tavern&lt;/a&gt;!&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2009/01/01/a-year-of-pdxpug/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: A year of PDXPUG&quot;&gt;A year of PDXPUG&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2010/05/21/lightning-talks-from-pgcon-2010/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Lightning talks from PgCon 2010&quot;&gt;Lightning talks from PgCon 2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chesnok.com/daily/2008/07/10/pdxpug-day-on-july-20-register-now/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: PDXPUG Day on July 20 &amp;#8211; Register now!&quot;&gt;PDXPUG Day on July 20 &amp;#8211; Register now!&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;</content>
		<author>
			<name>Selena Deckelmann</name>
			<uri>http://www.chesnok.com/daily</uri>
		</author>
		<source>
			<title type="html">tending the garden</title>
			<subtitle type="html">selena marie deckelmann's blog</subtitle>
			<link rel="self" href="http://www.chesnok.com/daily/feed/"/>
			<id>http://www.chesnok.com/daily/feed/</id>
			<updated>2010-09-03T01:19:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">16 Jul 2010</title>
		<link href="http://www.advogato.org/person/dwmw2/diary.html?start=217"/>
		<id>http://www.advogato.org/person/dwmw2/diary.html?start=217</id>
		<updated>2010-07-16T14:29:43+00:00</updated>
		<content type="html">I've just been working on Evolution's reply code, and have
added a couple more of those annoying &quot;nag pop-ups&quot;,
including this one which I expect a lot of people will
appreciate when they &lt;em&gt;don't&lt;/em&gt; get the resulting mail:
&lt;div&gt;
&lt;img src=&quot;http://david.woodhou.se/evo-reply-nag-many.png&quot; alt=&quot;Evolution nag pop-up for replying to too many recipients&quot; /&gt;
&lt;/div&gt;
&lt;p&gt;
It's currently set to trigger if you hit 'Reply to All' on a
message with more than 15 recipients; unless it's a mailing
list message. And of course you can see that it's trivial to
turn it off if you never want to see it again.
&lt;p&gt;
I've also taken a moment to write down and &lt;a href=&quot;http://david.woodhou.se/reply-to-list.html&quot;&gt;post
some thoughts&lt;/a&gt; on the 'Reply to All' vs. 'Reply to List'
debate for mailing list messages.&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>David Woodhouse</name>
			<uri>http://www.advogato.org/person/dwmw2/</uri>
		</author>
		<source>
			<title type="html">Advogato blog for dwmw2</title>
			<subtitle type="html">Advogato blog for dwmw2</subtitle>
			<link rel="self" href="http://www.advogato.org/person/dwmw2/rss.xml"/>
			<id>http://www.advogato.org/person/dwmw2/rss.xml</id>
			<updated>2010-09-03T02:13:01+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Retained Layers</title>
		<link href="http://weblogs.mozillazine.org/roc/archives/2010/07/retained_layers.html"/>
		<id>http://weblogs.mozillazine.org/roc/archives/2010/07/retained_layers.html</id>
		<updated>2010-07-16T04:02:20+00:00</updated>
		<content type="html">&lt;div class=&quot;columns&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=92339b84d089&amp;tochange=e1d7fd5255fd&quot;&gt;Retained Layers&lt;/a&gt; has landed and seems to have stuck.
&lt;p&gt;In a &lt;a href=&quot;http://weblogs.mozillazine.org/roc/archives/2010/04/layers.html&quot;&gt;previous post&lt;/a&gt; I talked about our layers framework. Up until now we've constructed a new layer tree on every paint. With retained layers, we update our layer tree incrementally as content changes in the window. More importantly, we are able to cache the contents of layers. So for example if you have an element with partial opacity, we can cache the rendering of that element in a layer and every time you paint (perhaps with a different opacity each time), we can paint the cached contents without rerendering the element. This provides noticeable speedups for some kinds of fade effects. When we use layers to render CSS transforms, we'll get speedups there too.
&lt;p&gt;One side effect is that we were able to totally reimplement scrolling. Our current scrolling code relies on shifting pixels around in the window for speed, and that often doesn't work well, for example on pages where scrolling content overlays stationary content or vice versa. It's also prone to visible tearing on some platforms because we can't scroll and repaint in a single atomic paint operation. But now, our retained layer tree effectively contains the entire window contents pre-rendered. We can scroll by just adjusting the offsets of some layers and recompositing the layer tree. (Well, almost ... it's slightly more complicated.) This is a relatively simple approach. It eliminates tearing. It lets us aggressively accelerate the scrolling of nasty scrolling pages with complex contents, because we're able to separate the moving content into different layers from the non-moving content and scrolling becomes a matter of simply repainting the scrolled-into-view strip of the moving content and then blending layers together. We're seeing significant improvements in scrolling many kinds of pages. Soon I hope to blog again with more about how this works, what it can do and what the current limitations are.
&lt;p&gt;Immediate improvements are nice, but the most important benefit of retained layers is that it lays down infrastructure we will be exploiting in all kinds of ways. Our D3D and GL layer implementations benefit from reducing browser rendering and caching more rendered content in layer buffers, since compositing buffers is very cheap with GPUs. With those backends, because scrolling is fully layer-based, it will be accelerated by the GPU! Chris Jones is working on enabling layer composition to be in a dedicated process, at which point we'll be able to scroll without synchronizing with the Web content process --- in particular we'll be able to maintain a constant frame rate of smooth scrolling no matter what the Web content is doing, i.e. super-smooth. This will especially benefit Fennec. Fennec will also benefit because its current tile-caching implementation can be replaced with something layer-based; our layer-based scrolling permits the layer manager to cache prerendered content that's not (yet) visible.
&lt;p&gt;Before we ship the next Firefox release there are a few regressions to work on and some performance and quality knobs to tweak. But I'm feeling quite relieved, since this was one of the long poles for that release and the one I've been most on the hook for.&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;/div&gt;</content>
		<author>
			<name>Robert O'Callahan</name>
			<uri>http://weblogs.mozillazine.org/roc/</uri>
		</author>
		<source>
			<title type="html">Well, I'm Back</title>
			<subtitle type="html">Robert O'Callahan. Christian. Repatriate Kiwi. Mozilla hacker.</subtitle>
			<link rel="self" href="http://weblogs.mozillazine.org/roc/index.xml"/>
			<id>http://weblogs.mozillazine.org/roc/index.xml</id>
			<updated>2010-09-02T21:13:21+00:00</updated>
			<rights type="html">Copyright 2010</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">linux.conf.au 2011 CFP Open!</title>
		<link href="http://www.flamingspork.com/blog/2010/07/15/linux-conf-au-2011-cfp-open/"/>
		<id>http://www.flamingspork.com/blog/?p=2077</id>
		<updated>2010-07-15T00:59:23+00:00</updated>
		<content type="html">&lt;p&gt;Head on over to &lt;a href=&quot;http://lca2011.linux.org.au/&quot;&gt;http://lca2011.linux.org.au/&lt;/a&gt; and check it out!&lt;/p&gt;
&lt;p&gt;You&amp;#8217;ve got until August 7th to put in a paper, miniconf, poster or tutorial.&lt;/p&gt;
&lt;p&gt;Things I&amp;#8217;d like to see come from my kinda world:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;topics on running large numbers of machines&lt;/li&gt;
&lt;li&gt;latest in large scale web infrastructure&lt;/li&gt;
&lt;li&gt;latest going on in the IO space: (SSD, filesystems, SSD as L2 cache)&lt;/li&gt;
&lt;li&gt;Applications of above technologies and what it means for application performance&lt;/li&gt;
&lt;li&gt;Scalable and massive tcp daemons (i.e. Eric should come talk on scalestack)&lt;/li&gt;
&lt;li&gt;exploration of pain points in current technologies and discussion on ways to fix them (from people really in the know)&lt;/li&gt;
&lt;li&gt;A Hydra tutorial: starting with stock Ubuntu lucid, and exiting the tutorial with some analysis running on my project.&lt;/li&gt;
&lt;li&gt;Something that completely takes me off guard and is awesome.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#8217;d love to see people from the MySQL, Drizzle and Rackspace worlds have a decent presence. For those who&amp;#8217;ve never heard of/been to an LCA before: we reject at least another whole conference worth of papers. It&amp;#8217;s the conference on the calendar that everything else moves around.&lt;/p&gt;


&lt;div class=&quot;shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-enjoy&quot;&gt;
&lt;ul class=&quot;socials&quot;&gt;
		&lt;li class=&quot;shr-facebook&quot;&gt;
			&lt;a href=&quot;http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.flamingspork.com/blog/2010/07/15/linux-conf-au-2011-cfp-open/&amp;t=linux.conf.au+2011+CFP+Open%21&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on Facebook&quot;&gt;Share this on Facebook&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-twitter&quot;&gt;
			&lt;a href=&quot;http://twitter.com/home?status=linux.conf.au+2011+CFP+Open%21+-+http://b2l.me/aarqry&amp;source=shareaholic&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Tweet This!&quot;&gt;Tweet This!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-delicious&quot;&gt;
			&lt;a href=&quot;http://delicious.com/post?url=http://www.flamingspork.com/blog/2010/07/15/linux-conf-au-2011-cfp-open/&amp;title=linux.conf.au+2011+CFP+Open%21&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Share this on del.icio.us&quot;&gt;Share this on del.icio.us&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-digg&quot;&gt;
			&lt;a href=&quot;http://digg.com/submit?phase=2&amp;url=http://www.flamingspork.com/blog/2010/07/15/linux-conf-au-2011-cfp-open/&amp;title=linux.conf.au+2011+CFP+Open%21&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Digg this!&quot;&gt;Digg this!&lt;/a&gt;
		&lt;/li&gt;
		&lt;li class=&quot;shr-googlebuzz&quot;&gt;
			&lt;a href=&quot;http://www.google.com/buzz/post?url=http://www.flamingspork.com/blog/2010/07/15/linux-conf-au-2011-cfp-open/&amp;imageurl=&quot; rel=&quot;nofollow&quot; class=&quot;external&quot; title=&quot;Post on Google Buzz&quot;&gt;Post on Google Buzz&lt;/a&gt;
		&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Stewart Smith</name>
			<uri>http://www.flamingspork.com/blog</uri>
		</author>
		<source>
			<title type="html">Ramblings</title>
			<subtitle type="html">Ramblings which occasionally resemble reality. This is the blog of Stewart Smith.</subtitle>
			<link rel="self" href="http://www.flamingspork.com/blog/feed/"/>
			<id>http://www.flamingspork.com/blog/feed/</id>
			<updated>2010-09-03T02:18:35+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Proposals submitted...</title>
		<link href="http://mabula.net/tbfw/2010/07/15#2010-07-15-proposals-submitted"/>
		<id>http://mabula.net/tbfw/2010/07/15#2010-07-15-proposals-submitted</id>
		<updated>2010-07-14T23:45:00+00:00</updated>
		<content type="html">The &lt;a href=&quot;http://lca2011.linux.org.au&quot;&gt;Linux Conference Australia&lt;/a&gt;
call for papers is now out, and I've submitted two papers - one for a
talk and one for a tutorial.  Now the waiting begins...&lt;p&gt;

In 2009 I got accepted to give a talk on writing good user documentation.
I'd submitted several papers before then but never got accepted; the 
chief reason was that I had submitted papers about stuff I was interesed
in but was not actually a key contributor to.  LCA is crazy hard to get
to speak at, but is totally worth it because they really treat speakers
well.  And to me it's addictive - I loved it so much in 2009 I wanted to
do awesome things just to get a place in 2010.&lt;p&gt;

That didn't work out for me; mainly because I'm a neophile.  I tend to
be interested in a whole bunch of things but only shallowly - occasionally
(such as when I decided to write the doco for LMMS) I dip in but I
rarely seem to be able to sustain that involvement before the next thing
comes along and lures me away.  But I'm more hopeful I can get a
speakership at 2011 because I'm putting forward two proposals for things
that I'm actually really involved in and know about.&lt;p&gt;

Ah well.  Now for three months of anticipation.  Better keep on working on
my electric motorbike then...&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Paul Wayper</name>
			<uri>http://mabula.net/tbfw</uri>
		</author>
		<source>
			<title type="html">Too Busy For Words - The PaulWay Weblog</title>
			<subtitle type="html">Too Busy For Words - The PaulWay Weblog.</subtitle>
			<link rel="self" href="http://mabula.net/tbfw/tech/lca/index.rss"/>
			<id>http://mabula.net/tbfw/tech/lca/index.rss</id>
			<updated>2010-09-03T02:12:59+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Cat Stacking</title>
		<link href="http://davelane.name/blog/dave/cat-stacking"/>
		<id>http://davelane.name/222 at http://davelane.name</id>
		<updated>2010-07-14T20:35:34+00:00</updated>
		<content type="html">&lt;dl&gt;
  &lt;dt&gt;Cat stacking&lt;/dt&gt;
  &lt;dd&gt;The heroic practice of coordination or organising (&quot;wrangling&quot;) obstreperous or otherwise uncooperative agents into a consistent, coherent pattern or unit e.g. &lt;em&gt;wrestling those time sheets into a semblance of order was an exercise in cat stacking if ever there was one.&lt;/em&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Just wanted to make sure that I claimed this term on behalf of myself and my colleagues who (we believe) coined it at &lt;a href=&quot;http://egressive.com&quot;&gt;Egressive&lt;/a&gt; where the term is in common use.&lt;/p&gt;</content>
		<author>
			<name>Dave Lane</name>
			<uri>http://davelane.name/fullblog</uri>
		</author>
		<source>
			<title type="html">Spreading joy and confusion - The blog of Dave Lane</title>
			<link rel="self" href="http://davelane.name/fullblog/feed"/>
			<id>http://davelane.name/fullblog/feed</id>
			<updated>2010-09-03T02:12:18+00:00</updated>
		</source>
	</entry>

	<entry>
		<title type="html">Stupid RCU Tricks: Holding Off RCU Read-Side Critical Sections</title>
		<link href="http://paulmck.livejournal.com/20682.html"/>
		<id>http://paulmck.livejournal.com/20682.html</id>
		<updated>2010-07-14T05:34:01+00:00</updated>
		<content type="html">RCU callbacks are registered via &lt;code&gt;call_rcu()&lt;/code&gt;.  After an RCU grace period elapses, the callback (which is a C-language function) is invoked.  RCU's fundamental guarantee states that once an RCU grace period has elapsed, all RCU read-side critical sections that were executing when the grace period began will have completed.  (An RCU read-side critical section is a fragment of code enclosed by &lt;code&gt;rcu_read_lock()&lt;/code&gt; and &lt;code&gt;rcu_read_unlock()&lt;/code&gt;.)&lt;br /&gt;&lt;br /&gt;Now, an RCU callback, being a C-language function, has a definite beginning and end.  But what about &lt;code&gt;synchronize_rcu()&lt;/code&gt;, which blocks until an RCU read-side critical section has elapsed?  &lt;a href=&quot;http://kernel.org/pub/linux/kernel/people/paulmck/Answers/RCU/GPholdoff.html&quot;&gt;How does RCU know how long to hold off new RCU read-side critical sections once &lt;code&gt;synchronize_rcu()&lt;/code&gt; returns?&lt;/a&gt;</content>
		<author>
			<name>Paul McKenney</name>
			<uri>http://paulmck.livejournal.com/</uri>
		</author>
		<source>
			<title type="html">Paul E. McKenney's Journal</title>
			<subtitle type="html">Paul E. McKenney's Journal - LiveJournal.com</subtitle>
			<link rel="self" href="http://paulmck.livejournal.com/data/rss"/>
			<id>http://paulmck.livejournal.com/data/rss</id>
			<updated>2010-08-09T00:12:53+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">“HTML5 Audio And Video Accessibility, Internationalisation And Usability” talk at Mozilla Summit</title>
		<link href="http://blog.gingertech.net/2010/07/14/html5_media_a11y_moz_summit/"/>
		<id>http://blog.gingertech.net/?p=1030</id>
		<updated>2010-07-13T19:35:48+00:00</updated>
		<content type="html">&lt;p&gt;For 2 months now, I have been quietly working along on a new Mozilla contract that I received to continue working on HTML5 media accessibility. Thanks Mozilla!&lt;/p&gt;
&lt;p&gt;Lots has been happening &amp;#8211; the W3C HTML5 accessibility task force published a &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements&quot;&gt;requirements document&lt;/a&gt;, the &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_TextAssociations&quot;&gt;Media Text Associations proposal&lt;/a&gt; made it into the HTML5 draft as a &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#timed-tracks&quot;&gt;&amp;lt;track&gt; element&lt;/a&gt;, and there are discussions about the advantages and disadvantages of the &lt;a href=&quot;http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#websrt-0&quot;&gt;new WebSRT caption&lt;/a&gt; format that Ian Hickson created in the WHATWG HTML5 draft.&lt;/p&gt;
&lt;p&gt;In attending the Mozilla Summit last week, I had a chance to &lt;a href=&quot;http://blog.gingertech.net/wp-content/uploads/2010/07/summit2010/&quot;&gt;present the current state of development of HTML5 media accessibility&lt;/a&gt; and some of the ongoing work. I focused on the following four current activities on the technical side of things, which are key to satisfying many of the &lt;a href=&quot;http://www.w3.org/WAI/PF/HTML/wiki/Media_Accessibility_Requirements&quot;&gt;collected media accessibility requirements&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Multitrack Video Support&lt;/li&gt;
&lt;li&gt;External Text Tracks Markup in HTML5&lt;/li&gt;
&lt;li&gt;External Text Track File Format&lt;/li&gt;
&lt;li&gt;Direct Access to Media Fragments&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first three now already have first drafts in the HTML5 specification, though the details still need to be improved and an external text track file format agreed on. The last has had a major push ahead with the Media Fragments WG publishing a Last Call Working Draft. So, on the specification side of things, major progress has been made. On the implementation &amp;#8211; even on the example implementation &amp;#8211; side of things, we still fall down badly. This is where my focus will lie in the next few months.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.gingertech.net/wp-content/uploads/2010/07/summit2010/&quot;&gt;Follow this link to read through my slides from the Mozilla 2010 summit&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Silvia Pfeiffer</name>
			<uri>http://blog.gingertech.net</uri>
		</author>
		<source>
			<title type="html">ginger's thoughts</title>
			<subtitle type="html">Silvia's blog</subtitle>
			<link rel="self" href="http://blog.gingertech.net/feed/"/>
			<id>http://blog.gingertech.net/feed/</id>
			<updated>2010-08-07T11:20:01+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">13 Jul 2010</title>
		<link href="http://www.advogato.org/person/dwmw2/diary.html?start=216"/>
		<id>http://www.advogato.org/person/dwmw2/diary.html?start=216</id>
		<updated>2010-07-13T09:29:12+00:00</updated>
		<content type="html">&lt;a href=&quot;http://www.gorila.hr/go/brazil-s-copyright-law-forbids-using-drm-to-block-fair-use_feeds_boingboing_net&quot;&gt;Yay
Brazil!&lt;/a&gt;. They're making it illegal to use &lt;a href=&quot;http://www.defectivebydesign.org/what_is_drm&quot;&gt;DRM&lt;/a&gt; to
prevent &lt;i&gt;&quot;fair dealing&quot;&lt;/i&gt; with copyrighted works, or
access to works which are in the public domain. It's also
legal to &quot;crack&quot; DRM if you're only doing it for the purpose
of &quot;fair dealing&quot;.
&lt;p&gt;
So, for example, it would be legal for me to crack the DRM
on the eBooks I buy, which is necessary just so that I can
&lt;em&gt;read&lt;/em&gt; them. Currently I have to break the law just
to be able to buy and use eBooks.
&lt;p&gt;
UK citizens, go &lt;a href=&quot;http://yourfreedom.hmg.gov.uk/restoring-civil-liberties/brazils-new-copyright-law-forbids-using-drm-to-block-fair-use.-the-same-system-should-be-implemented-here-1&quot;&gt;here&lt;/a&gt;
and add your vote; it's very simple to register if you
haven't already done so.&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>David Woodhouse</name>
			<uri>http://www.advogato.org/person/dwmw2/</uri>
		</author>
		<source>
			<title type="html">Advogato blog for dwmw2</title>
			<subtitle type="html">Advogato blog for dwmw2</subtitle>
			<link rel="self" href="http://www.advogato.org/person/dwmw2/rss.xml"/>
			<id>http://www.advogato.org/person/dwmw2/rss.xml</id>
			<updated>2010-09-03T02:13:01+00:00</updated>
		</source>
	</entry>

</feed>
