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

  <title><![CDATA[Rythie's Blog]]></title>
  <link href="https://rythie.com/blog//atom.xml" rel="self"/>
  <link href="https://rythie.com/blog//"/>
  <updated>2019-11-23T12:56:00+00:00</updated>
  <id>https://rythie.com/blog//</id>
  <author>
    <name><![CDATA[Richard]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Two Years with the Pebble watch]]></title>
    <link href="https://rythie.com/blog//blog/2015/06/10/two-years-with-the-pebble-watch/"/>
    <updated>2015-06-10T22:45:00-04:00</updated>
    <id>https://rythie.com/blog//blog/2015/06/10/two-years-with-the-pebble-watch</id>
    <content type="html"><![CDATA[<p><img src="https://rythie.com/blog//images/2015/pebbles.jpg" width="500" height="375"></p>

<p>Smartwatches are still considered an emerging technology, yet if you backed the <a href="https://getpebble.com/">Pebble</a> on kickstarter - like I did, you&rsquo;ve been using this technology for
two years already. The big debate around smartwatches, which like any new technology is, are they actually useful?</p>

<h1>Features</h1>

<p>On my watch I mostly use about 3 features:</p>

<h2>1. Notifications</h2>

<p>Notifications are the killer feature of smartwatch in my view. The pebble will show any notification that appears on my iPhone&rsquo;s lock screen.
At first this was quite noisy, so I prevented many apps (mostly games)
from sending me notifications that weren&rsquo;t useful. Now, I only enable notifications that might need a quick response for example text messages,
Twitter @replies/DMs, calendar reminders etc. and nothing that doesn&rsquo;t require a immediate response: emails, picture like/favourites. Quickly looking
at these on my watch feels more polite than getting my phone out, though that might change over time.</p>

<h2>2. Music control</h2>

<p>The main other feature I use is music control, pause/next track and the name of the current track.</p>

<h2>3. As a watch</h2>

<p>The pebble works pretty well as a watch actually, there&rsquo;s no need to wake or shake it, the time and date are shown all the time and some of watch
faces are quite nice. The alarms feature is useful, just like on regular watch though when you stop and alarm it defaults to repeating the next day,
which is annoying and the opposite of what iOS does.</p>

<h1>Apps</h1>

<p>I use a <a href="http://www.mypebblefaces.com/apps/448/455/">third party watch face</a>, though I&rsquo;ve yet to find an third-party app that I find genuinely useful.</p>

<h1>Battery life</h1>

<p>The battery lasts about 7 days, this is good enough that I only have one charger cable and I don&rsquo;t normally take it with me
anywhere. I charge it when I get the 20% battery life warning, though often I&rsquo;m not near the charger when it happens, though that&rsquo;s not a problem
because it will still last all day on 20%.</p>

<h1>General</h1>

<p>In general there is a limit of 8 watch faces/apps that can be loaded at any one time on the watch, in practice this hasn&rsquo;t been much an issue
yet, I always find something I don&rsquo;t use any more to make space. Support has been pretty good, when I first got the watch the charge cable was broken,
but pebble sent a new one without much problem. Both the watch software and iPhone app are in very active development which is great for a product of
this type.</p>

<h1>What Next?</h1>

<p>Not wanting to get behind, I&rsquo;ve been looking at what to get next. I looked closely at the Apple watch, though I&rsquo;m put off by the battery life, cost
and the likely update within a year. It&rsquo;s hard to see what value the Apple watch has above the pebble, though it might change as more apps emerge.
So, I&rsquo;ve backed the <a href="https://getpebble.com/pebble_time">Pebble Time Steel</a>, mostly due to good experience with this watch.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Why all websites should use HTTPS]]></title>
    <link href="https://rythie.com/blog//blog/2014/03/05/should-all-sites-use-https/"/>
    <updated>2014-03-05T08:20:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2014/03/05/should-all-sites-use-https</id>
    <content type="html"><![CDATA[<p>A <a href="https://jve.linuxwall.info/blog/index.php?post/TLS_Survey">recent survey</a> revealed only 45% of the top 1 million sites have HTTPS enabled.
The number is even lower if you consider that most of those sites are not available using
<a href="https://en.wikipedia.org/wiki/HTTP_Secure">HTTPS</a> for all the content, but just a small bit, like the
login page.</p>

<p>So what types of sites should use HTTPS all the time?</p>

<h2>Banking sites</h2>

<p>Banks, as you might expect, use HTTPS for their online banking. However, many users
 will click through from the information part of the site, which typically won&rsquo;t use HTTPS. This creates a problem, a man in the middle could
change that link to point at another site, and really would you notice the domain name was slightly different? Most of the big UK banks
are getting there now, however, Lloyds still doesn&rsquo;t allow HTTPS browsing of the main content - meaning you can&rsquo;t really trust the online banking link
unless you are very careful. I think the whole information site from a bank should be using HTTPS if only to provide a trustworthy link to the online banking.</p>

<h2>Search engines</h2>

<p>A few years ago it was common for search engines to not offer any kind of HTTPS access. At first this seems sensible, the results you get back are
public and if you aren&rsquo;t logged in, what&rsquo;s the issue? The problem is what you search for, I think for most people, what they search for is
private, people typically are giving away quite personal information to search engines, for kids this might be questions common in people growing up,
in adults this might be questions about health that we don&rsquo;t want to disclose to the world. What if we are using a public WiFi connection? others
using that connection could find out what we are searching for, and embarrass or even extort us using the information we search for. Thankfully Google
is now using HTTPS. Bing is now available as HTTPS, though unless you remember to change the URL, you won&rsquo;t be using it.
<a href="https://duckduckgo.com/">DuckDuckGo</a> uses HTTPS by
default and redirects if you try to use HTTP.</p>

<h2>News sites</h2>

<p>The first two examples were more obvious examples where HTTPS is needed, what about a news site? we don&rsquo;t login, the information is public do we HTTPS
here? The BBC is a big brand for news worldwide, and people should know if it is being censored. Without HTTPS there is no way for citizens in China,
North Korea, Egypt and other places, to know that negative stories aren&rsquo;t being carefully removed or altered by censors. Unfortunately trying to browse
www.bbc.co.uk/news using HTTPS, just redirects you back to the HTTP site. Trying to do the same with <a href="http://www.theguardian.com/uk">the Guardian</a> tells you the certificate is invalid
- and if you look at the certificate (using firefox for example) you&rsquo;ll find a big list of Fastly&rsquo;s customers (the CDN the guardian seems to use).</p>

<h2>Download sites</h2>

<p>What about a site that offers downloads of free software? essentially again the information is public, but can you trust running software on your
computer that could have been changed by a man the middle? For example if you were the NSA and you wanted to spy on someone, wouldn&rsquo;t an easy option
be wait insert your spyware into any executable they download? Of course there is code signing and checksums, though somehow I doubt most
non-technical users check the checksums and most software is not signed anyway. GitHub gets this right, HTTPS all the time. Unfortunately sourceforge
&amp; download.com get this wrong. The PHP, Python and Ruby sites all fail to give you a HTTPS link to actually download the software.</p>

<h2>Social Networks / Web-Apps</h2>

<p>There are whole slew of sites that let you create some data and share or not share it with people. Often this data is fairly private outside our
friends, so this should be protected from <a href="http://arstechnica.com/security/2014/03/hackers-hijack-300000-plus-wireless-routers-make-malicious-changes/">rogue wireless points</a>,
<a href="http://www.theguardian.com/world/2014/feb/27/gchq-nsa-webcam-images-internet-yahoo">governments</a> and the like. Facebook and Twitter now do this,
Linkedin redirects back to HTTP straight after you login, as does RunKeeper.</p>

<p>So basically I think all sites should use HTTPS. In the web world we have various best practices, for example don&rsquo;t use tables for layout,
don&rsquo;t write sites that only work in IE, or require flash.
Making a site HTTPS should be one of these. I would be shocked if I saw sys admin using telnet in the 21st
century and this should be true of making a non-HTTPS website.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Speeding up web API access]]></title>
    <link href="https://rythie.com/blog//blog/2013/07/18/speeding-up-web-api-access/"/>
    <updated>2013-07-18T03:23:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2013/07/18/speeding-up-web-api-access</id>
    <content type="html"><![CDATA[<p>Web based APIs, such as the Twitter and Facebook APIs, are now commonly used in web applications. However, accessing these from a web application can quite easily slow it down, making it unresponsive to users.</p>

<p>This post is an overview of the major ways to make your application faster. This post is about application responsiveness, it&rsquo;s not really about scalability (though nothing here should really prevent you from scaling). I&rsquo;m not going to go into the technical details of these here, as there are plenty of resources on web.</p>

<h2>Understanding the problem</h2>

<p>HTTP based APIs typically take least 100ms per request due to network latencies. Multiple requests often mean you need several hundreds
of milliseconds. Slow servers can balloon this to even longer, 10 seconds or more. Measuring the problems in your application, either
using a profiling tool or with simple timings, is a good idea. Without measurements you risk wasting a lot of time optimising something that&rsquo;s not a problem, whilst leaving the real problems untouched. Notably profiling can tell you if your biggest problem is really your API requests or something else, like your own database layer.</p>

<h2>Cache it</h2>

<p>Caching is the most obvious solution to the problem, i.e. store the result in a file somewhere (or use <a href="http://memcached.org/">memcache</a>) and get it again when someone else requests it. This can work well, if everyone viewing the site needs the same things from the API (i.e. it&rsquo;s not personalised) and if that&rsquo;s the case you can go one step further and fetch this data with a cron job. However it&rsquo;s often not that easy! The big problems are that it&rsquo;s not very good for personalised data and you are often presenting stale data to the user.</p>

<h2>Fetch them at the same time</h2>

<p>It&rsquo;s quite likely that you will be requesting more than one endpoint from the API in a single page. The problem with this is, for each extra request you make the page will get slower. In most web programming languages nothing else can happen whilst these requests are in progress. The solution is to request these in parallel using cURL multi, this can be quite messy so I&rsquo;d suggest using a library such as <a href="https://github.com/chuyskywalker/rolling-curl">Rolling Curl</a> [PHP].  Using cURL multi should mean that your requests only take as long as the longest one.</p>

<h2>Be selective</h2>

<p>Even though you can request multi endpoints in one go, it&rsquo;s still best you don&rsquo;t request stuff you don&rsquo;t need, as unneeded requests can still slow down the page.</p>

<h2>Don&rsquo;t forget post-processing performance</h2>

<p>It&rsquo;s easy to think that your slow performance is completely caused by remote requests for API endpoints. However, try loading up a profiling tool (e.g. Xdebug if using PHP) to see where the performance bottlenecks really lie. For example if you are receiving a lot of results and running regular expressions on them, that could easily be the problem.</p>

<h1>More than one way to do it</h1>

<p>Up until this point I&rsquo;ve assumed that you are requesting endpoints when you load the page, however there are a few other ways to do it.</p>

<h2>AJAX</h2>

<p>You can fire off an AJAX request which fetches the API endpoints, this can then be inserted into the page later on - typically this means the users see the main page load quickly, with the results from the API loading a little time after. The problem with this is that due to the use of Javascript to get the content, search engines won&rsquo;t be indexing the content.</p>

<h2>Cron</h2>

<p>If suitable to your application you can use a <a href="https://en.wikipedia.org/wiki/Cron">cron</a> to request end points at regular intervals and populate a cache, which is later read by the pages</p>

<h2>Messages queues</h2>

<p><a href="https://en.wikipedia.org/wiki/Message_queue">Message queues</a> can be useful if a simple AJAX or cron solution isn&rsquo;t suitable, usually this is when a lot of requests are required. A message queue
can be populated with the requests needed and something else can fetch these requests from the queue and process them.</p>

<h2>Push methods</h2>

<p>Lastly some APIs can actually push new data to you in real-time, such as <a href="https://dev.twitter.com/docs/streaming-apis">Twitter streaming API</a>. This means you never have to serve stale data again, however it&rsquo;s not commonly available in APIs - also, it typically requires subscribing to certain subset of the data, which means it&rsquo;s suitable to users who use your site regularly and requires caching of a lot of data that may never be accessed.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[The ‘good enough’ threshold]]></title>
    <link href="https://rythie.com/blog//blog/2012/07/06/the-good-enough-threshold/"/>
    <updated>2012-07-06T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2012/07/06/the-good-enough-threshold</id>
    <content type="html"><![CDATA[<p>The term &lsquo;good enough&rsquo; tends to be associated with lazy people justifying work that is sub-standard. However, when applied to products, it&rsquo;s a powerful concept which decides when someone will switch from one type of product to a radically different one.<p />I should note that I have recently re-read the <a href="http://www.amazon.co.uk/The-Innovators-Dilemma-Technologies-Cause/dp/0875845851">Innovators Dilemma</a>, which inspired this post, you should read that if you haven&rsquo;t already.<p />Let&rsquo;s take the example of smartphones and their disruption of laptops and other computers. The main advantage of a smartphone is that is portable and mostly has data available everywhere. I had various phones before I eventually bought an iPhone 4, most of them were not good enough to read email let alone browse the web. My Nokia <a href="https://rythie.com/blog//blog/2009/09/17/dont-buy-a-nokia-n96/">n96</a> (a top of the range phone at the time) for example would often take an entire 15 minute bus journey to catch up with email, by which time you had arrived and had another way to check email. At other times, I had tried to use the web browser on the n96 and it was so slow and rendering was so poor that it was easier and quicker to go home and check something using my computer than use the phone. This was a phone that was clearly not &lsquo;good enough&rsquo; to challenge a laptop in either email or web.<p />My iPhone 4 however is the complete opposite. It&rsquo;s actually quicker to check email using an iPhone than it is to turn on my computer and start an email program and same is true of many web browsing use cases. In fact, like most people, I find I use my iPhone (or iPad) at home in preference to my computers even when they are in easy reach.<p />So what is happening here? My computer has much faster CPU, more memory, a much bigger screen and vastly more storage space than the iPhone, but I&rsquo;d rather use the phone? At a certain point I didn&rsquo;t need more CPU or memory, in fact I already have too much of these and I&rsquo;ve mostly got those things because they are so cheap, it&rsquo;s crazy not to have them. In fact, I was just waiting for something in the phone form factor to be &lsquo;good enough&rsquo; for me to switch much of my usage. In business meetings people are &lsquo;getting by&rsquo; with iPhones and iPads because they are &lsquo;good enough&rsquo; for 90% of their uses and means they don&rsquo;t have to lug a big laptop around.<p />This disruption is why I think Intel is so interested in the <a href="http://en.wikipedia.org/wiki/Ultrabook">ultrabook</a> concept, because they have virtually no products in the phone/tablet market and they need to at least make notebooks viable again.<p />Disruptive products are all around, they usually have an compelling feature, but are poorer performers in other aspects, compared to the product they disrupt. People start using them when they get &lsquo;good enough&rsquo; at that task. Some examples:<p />It&rsquo;s often said that the best camera, is the one you have with you, the smartphone is that camera and now has &lsquo;good enough&rsquo; image quality for most uses. The &lsquo;always have it with you&rsquo; is a compelling advantage in addition to the ability to instantly upload to social networks.<p />The failure of <a href="http://en.wikipedia.org/wiki/Super_Audio_CD">SACD</a> indicated that standard CDs were already &lsquo;good enough&rsquo; and in fact, with the switch to MP3 players, people voted with their feet to say that MP3&rsquo;s inferior quality sound was &lsquo;good enough&rsquo; to replace CD, given the portability gained. Lossless high definition music has been viable for years, though there seems to very little demand for this, even now.<p />&lsquo;Good enough&rsquo; even happens in software, for example I am using Google docs to prepare this post, years ago it became good enough to replace OpenOffice for most of my uses and I use it in preference, due to the ability to pick up my documents wherever I am. Google docs didn&rsquo;t need have to out-do traditional office packages for me to switch, it merely had to be &lsquo;good enough&rsquo; combined with the key advantage of the different form factor (available everywhere - nothing to install).<p />Designers of disruptive, &lsquo;good enough&rsquo; products have the advantage that they know what parts of the original product you value and which you don&rsquo;t.<p />What products do you use now that are &lsquo;good enough&rsquo; already?</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Using a Hybrid of XMLReader and SimpleXML]]></title>
    <link href="https://rythie.com/blog//blog/2011/02/27/using-a-hybrid-of-xmlreader-and-simplexml/"/>
    <updated>2011-02-27T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2011/02/27/using-a-hybrid-of-xmlreader-and-simplexml</id>
    <content type="html"><![CDATA[<div style="margin-top: 0px; margin-bottom: 0px;"><div style="margin-top: 0px; margin-bottom: 0px;">Parsing large XML files can be pain in PHP and most languages. <a href="http://lanyrd.com/2011/multipack-showtell-feb-2011/scfcp/">Simon Hamp</a> recently did a talk where he said he was using&nbsp;<a href="http://php.net/manual/en/book.xmlreader.php">XMLReader</a>&nbsp;for this purpose. Unfortunately, XMLReader suffers from the same problems that old XML parsers I used in 2001/2 had, in that they are not nice to code with. The problem with pull-parsers like XMLReader&nbsp;is method of programming is to get an event on each opening, closing tag, text section etc..</div><br /><div style="margin-top: 0px; margin-bottom: 0px;"><a href="http://php.net/manual/en/book.simplexml.php">SimpleXML</a> is much nicer to use but requires too much memory for large XML files. But, what if you could get the best feature of XMLReader (handing large files) with the best features of SimpleXML (readable code)?</div><br /><div style="margin-top: 0px; margin-bottom: 0px;">So it turns out you can do this and I'm not the <a href="http://blog.liip.ch/archive/2004/05/10/processing_large_xml_documents_with_php.html">first</a>, <a href="http://www.sitepoint.com/forums/showthread.php?t=720925">either</a>. Many large XML files will simply be a large number of records, so if we assume for this example, each record is in a &lt;item&gt; tag, we can iterate through these and then export each record to SimpleXML for easy coding:</div><br /><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $reader = new XMLReader();</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $reader-&gt;open($path_to_xml_file);</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; while($reader-&gt;read())</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if($reader-&gt;nodeType == XMLReader::ELEMENT &amp;&amp; $reader-&gt;name == 'item')</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $doc = new DOMDocument('1.0', 'UTF-8');</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $xml = simplexml_import_dom($doc-&gt;importNode($reader-&gt;expand(),true));</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; echo $xml-&gt;title; //or whatever</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; }</div><div style="margin-top: 0px; margin-bottom: 0px;">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; }</div><br />So what about performance? I created XML file 108Mb in size with 100,000 records and tried various methods, another with 500k records and one with 1500k records. Here is a graph of the number of records processed per second:</div><p><div class='p_embed p_image_embed'><a href="https://rythie.com/blog//images/2011/02/22233040-chart_1.png"><img alt="Chart_1" src="https://rythie.com/blog//images/2011/02/22233040-chart_1.png" /></a></div></p><div style="margin-top: 0px; margin-bottom: 0px;">You can see the large slow down of SimpleXML which is caused by the large amount of swap the process was using. Measuring memory can be tricky, because PHP memory_get_peak_usage() function shows the same usage for each method, even though the PHP process baloons in size with SimpleXML, though it does mean your process doesn't hit the memory limit either. So instead I'm using the 'time' command line utility to measure the PHP processes' memory usage. XMLReader and my modified 'hybrid' method both use 33MB regardless of data size. SimpleXML uses 900MB just for the 108Mb/100k record file and it gets a lot worse as you can see:</div><p><div class='p_embed p_image_embed'><a href="https://rythie.com/blog//images/2011/02/22233184-chart_2.png"><img alt="Chart_2" src="https://rythie.com/blog//images/2011/02/22233184-chart_2.png" /></a></div></p><div style="margin-top: 0px; margin-bottom: 0px;">A final word of warning, if you put the XML file in big string it will store the file in memory, as you might expect, which uses a fair amount of memory. As a result you should not use the xml() function of XMLReader to read content from a string but always use the open() function to read from the file or URL directly.</div><p /><div style="margin-top: 0px; margin-bottom: 0px;">You can find the little benchmark I wrote for this on <a href="https://github.com/rythie/BigXML-Benchmark">github</a>.</div><p>&nbsp;</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[What made you think iOS was open?]]></title>
    <link href="https://rythie.com/blog//blog/2011/02/15/what-made-you-think-ios-was-open/"/>
    <updated>2011-02-15T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2011/02/15/what-made-you-think-ios-was-open</id>
    <content type="html"><![CDATA[<p>People are <a href="http://thinkvitamin.com/web-industry/why-you-should-fight-apples-subscription-extortion/">up in arms</a> about the news that Apple will take a <a href="http://www.apple.com/uk/pr/library/2011/02/15appstore.html">30% cut of any subscriptions</a>. It's not really surprising since they take 30% of everything else, what's most surprising is that they want publishers to charge the same for in-app subscriptions as they do with those made outside. I guess the thinking is that there is still a cost of sale outside the apps through the advertising that is needed.</p>

<p>Apple has been on constant path of closing their products, every iPod, iPhone and iPad they have ever sold has had non-user replaceable battery and memory. In a market where most of the competitors provide such things, Apple is winning. After years of laptops with user-replaceable batteries, Apple gradually updated it's line to make all of them have non-replaceable batteries. Apple tells labels what they can and can't charge for music on iTunes, doesn't let iTunes connect to other manufacturer's players and doesn't let it's iOS devices connect to other music apps. I could go on, however with all these restrictions, people haven't voted with their feet and left for other products. Everything Apple does is becoming more closed and I don't know why people are surprised, did they think somehow that iOS was open?</p>

<p>When Apple launched the iPhone they made a few changes almost immediately, they dropped the 4GB model as people mostly bought the 8GB model and they dropped the price by $200. Clearly Apple made some mistakes there, people showed that they wanted a higher specification phone for a lower price than they anticipated. With the iPhone 3G they started accepting subsidies from carriers as is common with other phones. Andriod phones are starting to hit Apple's potential sales, I'm sure. I must have talked to half dozen people, if not more, whose primary reason to buy a Android phone is that's it's like the iPhone but cheaper. Phones are clearly price sensitive at the volumes Apple wants to sell at.</p>

<p>So what can Apple do about pricing? If they reduce the price of their devices they risk losing margin, Apple doesn't tend to do low margin products, so what to do? It's clear Apple is already working on the solution to this, take a cut of everything it can on it's platform, be that apps/games, music, movies, books and now magazine and newspapers.</p>

<p>Apple's model is much like the games console market, the consoles are cheap, even though the R&amp;D and hardware costs are high. Console games are expensive however but after 30 years of that model consoles more popular than ever. If Apple, as rumoured, release a cheaper iPhone model I think it will be a clear dent in Android and the margin will most likely be made up by cost of apps, music, movies, newspapers etc. on the platform.</p>

<p>I don't think any of this is particularly good, however Apple is showing that they can do this even at this point when there a several competitors, which shows their dominance.</p>

<p>There is still however an open platform, one not controlled by anyone, one that works on many devices and doesn't require you to give anyone a cut, one that works on the iPhone too. It's called the web. Or failing that, Android is lot more open.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Clearing up the "Back to the Future" mis-information]]></title>
    <link href="https://rythie.com/blog//blog/2010/07/05/clearing-up-the-back-to-the-future-mis-inform/"/>
    <updated>2010-07-05T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2010/07/05/clearing-up-the-back-to-the-future-mis-inform</id>
    <content type="html"><![CDATA[<p>There is meme going around that Doc Brown in the film "<a href="http://www.imdb.com/title/tt0088763/">Back to the Future</a>", was planning to travel forward to this day, before he got gunned down by the Libyans. It all started with this <a href="http://twitter.com/totalfilm/status/17780595740">tweet </a>by @<a href="http://twitter.com/totalfilm">totalfilm</a> (official Twitter account of the <a href="http://www.totalfilm.com/">Total Film magazine</a>). </p><p><div class='p_embed p_image_embed'><a href="https://rythie.com/blog//images/2010/07/11131953-first-tweet2.png"><img alt="First-tweet2" src="https://rythie.com/blog//images/2010/07/11131953-first-tweet2.png" /></a></div>So what actually happened in the Film? Doc Brown is about to leave 1985 to go to the future, here's the quote:</p><blockquote><p>"Marty: The future,? So where you going?</p><p>Doc: That's right, 25 years into the future. I've always dreamed on seeing the future, looking beyond my years, seeing the progress of mankind. I'll also be able to see who wins the next 25 World Series." (<a href="http://fusion-industries1.tripod.com/scene5atimemachine/">source</a>)</p></blockquote><p>Now, Back to the Future was first released in the USA on the 3rd of July 1985 and that's maybe where the confusion comes from. The current date as shown in the time machine is the 26 October 1985 so it's wrong. Total film did try to correct themselves, but, posting a photoshopped <a href="http://twitpic.com/22o4xk">picture</a>, was not the best way and attached tweet was <a href="http://twitter.com/totalfilm/status/17792012015">unclear</a>. The <a href="http://www.guardian.co.uk/film/filmblog/2010/jul/05/tamper-time-frame-back-future">Guardian's blog</a> also confirms that this incorrect.</p><p>It's now 7 hours after the original tweet and people are still passing on this information in vast numbers:</p><p><div class='p_embed p_image_embed'><a href="https://rythie.com/blog//images/2010/07/11064466-tweet-search.png"><img alt="Tweet-search" src="https://rythie.com/blog//images/2010/07/11064466-tweet-search.png" /></a></div><h2>Twitter we have a problem</h2></p><p>Twitter is fast moving system and sometimes people make mistakes and I can understand that. Typically the way to resolve this is to send an updated message to all your followers admitting you made a mistake. The problem however, comes in when people start retweeting your incorrect tweet, you can't inform all those who received the incorrect tweet about the error. In fact it gets worse as people remove the original attribution and pass the tweet off as an original tweet of their own (as you can see it the screenshot above). Of course blogs don't have this problem, people simply update the post with new information as it comes to light. Facebook and blogs also have comments so the post can be shouted down for inaccuracies there, even before the post is updated.</p><p>So is this a problem? Well today it's some tweet about meaningless facts from a 25 year old film, but tomorrow it could be mis-information about someone's death for example, though it's not like that <a href="http://mashable.com/2009/05/19/patrick-swayze-not-dead/">hasn't happened before</a>.</p><p><strong>Update:</strong></p><p>There is also a nice video on Vimeo showing the actual dates entered into the time machine <a href="http://www.vimeo.com/13099195 ">http://www.vimeo.com/13099195 </a>[Update: Now taken down]</p><p><strong>Update 2:</strong></p><p>Please help stop the spread of mis-information by retweeting the following tweet <blockquote class="twitter-tweet"><p>My attempt to clear up the "Back to the Future" mis-information: <a href="http://bit.ly/9RK7e6">http://bit.ly/9RK7e6</a></p>&mdash; Richard Cunningham (@rythie) <a href="https://twitter.com/rythie/status/17810460688">July 5, 2010</a></blockquote> (links here) which should make it to the top of Twitter's search page if enough people do it.</p><p><strong>Update 3:</strong></p><p>There are numerous people now reposting the photoshopped<a href="http://twitpic.com/22o4xk">picture</a> that Total Film did, but of course the copies don't say it's fake, sigh.</p><p><strong>Update 4:</strong></p><p>Total Film have now written a <a href="http://www.totalfilm.com/news/back-to-the-future-hoax-we-confess/">proper apology</a> about the hoax they inadvertely created.</p><p><strong>Update 5:</strong></p><p>I don't think Total Film even started this hoax, though they claim to have come it with all by themselves, it was all over twitter for a day previously. From looking at the comments in Total Film's post, and looking at the Twitter <a href="http://search.twitter.com/search?max_id=17698716970&amp;q=+back+to+the+future+until%3A2010-07-04">search history</a>, I'm pretty sure that @<a href="http://twitter.com/gavmccaughey">gavmccaughey</a>'s tweet at <a href="http://twitter.com/gavmccaughey/status/17698716970">4:40AM GMT/UTC</a> on the 4th of July, was the first tweet of his hoax and that itself was retweeted over 100 times.<a href="http://twitter.com/gavmccaughey/status/17698716970"> </a>Thanks to <a href="http://brown727.co.uk/back-to-the-future-day-fail/">Brown727's blog</a> for the information.</p><p><div class='p_embed p_image_embed'><a href="https://rythie.com/blog//images/2010/07/11131319-gav.png"><img alt="Gav" src="https://rythie.com/blog//images/2010/07/11131319-gav.png" /></a></div>Also we can see that is the first tweet to mention it (I've looked through several pages and no one was tweeting about it before):</p><p><div class='p_embed p_image_embed'><a href="https://rythie.com/blog//images/2010/07/11131530-gav-search.png"><img alt="Gav-search" src="https://rythie.com/blog//images/2010/07/11131530-gav-search.png" /></a></div></p><p> </p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[iOS devices will and are disrupting the desktop space]]></title>
    <link href="https://rythie.com/blog//blog/2010/07/01/ios-devices-will-and-are-disrupting-the-deskt/"/>
    <updated>2010-07-01T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2010/07/01/ios-devices-will-and-are-disrupting-the-deskt</id>
    <content type="html"><![CDATA[<p>In 2007 when Apple unveiled the original iPhone, I was quite surprised they had used OSX as the basis for the operating system. It was notable that they were able use a fully featured operating system on a mobile phone, something that wasn't being done widely at the time. It marked the&nbsp;transition&nbsp;of mobile phones from simple devices to scaled down desktop computers. The iPhone OS as it was then known, seemed very basic given that it didn't support 3rd party applications, multi-tasking or copy and paste, however, it has quickly gained these features, this is one of the hallmarks of a disruptive technology:</p><blockquote><div style="margin-top: 0px; margin-bottom: 0px;"> "Disruptive innovation is a term used in business and technology literature to describe innovations that improve a product or service in ways that the market does not expect" - <a href="http://en.wikipedia.org/wiki/Disruptive_technology">Wikipedia</a></div></blockquote><div style="margin-top: 0px; margin-bottom: 0px;">The iPhone was disrupting to some low end uses of laptops by allowing web browsing and email on the move without a laptop (they weren't the first on email, but were on the providing the full web). The iPhone was better at these tasks than a laptop by virtue of being smaller, instant on, with GSM networking built in, GPS built in, no noise, no heat, no viruses and simpler to use.</div><p /><div style="margin-top: 0px; margin-bottom: 0px;">The iPad has continued this disruption by replacing times when you would use a traditional laptop. In fact, in <a href="http://technologizer.com/2010/06/30/ipad-survey/2/">Technologizer's survey</a> of iPad users, around 70%&nbsp;said they were frequently using their iPad instead of their computer. The iPad has the advantage of having a much longer battery life than a laptop, meaning you don't need to plug it in as often, or at all during normal use. Also, it benefits from a better form factor for web browsing which is better suited to the easy chairs and sofas where people would normally consume written content such books and magazines. The iPad of course has same benefit as the iPhone of being instant wake which typically laptops don't do - at least not well.</div><p /><div style="margin-top: 0px; margin-bottom: 0px;">I believe that Apple is trying to solve it's own innovators dilemma. Apple's innovators dilemma&nbsp;is that computers are getting cheaper and the primary use for many home users is simply to browse the web and not to use many applications, meaning that any advantage Apple has in it's application base and ease of use, could be supplanted by a web browser only system. This will tend to lead to people buying cheaper, simpler devices that only do just that. Apple's problem that very few people will want to pay $1000+ for a Apple laptop, if the only application they ever use is the web browser. It's notable that none of Apple's iOS devices cost more than that $999 mark that it sells it's cheapest laptop for.</div><p /><div style="margin-top: 0px; margin-bottom: 0px;">So that's the state of Apple's disruption against traditional desktop operating systems, so what's next?</div><p /><div style="margin-top: 0px; margin-bottom: 0px;">Both iPhone and iPad already support a larger number of games than the Mac, but what if this could be scaled up? Apple could produce an iOS capable device that plugs into your TV, this would provide the same app store type system to directly compete with Nintendo in casual games as well as providing a media centre for watching online video, music, podcasts etc. Also, I wouldn't rule out Apple making a full TV themselves buying the display panel from someone else as they do with the iMac.</div><p /><div style="margin-top: 0px; margin-bottom: 0px;">Apple could also produce a version of the iPad in the laptop form factor with a rotatable screen. For this type of device there would be the demand for proper multi-tasking support, Intel CPU and CD/DVD drive support, though of course this support already exists in the underlying operating system, Apple just needs to enable an interface in iOS to make it work.</div><p /><div style="margin-top: 0px; margin-bottom: 0px;">In a similar vein Apple could introduce a version of the iMac form-factor running iOS. At some point iOS would have to stop depending on desktop PC for initial setup, syncing and upgrades as people would not have such as device in the future.</div><p>&nbsp;</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[The problem with online advertising]]></title>
    <link href="https://rythie.com/blog//blog/2010/03/08/the-problem-with-online-advertising/"/>
    <updated>2010-03-08T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2010/03/08/the-problem-with-online-advertising</id>
    <content type="html"><![CDATA[<p>Ars Technica has posted about "<a href="http://arstechnica.com/business/news/2010/03/why-ad-blocking-is-devastating-to-the-sites-you-love.ars">Why Ad Blocking is devastating to the sites you love</a>". However it is not us, the readers, that are to blame, it's the publishers and advertisers that have created adverts that are so bad, that we need sophisticated ways to work around them. I don't have the same problem with advertising on magazines and newspapers and on U.K. TV. I actually think some of the advertising is better than many of the programmes.</p><h2>Why is web advertising so bad?</h2><p>Lets start in early 90s when I started reading content on the web, back then there were very few ads, a few were animated gifs in banners but it was no major deal. In the early 00s ads got a lot more aggressive with <a href="http://en.wikipedia.org/wiki/Pop-up_ad">popup adverts</a>&nbsp;and even worse pop-under adverts. Pop-up and Pop-under adverts really destroyed the credibility of advertising for me, since they were actively making the web difficult to use and especially for non-technical people. Of course we solved this with Opera, Firefox and eventually with IE following suit so that every major browser supported blocking pop-ups.</p><p>Now, you'd think that advertisers would have learnt their lesson, don't make really adverts annoying or we will find some way to block them.</p><p>However they didn't, here are some of the behaviours that annoy me in online advertising today:</p><ul style="margin-top: 0px; margin-bottom: 0px;"><li style="margin-top: 0px; margin-bottom: 0px;"><strong>Animated content</strong>. This especially bad when it's in a column next to the content I'm reading, it's flashing in the corner of my eye and I can't read the content. So basically I can't read the content that was the whole purpose of my visit. Why not put this content at the top or bottom, so I can put it out of view while I'm reading?</li><li style="margin-top: 0px; margin-bottom: 0px;"><strong><a href="http://en.wikipedia.org/wiki/Interstitial_webpage">Interstitial advertising</a></strong>. Now we don't have pop-ups, advertisers now think it's slide in a advert from the side over the content before I've read it or even worse cover the whole content with an advert before I can view it. This is again this is stopping me from using the site properly.</li><li style="margin-top: 0px; margin-bottom: 0px;"><strong>Ads that make a noise</strong>. In this day and age it's quite common for people to play music on their computers and therefore have speakers on or have forgotten to plug in their headphones. However in shared office it's disruptive and embarrassing to have adverts play sounds even when you click on them.</li><li style="margin-top: 0px; margin-bottom: 0px;"><strong>Poor quality products.</strong>&nbsp;For me anything where there is a prize, medical and dental products, weight loss etc.</li><li style="margin-top: 0px; margin-bottom: 0px;"><strong>Scammy ads</strong>&nbsp;that point to spyware to download. Really no site should have this and really it's the lesser sites that let the side down by continuing to do this.</li><li style="margin-top: 0px; margin-bottom: 0px;"><strong>Spinning up the CPU</strong>. I use Linux and the Flash support is not the greatest, in particular a Flash advert can often spin up to 100% CPU making they system noisy, slowing it down and wearing down the battery if it's a laptop.</li></ul><p>If you are a content site and you don't do the above or you don't any more, then you probably think your safe, but you're not. People have long memories. What other sites do affects how people perceive advertising. People are tuning out the adverts everywhere they go, because they are so often irrelevant, so they don't even look at that part of the page.</p><h2>Better Advertising?</h2><p>I tried to think about the sites I love and how they handle advertising. The sites I love, are ones that have something so unique that is no replacement for their content. I would hate it if they closed down and would pay if asked to:</p><p><strong><a href="http://lwn.net">LWN.net</a></strong></p><p>I read this because it has some good in-depth articles about kernel development and the only other way to get even close to the would be to read the very busy <a href="http://lkml.org/">Linux Kernel Mailing List</a>, which I don't have anywhere near the time to do. LWN actually has a paid option, without paying you get everything a week late, so I have the paid option.</p><p><strong><a href="http://www.anandtech.com/">Anandtech</a></strong></p><p>I've followed <a href="http://www.anandtech.com/">Anandtech</a>&nbsp;since it started in 1997 and it has consistently provided the most in depth coverage of hardware topics. In a way most of the articles are suggesting you buy some piece of hardware based on the reviews. However to keep the site neutral it advertises places that sell hardware, unfortunately most of the adverts are animated and that's annoying. They do have some context sensitive adverts that sometimes are fairly close to what is being talked about. I think they could innovate a bit here and have a list of the exact products in the review and where you could buy them. I think if the advertising revenue dropped they could do well buy partnering or being bought by a online computer parts retailer. <a href="http://www.dpreview.com/news/0705/07051402amazonacquiresdpreview.asp">Dpreview was bought by Amazon</a>&nbsp;for example.</p><div><strong><a href="http://techmeme.com/">Techmeme</a></strong></div><p /><div style="margin-top: 0px; margin-bottom: 0px;">Techmeme is not a content site itself, but it a very good way to get an overview of what everyone is talking about. Techmeme have a brilliant model for advertising in that they simply have a section called "Techmeme Sponsor Posts" with some very good content from well known companies, which is often interesting enough to click on</div><p><strong><a href="http://news.ycombinator.com/">Hackernews</a></strong></p><div style="margin-top: 0px; margin-bottom: 0px;">Hackernews is a aggregation site, though it has a fair amount of content, I wouldn't want to be without it. It's not really the stories that come through, but the really good comments on every story that make the site. Hackernews doesn't have any advertising, though the whole thing is a big advertisement for the <a href="http://ycombinator.com/">Ycombinator</a>&nbsp;startup programme and Ycombinator funded startups. I think they must do pretty well out of this since they will surely see a much greater number of startups than their competitors.</div><p><strong><a href="http://thisweekinstartups.com/">Jason Calancis's this week in startups (TWiST)</a> (Video podcast)</strong></p><div>I think this content is simply unique, Jason basically brings in his friends to talk about startups and basically that's pretty much everyone in silicon valley and the surrounding area. The content is always very good, due to Jason and guests he has. Jason gets about 25,000 viewers to his show every week and brings in $4,000 every show, $1,000 each for the 4 advert slots he reads, this seems like a very good model to me. TWiST is also a good advert for OpenAngelForum which is Jason's own way to get startups funded, it's clear that promoting this is a genius move by Jason since a lot of the people doing startups watch his show and he knows all the best investors so he can really provide value doing that.</div><p /><p /><div style="margin-top: 0px; margin-bottom: 0px;">All this leaves me wondering, What's the future of web content? Is it paid content? More&nbsp;relevant,&nbsp;targeted&nbsp;advertising? Something else?</div>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Don't buy a Nokia N96]]></title>
    <link href="https://rythie.com/blog//blog/2009/09/17/dont-buy-a-nokia-n96/"/>
    <updated>2009-09-17T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2009/09/17/dont-buy-a-nokia-n96</id>
    <content type="html"><![CDATA[<p>The contract on my Sony Ericsson <a href="http://www.sonyericsson.com/cws/products/mobilephones/overview/k810i">k810i</a> phone expired at end of last year. I'd not had much luck with that phone, the joystick controller failed in the same way the it happened on the Sony Ericsson <a href="http://en.wikipedia.org/wiki/Sony_Ericsson_T610">T610</a> I had on the one before last phone I had. Not being able to navigate the phone basically made it unusable towards the end. I figured, I'd had bad experiences with Sony Ericssons both times, I'd bought them, and I had three different Nokias and they had all worked pretty well. This time, I thought I'd go back to Nokia. The Nokia <a href="http://en.wikipedia.org/wiki/Nokia_N95">N95</a> got rave reviews, though for me, I was also looking for something to replace my aging <a href="http://en.wikipedia.org/wiki/File:Ipod_2G.png">20GB iPod</a>. The Nokia N96 was the successor to the N95 which added 16GB internal memory and the option to add another 16GB, which I did.<p />I also looked at the iPhone, though at the time it only supported 16GB, had no video support, no bluetooth stereo (which are all fixed now) and it's a pain to work with Linux since you need iTunes to get stuff on and off it. So I decided on the N96.<p />Nokia's phones used to be popular because they were easy to use and reliable, but they have really messed up big time with this one. Here some of the areas I've kept on hitting problems over the last 9 months with this phone:<p /><span style="font-weight: bold;">Startup</span><br />When you need to turn on the phone it can take about a minute to start, also, slide to lock the screen doesn't work all this time. Normally this wouldn't be much of a problem but the phone does sometimes crash so you end up booting it more that you should need to.<p /><span style="font-weight: bold;">Address Book</span><br />On an old Nokia phone I could type the first letter of a person's name and it would jump right to it, now they match the beginning of any word so, it will match their surname and other bits I've added to the name like "house", "work" "mob" etc. (maybe I shouldn't use these anymore) so searching for "h", "w" or "m" brings up a lot of unwanted results.<p /><span style="font-weight: bold;">Text Messages</span><br />First off, sometimes when you receive a text the phone can take a while to wake up and show you the text at all. When your viewing the text you don't see the date/time of the text, on old non-smartphone Nokia phones you would simply scroll down, on the N96 you have to go to Options → (scroll right down to) Message Details and then scroll that down to see the time - which is crazy when the screen is so big.<p /><span style="font-weight: bold;">Email client</span><br />The mail client leaves a lot to be desired, with the default settings it runs out of memory even when it is the only program running with an inbox of 4,000 messages. I found that reducing my mailbox down to about 1500 messages helped this a bit, but still most of the time wouldn't let you read a message. In the end, I found that limited the number of messages was the best answer which can be done with the following from Email:<p />Options → E-mail settings → Retrieval settings → Retrieval amount → From Inbox = 50 (default: All) Even with this setting, I find it can take several minutes to check for new message, when I haven't used it for a few weeks.<p /><span style="font-weight: bold;">Web Browser</span><br />The web browser seems fine in general unless you have used iPhone or iPod Touch before. I have recently bought an iPod touch and it's really easy to do a web search, change the page URL, use tabs, bookmarks basically everything you need. Nokia's browser is very poor in comparison. When it has to load external stylesheets it seems to load that at the end so you start reading the un-styled content for a few seconds and there is a big jump while the page changes. There is no multiple tab support.<p /><span style="font-weight: bold;">MP3 Player</span><br />The music player does work some of the time. Occasionally it gets confused on a song and it starts stuttering and this can be fixed by pausing and un-pausing it again. Also, sometimes the phone will just simply crash and reboot while your listening to a song. A minor issue is that on my Sony Ericsson k810i I could pause/play and change volume all with out unlocking the phone, which was useful, on the n96 I have to unlock it every-time to do this (they do provide a wired remote which I don't find useful, and my iPod had one which I never used).<p />I've talked to a few people with Nokia N96s, and they report the same type of problems. I can't see a good reason to choose the Nokia N96, so my recommendation is to get something else.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Federated short URLs]]></title>
    <link href="https://rythie.com/blog//blog/2009/08/10/federated-short-urls/"/>
    <updated>2009-08-10T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2009/08/10/federated-short-urls</id>
    <content type="html"><![CDATA[With the demise of the <a href="http://tr.im/">tr.im</a> URL shortening service, the <a href="http://www.pcmag.com/article2/0,2817,2351402,00.asp">inevitable</a> debate about shortening services has arisen. The key problem is that these URLs are lost if the service is shutdown and lots of links remain broken forever with no idea of what domain they were on let alone the specific page.<p />I must say, I'm not really convinced there is a need for URL shorteners outside <a href="http://twitter.com">Twitter</a>, and they should provide a service of their own or avoid the need for it altogether. Nevertheless, there are lot of these services and here is what I think could be done to avoid a tr.im style problem again.<p />The solution would be a federated URL shortening system, such that all participants share the same shortening codes.<br />i.e.<br />http://bit.ly/Bxxxxx<br />would be the same as<br /><a href="http://tr.im/Bxxxxx">http://tr.im/Bxxxxx</a><p />This is how I think it could work:<p />It's based on the same ideas of a <a href="http://www.freesoft.org/CIE/Course/Subnet/3.htm">hierarchical addressing</a> used by IP addresses, postcodes, phone numbers etc.<p />We assume that these codes (i.e. the bit after the slash) are Base62 - i.e. each character could be a-z, A-Z or 0-9.<br />The shortening code would be split into two parts: a vendor part and a URL part.<p />i.e. <a href="http://bit.ly/">bit.ly</a> gets everything starting "B" leaving them 5 digits or 916 million addresses (62<sup>5</sup>) to play with however they like.<br />trim gets everything starting "T" also leaving them 916 million addresses<br />Some small site could also get in the game with a smaller set initially, i.e. they get addresses starting "AAA" leaving them 3 digits or 238,328 (62<sup>3</sup>) addresses to work though until they take off (which may never happen of course)<p />Everyone in the system would be responsible for approving short URLs onto the system for their subsection of the space. They would notify others in the system immediately and if a URL has already been shortened by another site, they would use the same code but serve it up as their own. I.e. tr.im finds that bit.ly has already shortened a URL as <a href="http://bit.ly/Bxxxxx">http://bit.ly/Bxxxxx</a> so tr.im takes that code and serves it up as it's own <a href="http://tr.im/Bxxxxx">http://tr.im/Bxxxxx</a> and this way the user of the URL can get statistics and such. It's quite possible that if URLs are shortened on different sites within seconds of each other that two or more codes for the same URL will exist and that would probably less than 0.1% and could be accepted as an inherent inefficiency that would not be fixed.<p />As codes run out the prefix could be extended from 1 character to 2 or even 3, giving 62 times as many addresses in each case, giving multiple blocks to companies as necessary.<p />If a company wants to exit the game it would be suggested that it sells it's domain to an existing player. A DNS <a href="http://en.wikipedia.org/wiki/CNAME_record">CNAME</a> entry to the new company is all that would be really required to take it over, none of the code or database written by the failing company would need preserving and could even be sold separately.<p />Of course the failing company could either let the domain lapse or sell it to some company who didn't intend to carry on the service (probably redirecting to some scam or illegal site). In this case lets assume the shortener was <a href="http://fa.il/">http://fa.il/</a>. In this case one thing that could be done is to have Twitter and other sites rewrite the old URLs and serve them up on another shortener. i.e. they rewrite <a href="http://fa.il/FFFFxxx">http://fa.il/FFFFxxx</a> as <a href="http://bit.ly/FFFFxxx">http://bit.ly/FFFFxxx</a> and everyone's links keep on working.<p />So that's it. It does require a lot of companies working together which tends not to happen.<p />What do you think? Could this be done? Would anyone do it?
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[What Google's Chrome OS means]]></title>
    <link href="https://rythie.com/blog//blog/2009/07/08/what-googles-chrome-os-means/"/>
    <updated>2009-07-08T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2009/07/08/what-googles-chrome-os-means</id>
    <content type="html"><![CDATA[I've never had to do a software update on my dishwasher, remove a virus from my T.V., if I want to have a cup of tea at a friend's house I don't need to take my kettle and I'm unlikely to lose priceless memories if my microwave breaks down. The PC is by far the most complicated device in the home because it has all these problems.<p />Right now, if you work in a reasonably well run, large organization, I'd say your desktops are fairly well sorted out, backups are done automatically, you can roam with your login to any machine to get your desktop where you like, you can't mess much up or if you do the desktop can be reset within a day if not sooner. Data and/or desktop is available remotely. At least that's how I run the desktops I manage. Fundamentally I'd say in large organizations there is no real problem with desktop IT.<p />Now what about the other end of the spectrum? non-tech families, small non-tech businesses with no IT staff etc. How much backup is going on? can you roam from one machine to another in the house/organization? can machines be replaced quickly? what about remote access to documents/photos etc. - probably not.<p />It doesn't seem that either Microsoft or Apple have made massive inroads into this problem. Even with products like Apple's <a href="http://www.apple.com/timecapsule/">Time Capsule</a>, your backups are in the same physical building as your Macs, so if your house burns down or your equipment is stolen, everything is lost.<p />I find that I already mostly have my data in the 'cloud' so to speak. I regularly switch between 3 systems my home desktop, my personal laptop and my work desktop. For any notes, lists, documents, spreadsheets I use Google docs &amp; spreadsheets. I put photos on <a href="http://www.facebook.com">Facebook</a> and <a href="http://flickr.com">Flickr</a>. My bookmarks are in <a href="http://www.xmarks.com">Xmarks</a> and <a href="http://delicious.com/">Delicious</a>. My email is available via the web or IMAP. My programming code is generally stored on servers that I can SSH into from anywhere. In most cases I can get all the info I need, from anywhere in world, with a machine with a web browser and SSH terminal. There are a few exceptions, I can't easily access my music from anywhere and the photos I haven't published aren't available - though these are not unsolvable problems.<p />I think my experience has shown that you can store your data largely in the cloud. Google's <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html">Chrome OS</a>, properly marketed, could popularize this type of computing. If Google provides a system on which you can't install programs, where all data is stored in the cloud, then people would start doing this. The benefits would be, the machine it's self is disposable, if the machine dies, you can buy another and no data would be lost - since it's in the cloud, being looked after by people who know what they are doing.<p />This is certainly not a new idea - though no-one of note has tried to push it. Microsoft and Apple were never likely to push it since it goes against the ecosystems they have created.<p />What do you think? is this Google's plan or are they are doing something else? What about offline? or does that matter anymore? Will people trust Google and others with their data?
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Cutting features is not scaling]]></title>
    <link href="https://rythie.com/blog//blog/2009/05/13/cutting-features-is-not-scaling/"/>
    <updated>2009-05-13T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2009/05/13/cutting-features-is-not-scaling</id>
    <content type="html"><![CDATA[In July 2008, Twitter limited <a href="http://louisgray.com/live/2008/07/twitter-chokes-unauthenticated-api.html">unauthenticated requests</a> to 100/hour by IP. This stopped people from working around the per user limit which by then had also been raised to 100.<p />In April 2009, put a <a href="http://www.louisgray.com/live/2009/04/twitter-caps-following-limits-denting.html">limit of follows per day</a>, the most obvious reason for this is so that it puts a cap on "spam" following. I can see some other reasons though. On reason is to stop people following large numbers of people, I could see the logic that people won't just be limited to following 365,000 new people a year, but more likely they will just give up on the practice altogether.<p />Now twitter is limiting who some of your updates go to, so that replies don't go to most of your followers. This of course has caused a <a href="http://mashable.com/2009/05/13/fixreplies/">massive backlash</a> typified by the <a href="http://search.twitter.com/search?q=%23fixreplies">#fixreplies</a> trending topic on twitter. Twitter initially <a href="http://blog.twitter.com/2009/05/small-settings-update.html">said</a> it was doing this because it was confusing for users, even though it had been the default for months. Now twitter is <a href="http://blog.twitter.com/2009/05/whoa-feedback.html">saying</a> it is a technical issue which makes more sense. I can see that when someone posts a reply now they will have vastly fewer places to update that which will cut the load. I suspect that under the hood twitter are redesigning database and this change is baked into it (Marshall Kirkpatrick  from RWW has some <a href="http://www.readwriteweb.com/archives/is_this_why_twitter_changed_its_replies_policy.php">thoughts</a> on why that might be).<p />I can only think of one reason they might be changing it, and that's to allow threaded replies. Twitter now has in_reply_to_status_id field and clients are being updated to support it so you precisely what something was a reply to. You can't currently get the thread of replies easily. I wonder if twitter is moving toward storing these replies to an entry somewhere for easy retrieval so we can get the threaded replies.<p />Twitter is known to have various scaling issues from time to time and with these changes and other they seem to be limiting several features in order to put off hitting limit until another day. They don't seem have definite plan for scaling and cutting more and more features is not a solution. If you look at <a href="http://facebook.com/">facebook</a> for example which must have similar issues, they seem to have solved how to scale since they are at 200 million users and rarely have any downtime.<p />Twitter has about 30 employees, it seems they could do with some people that really know how to scale big sites i.e. people from facebook, <a href="http://myspace.com/">myspace</a>, <a href="http://friendster.com/">friendster</a> etc. but if you look at their <a href="http://twitter.com/jobs">jobs page</a>, there doesn't seem to opening for a scaling expert. It's perhaps because they have the right people for already, but if that's the case, they should be scaling everything, not turning off features they can't make work.
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Facebook pages vs. Twitter]]></title>
    <link href="https://rythie.com/blog//blog/2009/03/05/facebook-pages-vs-twitter/"/>
    <updated>2009-03-05T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2009/03/05/facebook-pages-vs-twitter</id>
    <content type="html"><![CDATA[Continuing the theme from my last post (which was 4.5 months ago!), people are now saying that <a href="http://facebook.com/">Facebook</a>'s new "pages" features <a href="http://www.techcrunch.com/2009/03/04/facebooks-response-to-twitter/">will compete with Twitter</a> (and <a href="http://www.businessweek.com/technology/content/mar2009/tc2009034_395864.htm">here</a>)<p />It doesn't sound like what Facebook is doing will be much different than before, that said, often initially boring changes turn out to have interesting effects. Facebook is essentially improving it's pages system, so that you can follow various brands on Facebook. This is similar in way to going to a company's site and posting a comment on their forum, though without the sign up hassle, different interfaces and presumably I will be able to track replies better. Even with these simplifications, however, it will not be as easy as posting to <a href="http://twitter.com/">Twitter</a>. Facebook's approach is akin to looking up something using <a href="http://dir.yahoo.com/">Yahoo's directory</a>  rather than searching for it on <a href="http://www.google.com/">Google</a>. On Facebook I will have to find somewhere appropriate to post my message (if it exists) and then post and probably not post if someone has made a similar comment.<br /><span style="font-weight: bold;"><br />User Interface</span><br />Twitter's system is, no system. It's the simplest system, since it a text box and button (like Google). So on Twitter I just post. I don't need to read what others said before I post. It's likely my followers haven't seen that yet and even if they have, multiple people saying the same thing strengthens the message anyway. Even though I haven't categorized my message through the power of <a href="http://search.twitter.com/">search.twitter.com</a> people will be able to find it, it may appear as part of a trending topic and someone from the brand can find if they so wish as can anyone else via keyword searches.<p /><span style="font-weight: bold;">Immediacy</span><br />I can't imagine that Facebook's system is going to allow quick comments due to not having a limit on the message length and the categories system (as mentioned above). It seems for this reason Twitter is likely to remain the home of breaking news.<p /><span style="font-weight: bold;">Discussion Types</span><br />There is another key difference in the way I expect people will use the sites other than the interface. On Twitter <a href="http://twitter.com/friendbinder">I</a> am primary broadcasting messages to people on a variety of topics as they are to me. In Facebook's system, much like in a forum, I will be talking to a community of people that know the topic very well. This will make the process more daunting and less rewarding. For example, imagine going to a Britney Spears group to complain about her music when you know the group is full of Britney's Fans. You still want to make the comment but probably to a similarly like minded set of friends (such as your Twitter friends).<p /><span style="font-weight: bold; font-size: 100%;"> Freedom of speech</span><br />On Twitter I can say anything and only I can delete my comments. On Facebook, I expect as in common with most of their site, page owners will control the discussion allowing them to delete comments they don't particularly like. Brands will like this since they have some control, but users are likely to get frustrated by it.<p />In general Twitter and Facebook are so different I can't see the two competing on this. Twitter is going to have more regular, quicker, critical comments which are publicly searchable. Facebook's method is likely to attract a smaller proportion of it's users, who may in turn maybe more detailed due to Facebook's lack of message length limits and probably less critical.
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Flickr shouldn't fear Facebook]]></title>
    <link href="https://rythie.com/blog//blog/2008/10/20/flickr-shouldnt-fear-facebook/"/>
    <updated>2008-10-20T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2008/10/20/flickr-shouldnt-fear-facebook</id>
    <content type="html"><![CDATA[A few days ago <a href="http://mashable.com/author/stan-schroeder/">Stan Schroeder</a> of Mashable posted a entry entitled <a href="http://mashable.com/2008/10/15/facebook-10-billion-photos/">Facebook Trumps Most Photo Sharing Sites With 10 Billion Photos</a>. In it he says about <a href="http://www.flickr.com/">Flickr</a> that "ultimately people use Facebook for the same thing - sharing photos with their friends" and that "It’ll be interesting to see what photo sharing social networks will do to differentiate from Facebook".<p />It is possible that Stan still uses Flickr in this way, but I suspect many people already use large social networks (like <a href="http://www.facebook.com/">Facebook</a>) if they only want to share photos with their friends.<p />This is not a problem for Flickr, however. Flickr has established a community of people who want to share their photos with the world. Links to photos on <a href="http://twitter.com/">Twitter</a> or blogs often use Flickr for that purpose because twitter and blogs are by their nature public and Facebook is not. Through Flickr <a href="http://www.flickr.com/photos/richardcunningham/sets/72157603639032708/">I have (re-)discovered photography</a>, Flickr has a fascinating array of photos on it which can be easily found by going to the interestingness pages or one of numerous groups. Flickr also has a number of features which support it as a place to share photos with the world, not just your friends:<br /><ul><li>Tags</li><li>Public Groups</li><li>The API and various applications built on it (e.g. <a href="http://bighugelabs.com/flickr/">bighugelabs</a>)<br /></li><li>A community of photographers</li><li>Geo tagging</li><li>Search</li></ul>(Facebook also has something called tags but that is for tagging people, which makes it useful for sharing with friends but is not the same as what Flickr uses tags for)<p />In short, Flickr is a way to share your photos with the world and Facebook is way to share photos with your friends.
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Updated Digg stats]]></title>
    <link href="https://rythie.com/blog//blog/2008/04/16/updated-digg-stats/"/>
    <updated>2008-04-16T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2008/04/16/updated-digg-stats</id>
    <content type="html"><![CDATA[There is a new article on <a href="http://www.readwriteweb.com/">ReadWriteWeb</a> now featuring updated Digg graphs that I gave them, "<a href="http://www.readwriteweb.com/archives/digg_the_decline_and_fall_of_tech.php">The Decline and Fall of Tech on Digg</a>".
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[phpMyAdmin 2.11.5 / PMASA-2008-1]]></title>
    <link href="https://rythie.com/blog//blog/2008/03/01/phpmyadmin-2115-pmasa-2008-1/"/>
    <updated>2008-03-01T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2008/03/01/phpmyadmin-2115-pmasa-2008-1</id>
    <content type="html"><![CDATA[phpMyAdmin 2.11.5 has been released today which contains the fix to a security bug I reported, details are in the <a href="http://www.phpmyadmin.net/home_page/security.php?issue=PMASA-2008-1">security announcement</a>.
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[More Digg stats]]></title>
    <link href="https://rythie.com/blog//blog/2008/02/08/more-digg-stats/"/>
    <updated>2008-02-08T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2008/02/08/more-digg-stats</id>
    <content type="html"><![CDATA[As a follow up to my last entry, <a href="http://blog.richardcunningham.co.uk/2008/02/tech-stories-percentage-dropping-on.html">Tech stories percentage dropping on Digg</a>", I thought I would do some more digg stats.<br />First up is the digg stories by number of popular stories rather than percentages:<div class='p_embed p_image_embed'>
<a href="https://rythie.com/blog//images/2009/12/5145718-media_httpbp3bloggercomuTe2Ye3DuTgR6yU8jkXY5IAAAAAAAAACQuckAJWd2RNss400numberstechstoriesdiggfull2png_ekpFwCErCpfaqvA.png">
<img src="https://rythie.com/blog//images/2009/12/5145718-media_httpbp3bloggercomuTe2Ye3DuTgR6yU8jkXY5IAAAAAAAAACQuckAJWd2RNss400numberstechstoriesdiggfull2png_ekpFwCErCpfaqvA.png" />
</a></div>I also looked at what Technology is made up of. It perhaps not surprising that a lot of the news is about Apple (dark blue) or Linux (light blue), with the generic "Industry News" making up the majority:<br /><div class='p_embed p_image_embed'>
<a href="https://rythie.com/blog//images/2009/12/5145719-media_httpbp2bloggercomuTe2Ye3DuTgR6yYfTkXY6IAAAAAAAAACY1qdF9oQFJrws400numbersintechdiggpng_yjcCGsrkfqiqDsc.png">
<img src="https://rythie.com/blog//images/2009/12/5145719-media_httpbp2bloggercomuTe2Ye3DuTgR6yYfTkXY6IAAAAAAAAACY1qdF9oQFJrws400numbersintechdiggpng_yjcCGsrkfqiqDsc.png" />
</a></div>and here is the same data by percentage:<br /><div class='p_embed p_image_embed'>
<a href="https://rythie.com/blog//images/2009/12/5145720-media_httpbp2bloggercomuTe2Ye3DuTgR6yZNTkXY7IAAAAAAAAACgVabT6narGNYs400percentageintechdiggpng_IaEwDebyjgyDepJ.png">
<img src="https://rythie.com/blog//images/2009/12/5145720-media_httpbp2bloggercomuTe2Ye3DuTgR6yZNTkXY7IAAAAAAAAACgVabT6narGNYs400percentageintechdiggpng_IaEwDebyjgyDepJ.png" />
</a></div>I wanted to get some of the data for submissions though it seems I can't get data from the API for that from before the 30th December, last year.
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Tech stories percentage dropping on Digg]]></title>
    <link href="https://rythie.com/blog//blog/2008/02/05/tech-stories-percentage-dropping-on-digg/"/>
    <updated>2008-02-05T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2008/02/05/tech-stories-percentage-dropping-on-digg</id>
    <content type="html"><![CDATA[There was a story on <a href="http://www.mashable.com/">Mashable</a> today about the <a href="http://mashable.com/2008/02/05/digg-tech-section-analysis/">number of tech stories</a> on <a href="http://www.digg.com/">Digg</a> dropping, though the method they used was by looking at <a href="http://www.archive.org">wayback machine</a> results. However since Digg have all this information available in their API, we can get a much more accurate picture of what has happened. So here is a graph of the percentage of stories in each 'Container'. Each data point is for a full week of stories, so this should cover every story since the 1st of January 2006 until the 3rd of February 2008. (click on the image to view it full size)<br /><div class='p_embed p_image_embed'><a href="https://rythie.com/blog//images/2009/12/5145721-media_httpbp3bloggercomuTe2Ye3DuTgR6mWZTkXY4IAAAAAAAAABoxZECOUiA50As400diggtechgraphpng_oIihvwAvgckaJoC.png"><img alt="Media_httpbp3bloggercomute2ye3dutgr6mwztkxy4iaaaaaaaaaboxzecouia50as400diggtechgraphpng_oiihvwavgckajoc" src="https://rythie.com/blog//images/2009/12/5145721-media_httpbp3bloggercomuTe2Ye3DuTgR6mWZTkXY4IAAAAAAAAABoxZECOUiA50As400diggtechgraphpng_oIihvwAvgckaJoC.png" /></a></div><a href="http://bp3.blogger.com/_uTe2Ye3DuTg/R6i-RjkXY3I/AAAAAAAAABg/r4b0jbbHErE/s1600-h/percent-tech-stories-digg-full.png"><br /></a>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Loss of 25m child benefit records]]></title>
    <link href="https://rythie.com/blog//blog/2007/11/21/loss-of-25m-child-benefit-records/"/>
    <updated>2007-11-21T00:00:00+00:00</updated>
    <id>https://rythie.com/blog//blog/2007/11/21/loss-of-25m-child-benefit-records</id>
    <content type="html"><![CDATA[I couldn't quite believe it when I heard that HM Revenue and Customs have 'lost' <a href="http://news.bbc.co.uk/1/hi/uk_politics/7106366.stm">25 million child benefit records</a>. It does seem that the data was password protected, but that presumably means something like a zip file or MS Excel password, then this is akin to losing a suit case with millions of pounds in it and then mentioning it had one of those tiny suit case padlocks on it.<p />It should be clear to any organization, that handles this kind of data, especially in this volume, that security is of paramount importance. Here some the security measures I think should have been in place and would have prevented this from happening:<br /><ul><li>No one should be able to download large portions of the data without special procedures for data security being enforced (say more than 1,000 records)</li><li>Any data that is transfered should be encrypted with strong cryptography. The key(s) to this encryption should be sent separately to the data and only after the data is acknowledged to arrived safely.</li><li>All data of this type should be sent by a secure transportation company such as <a href="http://www.g4s.com/">Securicor</a>.</li><li>If at all possible the data should never leave the secure site where it is normally resident<br /></li><li>If anyone requests data the bare minimum that they require should be provided with no extra fields.</li><li>Anyone who goes anywhere near this kind of data should be given comprehensive security training.<br /></li></ul>Even if all but one of these measures were to fail, this breach would still not have happened.<p />The sad fact is that any security professional or group should have been able to tell them this (and whole lot more for other scenarios), but for some reason <a href="http://www.hmrc.gov.uk/">HM Revenue and Customs</a> didn't take this type of advice or maybe didn't implement it properly.<p />Before this story surfaced I had already been very skeptical of the <a href="http://www.no2id.net/IDSchemes/whyNot.php">ID cards</a> project. It would be very hard to keep this data safe. If the data were ever lost it would be a lot more serious than what has been lost in this case, both in the number of people and the amount of data about each person. I am now even more skeptical since it seems the government can't even handle quite basic data security concepts like the ones I have outlined.
]]></content>
  </entry>
  
</feed>
