<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.insanejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>urn:lj:insanejournal.com:atom1:shortcipher</id>
  <title>Chris' journal</title>
  <subtitle>Chris Boyle</subtitle>
  <author>
    <name>Chris Boyle</name>
  </author>
  <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/"/>
  <link rel="self" type="text/xml" href="http://shortcipher.insanejournal.com/data/atom"/>
  <updated>2009-11-22T15:24:25Z</updated>
  <link rel="service.feed" type="application/x.atom+xml" href="http://shortcipher.insanejournal.com/data/atom" title="Chris' journal"/>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:85535</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/85535.html"/>
    <title>Puzzles on Android updated</title>
    <published>2009-11-22T15:24:25Z</published>
    <updated>2009-11-22T15:24:25Z</updated>
    <category term="geek"/>
    <category term="announce"/>
    <content type="html">&lt;img src="http://chris.boyle.name/images/sgtpuzzles-net.png" width="200" height="300" style="float:left;padding-right:2em;padding-bottom:1.5em" /&gt; For those who won't have seen it elsewhere: I've updated my &lt;a href="http://chris.boyle.name/projects/android-puzzles"&gt;Android port of Simon Tatham's puzzle collection&lt;/a&gt;. It now includes:
&lt;ul&gt;&lt;li&gt;native code instead of NestedVM (smaller, faster, I have rebuilt it, I have the technology)&lt;/li&gt;
&lt;li&gt;a selective on-screen keyboard for keyboardless devices&lt;/li&gt;
&lt;li&gt;undo/redo buttons on that keyboard (no more Menu/Undo/Menu/Undo/...)&lt;/li&gt;
&lt;li&gt;saving and loading on the SD card&lt;/li&gt;
&lt;li&gt;documentation in the package instead of launching the browser&lt;/li&gt;
&lt;li&gt;Helge Kreutzmann's German translation of the documentation&lt;/li&gt;
&lt;li&gt;improved crash reporting&lt;/li&gt;
&lt;li&gt;a bunch of bug fixes for recently-released Android devices, and other bug fixes&lt;/li&gt;
&lt;/ul&gt;
If you're reading this on Android, you can &lt;a href="market://search/?q=pname:name.boyle.chris.sgtpuzzles"&gt;go directly to Android Market&lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:85270</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/85270.html"/>
    <title>Upcoming Android devices</title>
    <published>2009-11-02T17:04:44Z</published>
    <updated>2009-11-03T12:55:43Z</updated>
    <category term="geek"/>
    <content type="html">Anyone who's been waiting for better Android phones to arrive hasn't much longer to wait. The next 7 days look interesting:

&lt;ul&gt;
&lt;li&gt;Just now: &lt;a href="http://www.engadget.com/2009/11/02/sprint-launches-samsung-moment-android-empire-expands-by-one/"&gt;Samsung Moment&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tomorrow&lt;/strong&gt;, Tue 3&lt;sup&gt;rd&lt;/sup&gt; Nov: &lt;a href="http://www.sonyericsson.com/whatsnext/"&gt;Sony Ericsson &lt;strike&gt;X3/&lt;/strike&gt;X10&lt;strike&gt;/Infinity/Rachael/something&lt;/strike&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fri 6&lt;sup&gt;th&lt;/sup&gt; Nov: &lt;a href="http://en.wikipedia.org/wiki/Motorola_Droid"&gt;Motorola Droid&lt;/a&gt; US launch, also the cheaper &lt;a href="http://www.engadget.com/2009/10/31/leaked-docs-show-htcs-droid-eris-launching-on-november-6th-for/"&gt;HTC Droid Eris&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Mon 9&lt;sup&gt;th&lt;/sup&gt; Nov: &lt;a href="http://www.engadgetmobile.com/2009/11/02/droid-headed-to-germany-as-motorola-milestone/"&gt;Motorola Milestone&lt;/a&gt; (GSM version of the Droid) available in Germany.&lt;/li&gt;&lt;/ul&gt;

