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

<channel>
	<title>Differential Progression &#187; Technology</title>
	<atom:link href="http://alex.kavanagh.name/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://alex.kavanagh.name</link>
	<description>Random thoughts, differential progress ...</description>
	<lastBuildDate>Mon, 06 Jun 2011 15:39:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The facebook problem</title>
		<link>http://alex.kavanagh.name/2011/02/the-facebook-problem/</link>
		<comments>http://alex.kavanagh.name/2011/02/the-facebook-problem/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 18:03:33 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Open Data]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=227</guid>
		<description><![CDATA[When a for-profit company gives you something for free, with little chance of ever charging, you have to ask, &#8220;who is the customer and what is the product?&#8221; Facebook has (reputedly) 500 million users, none of whom pay a penny &#8230; <a href="http://alex.kavanagh.name/2011/02/the-facebook-problem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 15.9722px;">When a for-profit company gives you something for free, with little chance of ever charging, you have to ask, &#8220;<em>who is the customer and what is the product?</em>&#8221; Facebook has (reputedly) 500 million users, none of whom pay a penny for the service. Twitter has (possibly)  175 million users, again, none of whom pay anything for the service.</span></p>
<p>Who is the product? Who is the customer? Do you even care?</p>
<p><span id="more-227"></span></p>
<h2>Facebook, how big?</h2>
<p><a href="http://facebook.com">Facebook</a> has obtained <a href="http://news.yahoo.com/s/ap/20110103/ap_on_hi_te/us_facebook_investors">more than $500M</a> from investors to grow facebook.com to the size it is today, and has not taken a single penny from any of its users. In order to pay back the investors for their extraordinary risky investment, the investors must be looking for something like 10x cash back.  That&#8217;s more than $5 billion! Of course it&#8217;s currently valued at over $50B. Just hold that thought for a second.</p>
<p>Now a second thought: billions of people can use email and not have to be part of one, single, organisation. How can that be?</p>
<p>Email is essentially a protocol. It&#8217;s called <a href="http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol">SMTP and is described by various RFCs</a>. Any server that supports the SMTP protocol can advertise its <a href="http://en.wikipedia.org/wiki/MX_record">MX record</a> via DNS and receive email for that domain. Any client that &#8216;talks&#8217; SMTP can send email to any SMTP server (it can reach). In fact, the SMTP client (or email client) can talk to its local SMTP server which will then forward on the email to its final destination.</p>
<p>This is, of course, a distributed system.  Due to an <em><a href="http://en.wikipedia.org/wiki/Open_standard">open protocol</a></em> anybody can set up an email server and play in the big email ecosystem. Of course, the original inventors of the SMTP protocol didn&#8217;t envisage SPAM as we know it, and thus it was designed for a naive, friendly, co-operative world, where email users wouldn&#8217;t spam each other. i.e. academia.</p>
<p>Facebook is set up as a business. It has its customers&#8217; interests to serve so that it can be a profitable company and return its investors money and provide a return for its financial stakeholders. The <em>problem</em> is, is that Facebook users are <strong>not</strong> the customer. They are the product that is sold to the <em>actual</em> customers who (I suspect) are advertisers. Thus, Facebook&#8217;s values aren&#8217;t necessarily aligned with their users, which means, almost inevitably, <em>privacy is not Facebook&#8217;s key concern</em>.</p>
<p>So if with Facebook, the users <em>are</em> the product, what are they actually selling? The social graphs its users create, along with the logged minutiae of the their lives, could just be the product that Facebook is, and will continue, to sell to advertisers. Your <strong>privacy</strong> is Facebook&#8217;s product. <a href="http://socialgraphproject.org/blog/category/privacy/">Your social graph <em>(in theory) has</em> value to advertisers</a>. Do you want to <em>exchange</em> your privacy to multitudinous corporations for free access to, well, Facebook?</p>
<p>But the <em>main problem</em> with Facebook is that, in order to <em>do</em> Facebook with somebody else, you have to have an account <em>at Facebook.com</em>. It&#8217;s a closed system. Notice the difference to email? I don&#8217;t have to have an account at (the fictitious) email.com to send emails to other people. That would be absurd!</p>
<p>History has a habit of repeating itself. Remember CompuServe? AOL? MSN (pre-internet)? CIX? These were all silos. CompuServe had special pages only subscribers could see. Of course, they all went the way of the dinosaur, or were heavily modified, because the <em>Internet was more useful</em>. And Facebook is simply a better CompuServe or AOL.</p>
<p>Still, you may ask, &#8220;what&#8217;s wrong with a better AOL or CompuServe?&#8221;</p>
<h2>Proprietary Silo vs Open Data and Open Protocols</h2>
<p>Before answering that question, let&#8217;s consider what the alternative to Facebook or <a href="http://twitter.com">Twitter</a> would be like. By way of analogy let&#8217;s look at Twitter vs <a href="http://status.net/">status.net</a>.</p>
<p>Twitter and status.net basically do the same thing: they are broadcast micro-blogging systems that let you send the equivalent of an SMS over the Internet to your followers. The best known example of status.net is <a href="http://identi.ca/">identi.ca</a>.</p>
<p>If you want to be part of the Twitter-verse you have to get an account at the sole provider of twitter-ness: twitter.com. Every tweet you send goes <em>through</em> twitter.com, is stored there, <em>analysed</em> and also provided to other (rich) organizations via the <a href="http://dev.twitter.com/pages/streaming_api">Twitter fire-hose</a>. Not a great deal of privacy there, apart from the notional privacy that you can &#8216;protect&#8217; your account. It&#8217;s still going through twitter.com.</p>
<p>status.net is <em>like</em> Twitter except that it is both an Open Source project and a Open set of Protocols. The difference is that status.net is like email; it&#8217;s a protocol that anybody can implement. You could subscribe to <em>any</em> status.net server and still be followed by any other status.net user in the world. Therefore, your tweets, or rather <em><a href="http://jonathancarter.org/2009/05/11/what-is-dented/">dents</a></em> would only go through the distributed servers, the same as email today.</p>
<p>Another advantage of a <em>distributed</em> network is that it&#8217;s more resilient to failure. Twitter went down on Christmas day because <em>every</em> tweet goes through twitter. Email didn&#8217;t go down, except maybe a few distributed nodes did &#8211; but email didn&#8217;t fail <em>en masse</em>.</p>
<p>So back to Facebook and silos? I definitely want to put an <a href="http://activitystrea.ms/">activity stream</a> (or <a href="http://en.wikipedia.org/wiki/Lifestreaming">lifestream</a>) on the web. I currently use twitter for that because so many of my friends do. I also want to be able to put the odd photo up, publish a free/busy calendar, and enable old friends and new ones to find me and get in contact. But I don&#8217;t want Facebook to <em>own</em> that information. I want to own it. I want it under my own control, possibly in my own appliance running somewhere on the net. A distributed system that talks to other systems to exchange the data all under <em>my </em>control, with my privacy settings which won&#8217;t suddenly change because an over-arching corporation needs to sell more of my privacy.</p>
<p>Of course, it <em>is</em> coming, and there&#8217;s even some competition in the space. <a href="http://onesocialweb.org/">onesocialweb</a> and <a href="https://joindiaspora.com/">Diaspora</a> are both trying to <span style="text-decoration: underline;"><em>solve</em></span> the Facebook problem. The <a href="http://wiki.debian.org/FreedomBox">Freedom Box</a> project, inspired by <a href="http://en.wikipedia.org/wiki/Eben_Moglen">Eben Moglen</a>, is also trying to work in that space. These will be tools that work in a distributed fashion.</p>
<p>When will it displace Facebook and Twitter? I think the jury is <em>definitely</em> out on that one; AOL, MSN, Compuserve, MySpace: the Internet is littered with the corpses of previously all-mighty corporations that owned the space.</p>
<p>Personally, I want Facebook to fail. I want a future where people control their own information. I want the <a href="http://thepowerofpull.com/pull/blog">semantic web and the power of pull</a>, not the push-web. I want my appliance with my data and my control and I&#8217;m prepared to pay for it. I guess I&#8217;m going to have to wait a bit!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2011%2F02%2Fthe-facebook-problem%2F&amp;title=The%20facebook%20problem" id="wpa2a_2"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2011/02/the-facebook-problem/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Putting CM6 (Android 2.2 Froyo) on a UK Vodafone HTC Magic</title>
		<link>http://alex.kavanagh.name/2010/09/putting-cm6-on-a-uk-vodafone-magic/</link>
		<comments>http://alex.kavanagh.name/2010/09/putting-cm6-on-a-uk-vodafone-magic/#comments</comments>
		<pubDate>Sun, 26 Sep 2010 17:00:22 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=200</guid>
		<description><![CDATA[I&#8217;ve got an HTC Magic by Vodafone in the UK. It&#8217;s a very nice phone. Unfortunately, it is also abandonware. It is now virtually out of contract. And before I rooted it and put CM6 on it, it was stuck &#8230; <a href="http://alex.kavanagh.name/2010/09/putting-cm6-on-a-uk-vodafone-magic/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got an <a title="HTC Magic at Wikipedia" href="http://en.wikipedia.org/wiki/Htc_magic">HTC Magic</a> by Vodafone in the UK. It&#8217;s a very nice phone. Unfortunately, it is also <a title="Abandonware at wikipedia" href="http://en.wikipedia.org/wiki/Abandonware">abandonware</a>. It is now virtually out of contract. And before I rooted it and put <a title="What is Cyanogenmod" href="http://wiki.cyanogenmod.com/index.php?title=What_is_CyanogenMod">CM6</a> on it, it was stuck at Android 1.6 which was released on the 15 September 2009. That is over a year ago. Android 2.2 was released on the 20 May 2010 over <em>4 months ago</em> (<a title="Wikipedia Android" href="http://en.wikipedia.org/wiki/Android_(operating_system)">source</a>). This is the story of how I got CM6 on to my HTC Magic.</p>
<p><span id="more-200"></span></p>
<p>I&#8217;d like a new phone. Unfortunately, virtually every phone released these days running Android 2.2 (Froyo) also runs some kind of customised interface. Motorola has Motoblur, HTC has Sense, and who knows what Samsung has, but it isn&#8217;t stock Android. Is it so much to ask to have the stock Android experience? Apparently, it is.</p>
<p>I&#8217;ve seen rumours that Google is pushing handset makers to use stock Android 3.0 rather than put their own interface on it. Here&#8217;s hoping. So, since my phone is almost out of contract, I thought I&#8217;d root it (which <strong><em>voids</em></strong> the warranty), and put CyanogenMod 6 (CM6) on it, which is basically Android 2.2 (Froyo) with a few enhancements. CyanogenMod has done some incredible work and it is well worth checking out whether your Android phone is <a title="Main wikipage of Cyanogenmod" href="http://wiki.cyanogenmod.com/index.php?title=Main_Page">supported</a>.</p>
<p>Now I was quite nervous about messing with my phone. It has some paid apps on it and I&#8217;ve spent 18 months with it, customising it to my requirements. However, I&#8217;d heard such great things about CM6 that I was really looking forward to it. And, I must say, it is <em>so</em> much better that 1.6. Seriously, if you have an HTC Magic, then just read through this post, read the linked sites, and go for it!</p>
<p>Now the following is specific to UK HTC Magic devices, but the links indicate what to do for other phones. The steps are:</p>
<ol>
<li>Check your phone really is a HTC Magic Sapphire PVT32B</li>
<li>Root your phone</li>
<li>Backup your applications/data (although I could&#8217;ve missed out this step)</li>
<li>Backup your entire 1.6 stock ROM</li>
<li>Backup your whole SD Card</li>
<li>Install CM6</li>
<li>Install Google Apps (so you can get Market, GMail, etc.)</li>
<li>Re-configure the device for UK Vodafone</li>
<li>Re-install your Apps from Market (and restore your data if you need to).</li>
</ol>
<p>Now, I don&#8217;t really keep any data on my phone that isn&#8217;t in the <em>Cloud</em> somewhere. It is either on Google, Dropbox, or I copy it off the SD Card and stick it on my laptop. However, you may need to do Step 9. &#8220;restore data&#8221; if you have kept a lot of data on the phone. I didn&#8217;t have to because I use Google for my mail, contacts, calendar, etc. which simplifies the process. This was a conscious decision about 6 months ago to simplify my life. But I do have automated backups of all my data on Google.</p>
<h2>Assumptions</h2>
<ul>
<li>You know how to mount/read your SD Card in your phone in your OS</li>
<li>You don&#8217;t panic if things don&#8217;t go exactly according to plan. You might need to search forums if your experience doesn&#8217;t exactly match mine. I certainly had to because mine didn&#8217;t exactly match some of the other tutorials.</li>
<li>This is <strong>not</strong> a tutorial; it is a summary of what <strong>I</strong> did to get my phone running CM6.</li>
<li>It&#8217;ll be useful if you do this where you have WiFi because when you wipe the phone it will (temporarily) <em>not</em> have the settings to access data over 3G on the Vodafone network.  It&#8217;ll also be quicker!</li>
<li>I may have forgotten a few items whilst writing this. I had the following unusual options enabled on the phone:</li>
</ul>
<ol>
<li>Settings-&gt;Applications: &#8220;Unknown Sources&#8221;: ticked</li>
<li>Settings-&gt;Applications-&gt;Development: &#8220;USB Debugging&#8221;: ticked</li>
</ol>
<h2>Step 1: Check your phone is the same as mine!</h2>
<p>My phone is a UK spec Vodafone HTC Magic 32B with 192MB RAM. I verified this! In the USA this phone is also called a MyTouch 3G/ION.</p>
<p>To check your phone is the same as mine you need to reboot your phone into fastboot. Shut your phone down and then hold down the &#8216;Back&#8217; button whilst switching the phone on. You&#8217;ll then get a display which has this on it:</p>
<p><code>SAPPHIRE PVT <strong>32B</strong> SHIP S-ON G<br />
HBOOT-1.33.0004 (SAPP10000)<br />
CPLD-10<br />
RADIO-2.22.19.26I<br />
Apr 9 2009, 23:30:40</code></p>
<p>The key part is the &#8217;32B&#8217; above which I&#8217;ve highlighted. If you don&#8217;t have the same as mine then you&#8217;ll need to follow a &#8217;32A&#8217; or other set of instructions. (Thanks to <a title="axllent.org" href="http://www.axllent.org/docs/android/android_rooting">Ralph Slooten</a> for the idea on showing the fastboot).</p>
<h2>Step 2: Root your phone</h2>
<p>This is really simple.  Search market for <em><a title="Universal Androot and Cyanogenmod wiki" href="http://wiki.cyanogenmod.com/index.php?title=Universal_Androot">Universal Androot</a></em>. Install it and launch it. Press &#8220;Root <img src='http://alex.kavanagh.name/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> &#8221;.  After a short while your phone will be &#8216;rooted&#8217;, which means that applications can (with permission) access anything on the phone&#8217;s filesystem. This is important as you can&#8217;t install the other tools without.</p>
<p>Note that you will <em>void</em> your warranty on the phone by doing this. Mine&#8217;s so close to being out of contract (5 days), and I&#8217;ve had it 18 months, that this didn&#8217;t worry me. It might worry you though!</p>
<h2>Step 3: Backup your applications/data</h2>
<p>Now you&#8217;ve rooted your phone you can back everything up on it. Search for &#8216;<a title="Titanium Backup official site" href="http://matrixrewriter.com/android/">Titanium backup</a>&#8216; on the Market. Install it, and run it. It will ask for root privileges which you should allow and tick the box to always allow Titanium to have root privileges.</p>
<p>Then you need to click on the &#8216;<strong>Problems?</strong>&#8216; button and do the upgrade for BusyBox. If you don&#8217;t then Titanium Backup won&#8217;t work.</p>
<p>After that, use the &#8216;<strong>menu</strong>&#8216; button, select &#8216;<span style="color: #000000;"><strong>Batch</strong>&#8216; and click the &#8216;<strong>Run</strong>&#8216; button next to &#8220;<em>Backup all user apps + system data</em>&#8220;. This will make a full backup of all your <em>user</em> applications (but <em>not</em> the current stock 1.6 ROM) and all the data on the phone to the SD Card.</span></p>
<p><span style="color: #000000;">Now <em>mount</em> your phone to your computer: plug in a USB cable, connect it to your handy laptop, wait a few seconds for your phone to recognise the link, pull down on the status bar and select the little USB symbol and connect it to your computer.  Then copy the <strong>TitaniumBackup</strong> folder off the SD Card onto your computer.</span></p>
<h2><span style="color: #000000;">Step 4: Backup your entire 1.6 stock ROM</span></h2>
<p><span style="color: #000000;">Next we make a complete backup of your current Stock 1.6 ROM, data, apps &#8230; basically <em>everything</em>. Get this right and you&#8217;ll be able to return your phone to its current state.</span></p>
<p><span style="color: #000000;">So why do <em>Step 3</em> at all? Mostly because:</span></p>
<ul>
<li>I&#8217;m paranoid</li>
<li>It&#8217;s a useful thing to do for the future too.</li>
</ul>
<p>To do this step we will be using <a title="ROM Manager by @koush" href="http://www.koushikdutta.com/2010/02/clockwork-recovery-image.html">ROM Manager</a> by the <a title="Koush Dutta, Android programmer extroidinaire" href="http://twitter.com/#!/koush">@koush</a>. This really is an amazing piece of software and makes it very easy to try out custom ROMs.</p>
<p>I used this <a title="How To Fully Back Up And Restore Your Android Phone Using Nandroid Backup" href="http://www.androidpolice.com/2010/04/16/complete-guide-how-to-fully-back-up-and-restore-your-android-phone-using-nandroid-backup-and-clockworkmod-rom-manager/">guide</a> to perform the backup. Please go and <em>read it</em> for background information and to familiarise yourself with the screens. The essential steps are:</p>
<ol>
<li>Install ROM Manager &#8211; search for it in Market.</li>
<li><strong>IMPORTANT</strong>: Work with a fully charged phone.</li>
<li><strong>Unplug</strong> the USB cable.</li>
<li>Install the Recovery Image using the top option in ROM Manager. The PVT 32B (i.e. the Vodafone UK HTC Magic) is known as a <strong>MyTouch 3G/ION</strong> to ROM Manager.  Do <strong><em>not</em><span style="font-weight: normal;"> select the &#8220;HTC Magic&#8221; option or you will flash the wrong recovery image.</span></strong></li>
<li><strong><span style="font-weight: normal;">Then select &#8220;Backup Current ROM&#8221;.</span></strong></li>
<li><strong><span style="font-weight: normal;">After the phone has rebooted and backed up the ROM, it will boot back into your normal stock Android 1.6.</span></strong></li>
</ol>
<p>Okay, now your current ROM is backed up to the SD Card.</p>
<h2>Step 5: Backup your whole SD Card</h2>
<p>I said I was paranoid didn&#8217;t I? There is a <em>small</em> chance that the SD Card will get corrupted when flashing a ROM so it&#8217;s prudent to back-up the SD Card:</p>
<ol>
<li>Mount it on your laptop/computer.</li>
<li>Copy everything on the card.  I put it into a ZIP file.</li>
</ol>
<p>This copies the current ROM you backed up in Step 4 onto your laptop/computer as well.</p>
<h2>Step 6: Install CyanogenMod 6</h2>
<p>Okay, finally you are reaching the exciting part, but I just want to make something clear:</p>
<p><strong>This step involves wiping <em>everything</em> from your phone, just like a factory reset.</strong> The SD Card <em>should</em> be okay, but all your applications and data are going to be wiped from the phone. You <em>will</em> be able to restore your paid for apps from Market, but there won&#8217;t be a record of what you have installed.</p>
<p>I would (and did) at this point make a note of what apps I had installed so I could re-install them afterwards.</p>
<p>Next I read <a href="http://www.androidpolice.com/2010/05/08/complete-guide-how-to-flash-a-custom-rom-to-your-android-phone-with-rom-manager-full-backup-restore/">[Complete Guide] How To Flash A Custom ROM To Your Android Phone With ROM Manager + Full Backup &amp; Restore</a>.</p>
<p><strong>Note</strong>: The stock Vodafone 1.6 Android seems to re-flash the recovery image to a stock image after each re-boot. This one caught me out. So you need to re-flash the recovery image after <em>each</em> reboot into the stock OS. The CyanogenMod ROMs (and other&#8217;s apparently) don&#8217;t do this.</p>
<p>Therefore, as we have already rebooted into 1.6 Android (to do the ROM back-up) we need to convince ROM Manager to re-flash the <em>Clockworkmod recovery image</em>. Unfortunately, at the time of writing the ROM Manager incorrectly reports that it <em>is</em> flashed: it isn&#8217;t and you can prove it by trying to reboot &#8211; you&#8217;ll end up with a large &#8216;!&#8217; warning triangle on recovery boot (hold &#8216;home&#8217; button when powering on).</p>
<p>To convince ROM Manager to reflash the clockworkmod recovery image, just scroll to the bottom of the ROM Manager app and install the aron_RA image. After that is installed, <em>re-install</em> the clockworkmod recovery image, but using the option at the top again. <em>Now</em> you are ready to flash the CM6.  (Thanks to <a title="Can't Reboot into Recovery on MT3G w/ ClockworkMod 2.5.0.1" href="http://www.clockworkmod.com/forum/viewtopic.php?f=4&amp;t=104">this thread</a> at <a title="Clockworkmod forum" href="http://www.clockworkmod.com/forum/">clockworkmod forum</a>.)</p>
<p>Now we pick up on the instructions at <em><a title="Upgrade to CM5/6 at the cyanogenmod wiki" href="http://wiki.cyanogenmod.com/index.php?title=Upgrading_from_CyanogenMod_4.2_to_CyanogenMod_5/6">Upgrading from CyanogenMod 4.2 to CyanogenMod 5/6</a></em>. We&#8217;re not really upgrading, but it works well.</p>
<p>If you bought the ROM Manager application you can probably browse for the ROM. I didn&#8217;t because I wasn&#8217;t sure if it was going to work. I <em>am</em> going to buy it now because it does such a great job and I want to support its development.</p>
<p>So this is how it is done manually:</p>
<ol>
<li>On your laptop, download the latest (in my case CM6) ROM. This is the CM6 ROM in the section &#8220;<a href="#CyanogenMod_for_the_HTC_Dream_.26_Magic">CyanogenMod for the HTC Dream &amp; Magic</a>&#8221; on this <a title="Latest version of Cyanogenmod ROM page at the Cyanogenmod wiki" href="http://wiki.cyanogenmod.com/index.php?title=Latest_version">page</a>. The MD5SUM for the ROM I downloaded is: <strong>35b6603227aea922c28284ef8d269015</strong> and the filename is: <strong>update-cm-6.0.0-DS-signed.zip</strong></li>
<li>Also download the <em>tiny</em> MDPI version of the Google Apps for CyanogenMod 6. Again the MD5SUM is <strong>d21e9a3597b7f03f9e623c8e5b9a9caf</strong> and the filename: <strong>gapps-mdpi-tiny-20100917-signed.zip</strong></li>
<li>Next copy these two zip files over to your phone&#8217;s SD Card. Anywhere is fine, but I placed them in the top-level directory in the SD Card.</li>
<li><strong>Ensure the phone is fully charged</strong>.</li>
<li>Disconnect it from the laptop &#8211; i.e. unplug the USB.</li>
<li>Run ROM Manager and select &#8220;Install ROM from SD Card&#8221; (see images on <a title="[Complete Guide] How To Flash A Custom ROM To Your Android Phone With ROM Manager + Full Backup &amp; Restore" href="http://www.androidpolice.com/2010/05/08/complete-guide-how-to-flash-a-custom-rom-to-your-android-phone-with-rom-manager-full-backup-restore/">this helpful page</a>!).  Select the update-cm-6.0.0-DS-signed.zip file.</li>
<li>Ensure you <strong><em>tick</em></strong> the &#8220;Wipe Data and Cache&#8221;.  There is no need to select/tick the &#8220;Backup Existing ROM&#8221; as you have already completed that step above.  Incidentally, the reason I split it was so that I could copy the backed up ROM <em>off</em> the device <em>before</em> flashing the new ROM.</li>
<li>Click &#8220;ok&#8221; and it should flash the ROM.</li>
</ol>
<p>The phone will reboot into the recovery image, flash the new ROM, and then reboot again. It should now be running CM6.</p>
<p>Okay, now you have CM6, we still need to put the Google Apps on the device and get it back onto Vodafone.</p>
<h2>Step 7: Install Google Apps</h2>
<p>This is so you get Gmail, Market and the other Google Apps.</p>
<ol>
<li>Run ROM Manager and select &#8220;Install ROM from SD Card&#8221;. This time select the gapps-mdpi-tiny-20100917-signed.zip file.</li>
<li>Ensure that <em><strong>neither</strong></em> of the two tick boxes are selected (&#8220;Wipe Data and Cache&#8221; nor &#8220;Backup Existing ROM&#8221;)</li>
<li>Click OK.</li>
<li>The phone will reboot and install Google Apps.</li>
</ol>
<p>When the phone reboots this time it will go through the Google Apps set-up.</p>
<p>I have two Google Accounts that I wanted to use with the Phone. One is a Google Apps account (i.e. a paid for hosted account on Google for my domains), and the other is a typical googlemail/gmail account. As Market can only be used with your &#8216;regular&#8217; Google account, I did the set-up with my regular account. This means that Market will recognise your paid apps.</p>
<p>The Froyo 2.2 Gmail, Calendar and Contacts programs are multi-account aware and can be configured with both the regular account and the Google Apps account. This essentially solved my problem with 1.6 (single accounts only).</p>
<p>So my recommendation is to set the phone up with your regular Google account and add the Google Apps account in the Accounts section. <em>Note that Reader isn&#8217;t multi-account aware and will only work with the <strong>primary</strong> account on the device.</em></p>
<h2>Step 8: Re-configure the device for UK Vodafone</h2>
<p>Navigate to Settings-&gt;Wireless &amp; networks-&gt;Mobile Networks-&gt;Network operators and select &#8220;vodafone UK&#8221;.</p>
<p>Then go back to Settings-&gt;Wireless &amp; networks-&gt;Mobile Networks-&gt;Access Point Names and select &#8220;Vodafone UK Contract I&#8230;&#8221; (Internet).  i.e. ensure that it has the green dot next to it.</p>
<p>Your phone should now be able to go back onto 3G.</p>
<h2>Step 9: Re-install your Apps</h2>
<p>If you now go to Market, it should synchronise and show you your paid apps that you have previously bought on your primary Google Account.</p>
<p>As you have wiped all of the data on the phone (not the SD Card), you&#8217;ll either need to re-sync the data (all the Google Stuff), or restore it using Titanium. I&#8217;m just progressing through this now.</p>
<h2>Other things I had to do</h2>
<p>Some final, hopefully useful, things I had to do:</p>
<ul>
<li>I used ROM Managers &#8216;Fix Permissions&#8217;. It didn&#8217;t do any harm and I thought it would fix the next problem.</li>
<li>My Google search widget on the home screen failed.  After Googling it, I discovered that it is a fairly common problem after reflashing a device.  Just delete it and put it on again and it should work.</li>
</ul>
<h2>And Finally &#8230;</h2>
<p>Well that&#8217;s it. The recovery image being replaced on Stock 1.6 held me up for a bit and I had to do a load of reading to get it right. So far everything seems good on CM6; it&#8217;s <em>seems</em> faster, it is smoother and it has multi-account support.</p>
<p><strong>I also must thank that amazing work of the CyanogenMod team, ROM Manager and all of the people testing these ROMs.  Without them we would be stuck on carrier or manufacturer ROMs with no hope of upgrade.</strong></p>
<p>The following is a list of links that may prove useful to you:</p>
<ul>
<li><a href="http://wiki.cyanogenmod.com/index.php?title=Full_Update_Guide_-_HTC_Magic_%2832B%29">Full Update Guide &#8211; HTC Magic (32B)</a></li>
<li><a href="http://wiki.cyanogenmod.com/index.php?title=Universal_Androot">Universal Androot</a></li>
<li><a href="http://www.androidpolice.com/2010/05/08/complete-guide-how-to-flash-a-custom-rom-to-your-android-phone-with-rom-manager-full-backup-restore/">[Complete Guide] How To Flash A Custom ROM To Your Android Phone With ROM Manager + Full Backup &amp; Restore</a></li>
<li><a href="http://www.androidpolice.com/2010/04/16/complete-guide-how-to-fully-back-up-and-restore-your-android-phone-using-nandroid-backup-and-clockworkmod-rom-manager/">[Complete Guide] How To Fully Back Up And Restore Your Android Phone Using Nandroid Backup</a></li>
<li><a href="http://www.koushikdutta.com/2010/02/clockwork-recovery-image.html">ROM Manager</a></li>
<li><a href="http://www.clockworkmod.com/forum/viewtopic.php?f=4&amp;t=104">Can&#8217;t Reboot into Recovery on MT3G w/ ClockworkMod 2.5.0.1</a></li>
<li><a href="http://wiki.cyanogenmod.com/index.php?title=Fastboot">Fastboot</a> (a description)</li>
<li><a href="http://http://www.axllent.org/docs/android/android_rooting">Rooting your HTC Magic Android Phone with CyanogenMod</a></li>
<li><a href="http://matrixrewriter.com/android/">Titanium Backup</a></li>
<li><a href="http://en.wikipedia.org/wiki/Htc_magic">HTC Magic</a> page at Wikipedia</li>
<li><a href="http://wiki.cyanogenmod.com/index.php?title=Main_Page">CyanogenMod Wiki</a></li>
<li><a href="http://en.wikipedia.org/wiki/Android_(operating_system)">Android</a> at Wikipedia</li>
</ul>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2010%2F09%2Fputting-cm6-on-a-uk-vodafone-magic%2F&amp;title=Putting%20CM6%20%28Android%202.2%20Froyo%29%20on%20a%20UK%20Vodafone%20HTC%20Magic" id="wpa2a_4"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2010/09/putting-cm6-on-a-uk-vodafone-magic/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Version Control: developing on branches rather than master/trunk</title>
		<link>http://alex.kavanagh.name/2010/04/version-control-dev-on-branches/</link>
		<comments>http://alex.kavanagh.name/2010/04/version-control-dev-on-branches/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 20:05:27 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=95</guid>
		<description><![CDATA[I&#8217;ve changed my mind.  It now seems that it is much more sensible to develop on branches rather than on master or trunk.  What am I on about? Well software source control or version control systems.  I tend to use &#8230; <a href="http://alex.kavanagh.name/2010/04/version-control-dev-on-branches/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve changed my mind.  It now seems that it is much more sensible to develop on branches rather than on master or trunk.  What am I on about?</p>
<p>Well software source control or version control systems.  I tend to use two: subversion and git.  Actually, I tend to use git whenever I can including when I have to use subversion. git svn is, in US terms, <em>awesum</em>.  One debate I have had on and off is whether to:</p>
<ul>
<li>Do development on trunk and put releases in branches &#8212; OR</li>
<li>Do development on branches, merge to trunk, and tag releases (or put them in their own branches).</li>
</ul>
<p>I&#8217;ve previously done the former, but I&#8217;m rapidly shifting to the latter.  My rather simple reasoning is that I want trunk/master to be, to all intents and purposes, a working copy of the latest software.  i.e. the software that is in trunk/master passes its tests, builds and basically does what it says it should on the tin.  The developing software is done on a branch and only merged back to trunk/master when it passes its tests.  Thus the process is:</p>
<ol>
<li>Branch</li>
<li>Develop &amp; test</li>
<li>Merge <em>from </em>trunk/master <em>to</em> the branch (i.e. pull any updates)</li>
<li>Test, test, test</li>
<li>Review code with buddy, senior dev, etc. (depending on your set-up)</li>
<li>Merge back into trunk as a finished feature.</li>
</ol>
<p>Even better, only work on code that is actually described in a ticket, bug, or on something like <a title="Pivotal s/w agile project management system" href="http://www.pivotaltracker.com/" target="_blank">pivotal</a>.  That way you stay focussed and only spend time on developing features/fixing bugs that the &#8216;customer&#8217; actually wants.</p>
<p>The only question then is what you do with releases?  My initial guess is to tag them as a release on trunk/master.   Then if you get a bug and have to maintain the old release then to branch at that point and maintain the release as its own &#8216;master&#8217; release branch.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2010%2F04%2Fversion-control-dev-on-branches%2F&amp;title=Version%20Control%3A%20developing%20on%20branches%20rather%20than%20master%2Ftrunk" id="wpa2a_6"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2010/04/version-control-dev-on-branches/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Complex or Complicated?</title>
		<link>http://alex.kavanagh.name/2009/11/complex-or-complicated/</link>
		<comments>http://alex.kavanagh.name/2009/11/complex-or-complicated/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 19:52:53 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Complexity TaaD]]></category>

		<guid isPermaLink="false">http://alex.kavanagh.name/?p=81</guid>
		<description><![CDATA[The recent Think and a Drink (@TaaD) covered the wide ranging topic of Social Networking. There was much to take in and some genuinely useful tips and tricks for &#8216;upping&#8217; your game with regards to social networking from an internet &#8230; <a href="http://alex.kavanagh.name/2009/11/complex-or-complicated/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The recent Think and a Drink (@TaaD) covered the wide ranging topic of Social Networking. There was much to take in and some genuinely useful tips and tricks for &#8216;upping&#8217; your game with regards to social networking from an internet perspective.</p>
<p>However, one presentation tried to tackle the immensely challenging science of networking and attempted to explain the academic difference between complex and complicated.  Whilst the explanation of &#8216;complicated&#8217; was good, &#8216;complex&#8217; was almost just left as being &#8216;not like complicated&#8217;  &#8211; the explanation didn&#8217;t really explore the concept due, most likely, to a lack of time.  I&#8217;m going to try to touch on it here.</p>
<p>(<strong>Update</strong>:  This is about complexity theory, rather than the normal English use of the words.  Sorry for any confusion!)</p>
<p><span id="more-81"></span><strong>Complicated </strong>was described using the Boeing 747 example.  This one often pops up in popular literature as being an example of something that has a huge number of parts that fit together in a staggeringly intricate way.  View a plane as a whole you don&#8217;t see the myriad parts of the engine for example.  &#8220;Wow, that looks complex!&#8221; you might exclaim.  Well, no, it looks complicated.  You could, with sufficient time, completely dissasemble a 747 and lay out all of the constituent part.  You also could understand the purpose and of each and every part and how they fit together.  With time, there would be no mystery why the engine&#8217;s fan blade is shaped a particular way.</p>
<p><strong>Complex</strong> on the other hand, describes an entirely different set of phenomena.  The Boeing 747 is an example of a complicated system, where <strong>system</strong> is used to describe a set of components which together achieve a purpose.  The trouble with analysing <strong>complex</strong> systems is that looking at the parts tells you almost nothing about the system.  That is, you have to look at the <strong>interactions</strong> and <strong>feedback</strong> between the parts and the <strong>emergent</strong> behaviour that the interactions and feedback bring about.</p>
<p>It is probably easier to take a few examples.  Birds flocking and termite colonies are examples complex systems as are organisations and society.</p>
<p>Birds flocking is a bit of a classic and programs have been written to simulate it.  Each agent (or &#8216;bird&#8217;) only has a small set of behavioral characteristics or rules when flocking and completely analysing a bird does not give an inkling of the beauty of the motion that a flock of birds draws in the sky.  The behaviour of the flock emerges from the interactions of the whole and, critically, cannot be predicted by looking separately at the behaviour of each of the birds.</p>
<p>Termites are interesting in that they are quite simple and can be examined from a physical and biological perspective of the individual termite.  However, again, their social functions and mound building can only be studied at the level of the colony the social behaviours only emerge from the non-linear interactions and feedback between the termites which is one of the features of a complex system.</p>
<p>When humans are part of a system, each agent can make their own decisions and they will only do that based on their own partial perspectives of their own understanding of the system.  Hence society and politics.</p>
<p>So complex systems are non linear, involve feedback loops and resist reductive analysis; they can only be analysed at the macro level where the behaviour of the system emerges from it parts.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Falex.kavanagh.name%2F2009%2F11%2Fcomplex-or-complicated%2F&amp;title=Complex%20or%20Complicated%3F" id="wpa2a_8"><img src="http://alex.kavanagh.name/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://alex.kavanagh.name/2009/11/complex-or-complicated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

