<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:atom='http://www.w3.org/2005/Atom'><channel><atom:link href='http://pubsubhubbub.appspot.com' rel='hub'/>
    <atom:link href='http://anthonybailey.net/tumblelog/feed' rel='self'/>
    <atom:link href='http://tumblr.superfeedr.com/' rel='hub' xmlns:atom='http://www.w3.org/2005/Atom'/><description>Where am I? This tumblelog is a noisy stream of consciousness from Anthony Bailey. (And not Amazon.) Tell me less: For a lower traffic, more obsessively edited Anthony, see the real blog.</description><title>Anthony Bailey</title><generator>Tumblr (3.0; @anthonybailey)</generator><link>http://anthonybailey.net/tumblelog</link><item><title>One case for queues</title><description>&lt;p&gt;Ted Dzubia recently posted &lt;a href="http://teddziuba.com/2011/02/the-case-against-queues.html"&gt;The Case Against Queues&lt;/a&gt;. I have to grant him that, like anything else, queues can be over/misused, so probably they are being in some parts. Film at 11. (I would say that re useful metrics to alarm on, the time between a message arriving on a queue and it being acked as processed is typically easy to measure and to set sensible thresholds for.)&lt;/p&gt;
&lt;p&gt;In an &lt;a title="unfortunately non-public else I'd link"&gt;Google+ discussion of the post&lt;/a&gt; the argument has been advanced that queues should be avoided wherever possible; that they cause more problems than they solve. My limited experience is the other way; I’m working on systems where I’m finding them to be a highly valuable abstraction and where I’m not seeing significant cost. I thought the discussion would benefit from more examples, so I present here one case where I’ve found them very useful.&lt;/p&gt;
&lt;p&gt;Suppose there are two systems, which I’ll call Truths and Consequences. They maintain state in related domains, but are decoupled - probably owned by different teams - and they model their domains in sufficiently different ways that working out the consequences of truths requires some code to crunch. It could take quite a long time to recalculate all consequences of all truths, but we can usually comfortably keep up with recalculating consequences as truths change, and we don’t want to ignore the consequences of any truths.&lt;/p&gt;
&lt;p&gt;Truths and Consequences communicate through a queue with typical robustness properties such as At-Least-Once delivery. When the truth about some named thing (say “cats”, or “dogs”) changes, Truths publishes a message containing that name onto a queue. Note that the message doesn’t say “the truth about cats is that they are all gray”, but rather “the truth about cats has changed”. When Consequences consumes the message, it asks for the current Truth about the named thing, updates relevant consequences, and acks the message. For any given set of truths, calculating their consequences (and hence, processing a message) is of course idempotent.&lt;/p&gt;
&lt;p&gt;Of course the queue decouples the two systems so that you can change truths without waiting to hear about the consequences - hell, Consequences can drop off the network for a while as far as Truths cares, and in a halfway decent framework the queue works as a resilient store out-of-the-box. These are the kind of reasons why we introduced the abstraction in the first place. But there are other nice properties of this system too.&lt;/p&gt;
&lt;p&gt;For example, suppose occasionally a new truth appears that we can’t currently calculate the consequences of. Maybe there’s a disastrous edge-case that crashes the calculation (“dog.getNose().smell() throws NullPointerException”), or maybe the truth breaks some assumptions that the calculation has used (“uh, what? dog.getHead() returned an array??”) The “dogs” message is poisonous and Consequences can’t currently handle it. So it nacks the message, prompting it to be moved from the original queue to an associated dead-letter queue (DLQ). After the Consequences system has been updated to deal with the new situation, it can have another go at consuming such messages, which were sitting on the DLQ in the mean time. Another possibility is that Truths realizes they were talking nonsense, and changes their mind back to something sane. In that case the Consequences system doesn’t need any update, it just reconsumes the message; when it asks for the truth about “dogs” it finds that they have just the one head again and all is well.&lt;/p&gt;
&lt;p&gt;Another example: for some set of things, the truths are unchanged, but Consequences is updated to fix a mistake in the existing calculation, or to extend it with a useful new consequence to calculate. Publish messages naming all the relevant things, and the new calculation will be applied. Is it going to take a while and we don’t want to interrupt business as usual? Put these messages on a lower priority “backfill” queue that is only consumed when the regular one is empty. Are some of the things more important than others? Order the messages on the backfill queue to reflect that. Similar approaches apply when truths about a large new set of things become available and need backfilled.&lt;/p&gt;
&lt;p&gt;A last example: during an era of uncertainty, truth about some set of things becomes very volatile, swinging back and forth faster than the consequences can be calculated and recalculated, filling up the queue with a backlog of messages naming the same things over and over. Just introduce some plumbling that dedupes the pending messages by name - because we always calculate consequences based on the current truth, not the historic one.&lt;/p&gt;
&lt;p&gt;Note that either system can take responsibility for the queue and work to redrive DLQs and reprioritize messages - typically it depends on which role cares most about the relationship. If Truths wants to be heard, it can own the queue; if Consequences needs to know the truth, vice versa. In the system I work on right now, we play both these roles in relationships with various other teams.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/10/06/one-case-for-queues</link><guid>http://anthonybailey.tumblr.com/post/11081137142</guid><pubDate>Thu, 06 Oct 2011 01:36:36 +0100</pubDate></item><item><title>One, Two, Testing</title><description>&lt;p&gt;The first official &lt;a title="Downloadable Content"&gt;DLC&lt;/a&gt; for &lt;em&gt;Portal 2&lt;/em&gt; came out today. &lt;a title='"Peer Review"' href="http://www.thinkwithportals.com/blog.php?id=6430%20%20"&gt;It’s a new Co-op campaign&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now this kind of play is probably great fun, but I still haven’t managed to play the co-operative campaign that originally came with the game. Because, you know, &lt;a title="Yeah, OK. I have no friends."&gt;you have to be organized enough to dovetail the windows in your packed social schedules and all that&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So I was kind of hoping for a new set of Valve-quality &lt;em&gt;Portal 2&lt;/em&gt; single-player maps.&lt;/p&gt;
&lt;p&gt;It’s OK though, because instead the Internets sent me a new set of better-than-Valve-quality &lt;em&gt;Portal &lt;strong&gt;1&lt;/strong&gt;&lt;/em&gt; single-player maps: &lt;a href="http://forums.thinkingwithportals.com/topic1997.html"&gt;&lt;em&gt;Try Anything Twice&lt;/em&gt; by HMW&lt;/a&gt;. I spent around four hours on Sunday playing through this masterpiece.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Try Anything Twice&lt;/em&gt; is very much to my tastes. There are no very tricky moves, and fairly few halfway tricky ones - instead it’s &lt;strong&gt;all about the puzzles&lt;/strong&gt;. Said puzzles are very well-paced; I was consistently stretched but &lt;a title="(This is at least partly due to very well-designed cues.)"&gt;never got totally stuck&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There’s a nice central concept/conceit: you solve each of the five maps twice, the second time around with some minor changes to the situation which demand major changes to your solution.&lt;/p&gt;
&lt;p&gt;The level architecture and engineering is beautiful, with chambers rearranging themselves like something out of, well, &lt;em&gt;Portal 2&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Lastly there are a few new game mechanics with great art and execution. The element introduced for the second try of the last chamber gives rise to t&lt;a title="Imagine the sequences where you tempt a series of rockets through different portals, but then add proximity, timing and phase wrinkles."&gt;he most mind-bendingly enjoyable puzzles&lt;/a&gt; I’ve seen in any &lt;em&gt;Portal&lt;/em&gt; context.&lt;/p&gt;
&lt;p&gt;Better than any other &lt;a href="http://anthonybailey.net/tumblelog/2010/07/11/re-opening-portal-my-favorite-custom-maps"&gt;&lt;em&gt;Portal&lt;/em&gt; mod I’ve played&lt;/a&gt;. &lt;a href="http://forums.thinkingwithportals.com/downloads.php?view=detail&amp;df_id=281"&gt;Download it&lt;/a&gt;.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/10/04/one-two-testing</link><guid>http://anthonybailey.tumblr.com/post/11034485493</guid><pubDate>Tue, 04 Oct 2011 22:54:50 +0100</pubDate></item><item><title>Forcing functions that are better than comments</title><description>&lt;p&gt;A recent thread at work discussed &lt;strong&gt;the value (or otherwise) of comments in code. I think comments&lt;/strong&gt; on anything owned and used by a small team &lt;strong&gt;are usually a code smell.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;One of the &lt;strong&gt;excuses&lt;/strong&gt; offered for comments was that if you wrote e.g. JavaDoc for some code, then that &lt;strong&gt;forces you to think&lt;/strong&gt; about the details of the code’s behavior and the way that it presents itself to clients; and that such thinking &lt;strong&gt;catches edge cases, and prompts redesign&lt;/strong&gt; all the way from minor naming tweaks through to major simplifications.&lt;/p&gt;
&lt;p&gt;I agree completely that the forcing function of explicitly expressing one’s intent has that value. And it’s a really significant value. &lt;strong&gt;But &lt;em&gt;tests&lt;/em&gt; do it better than comments&lt;/strong&gt; without any of the “eventual inconsistency” downsides.&lt;/p&gt;
&lt;p&gt;This is old news. But then I noticed &lt;strong&gt;a pattern&lt;/strong&gt; I thought worth posting:&lt;/p&gt;
&lt;p&gt;One genuine usefulness of comments can be in providing the &lt;strong&gt;“why”&lt;/strong&gt; instead of the &lt;strong&gt;“what”&lt;/strong&gt;: to give the &lt;strong&gt;motivation&lt;/strong&gt; for behavior rather than simply a &lt;strong&gt;description&lt;/strong&gt;. And making motivation explicit is as valuable to a developer as making descriptions explicit is. It analogously &lt;strong&gt;exposes gaps in thinking, and prompts re-aiming&lt;/strong&gt; toward equally valuable goals that are easier to hit.&lt;/p&gt;
&lt;p&gt;Tests are only good for expressing descriptions, not motivations. So here they can’t play the same role of &lt;strong&gt;a superior substitute forcing function to comments&lt;/strong&gt;. You know what can though? &lt;strong&gt;&lt;em&gt;Talking with your pair.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/09/16/forcing-functions-that-are-better-than-comments</link><guid>http://anthonybailey.tumblr.com/post/10287046871</guid><pubDate>Fri, 16 Sep 2011 21:51:14 +0100</pubDate><category>software_development</category></item><item><title>Google Plus minus writes</title><description>&lt;p&gt;Google+ finally began to roll-out an API. Yay! But, it is read-only. Boo!&lt;/p&gt;
&lt;p&gt;I write my stuff here, in a space (i.e. under a domain name) that I own.&lt;/p&gt;
&lt;p&gt;Some people have chosen to follow me on Google+ and from this I conclude they may want to read what I write. The obvious way to link the resources is to post a link on Google+ each time that I write something here. I was hoping for a Google+ API that allowed writes, so that this could be automated. Oh well. Guess I’ll copy and paste manually when I remember too.&lt;/p&gt;
&lt;p&gt;Not that I write enough for this to be a big deal for me or for anyone else. But it does disappoint me. Perhaps Google+ really is intended to be a big walled garden within which you rent a plot where you plant your thoughts - but if I wanted that silly silo model, I’d be on Facebook.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/09/16/google-plus-minus-writes</link><guid>http://anthonybailey.tumblr.com/post/10285577714</guid><pubDate>Fri, 16 Sep 2011 21:08:54 +0100</pubDate></item><item><title>Google Identity</title><description>&lt;p&gt;These are some thoughts in response to a &lt;a title="Here's hoping those not signed up can see his allegedly public post" href="https://plus.google.com/105670733734079996862/posts/UXc6Lh2bAYv"&gt;post by Pavlos on Google+, on Google+&lt;/a&gt;. (They are posted here on my blog in order to be consistent with their content! Consider this a trackback. Hmmm, whatever happened to trackback?)&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I have three things to say here.&lt;br/&gt;&lt;br/&gt;First, whatever Google’s worthy plans may be re other long-term benefits of having well-defined identities in this new space, we should not forget that real names, tied to real addresses, are worth more to a company whose primary business is advertising. Pavlos, I expect you are cognizant of this, but I didn’t see it in your posts yet.&lt;br/&gt;&lt;br/&gt;Second, anyone who believes in the value of having an online identity and who then gives a commercial company ownership of their main identity page is taking quite a risk. Google has previously been mostly on the side of light re supporting technologies (such as OpenID) that do this stuff right: which is, to let you define your identity provider somewhere that you control, so you can migrate identity providers if required. (Register a domain name. Delegate everything that speaks canonically about you online - email, blog, profile - via resources accessed under that domain name.) I really hope Google+ makes supporting this approach a priority too.&lt;br/&gt;&lt;br/&gt;Lastly, with regards to both to my second point and to Pavlos’ third (re those who require anonymity) - this service is brand new. A lot of the features we are after are allegedly simply on the to-do list. So we should wait and see.&lt;/span&gt;&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/07/28/google-identity</link><guid>http://anthonybailey.tumblr.com/post/8147043774</guid><pubDate>Thu, 28 Jul 2011 00:22:56 +0100</pubDate></item><item><title>http://martinfowler.com/articles/lmax.html</title><description>&lt;a href="http://martinfowler.com/articles/lmax.html"&gt;http://martinfowler.com/articles/lmax.html&lt;/a&gt;: &lt;p&gt;Great write-up of &lt;a href="http://martinfowler.com/articles/lmax.html"&gt;a fascinating - nay, disruptive - architecture&lt;/a&gt; for applications that handle a very large number of highly interdependent requests - event-driven, tuned to processor caches, and pushing all the concurrency out to the edges.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/07/13/martinfowler-com-articles-lmax-html</link><guid>http://anthonybailey.tumblr.com/post/7551478446</guid><pubDate>Wed, 13 Jul 2011 00:44:15 +0100</pubDate></item><item><title>Who is ready to make some science?</title><description>&lt;p&gt;When Portal 2 came out, I had grand plans for a detailed post discussing the game, the multi-stage &lt;a title="Alternate Reality Game"&gt;ARG&lt;/a&gt; that surrounded the launch, the plans for &lt;a title="DownLoadable Content"&gt;DLC&lt;/a&gt;, and lastly my thoughts on whether the less clinical look of the game would get in the way of &lt;a href="http://anthonybailey.net/tumblelog/2010/07/11/re-opening-portal-my-favorite-custom-maps"&gt;homebrew levels&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Skip to the end… no, it has not. Wish there had been another two scenes in the middle act of the game? Install this &lt;em&gt;&lt;a href="http://forums.thinkingwithportals.com/downloads.php?view=detail&amp;df_id=410"&gt;Sphere of Roundness / Old Faithful&lt;/a&gt;&lt;/em&gt; level pair created by mapper Lobster. Beautiful puzzles!&lt;/p&gt;
&lt;p&gt;Oh yeah, I keep meaning to organize playing through the co-op. Anyone up for that?&lt;/p&gt;
&lt;p&gt;Update: &lt;a href="http://forums.thinkingwithportals.com/newspost-t3751.html"&gt;the maps that won&lt;/a&gt; the first Portal 2 &lt;em&gt;Thinking With Portals&lt;/em&gt; contest are of a similarly high quality.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/05/30/who-is-ready-to-make-some-science</link><guid>http://anthonybailey.tumblr.com/post/6015927345</guid><pubDate>Mon, 30 May 2011 23:43:00 +0100</pubDate></item><item><title>What would Feynman do? - Fabulous Adventures In Coding</title><description>&lt;a href="http://blogs.msdn.com/b/ericlippert/archive/2011/02/14/what-would-feynman-do.aspx"&gt;What would Feynman do? - Fabulous Adventures In Coding&lt;/a&gt;: &lt;p&gt;I’m not sure this totally disproves the value of interview questions that provoke thinking outside the box, but I found this to be a very funny dismantling of the well-known “three lamps and three switches” puzzle.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/02/16/what-would-feynman-do-fabulous-adventures-in-etc</link><guid>http://anthonybailey.tumblr.com/post/3317463316</guid><pubDate>Wed, 16 Feb 2011 00:21:00 +0000</pubDate></item><item><title>Mixing a Modern web presence</title><description>&lt;p&gt;&lt;img width="25%" alt="Modern Mixers logo" src="http://modernmixers.co.uk/images/modernmixers-logo.png" align="left"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img width="15%" src="http://lh6.ggpht.com/_fQh_-MDg5io/TA7g8evWDyI/AAAAAAAACCw/D-RQ_tI7goI/s512/berlin018.jpg" align="right"/&gt;Under the banner of &lt;a title="a pun so awkward one would fear I was responsible for it - not guilty in this rare case" href="http://modernmixers.co.uk"&gt;Miss Fitz-Poste Modern Mixers&lt;/a&gt;, my partner Julie and her friend/cofounder Emily (henceforth, “the Fitz-Postes”) for about a year have been running a mostly monthly vintage-themed event: a new-fangled take on the old-fashioned concept of a social mixer.&lt;/p&gt;
&lt;p&gt;&lt;img width="15%" align="right" src="http://lh4.ggpht.com/_fQh_-MDg5io/TA7gW4WK-hI/AAAAAAAACBA/9sor9IYd974/s512/berlin010.jpg"/&gt;The exact content varies with the theme but this Sunday afternoon’s &lt;em&gt;&lt;a title="Weimar-inspired 1930s theme" href="http://modernmixers.co.uk/hello-to-berlin"&gt;Hello to Berlin&lt;/a&gt;&lt;/em&gt; will do as an example: &lt;a href="http://blog.modernmixers.co.uk/2011/01/life-is-cabaret-old-chum.html"&gt;three burlesque performers, a band&lt;/a&gt;, DJ and compere, &lt;a href="http://blog.modernmixers.co.uk/2011/01/decadent-darlings.html"&gt;shopping from four craft stalls&lt;/a&gt;, &lt;a href="http://blog.modernmixers.co.uk/2011/01/berlin-beauty.html"&gt;hair and m&lt;/a&gt;&lt;a href="http://blog.modernmixers.co.uk/2011/01/berlin-beauty.html"&gt;akeovers&lt;/a&gt;, silly games with prizes, and other bits and pieces. They are genuinely great affairs I’m unashamed to push at my readership because your cooler significant other gets it straight away even if you don’t, and &lt;a title="Slideshow: I adjust facial hair and dress as instructed. This can include Christmas Elf costumes." href="http://picasaweb.google.com/lh/view?uname=modern.mixers&amp;cuname=modern.mixers&amp;psc=F&amp;tags=anthony#slideshow/5527726748401882002"&gt;in any case you get to laugh at what I wear on the door&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Other than manning said door, my main contribution is to enable their online presence. &lt;a title="modernmixers.co.uk" href="http://modernmixers.co.uk"&gt;The website&lt;/a&gt; is a zero budget affair, static pages hosted off the side of a slice I was already renting. The visual design is &lt;a title="bulletproof scalable CSS"&gt;technically sound&lt;/a&gt; but that’s the nicest thing anyone is likely to say about it something under my direct management. To mitigate that, apart from &lt;a title="which means I remain the blocker/gatekeeper for it - a CMS didn't seem worthwhile"&gt;core static copy served directly from the slice&lt;/a&gt;, the structural approach is to embed and aggregate content which is hosted elsewhere and created/managed by the Fitz-Postes. As much for my own diary as anything, I’ll describe the current arrangement.&lt;/p&gt;
&lt;p&gt;We host photos at PicasaWeb (embedding &lt;a title="the absence of decent embeddable widgets was the main reason we didn't use Flickr" href="http://modernmixers.co.uk/hello-to-berlin/#tickets"&gt;tag-driven slideshows&lt;/a&gt; within our site pages) and videos at YouTube. Any substantial written content, especially if it has potential long-term value, is created as &lt;a title="which are then embedded per-page based on tags"&gt;blog posts&lt;/a&gt;. The blog is hosted on Blogger but to avoid tight coupling that would impede migration, we reference it as and serve it from a &lt;a title="blog.modernmixers.co.uk" href="http://blog.modernmixers.co.uk"&gt;CNAME&lt;/a&gt; we control. The content is syndicated via a feed to the social spaces most of our regular punters use to follow us day-to-day: an almost pointless MySpace, an &lt;a title="the [There's an update, Here] notification style - could be better curated, I realize"&gt;obligatory Twitter&lt;/a&gt;, and by far the most popular current portal Facebook. The Fitz-Postes’ update with shorter notes and talk to punters very frequently on Facebook, which &lt;a title="though having more of 'our' substantial content on 'their' site would ring long-term brand/control alarms"&gt;I think is appropriate for this immediately valuable but more ephemeral stuff&lt;/a&gt;, and has &lt;a title="because the Fitz-Postes are already logged in and active there"&gt;a much lower activation energy&lt;/a&gt; - which is important, because more updates is better business.&lt;/p&gt;
&lt;p&gt;And finishing up said business: tickets are sold as &lt;a title="various combinations of tickets are implement as variants of a single PayPal product"&gt;PayPal items&lt;/a&gt;, and email is implemented in a similar fashion to the blog: permanent public addresses under the modernmixers.co.uk domain are backed with mail accounts hosted elsewhere, currently Gmail. (The Fitz-Postes use theit Google accounts to co-ordinate more admin through Google Docs, unsurprisingly.)&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/02/03/mixing-a-modern-web-presence</link><guid>http://anthonybailey.tumblr.com/post/3092403635</guid><pubDate>Thu, 03 Feb 2011 21:45:13 +0000</pubDate></item><item><title>Decloaked</title><description>&lt;p&gt;The last time I updated here, I said I was &lt;a href="http://anthonybailey.net/tumblelog/2010/10/05/desertion"&gt;journeying off into the desert&lt;/a&gt;. More than three months since, if I had readers I didn’t know they’d probably be a bit worried about me.&lt;/p&gt;
&lt;p&gt;No, the trip was only a week as planned. A similarly brief description: the sheer scale of the landscape (mountains en route, then sands as far as the eye can see) was vastly impressive. I got to ride a camel through what was technically a sandstorm. I hung out with very friendly &lt;a href="http://wikipedia.org/wiki/Berber_people"&gt;hosts&lt;/a&gt; and a weird mix of nice-on-average visitors circling a middle-class artistic hippie locus, although there was far too much deference to native musical and spiritual authenticity. (I judge modern clubs better at trance rhythms, and the music that gave me shivers of joy was &lt;a title="by Rose Elinor Dougall" href="http://amazon.co.uk/dp/B003WCFT2W"&gt;&lt;em&gt;Without Why&lt;/em&gt;&lt;/a&gt; on my MP3 player in the airport.)&lt;/p&gt;
&lt;p&gt;&lt;img alt="cloak" src="http://anthonybailey.net/images/cloak.jpg" height="360" width="200" align="left"/&gt;Whilst deserting, I also got to enjoy the practicalities of a cloaking device: a long hooded covering formally called a &lt;a title='"burr-noose"' href="http://wikipedia.org/wiki/Burnous"&gt;&lt;em&gt;burnous&lt;/em&gt;&lt;/a&gt;. It’s particularly well-suited to the &lt;a title="sand, man"&gt;soft places&lt;/a&gt; of Morocco: quite light, warm when need be, a shelter against sand and wind, and a keeper of &lt;a title="see, there's a lack of lavatories in the desert"&gt;personal space&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Back here, I already regularly wore the cloak as a dressing-gown around the house. Then I visited my parents in London over Christmas; wanting to minimize what I carried, I tried it as my outdoor coat. And at the start of this year my regular furry black coat went away for repairs, so I wore the cloak around town for a couple of weeks.&lt;/p&gt;
&lt;p&gt;&lt;img alt="coat" src="http://anthonybailey.net/images/coat.jpg" height="360" width="200" align="right"/&gt;I really quite liked it. Warm and light as previously noted, it is also great for my regular extra thirty minutes of sleep in the back of the 43 bus during my commute out to South Queensferry, and it didn’t take me too long to learn how to not trip on it. But it gives off very loud pretentious goth vibes, whilst I’m a quiet and dispassionate goth who does not seek to provoke the staring or the cries of “hey, Aragorn”.&lt;/p&gt;
&lt;p&gt;So now that my furry coat is relined and returned, I have disengaged the cloaking device. Ironically, said coat itself wants to be worn by a 70’s rock-star even further removed from my character; I guess I learned to forge my signature coat long enough ago that this ceased to worry me.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2011/01/25/decloaked</link><guid>http://anthonybailey.tumblr.com/post/2917537656</guid><pubDate>Tue, 25 Jan 2011 02:01:00 +0000</pubDate></item><item><title>Desertion</title><description>&lt;p&gt;A quick note that I’m out the country and offline for about a week. Mostly at the edge of a Moroccan desert, back Wednesday 13th.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/10/05/desertion</link><guid>http://anthonybailey.tumblr.com/post/1248211599</guid><pubDate>Tue, 05 Oct 2010 10:06:49 +0100</pubDate></item><item><title>http://cspangled.blogspot.com/2010/09/better-way-of-logging.html</title><description>&lt;a href="http://cspangled.blogspot.com/2010/09/better-way-of-logging.html"&gt;http://cspangled.blogspot.com/2010/09/better-way-of-logging.html&lt;/a&gt;: &lt;p&gt;After a few months away, &lt;a href="http://cspangled.blogspot.com/"&gt;Albert&lt;/a&gt; has returned to log much wisdom at level INFO.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/09/26/cspangled-blogspot-com-2010-09-better-way-of-etc</link><guid>http://anthonybailey.tumblr.com/post/1187737687</guid><pubDate>Sun, 26 Sep 2010 00:14:09 +0100</pubDate></item><item><title>All Your Face Are Belong To Us</title><description>&lt;p&gt;Well &lt;em&gt;someone&lt;/em&gt; had to make the obvious joke re &lt;a href="http://techcrunch.com/2010/08/26/trademark-face/"&gt;Facebook applying for a trademark on the term “face”&lt;/a&gt;, even if I am &lt;a href="http://anthonybailey.net/tumblelog/2010/07/07/prince-pun"&gt;late as usual&lt;/a&gt;.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/08/31/all-your-face-are-belong-to-us</link><guid>http://anthonybailey.tumblr.com/post/1041428843</guid><pubDate>Tue, 31 Aug 2010 09:23:06 +0100</pubDate></item><item><title>Surely You're Trolling, Mr Allen!</title><description>&lt;p&gt;Reading about &lt;a href="http://www.wired.com/epicenter/2010/08/paul-allen-patent-lawsuit"&gt;Paul Allen’s recent round of “…but on the web” e-commerce patent suits&lt;/a&gt; reminds me of &lt;strong&gt;one of the most objectionable aspects of the current patent system&lt;/strong&gt;: the way that when a new technology or medium appears, rights to using it in combination with existing ideas seem to get assigned in a “first post!” &lt;a href="http://en.wikipedia.org/wiki/Dibs"&gt;manner&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;It always makes me think of this excerpt from the &lt;em&gt;“I Want My Dollar!”&lt;/em&gt; story Feynman tells in &lt;a href="http://www.amazon.com/dp/0393316041"&gt;&lt;em&gt;“Surely You’re Joking, Mr Feynman!&lt;/em&gt;&lt;/a&gt;”:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;…during the war, at Los Alamos, there was a very nice fella in charge of the patent office for the government, named Captain Smith. Smith sent around a notice to everybody that said something like, “We in the patent office would like to patent every idea you have for the United States government, for which you are working now.[…]&lt;/p&gt;
&lt;p&gt;I say to him, “That note you sent around: That’s kind of crazy to have us come in and tell you every idea. […] &lt;strong&gt;There are so many ideas about nuclear energy that are so perfectly obvious, that I’d be here all day telling you stuff.&lt;/strong&gt;”&lt;br/&gt;&lt;br/&gt;“LIKE WHAT?”&lt;br/&gt;&lt;br/&gt;“Nothin’ to it!” I say. “Example: nuclear reactor under water; water goes in, steam goes out the other side, pshshshsht - it’s a submarine. Or: nuclear reactor; air comes rushing in the front, heated up by nuclear reaction, out the back it goes, Boom! Through the air - it’s an airplane. Or: nuclear reactor; you have hydrogen go through the thing, Zoom! - it’s a rocket. Or: nuclear reactor; only instead of using ordinary uranium, you use enriched uranium with beryllium oxide at high temperat ure to make it more efficient - it’s an electrical power plant. There’s a million ideas!” I said, as I went out the door.&lt;br/&gt;&lt;br/&gt;Nothing happened.&lt;br/&gt;&lt;br/&gt;About three months later, Smith calls me in the office and says, “Feynman, the submarine has already been taken. But the other three are yours.”&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://anthonybailey.net/tumblelog/2010/08/29/surely-youre-trolling-mr-allen</link><guid>http://anthonybailey.tumblr.com/post/1032129687</guid><pubDate>Sun, 29 Aug 2010 19:11:39 +0100</pubDate></item><item><title>I am not a third party</title><description>&lt;p&gt;You may be aware that because of its &lt;a title="all-or-nothing is insufficiently fine-grained - most apps need less than full access to every aspect of a user's Twitter account"&gt;unsuitability&lt;/a&gt; as a mechanism to give third-party applications suitable access to a user’s account, Twitter are phasing out &lt;a href="http://en.wikipedia.org/wiki/Basic_access_authentication"&gt;Basic Auth&lt;/a&gt; at the end of this month, &lt;a href="http://countdowntooauth.com/"&gt;supporting only OAuth&lt;/a&gt; from then on.&lt;br/&gt;&lt;br/&gt;This is annoying for those of us who individually automate some aspect of our Twitter use - &lt;a title="OK, severe over-reaction - it's not *that* hard" href="http://www.scripting.com/stories/2010/04/26/theToxicCoralReef.html%20"&gt;Dave Winer’s reaction&lt;/a&gt; is illustrative. I recently sighed and reluctantly updated &lt;a title="it syndicates/summarizes recent posts" href="http://anthonybailey.net/tumblelog/2009/08/26/bub-s-pub-hub"&gt;the relevant bit of my homegrown blog admin&lt;/a&gt;. (I followed the same kind of &lt;a title="registering an imaginary app and chasing links back and forth in a browser" href="http://anthonybailey.net/tumblelog/2010/05/10/exporting-your-facebook-graph"&gt;approach I used recently for the Facebook graph API&lt;/a&gt;.)&lt;br/&gt;&lt;br/&gt;The reason it irks is that although &lt;a href="http://en.wikipedia.org/wiki/OAuth"&gt;OAuth&lt;/a&gt; is surely appropriate in a third-party developer API, it is not so for a client API that allows an individual user to script their regular interactions with a web presence. OAuth is overly &lt;a title="shall we dance? app ids and secrets, codes and access tokens"&gt;heavyweight&lt;/a&gt;. It makes &lt;a title='e.g. that the "app" is itself web-accessible, that anyone but me needs to know about it'&gt;assumptions&lt;/a&gt; that are not true. And it does not reflect the simple client usecase - a way to automate the things I can do by hand without resorting to robot-clicking and screen-scraping.&lt;/p&gt;
&lt;p&gt;If some action or resource is available after a user logs in with a username and password, I think ideally the same action or resource should be available for scripting through HTTPS + Basic Auth with the same credentials - surely that is exactly what this authentication mechanism was intended for? I am the first party, not a third.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/08/25/i-am-not-a-third-party</link><guid>http://anthonybailey.tumblr.com/post/1010461017</guid><pubDate>Wed, 25 Aug 2010 21:43:35 +0100</pubDate></item><item><title>Headius: My Thoughts on Oracle v Google</title><description>&lt;a href="http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html"&gt;Headius: My Thoughts on Oracle v Google&lt;/a&gt;: &lt;p&gt;A great piece by Charles Nutter laying out the context and content of Oracle’s patent claims against Android.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/08/16/my-thoughts-on-oracle-v-google</link><guid>http://anthonybailey.tumblr.com/post/964841437</guid><pubDate>Mon, 16 Aug 2010 23:45:57 +0100</pubDate></item><item><title>Recommended Listening: CometD and Push Technology
Greg Wilkins...</title><description>&lt;embed type="application/x-shockwave-flash" src="http://assets.tumblr.com/swf/audio_player_black.swf?audio_file=http://www.tumblr.com/audio_file/936906528/tumblr_l6zmuvflwD1qz4e9e&amp;color=FFFFFF" height="27" width="207" quality="best" wmode="opaque"&gt;&lt;/embed&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Recommended Listening: &lt;a href="http://itc.conversationsnetwork.org/shows/detail4571.html"&gt;CometD and Push Technology&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Greg Wilkins talks about Comet (that “long-poll” AJAX approach to approximate two-way communication between client browser and web server) in &lt;a href="http://itc.conversationsnetwork.org/shows/detail4571.html"&gt;this episode&lt;/a&gt; (48min) of Phil Windley’s Technometria.&lt;/p&gt;
&lt;p&gt;As well as introducing the technique he offers opinions on how to use it both &lt;a title="use an abstraction layer, because the error/timeout-handling is subtle"&gt;clientside &lt;/a&gt;and &lt;a title="make sure your server has good support for asynchronous request handling"&gt;serverside&lt;/a&gt;, and how other technologies such as websockets and SPDY fit in.&lt;/p&gt;
&lt;p&gt;I felt vaguely ignorant of this stuff before listening to the interview; afterward I feel vaguely informed (albeit by an interested party who maintains the &lt;a title="oh, look, an abstraction layer" target="_blank" href="http://cometd.com/"&gt;CometD&lt;/a&gt; library, and &lt;a title="oh, look, a webserver with good support for asynchronous request handling" target="_blank" href="http://www.mortbay.org/jetty/"&gt;Jetty&lt;/a&gt;.)&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/08/11/cometd-and-push-technology-greg-wilkins-etc</link><guid>http://anthonybailey.tumblr.com/post/936906528</guid><pubDate>Wed, 11 Aug 2010 13:32:00 +0100</pubDate></item><item><title>Re-opening Portal (my favorite custom maps)</title><description>&lt;p&gt;A few co-workers recently succumbed to peer pressure and got around to playing &lt;em&gt;Portal&lt;/em&gt;. There has been much quoting of GLaDOS and xkcd recently as a result.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://xkcd.com/606/"&gt;&lt;img alt="XKCD cartoon on cutting edge gaming" src="http://imgs.xkcd.com/comics/cutting_edge.png" width="100%"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://anthonybailey.net/tumblelog/2007/12/25/its-hard-to-overstate-my-satisfaction"&gt;I loved playing the game&lt;/a&gt; and &lt;a href="http://anthonybailey.net/tumblelog/2008/01/02/look-at-me-still-talking-when-theres-science-etc"&gt;many user-created maps&lt;/a&gt;. So for those who have tackled the Advanced Chambers and still want more, I’ve put together a list of my favorites.&lt;/p&gt;
&lt;p&gt;(I won’t link directly; you will probably find them all on  both &lt;a target="_blank" href="http://myaperturelabs.com/"&gt;My Aperture Labs&lt;/a&gt; and &lt;a target="_blank" href="http://thinkingwithportals.com"&gt;Thinking With Portals&lt;/a&gt; but I’m not confident about  either site’s permalinks.)&lt;/p&gt;
&lt;p&gt;&lt;a title="I witter more about this, and list some levels that are too hard for me, at the end"&gt;My tastes in brief: I tend to like puzzles and neat uses of physics; I’m really not very skillful and if much dexterity is required then I want reassurance that I’m not wasting my time.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I’ve &lt;a href="http://anthonybailey.net/tumblelog/2008/06/25/i-do-like-this-game-and-its-mods-etc"&gt;already previously praised&lt;/a&gt; the huge, wonderful conversion &lt;em&gt;Portal: The Flash Version&lt;/em&gt;. Others that suit my tastes, in vaguelly descending order:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;*UPDATE2*&lt;/strong&gt; OK, &lt;em&gt;Try Anything Twice&lt;/em&gt; by HMW takes first prize at the Science Fair, it needs &lt;a href="http://anthonybailey.net/tumblelog/2011/10/04/one-two-testing"&gt;its own post&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;*UPDATE* &lt;/strong&gt;&lt;em&gt;Marf Aperture &lt;/em&gt;by MasterMarf (may be the best one yet!)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;LoveGLaDos&lt;/em&gt; by Graxthal (gated right at the start - see my note on crouching, below) &lt;/li&gt;
&lt;li&gt;&lt;em&gt;Weighted Companion Cube Map&lt;/em&gt; by MrCow&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Rainbow Palace&lt;/em&gt; by Duffedwaft (has one awkward twitch-turn when falling to the first cube)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Spheres of Influence&lt;/em&gt; by Chris Cummings (take the turrets bowling, take them bowling)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Portal HPC&lt;/em&gt; by Omega Studios&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Infrared&lt;/em&gt; by Omnicoder (on-the-edge of needing too skill for me to enjoy it: &lt;em&gt;Omega&lt;/em&gt; by the same creator went over that edge)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Tasty Treats&lt;/em&gt; by Duque-Rois&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Conundrum&lt;/em&gt; by AmnDragon&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;You could also check these out (especially the first) for some unusual features:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;em&gt;Chamber23&lt;/em&gt; by Tefkor17 (features an amazing Rube Goldberg contraption)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Maybe Black Mesa&lt;/em&gt; by Sean M (nice Half-Life decor)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Companion Cube Rescue&lt;/em&gt; by SpikeX (explores really huge distances and big turret fights)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Please note that there’s one principle  that the original game never trains you on but that custom maps  sometimes assume you know&lt;/strong&gt;: &lt;a title="In fact, I think that speedy-thing goes in,  speedier-thing comes out"&gt;crouching as you go through a &lt;em&gt;Portal&lt;/em&gt; -  so that more of you is closer to its center - increases how much  momentum you “conserve”&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;(So that you know if you’ll like what I like, I should explain in more detail what I want from a game that requires both thinking and acting. Working out a clever solution is fun. Mastering a difficult gameplay sequence is tolerable. But I really don’t like having to do both at once, especially when I’m not sure whether I’ve got the wrong idea altogether, or am just too crap to execute it. I recently enjoyed playing &lt;em&gt;&lt;a title="much praised indie game, a highly original time-twisting puzzler" target="_blank" href="http://www.braid-game.com/"&gt;Braid&lt;/a&gt;&lt;/em&gt;, &lt;a title="It still amazes me how well the original Portal avoided these problems - their huge investment in play-testing paid off."&gt;but I did find it suffered from this quite a lot&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also there are plenty of maps that simply defeat my meagre skills and patience. For example, I suspect that the &lt;em&gt;Logic Portals&lt;/em&gt; series is excellent: it takes training seriously and it made a determined affort to teach me how to &lt;a title="adjacent portals, one higher than the other - loop through them many times, building up momentum"&gt;step fling&lt;/a&gt;, but I just found it too tricky. Anything involving twitch-reflex portal placement is no good for me. And I found &lt;em&gt;Portal: Prelude&lt;/em&gt; way too hard.)&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/07/11/re-opening-portal-my-favorite-custom-maps</link><guid>http://anthonybailey.tumblr.com/post/798633263</guid><pubDate>Sun, 11 Jul 2010 19:38:00 +0100</pubDate></item><item><title>Prince pun</title><description>&lt;p&gt;My late joke re &lt;a title="Prince declares the internet is over, releases his music on CD free with the Daily Mirror" href="http://mashable.com/2010/07/06/prince-the-internet-is-over"&gt;the Prince thing&lt;/a&gt;: though still mostly downloaded, he’s now the artist formally known through Print&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/07/07/prince-pun</link><guid>http://anthonybailey.tumblr.com/post/780476986</guid><pubDate>Wed, 07 Jul 2010 10:25:39 +0100</pubDate></item><item><title>PeepCode: Rethinking Rails 3 Controllers and Routes</title><description>&lt;a href="http://blog.peepcode.com/tutorials/2010/rethinking-rails-3-routes"&gt;PeepCode: Rethinking Rails 3 Controllers and Routes&lt;/a&gt;: &lt;p&gt;The scales fell from my eyes as I read &lt;a href="http://blog.peepcode.com/tutorials/2010/rethinking-rails-3-routes"&gt;Geoffrey Grosenbach’s post on how Rails’ restful route to controller action translation has become a pointless, wasteful abstraction&lt;/a&gt;.&lt;/p&gt;</description><link>http://anthonybailey.net/tumblelog/2010/06/03/rethinking-rails-3-controllers-and-routes</link><guid>http://anthonybailey.tumblr.com/post/660700918</guid><pubDate>Thu, 03 Jun 2010 19:50:43 +0100</pubDate></item></channel></rss>