For comparison, here's the new &lt;a href="http://www.engadget.com/2009/11/02/orange-uks-iphone-contract-and-pay-as-you-go-pricing-plans-detail/"&gt;Orange UK iPhone pricing&lt;/a&gt; &lt;small&gt;(&lt;a href="http://www.youtube.com/watch?v=dPYM-XTqcec"&gt;*cough*&lt;/a&gt;)&lt;/small&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:85068</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/85068.html"/>
    <title>What I've been working on for the last long while...</title>
    <published>2009-10-20T12:50:13Z</published>
    <updated>2009-10-20T12:58:51Z</updated>
    <category term="work"/>
    <category term="announce"/>
    <content type="html">&lt;a href="http://knowledgehub.zeus.com/news/2009/10/20/zeus_traffic_manager_6_0_released"&gt;It's done!&lt;/a&gt; The most visible of my changes in this release is geolocation in TrafficScript and Java. You can now efficiently get the city/region/country/lat-long of an IP address from a supplied data file. Handy if you want to vary your website depending on the client's location, for example.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:84766</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/84766.html"/>
    <title>Case of the missing parcel, reprise</title>
    <published>2009-10-13T15:37:51Z</published>
    <updated>2009-10-13T15:39:15Z</updated>
    <category term="work"/>
    <category term="cambridge"/>
    <content type="html">I had &lt;a href="http://shortcipher.insanejournal.com/74470.html"&gt;a similar call in June 2008&lt;/a&gt; and never worked out why, or what sort of scam this could be the basis of:&lt;br /&gt;&lt;br /&gt;A man from "Parcel Point Deliveries" or similar called me at work yesterday, saying they had tried to deliver a parcel last Thursday, and would try again today between 9 and 5. He asked me to nominate anyone who could sign for it instead; I gave one name (see below). He said the parcel was from Manchester, but that he had no further information about its origin. This parcel has not turned up, and somewhat foolishly I didn't take the caller's number (nor was it logged my company's phone system, apparently).&lt;br /&gt;&lt;br /&gt;Does anyone want to own up to trying to send me a parcel? The only benefit I can see the caller getting from this call if they made it up is the name of someone else inside the company, but several such names can be trivially found on our website. Also my mobile number, which they were supposed to call, but that's also easy to find.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:84511</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/84511.html"/>
    <title>Personal use restrictions in software licenses</title>
    <published>2009-09-26T09:37:33Z</published>
    <updated>2009-09-28T13:43:47Z</updated>
    <category term="geek"/>
    <content type="html">I'd appreciate some advice from people who know the law relating to software licenses better than I do. I'm particularly interested in answers that apply to me as a UK citizen, although information for other countries is useful.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(1) To what extent are software license clauses that restrict the actions of individual personal end users, other than redistribution or reverse engineering, legally enforcible?&lt;/strong&gt; I'm talking about things like &lt;a href="http://www.htc.com/uploadedFiles/WWW/Support/io_device_license.htm"&gt;this HTC license&lt;/a&gt;: &lt;q&gt;You may only load the Google Software onto the Android Developer Phone 1, and [with some exception] you may not combine any part of the Google Software with other software&lt;/q&gt;, as it applies to my personal use.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;(1b) To what extent would such restrictions stand up (or have they stood up) in court?&lt;/strong&gt; In particular, do HTC or Google have any history or stated policy on trying to enforce such restrictions?&lt;br /&gt;&lt;br /&gt;Here's where things get interesting: &lt;strong&gt;(2) What laws, if any, would be broken by someone who distributes a script or instructions to, given a file obtained legally by a user who agreed to that HTC license, extract components of that file and put them on a device or in a system image, the stated purpose being for individual users for their own personal use?&lt;/strong&gt; I'm guessing this centers on the script not being considered a derivative work. The said components are not currently protected by any kind of copy-protection mechanism as I understand the term. This is not something I even have the time to create, nor something I'm advocating making, but I'm interested in whether someone will be able to do it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Several workarounds of this form have appeared. This puts Google in an interesting position, in that if they object to this approach, it's somewhat inconsistent for them to recommend in their documentation that developers &lt;a href="http://source.android.com/documentation/building-for-dream"&gt;do the same thing with G1/Dream device firmware blobs to work around HTC's copyright&lt;/a&gt;! (necessary to build &lt;em&gt;any&lt;/em&gt; system image that can use devices like the radio (i.e. phone), sensors, probably wifi, etc.)</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:84358</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/84358.html"/>
    <title>The future of Android / CyanogenMod: reply hazy, try again</title>
    <published>2009-09-25T15:57:37Z</published>
    <updated>2009-09-26T07:22:55Z</updated>
    <category term="geek"/>
    <content type="html">First a bunch of apps were closed source, then we've seen how lax they are at updating the public git tree, and now this: Google has &lt;a href="http://androidandme.com/2009/09/hacks/cyanogenmod-in-trouble/"&gt;thrown toys from its pram&lt;/a&gt; over the inclusion of their closed-source applications in the most popular unofficial Android ROM. The ROM builder is trying to open communication with them, but I wouldn't hold your breath. Those apps are, in increasing order of importance to me:
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;YouTube&lt;/strong&gt; (&lt;q&gt;I think I can live without that particular piece of junk.&lt;/q&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Mail&lt;/strong&gt; (Meh. Not my main address, and IMAP will work with &lt;a href="http://code.google.com/p/k9mail/"&gt;other clients&lt;/a&gt;.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Talk&lt;/strong&gt; (I use that, but again, a &lt;a href="http://jabiru.mzet.net/"&gt;Jabber client&lt;/a&gt; can connect to it.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Android Market&lt;/strong&gt; (I've bought a few apps, most importantly &lt;a href="http://feedr.podzone.net/"&gt;FeedR&lt;/a&gt;, and continuing access to updates would be nice if the vendors are willing to support some other method of subscription, but it's not vital.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Maps&lt;/strong&gt; (This is where I hope &lt;a href="http://www.andnav.org/"&gt;AndNav&lt;/a&gt; continues to work and the one operational &lt;a href="http://openrouteservice.org/"&gt;OpenRouteService&lt;/a&gt; server stays up.)&lt;/li&gt;&lt;/ul&gt;
Notably, the Calendar and Contacts apps and their respective synchronisation providers are open source.&lt;br /&gt;
&lt;br /&gt;
Others may have different opinions about the importance of the closed apps, but personally it wouldn't make a huge difference to me if unofficial ROMs no longer included them. I know of no other legal problem with CyanogenMod, since it's based on the Android public git tree, so it can and hopefully will live on (although users might have to do &lt;a href="http://source.android.com/documentation/building-for-dream"&gt;this sort of crazy firmware dance&lt;/a&gt;). Some people may return to stock ROMs, but I would still rather have root access on what is, lest we forget, my device, not Google's or T-Mobile's. A short list of reasons:
&lt;ul&gt;&lt;li&gt;Generally, the ability to tweak things beneath the UI, e.g. for wifi, where the UI can't cope with my employer's WPA2 Enterprise network, but I can edit &lt;tt&gt;wpa_supplicant.conf&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;The ability to fix bugs in all existing open-source applications/components, without all the &lt;a href="http://shortcipher.insanejournal.com/79756.html"&gt;"it's a completely different application" faff&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Early and convenient access to new features from the git tree.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/android-wifi-tether/"&gt;Wifi/Bluetooth tethering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The ability to use third-party bugfixes and improvements without waiting for Google. Cyanogen has done awesome things with scheduler tweaks that make the device much faster, and he had an update that fixed the recent null-pointer kernel root hole before Google did.&lt;/li&gt;&lt;/ul&gt;
In another 8 months or so, the contracts of G1 early adopters will start running out. Meanwhile, devices with much nicer amounts of memory, internal storage and CPU cycles are appearing, a few of which with keyboards, which is good news for those of us who like to SSH from our devices. Some of them reportedly have &lt;tt&gt;fastboot&lt;/tt&gt; available out of the box (or perhaps that's just for review models). It'll be interesting to see what happens to Android between now and then.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update:&lt;/b&gt; &lt;a href="http://androidandme.com/2009/09/news/google-responds-to-cyanogenmod-controversy/"&gt;Google's response, and one from Cyanogen&lt;/a&gt;. :-/</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:84198</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/84198.html"/>
    <title>London, this Sunday (9th August)</title>
    <published>2009-08-03T16:44:37Z</published>
    <updated>2009-08-03T16:51:12Z</updated>
    <content type="html">On Saturday afternoon through to Sunday morning, I'll be at a housewarming in Hackney. On Sunday evening, I'll be at the &lt;a href="http://www.individualpubs.co.uk/pembury/"&gt;Pembury Tavern&lt;/a&gt;. Between the two, I don't know if the hosts of the housewarming will be busy and/or exhausted, it'd obviously be silly to go back to Cambridge and I think Susan has plans that don't involve me. If you might be interested in meeting up with me for some of Sunday in London, and/or you know of things a geek should see/do in London, speak now.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:83819</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/83819.html"/>
    <title>Kitties!</title>
    <published>2009-07-11T12:55:03Z</published>
    <updated>2009-07-24T09:09:45Z</updated>
    <category term="silly"/>
    <category term="announce"/>
    <category term="cambridge"/>
    <content type="html">&lt;div style="text-align:center;margin:auto;width:400px"&gt;&lt;img src="http://chris.boyle.name/images/20090711-lolkitties.jpg" alt="We can has Normality" /&gt;&lt;br /&gt;&lt;span style="font-style:italic"&gt;...anything you can't cope with in the presence of kitties must be srs bsns.&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;(With apologies to the late Douglas Adams. Normality is our house name if you've not been paying attention at the back.)&lt;/p&gt;

&lt;p&gt;As Susan &lt;a href="http://numberland.livejournal.com/67566.html"&gt;just said&lt;/a&gt;, if all goes according to plan we'll have these two living with us from next weekend. :-) Currently the one on the left is called Biscuit and on the right is Thomaslina. We'll be changing at least the latter. Any ideas? So far I like Susan's suggestion of Brownie.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; They are now (from left) &lt;strong&gt;Heisenberg&lt;/strong&gt;, because she tends to run around such that we can't tell how fast she's going, and &lt;strong&gt;Schr&amp;ouml;dinger&lt;/strong&gt;, because she tends to hide such that we can't tell whether she's there.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:83518</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/83518.html"/>
    <title>Open Tech 2009</title>
    <published>2009-07-04T22:14:20Z</published>
    <updated>2009-10-02T12:18:36Z</updated>
    <category term="geek"/>
    <content type="html">I'm sure there'll be many better write-ups of this &lt;a href="http://www.ukuug.org/events/opentech2009/schedule/"&gt;very worthwhile event&lt;/a&gt;, but here are my &lt;a name="cutid1"&gt;&lt;/a&gt;brief impressions of each talk I went to (mostly room 3E).
&lt;dl&gt;
&lt;dt&gt;VOIP radio drama&lt;/dt&gt;
&lt;dd&gt;The &lt;a href="http://radioriel.blogspot.com/2008/12/radio-riel-players-tribute.html"&gt;Radio Riel Players&lt;/a&gt; have been recording contributions over Skype using USB mics and such. I didn't see it as &lt;em&gt;open&lt;/em&gt; tech, except in so far as &lt;a href="http://audacity.sourceforge.net/"&gt;Audacity&lt;/a&gt; got a mention for post-production (Skype protocol docs, anyone?), but nice to see that such things are possible.&lt;/dd&gt;
&lt;dt&gt;Digital Archaeology of the microcomputer, 1974-1994&lt;/dt&gt;
&lt;dd&gt;Or, how to archive old software. Keep &lt;em&gt;everything&lt;/em&gt;, including lossless audio in the case of data cassettes; record all relevant details like a good librarian or you won't be able to run it when you come back to it. Copy-"protection" methods, both enter-word-from-manual and other, are a pain. All fairly obvious I guess, but perhaps good lessons for anyone developing software that people might want in 10+ years.&lt;/dd&gt;
&lt;dt&gt;Open video as the new TV&lt;dt&gt;
&lt;dd&gt;Making video is hard. &lt;a href="http://visionon.tv/"&gt;These guys&lt;/a&gt; have some good channels, some useful code around RSS and torrents, and apparently some templates for videos.&lt;/dd&gt;
&lt;dt&gt;Standards are Peace, Standardization [sic] is War!&lt;/dt&gt;
&lt;dd&gt;Locking a committee in a room until they come out with what they all hate least does not a good standard make. I basically agree with this, although other approaches have their drawbacks too.&lt;/dd&gt;
&lt;dt&gt;Why our internet liability laws are broken&lt;/dt&gt;
&lt;dd&gt;Scary. They are. I didn't realise the state of UK law is actually &lt;em&gt;worse&lt;/em&gt; than the DMCA in this regard: at least the DMCA requires complete, accurate takedown notices and has a significant penalty for inaccurate ones. Contrast with a generic lawerly nastygram.&lt;/dd&gt;
&lt;dt&gt;One Click Orgs&lt;/dt&gt;
&lt;dd&gt;A &lt;a href="http://www.oneclickor.gs/"&gt;useful service&lt;/a&gt; for groups that suddenly need to be legally-recognised organisations, to take a lot of the faff away.&lt;/dd&gt;
&lt;dt&gt;10 cultures (Bill Thompson)&lt;/dt&gt;
&lt;dd&gt;The Bill &amp;amp; Ben show was the highlight of the day for me. Bill's argument was along the lines of: politicians need to understand the principles and capabilities of current technology (so far so good), and the fastest way to get them into that mindset is to teach them the basics of programming. An &lt;em&gt;interesting&lt;/em&gt; suggestion, but well made, and entertaining. &lt;b&gt;Edit:&lt;/b&gt; &lt;a href="http://brideswell.com/content/?p=222"&gt;someone recorded this&lt;/a&gt;.&lt;/dd&gt;
&lt;dt&gt;Ben Goldacre&lt;/dt&gt;
&lt;dd&gt;Of &lt;a href="http://www.badscience.net/"&gt;Bad Science&lt;/a&gt; fame, and the well-founded media mockery was good fun to see in person. To echo &lt;a href="http://twitter.com/kript/status/2469226832"&gt;a tweet&lt;/a&gt;, &lt;q&gt;If that was Ben Goldacre hung over, I really want to see him at his best!&lt;/q&gt; Talking about, among other things, how widely-scattered blogs often present much more useful information than mainstream media, but it's hard for an outsider to jump in and get an overview of the story. A suggestion that sounded a bit like &lt;a href="http://en.wikinews.org/wiki/Main_Page"&gt;wikinews&lt;/a&gt; plus a few tools to fix it, good luck with that, but I'd like to see it succeed.&lt;/dd&gt;
&lt;dt&gt;The Guardian and the Ian Tomlinson story&lt;/dt&gt;
&lt;dd&gt;Mostly graphs of how well it did for them, but also some discussion of the decision to release the video online immediately rather than drip-feed information through the paper.&lt;/dd&gt;
&lt;dt&gt;Opening up the Guardian&lt;/dt&gt;
&lt;dd&gt;&lt;a href="http://www.guardian.co.uk/open-platform"&gt;This is fantastic&lt;/a&gt;. I've never known another media outlet publish so much data (as in, the facts and figures gathered in the course of journalism) and most of their articles for easy programmatic access. I wish more of them did; the ability for the public to see (and make their own analysis/mashups of) the full data behind a story is a force for higher quality journalism.&lt;/dd&gt;
&lt;dt&gt;Ephemerality? Real time web vs persistence&lt;/dt&gt;
&lt;dd&gt;Fairly abstract discussion of the trade-offs of how much of the past to store, privacy controls, making that data useful, and so on. Food for thought.&lt;/dd&gt;
&lt;dt&gt;Location, Privacy and Opting In not Out&lt;/dt&gt;
&lt;dd&gt;How &lt;a href="http://www.google.co.uk/latitude"&gt;Latitude&lt;/a&gt; and &lt;a href="http://fireeagle.yahoo.net/"&gt;Fire Eagle&lt;/a&gt; are actually good models for privacy controls; contrast &lt;a href="http://www.mpsonline.org.uk/tps/"&gt;TPS&lt;/a&gt; and other opt-outs (including &lt;a href="http://www.mpsonline.org.uk/mpsr/"&gt;MPS&lt;/a&gt;, which I hadn't even heard of). The ability to lie to at least some people, some of the time, about some data, is important.&lt;/dd&gt;
&lt;dt&gt;Your Energy Identity&lt;/dt&gt;
&lt;dd&gt;The state of the environment is somewhat scary. This was a &lt;a href="http://www.amee.com/"&gt;a supplier of energy monitoring&lt;/a&gt; pushing the need for their services, mostly validly I felt, but perhaps slightly off the "open" and "tech" topics.&lt;/dd&gt;
&lt;dt&gt;Sir Bonar Neville-Kingdom GCMG KCVO&lt;/dt&gt;
&lt;dd&gt;Everything that's wrong with government, personified. Nevertheless, I thoroughly recommend hearing him speak if you get the chance. I shall say no more&lt;a href="http://www.idealgovernment.com/index.php/blog/comments/1950/"&gt;.&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;No2ID and Open Rights Group: Intercept Modernisation Programme (IMP)&lt;/dt&gt;
&lt;dd&gt;Jim Killock of &lt;a href="http://www.openrightsgroup.org/"&gt;ORG&lt;/a&gt; did a very good presentation of the problems, which are many, and Guy Herbert from &lt;a href="http://www.no2id.net/"&gt;No2ID&lt;/a&gt; covered more of the details. As the latter said, there are some non-conspiratorial, but no less worrying, explanations for the government's thirst for data, chiefly empire-building. &lt;q&gt;Don't underestimate the willingness of large bureaucracies to spend a lot of money promoting their own objectives without any positive end in view.&lt;/q&gt;&lt;/dd&gt;
&lt;/dl&gt;
&lt;/dt&gt;&lt;/dt&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:83217</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/83217.html"/>
    <title>BBQ/Gardening Party, Sat 9th May, from 2pm at Normality</title>
    <published>2009-05-01T13:35:58Z</published>
    <updated>2009-05-01T13:35:58Z</updated>
    <category term="announce"/>
    <category term="cambridge"/>
    <content type="html">&lt;a href="http://numberland.livejournal.com/64893.html"&gt;Details on Susan's journal&lt;/a&gt;, reply there.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:83163</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/83163.html"/>
    <title>Calling someone with more time than me: AccuWeather Android widget?</title>
    <published>2009-04-30T22:30:03Z</published>
    <updated>2009-05-02T23:05:12Z</updated>
    <category term="android"/>
    <category term="geek"/>
    <content type="html">Jeff Sharkey has made a nice &lt;a href="http://jsharkey.org/blog/2009/04/24/forecast-widget-for-android-15-with-source/"&gt;weather widget&lt;/a&gt; for Android 1.5 (&lt;a href="http://code.google.com/p/android-sky/source/browse/#svn/trunk/Sky"&gt;source here&lt;/a&gt;), but unfortunately it uses the &lt;a href="http://www.nws.noaa.gov/"&gt;US National Weather Service&lt;/a&gt;, who don't have forecast data for the UK, so the widget won't do anything with a UK location (although they do have current conditions). If there are any bored Android hackers out there, this would be a nice project, for someone who has more copious free time than me&amp;hellip; here's &lt;a href="http://code.google.com/p/android-sky/source/browse/trunk/Sky/src/org/jsharkey/sky/WebserviceHelper.java"&gt;the widget's XML parser&lt;/a&gt;, and here's &lt;a href="http://forecastfox.accuweather.com/adcbin/forecastfox/weather_data.asp?location=EUR|UK|UK001|CAMBRIDGE|"&gt;some UK forecast XML&lt;/a&gt; from AccuWeather.com who cover .uk, .us, .ca (they publish this data for &lt;a href="http://forecastfox.mozdev.org/"&gt;ForecastFox&lt;/a&gt;, and here's &lt;a href="http://forecastfox.accuweather.com/adcbin/forecastfox/locate_city.asp?location=Cambridge"&gt;what their location search looks like&lt;/a&gt;). Doesn't look too hard. You'd need to &lt;a href="http://www.accuweather.com/api.asp?partner=accuweather&amp;amp;traveler=0"&gt;get permission from AccuWeather&lt;/a&gt;, but they said yes to ForecastFox and this would be much the same thing (a free weather forecast, and clicking on it takes you to their site).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Edit:&lt;/b&gt; Someone had a better idea: &lt;a href="http://forum.xda-developers.com/showthread.php?t=511351"&gt;use Google's weather feed&lt;/a&gt; (the one they use for iGoogle and Calendar).</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:82862</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/82862.html"/>
    <title>Stinging wildlife of Normality, part 2 in a series of, please, no more than 2?</title>
    <published>2009-04-29T08:46:46Z</published>
    <updated>2009-04-29T09:14:00Z</updated>
    <category term="cambridge"/>
    <content type="html">or, &lt;i&gt;Fright of the Bumblebee&lt;/i&gt; (see &lt;a href="http://shortcipher.livejournal.com/65102.html"&gt;&lt;i&gt;Wasp of Doom&lt;/i&gt;&lt;/a&gt; for the thrilling first part)&lt;br /&gt;&lt;br /&gt;&lt;img src="http://chris.boyle.name/images/20090429-bee.jpg" width="200" height="200" style="float:left" /&gt; This lost creature has been lurking in my bathroom since some time yesterday evening. It made its presence known shortly after Susan had got into the bath, which was fun. For the rest of the evening it bumbled around, perching near any lights that were warm, before going to sleep on the bathroom curtain. I left the door closed and window open overnight, hoping it would go away at sunrise, but instead it went into hiding, only to reappear suddenly in the sink while I was shaving. When I took this photo it was scrabbling around in the bath. I'm really hoping it decides to leave soon; options otherwise are limited (pint glass + card + release at far end of garden; failing that, vacuum cleaner). &lt;b&gt;Edit:&lt;/b&gt; fortunately for all concerned, catch-and-release worked. :-)</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:82635</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/82635.html"/>
    <title>Sponsored singing this weekend</title>
    <published>2009-04-17T10:15:56Z</published>
    <updated>2009-04-17T10:15:56Z</updated>
    <category term="singing"/>
    <category term="announce"/>
    <category term="cambridge"/>
    <content type="html">This weekend, I'll be taking part in Cambridge University Gilbert &amp;amp; Sullivan Society's sponsored 24-hour sing-through of all 13 G&amp;S operettas. The event is part of Cambridge RAG; here's the &lt;a href="http://www.cambridgerag.org.uk/?page_id=673"&gt;list of charities&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you'd like to sponsor me, just &lt;a href="mailto:chris@boyle.name"&gt;email me&lt;/a&gt; with an amount and stating whether it's a total or an amount per operetta completed (I've no idea how many I'll manage; it could be anywhere between 3 and 13). I'll email the sponsors with the results on Monday.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:82320</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/82320.html"/>
    <title>My take on the G20 police fiasco</title>
    <published>2009-04-08T22:41:26Z</published>
    <updated>2009-04-08T22:41:26Z</updated>
    <category term="silly"/>
    <content type="html">&lt;img src="http://chris.boyle.name/images/motivator4072657.jpg" width="750" height="600" alt="Reasonable Force: You&amp;#39;re doing it wrong." /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:82010</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/82010.html"/>
    <title>Headphone recommendations please, again</title>
    <published>2009-03-27T00:39:30Z</published>
    <updated>2009-03-27T10:52:00Z</updated>
    <category term="geek"/>
    <category term="lazyweb"/>
    <content type="html">Offices are noisy; I work better without a constant background of speech; the off-again-on-again plan to make the office less noisy is off-again for the forseeable future. Wearing headphones for most of the day is an obvious possible answer, but the ones I bought after &lt;a href="http://shortcipher.insanejournal.com/75824.html"&gt;pondering in June&lt;/a&gt; aren't comfortable enough for that much use. I'm looking for circumaural closed-back headphones, and the Sennheiser HD280 has been recommended. Best price delivered seems to be about &amp;pound;80, which is OK if they're as good as people say and will last. I'm no audiophile (and may well continue to listen over A2DP for the ability to get up from my desk without unplugging anything) but I do want something comfortable which will isolate outside noise (or cancel it, but I've not tried that and don't know how well it works). I do need to minimise the leakage of my own music, hence closed-back. Compactness is not an issue, and they must go around my ears, not squish them. The HD280 looks good, so two questions: firstly, where can I try these out? (Clive, I think you mentioned somewhere, but my brain is a sieve.) Secondly, which others should I consider (and relative merits)?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Edit:&lt;/b&gt; Just tried an HD201 in the office; the bass is predictably weak, but more importantly the contact pressure gave me a headache just from 10 minutes. With that in mind, look at the &lt;a href="http://www.sennheiser.com/sennheiser/home_en.nsf/product.html?ReadForm&amp;amp;path=private_headphones_dj-headphones&amp;amp;product=004974&amp;amp;row=3"&gt;HD280 spec&lt;/a&gt;, and hover over "Contact pressure". Hmmm.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:81895</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/81895.html"/>
    <title>Third-party updates on Debian-based distros: a thought</title>
    <published>2009-03-11T13:15:39Z</published>
    <updated>2009-10-02T12:23:51Z</updated>
    <category term="geek"/>
    <category term="debian"/>
    <content type="html">Why don't third-party &lt;tt&gt;deb&lt;/tt&gt; packages just drop a file in &lt;tt&gt;/etc/apt/sources.list.d&lt;/tt&gt; (and invoke apt-key) to provide updates, instead of rolling their own in-application update notifications? Skype, Last.fm and others don't need to be polling independently for updates; this isn't Windows; there's already &lt;tt&gt;apt&lt;/tt&gt;, and usually a perfectly good mechanism for polling that, like Ubuntu's &lt;tt&gt;update-manager&lt;/tt&gt;, so the workflow should just be "click on &lt;tt&gt;.deb&lt;/tt&gt; &amp;rarr; install &amp;rarr; updates will be offered to you with all your other updates". In Last.fm's case, they already have &lt;a href="http://apt.last.fm/"&gt;an apt repository&lt;/a&gt;. Am I missing something here?&lt;br /&gt;&lt;br /&gt;Alternatively, my previous version of this idea: a mime-type for "file to go in sources.list.d + something for apt-key + list of packages to then install" and a tool to handle it. That would be unnecessary new code; the one advantage is it would play better with the case where a site wants to offer you multiple packages with dependencies.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; As of October 2009, Google Chrome appears to have been doing this (as in the first paragraph) for some time. Yay. :-) My one complaint about it is that it does "check for explicit disable flag, else create sources.list.d file" on every update, instead of "check for I-already-put-it-here-once flag, else add the file", where the latter would create less confusion among users who perhaps already had Google's apt repository, and wonder why it keeps reappearing.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:81451</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/81451.html"/>
    <title>Android Calendar</title>
    <published>2009-02-12T11:49:08Z</published>
    <updated>2009-02-12T12:03:13Z</updated>
    <category term="android"/>
    <category term="geek"/>
    <content type="html">I have some patches for the Calendar app; I've finally made a usable build with them for 1.1 (US RC33, UK not out yet). One of these patches I've mentioned &lt;a href="http://shortcipher.insanejournal.com/79756.html"&gt;before&lt;/a&gt;, but the list is growing:

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/android/issues/detail?id=1300"&gt;Issue 1300: Calendar agenda view shows too many reminders&lt;/a&gt; (patch attached)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/android/issues/detail?id=1354"&gt;Issue 1354: Feature request: in Calendar, click on event location to launch Maps&lt;/a&gt; (patch attached)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/android/issues/detail?id=1354"&gt;Issue 1860: Null timezone at CalendarSyncAdapter.java:301&lt;/a&gt; (N.B. packages/providers/CalendarProvider, not packages/apps/Calendar, and I would hope they'll fix this one in the next update) (patch attached)&lt;/li&gt;
&lt;li&gt;First day of the week is Monday, dammit. This is the case on UK firmware, but I've jumped to the US firmware (because it seems to get all the &lt;a href="http://en.wikipedia.org/wiki/Google_Latitude"&gt;cool&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Google_Voice_Search"&gt;toys&lt;/a&gt; and &lt;a href="http://code.google.com/p/android/issues/detail?id=1207"&gt;bug fixes&lt;/a&gt; first) and therefore had to hard-code this preference of mine, since I couldn't see how to easily edit the locale data. Ask me if you want the diff, it's just all three calls to Calendar.getInstance().getFirstDayOfWeek(). This should really be configurable. In some future copious free time.&lt;/li&gt;
&lt;/ul&gt;

If only someone would fork Calendar (like &lt;a href="http://code.google.com/p/k9mail"&gt;someone did very successfully for Email&lt;/a&gt;) so it can be built using just the SDK, rather than having to finagle the semi-private bits of the platform source to a state compatible with 1.1, which, from the point of view of the public git respositories, seems to be &lt;abbr title="android.pim.Time has moved to android.text.format.Time for 1.1, but DateUtils and others haven&amp;#39;t"&gt;between two commits&lt;/abbr&gt;. WTF. Given sufficiently copious free time, I might eventually make such a fork myself.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:81403</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/81403.html"/>
    <title>New wheels</title>
    <published>2009-01-10T13:45:39Z</published>
    <updated>2009-01-11T09:38:48Z</updated>
    <category term="bike"/>
    <category term="lazyweb"/>
    <content type="html">I am now the proud &lt;strike&gt;owner&lt;/strike&gt; keeper (because of how the cycle scheme works) of a &lt;a href="http://www.ridgeback.co.uk/index.php?bikeID=75&amp;amp;seriesID=37"&gt;Ridgeback Velocity&lt;/a&gt;. It's lovely. &lt;a href="http://www.cl.cam.ac.uk/research/dtg/weather/period-graph.cgi?2009-01"&gt;The current weather isn't&lt;/a&gt;. What do the cyclists reading this recommend I wear to keep the wind (and rain) off my face? I was thinking of a balaclava, but as Susan points out, that would make me look silly, or &lt;a href="http://www.waronterrortheboardgame.com/evilgallery/evilgallery.php"&gt;worse&lt;/a&gt;. Some people seem to wear Biggles hats (the ones with ear flaps) and leave it at that, but when it's this cold, which it occasionally is around here, I want more coverage than that. Also, interposing very much material between my head and my helmet is likely to fail, because my head is too big. &lt;b&gt;Edit:&lt;/b&gt; I bought a &lt;a href="http://www.buff.es/en/index.php?p=GBR"&gt;Buff&lt;/a&gt;. Somewhat overpriced, but it works.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:81010</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/81010.html"/>
    <title>Resolutions</title>
    <published>2008-12-31T18:40:53Z</published>
    <updated>2009-10-02T12:27:24Z</updated>
    <category term="silly"/>
    <content type="html">In no particular order: &lt;ul&gt;
&lt;li&gt;&amp;lt;trad&amp;gt;Something better than 640x480 at 8fps in L4D would be nice (although I'm &lt;a href="http://steamcommunity.com/id/kerneloops/stats/L4D?tab=achievements"&gt;not doing too badly&lt;/a&gt; as is)&amp;lt;/trad&amp;gt; &amp;#10003; (&lt;a href="http://bugs.winehq.org/show_bug.cgi?id=12453"&gt;patched&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Visit London more often. &amp;#10003;&lt;/li&gt;
&lt;li&gt;Finish rocketjon's interminable website project and make it public before the end of February. &amp;#10007;&lt;/li&gt;
&lt;li&gt;&lt;abbr title="Do Some Fine Work"&gt;DSFW&lt;/abbr&gt; on &lt;a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=cmb@debian.org"&gt;my Debian bugs&lt;/a&gt; &amp;#10003;&lt;/li&gt;
&lt;li&gt;Fix all known bugs in &lt;a href="http://chris.boyle.name/projects/android-puzzles/"&gt;Android Puzzles&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Bike more. As of 10&lt;sup&gt;th&lt;/sup&gt; January I have a &lt;a href="http://www.ridgeback.co.uk/index.php?bikeID=75&amp;amp;seriesID=37"&gt;new bike&lt;/a&gt; to help with this. &amp;#10007;&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:80893</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/80893.html"/>
    <title>Dear Lazyweb: bike buying advice please</title>
    <published>2008-12-28T10:58:29Z</published>
    <updated>2008-12-28T11:18:09Z</updated>
    <category term="bike"/>
    <category term="lazyweb"/>
    <content type="html">My bike is old (over 10 years), rusty, worn, bent, unreliable, possibly heavier than necessary and generally not fun, so I drive more often than is sensible (especially to work). This Christmas I've received some money towards a new one. I know Cambridge and the web are full of bike shops, but don't know &lt;b&gt;which shops/bikes are any good&lt;/b&gt;, which is where I'm hoping you can help me. I have &lt;a name="cutid1"&gt;&lt;/a&gt;the following requirements:
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Suitable for travel around Cambridge&lt;/b&gt; and Milton on roads, cycle paths, perhaps through occasional woodland (I won't be going up any mountains). &lt;b&gt;Road vs. &lt;q&gt;town &amp;amp; trail&lt;/q&gt;, help?&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;As non-tiring as possible&lt;/b&gt; to ride. I'm guessing a reclining bike isn't economical here, but a good set of gears and lighter frame are?&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Quick and easy to reliably secure&lt;/b&gt; in e.g. central Cambridge, which doesn't seem to have enough available D-lockable objects. &lt;b&gt;Are D-locks still significantly more secure&lt;/b&gt; than the alternatives? Bonus points for permanently-attached lights, but that can probably be achieved on any bike, can't it?&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Long-lasting&lt;/b&gt;. I expect to need a good bike for the foreseeable future. It'll be in a shed at home, and under cover at work, but exposed to the elements in town.&lt;/li&gt;
&lt;li&gt;Value for money (not necessarily cheap). I can spend &amp;pound;600 if it will actually make that much difference to the above. That does include the security considerations though: there's no point buying something that someone will angle-grind the lock off the first time I leave it in a less safe part of Cambridge.&lt;/li&gt;
&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:80509</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/80509.html"/>
    <title>Dear Lazyweb: New Year's Eve</title>
    <published>2008-12-23T14:42:53Z</published>
    <updated>2008-12-23T15:40:28Z</updated>
    <category term="lazyweb"/>
    <content type="html">Susan and I have no plans for NYE. We're considering the Pembury, which I'm guessing will be open; will any of you be there? Do you have any other suggestions?</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:80236</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/80236.html"/>
    <title>My job, in all its Web 2.0 glory</title>
    <published>2008-12-17T17:08:26Z</published>
    <updated>2008-12-17T17:08:26Z</updated>
    <category term="work"/>
    <content type="html">My employer recently released an update of their traffic manager, &lt;a href="http://knowledgehub.zeus.com/news/2008/12/08/zxtm_5_1_released"&gt;ZXTM 5.1&lt;/a&gt;. One of the headline features, which I've been heavily involved in developing, is improved event handling: you can now set up mappings from some/all events to various actions, including arbitrary scripts. Looking at the comments on a recent blog post discussing some of the new functionality, I've found a short video of some of the, um, &lt;a href="http://knowledgehub.zeus.com/articles/2008/12/15/zxtms_like_to_tweet_too#c290"&gt;productive, business-critical use to which this feature has been put&lt;/a&gt; (needs sound).&lt;br /&gt;&lt;br /&gt;Yep, my code lets people integrate their traffic managers with, among other things, the hollow wifi-enabled bunnies of the apocalypse. What have I done?!</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:79965</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/79965.html"/>
    <title>Python bug? (urllib2.HTTPDigestAuthHandler)</title>
    <published>2008-12-12T22:23:30Z</published>
    <updated>2008-12-17T14:16:05Z</updated>
    <category term="geek"/>
    <category term="lazyweb"/>
    <content type="html">&lt;a href="http://chris.boyle.name/download/urllib2-test.txt"&gt;This script&lt;/a&gt;, when edited to fill in valid LiveJournal credentials (or InsaneJournal, if you change the URL and user list) fails for me in a very odd way. It fetches the first two URLs quite happily, and returns a 401 on the third after querying my password manager about 6 times. Even if you shuffle the user list around, increase the sleep, etc etc... I seem to be able to request as many such URLs from LJ as I like, in separate Python executions, or with different HTTPDigestAuthHandler objects, but any given instance of HTTPDigestAuthHandler will always fail on the third use. Failing on the second use would be more understandable, but three? WTF?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Edit:&lt;/b&gt; Filed as &lt;a href="http://bugs.python.org/issue4683"&gt;Python bug 4683&lt;/a&gt;, comments go there.</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:79756</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/79756.html"/>
    <title>How to get Voice Dialer on your UK G1; how to fix a Google app on your G1</title>
    <published>2008-11-15T12:28:40Z</published>
    <updated>2008-11-26T10:48:11Z</updated>
    <category term="android"/>
    <category term="geek"/>
    <content type="html">By way of a couple of mini-howtos to save the next person some time: &lt;a name="cutid1"&gt;&lt;/a&gt;

&lt;h4&gt;Voice Dialer (trivial)&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://source.android.com/download"&gt;Get the Android source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;make VoiceDialer&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;./out/host/linux-x86/bin/adb install -r \&lt;br /&gt; ./out/target/product/generic/obj/APPS/VoiceDialer_intermediates/package.apk&lt;/tt&gt;&lt;/li&gt;
&lt;/ol&gt;

This works quite happily and I've no idea why Google / T-Mobile UK removed it.

&lt;h4&gt;To fix a trivial bug in a Google app (slightly fiddly)&lt;/h4&gt;

For this exercise, I'll be using &lt;a href="http://code.google.com/p/android/issues/detail?id=1300"&gt;issue 1300&lt;/a&gt;, a UI glitch in Calendar that was annoying me. I'm sure there ought to be an easier way to do this, and would be grateful if anyone would tell me it. In the meantime&amp;hellip;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://source.android.com/download"&gt;Get the Android source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;cd packages/apps/Calendar&lt;/tt&gt; (or wherever).&lt;/li&gt;
&lt;li&gt;Make whatever &lt;a href="http://android.googlecode.com/issues/attachment?aid=-8947626766037126087&amp;amp;name=AgendaAdapter1300.patch"&gt;source changes&lt;/a&gt; you wanted to make.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Make this a different package&lt;/strong&gt;, to be treated as a different app, because code signing will prevent you from upgrading/replacing the original. :-(
&lt;ol style="list-style-type:lower-alpha"&gt;
&lt;li&gt;Edit &lt;tt&gt;AndroidManifest.xml&lt;/tt&gt; to change the &lt;tt&gt;package&lt;/tt&gt; and &lt;tt&gt;android:sharedUserId&lt;/tt&gt; (and &lt;tt&gt;android:taskAffinity&lt;/tt&gt;?) to anything else (I just applied &lt;tt&gt;s/calendar/calendarfixed/&lt;/tt&gt; to them). You could also modify &lt;/li&gt;
&lt;li&gt;Make the code in &lt;tt&gt;src&lt;/tt&gt; consistent with the new package name, using something like:
&lt;ol style="list-style-type:lower-roman"&gt;&lt;li&gt;&lt;tt&gt;mv com/android/calendar com/android/calendarfixed&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;for f in com/android/calendarfixed/*.java; do sed -i s/com.android.calendar/com.android.calendarfixed/g $f; done&lt;/li&gt;&lt;/ol&gt;
&lt;li&gt;Edit &lt;tt&gt;res/values/strings.xml&lt;/tt&gt; and &lt;tt&gt;res/values-en-rGB/strings.xml&lt;/tt&gt; to change &lt;tt&gt;app_label&lt;/tt&gt; to something different so you can tell the two apps apart (I appended an asterisk). You could similarly modify Activity titles like &lt;tt&gt;event_info_title&lt;/tt&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;tt&gt;cd ../../.. &amp;&amp; make Calendar&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt&gt;./out/host/linux-x86/bin/adb install -r \&lt;br /&gt; ./out/target/product/generic/obj/APPS/Calendar_intermediates/package.apk&lt;/tt&gt; (presumably you could instead sign &lt;tt&gt;package_unsigned.apk&lt;/tt&gt; with a specific key if you wanted to).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ensure you always use the new app&lt;/strong&gt; (e.g. "Calendar*") instead of the old one. The first time, you might have to launch it, press Back a few times, and launch it again (missed &lt;tt&gt;taskAffinity&lt;/tt&gt;?). You may find that some replaceable actions (e.g. "View event") prompt you to choose between two seemingly identical providers (missed Activity title?).&lt;/li&gt;
&lt;/ol&gt;
</content>
  </entry>
  <entry>
    <id>urn:lj:insanejournal.com:atom1:shortcipher:79117</id>
    <link rel="alternate" type="text/html" href="http://shortcipher.insanejournal.com/79117.html"/>
    <title>Quick G1 review, after 36 hours</title>
    <published>2008-11-02T01:39:25Z</published>
    <updated>2008-11-02T01:42:44Z</updated>
    <category term="android"/>
    <category term="geek"/>
    <content type="html">I have a shiny new &lt;a href="http://en.wikipedia.org/wiki/T-Mobile_G1"&gt;T-Mobile G1&lt;/a&gt;, at long last, and people keep asking me whether it's any good. So, in the interest of &lt;strike&gt;reducing duplication of information&lt;/strike&gt; laziness, here is &lt;a name="cutid1"&gt;&lt;/a&gt;a brief review.

&lt;h3&gt;Hardware&lt;/h3&gt;

Having drooled over all the details well in advance, there were few surprises here. The inaccuracy inherent in using a finger (as world+dog seems to want us to do) takes some getting used to if you're coming from Palm or elsewhere in stylus-land. They shipped a screen protector, but left me to apply it myself, so predictably, I trapped a few particles under it that will now stay there forever. The trackball comes in very handy for fine tuning of e.g. cursor position within a text box, but I wish I could increase its sensitivity. The screen slider action to reveal the keyboard follows an arc (I've no idea why) but this actually seems more solid than I expected. Many reviewers have complained that, because of the slider and more generally, the phone feels plastic and fragile. It's certainly more so than the iPhone, but I'm not hugely worried: I reckon anyone who's at least vaguely careful with their device should be fine. I'm still very much in favour of hardware keyboards, which pretty much dictates a slider of some sort if you want a big screen. Oh, and if you've missed this fact elsewhere, there is no 3.5mm headphone socket, only ExtUSB (mini-USB fits, as do HTC headphones from Windows devices, and HTC adapters for various combinations of audio/power/data).

&lt;h3&gt;Phone/SMS functionality&lt;/h3&gt;

Lest we forget, it makes phone calls. The earpiece and speaker both seem fine for audio quality; I've had one caller complain that they couldn't hear me very well for a moment but I think T-Mobile's signal is more likely to have been at fault than the device. Coverage is worth &lt;a href="http://www.t-mobile.co.uk/services/coverage/street-check/"&gt;checking with T-Mobile&lt;/a&gt;, as it's not as good as e.g. Vodafone. The UI during a call seems sensible; everything works as expected. Messaging uses the threaded UI that, again, world+dog seem to be adopting; no complaints there. I have delivery reports, which is a feature I've very much missed on O2 (Messages/Menu/Settings to enable). These show up next to sent messages (long press for details).

&lt;h3&gt;Google applications synchronisation&lt;/h3&gt;

For those who haven't been keeping up, the Contacts, Calendar and (obviously) Google Mail apps sync "almost instantly" with their respective websites (Contacts is part of GMail, but might be accessible &lt;a href="https://mail.google.com/mail/contacts/ui/ContactManager"&gt;separately&lt;/a&gt; for some people). This works as advertised: I've been using Google Calendar for years and I imported all my contacts into Google a few days ago; a few minutes after logging in, this was all fully present and correct on the phone. The Calendar UI could use some work (e.g. it'd be nice to compress day/week views vertically to see the whole day); contacts less so. Google Talk is also present in some form in the IM app; I've not tested it.

&lt;h3&gt;Other built-in apps&lt;/h3&gt;

The browser, as you'd expect, is on a par with the iPhone, except for the lack of multi-touch (no hardware support). The Maps app is responsive and easy to use, but lacks real-time directions. There are no apps of that kind at the moment and the license for Google's map data API forbids such use. Perhaps Google doesn't have the right kind of license themselves? The Email app (as distinct from the GMail app) is somewhat limited; thankfully this is &lt;a href="http://code.google.com/p/k9mail/"&gt;being addressed&lt;/a&gt;.

&lt;h3&gt;Development&lt;/h3&gt;

This is what I've spent many of these 36 hours (and many previously) doing, and this is where the platform really shines. I can write apps in Java (well, Java syntax) on my Linux desktop, either in Eclipse or using command-line tools, run an emulator, and, impressively, debug the device just as easily as the emulator, over USB. The docs are good, as are the libraries and there are very few restrictions on what apps can do. I've wanted a device both this capable and this hackable for a very long time. The only currently available devices more hackable are from &lt;a href="http://en.wikipedia.org/wiki/OpenMoko"&gt;OpenMoko&lt;/a&gt;, and I don't think there are as many apps, as many developers, or as good a device on that platform. As for what I've been working on: &lt;a href="http://chris.boyle.name/projects/android-puzzles/"&gt;Simon Tatham's Puzzles on Android&lt;/a&gt;, update coming soon.

&lt;h3&gt;Third-party apps&lt;/h3&gt;

There's some good stuff on the &lt;a href="http://www.android.com/market"&gt;Market&lt;/a&gt;, but plenty to be found elsewhere as well. My favourites so far: &lt;a href="http://code.google.com/p/connectbot/"&gt;ConnectBot&lt;/a&gt;, &lt;a href="http://compare-everywhere.com/"&gt;CompareEverywhere&lt;/a&gt;, &lt;a href="http://www.androidlocale.com/"&gt;Locale&lt;/a&gt;, &lt;a href="http://code.google.com/p/k9mail/"&gt;K9&lt;/a&gt; (an Email fork). I'm eagerly awaiting any kind of &lt;a href="http://www.last.fm/"&gt;last.fm&lt;/a&gt; app (I'm a subscriber there, and there's currently only an app for something called imeem which is more restrictive with its tracks and more limited in its catalogue).

&lt;h3&gt;Current UK limitations&lt;/h3&gt;

There seem to be some differences between the UK and US firmware (I currently have build "kila_uk-user 1.0 TC5-RC7 112931 ota-rel-keys,release-keys"). Voice dial, which I was looking forward to, is missing in action with no explanation (although some relevant-looking data files are present in /system/usr/srec/config/en.us). Street View data is obviously missing from the UK for now, as it is online, but you can try out the feature by looking at e.g. a US city. Annoyingly, the IM app shows only Google Talk; seemingly no way to use MSN/AIM/Jabber etc. Again, no explanation. Hopefully these will be fixed at some point.

&lt;h3&gt;Conclusion&lt;/h3&gt;

This is everything I've wanted in a PDA/phone for several years now and I'm very happy with it. It's far from perfect, but fits my requirements very well. PC sync? Who needs it? I want my device to use the cloud, which is very much Google's model. Price is zero initially, with a &amp;pound;40/month contract for 18 months. Compared to my &amp;pound;22.50 simplicity contract with O2, this means I personally am paying &amp;pound;315 during that time to have this phone. I think that's reasonable. Availability: &lt;a href="http://www.t-mobile.co.uk/g1-with-google-phone/"&gt;now, at T-Mobile's site&lt;/a&gt;. They delivered mine next day as promised (but I got my order in as soon as the site opened).</content>
  </entry>
</feed>
