<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>come on down to clug park and meet some geeks online</title>
  <updated>2010-09-07T00:05:45Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>CLUG Webmasters</name>
    <email>webmaster@clug.org.za</email>
  </author>
  <id>http://park.clug.org.za/atom.xml</id>
  <link href="http://park.clug.org.za/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://park.clug.org.za/" rel="alternate"/>

  <entry xml:lang="en">
    <id>urn:md5:f0c84b43e90451355cd04f7aa84bc242</id>
    <link href="http://blog.wizzy.com/post/Using-the-Centre-for-High-Performance-Computing%2C-Cape-Town" rel="alternate" type="text/html"/>
    <title xml:lang="en">Andy Rabagliati (wizzy): Using the Centre for High Performance Computing, Cape Town</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I have recently been contracting at the Centre for High Performance
Computing. This is just an update on how to map the particular problem I have
onto the computing cluster.</p>    <h2>What this is not</h2>
<p>This is not a complicated expose of a whole computer cluster co-operating on
a single task.</p>
<h2>First steps</h2>
<p>It is an explanation of how to get to the much easier job of splitting the
main task up into bite-sized pieces that can be fed independently via a job
submission system called <a href="http://www.clusterresources.com/products/moab-cluster-suite.php">MOAB</a>.</p>
<p><a href="http://blog.wizzy.com/public/South_Africa/Africa_MERIS_algal_1_20100516.png"><img alt="MERIS satelite scan" src="http://blog.wizzy.com/public/South_Africa/.Africa_MERIS_algal_1_20100516_s.jpg" style="float: right; margin: 0 0 1em 1em;" title="MERIS satelite scan, Jul 2010"/></a></p>
<h2>Task description</h2>
<p>Each day satellites <a href="http://en.wikipedia.org/wiki/MODIS">MODIS</a>
(NASA) and <a href="http://en.wikipedia.org/wiki/MERIS">MERIS</a> (ESA) do a
few passes of a polar orbit over our region of interest, African coastal and
inland waters. The (large amounts) of daily data arrive via a dedicated
satellite link - about 1 Gig every day. They are in "swaths", about 20 or so
files from 10Meg to 800Meg.</p>
<p>We need to keep all this input data. It is a few terabytes and growing of
several years of historical data.</p>
<p>This needs to be processed - mostly to cut it up and combine swaths to get
smaller files of country-specific data, and a PNG picture of some attributes in
the country <a href="http://en.wikipedia.org/wiki/Netcdf">netcdf</a> file.</p>
<p>So I have a python script that reads the input files, brackets them by
latitude and longitude, re-grids (lossily) the data onto a north-south grid as
opposed to 'along-track' delivered data, writes the <a href="http://en.wikipedia.org/wiki/Netcdf">netcdf</a> and png.</p>
<h2>Collecting the data</h2>
<p>All the input data was on a number of other machines in the oceanography
department. The supercomputer cluster has four 79 terabyte cluster drives,
accessible from all nodes. The network drives are themselves a distributed
network of directory nodes and storage nodes, for speed and parallel access.
See <a href="http://en.wikipedia.org/wiki/Lustre_%28file_system%29">LUSTRE</a>
filesystems.</p>
<p>Each node runs linux, and can directly access these drives. For
organisational purposes, I create a heirarchy of SATELLITE/YEAR/MONTH/* and
copy all the terabytes down.</p>
<h2>Python</h2>
<p>I will skip the off-topic but lengthy installation of python 2.6.5 on the
NFS read-only share. Consider it done :)</p>
<p><a href="http://blog.wizzy.com/public/South_Africa/WSAfrica_MODIS_sst_20100831.png"><img alt="MODIS West South Africa" src="http://blog.wizzy.com/public/South_Africa/.WSAfrica_MODIS_sst_20100831_m.jpg" style="float: right; margin: 0 0 1em 1em;" title="MODIS West South Africa, Sep 2010"/></a> I can now split the problem up by
day, and satellite. I have a shell script that copies and decompresses a day's
input files to a 'scratch' area, and feeds that days-worth of files to a python
program, which processes it repeatedly for each of our Regions of Interest,
dropping the output files in the same directory. It can take up to about 6
hours to process a days files - mostly spent on the regridding operation.</p>
<p>You can see in this png of the Western coast of South Africa two separate
swaths, and artifacts caused by the regridding operation at the lower
resolution edges of the swath. MODIS orbits south to north, MERIS (above) the
other way. Most of the gaps are clouds over the sea at the time of the
satellite overpass.</p>
<p>MERIS have their own file format, but provide a java program to convert that
to hdf5, a more widely recognised format that has python modules for input and
output. Luckily the cluster has java :)</p>
<p>The shell script then copies the results back to a target file heirarchy,
and deletes the input files, and finishes.</p>
<h2>Firewall</h2>
<p>The firewall setup around the computing cluster prevents any machine in the
cluster from making network connections out. When logging into the cluster, you
'land' on the login node, and from there you can ssh to any node in the cluster
on its private 10.* Infiniband network. So copying the output data to the
webserver must be orchestrated from outside.</p>
<h2>MOAB</h2>
<p>The product page talks about graphical installations and point and click,
but I prefer the command line. Usually the GUI just pokes command line tools
anyway, so you are closer to the metal as well as being convenient for remote
use.</p>
<p>The submission tool, <strong>msub</strong>, takes as parameters a number of
accounting switches, where to send script output (stdout and stderr), target
blade classes, and a host of other things including my script.</p>
<p>A problem comes because I cannot pass parameters to the script on the
command line. So, if I want to tell it which day to process, I have to use an
environment variable.</p>
<p>There are ways of naming environment variables to be passed through, but now
it is getting complicated. I chose to use the 'jobname' - a simple string
available in the accounting switches that I can set to anything I like. I set
it to the date - for instance "2010:02:29" is a leap-day.</p>
<p>You can embed all the msub switches (like expected job run time, feature set
of target blades needed, stdin and stout) in the script itself, prefixed by
"#MSUB", which is mighty convenient. so now submitting a day's job becomes</p>
<p><code>msub -N 2010:08:11 ~/bin/meris.sh</code></p>
<p>and a trivial loop will do a month.</p>
<p>moab is probably sniggering at me for submitting so many single-threaded
jobs and nothing more complex. I may even be penalised in the queue for jobs,
but it works fine for me.</p>
<h2>Loading and unloading</h2>
<p>It is convenient to keep all the historical input data on the cluster
filesystems, and that means setting up a daily job to rsync the satellite data
as it arrives down to the cluster.</p>
<p>Output is currently served by the MRSU webserver at <a href="http://www.afro-sea.org.za/">http://www.afro-sea.org.za/</a> - and thus needs
the data copied off the cluster to be served. Because of the difficulty of
synchronising, I actually do the daily processing on a beefy desktop outside
that is otherwise idle, just because all the network copying can be coordinated
there, and I can use cron.</p>
<p>There is a plan to make the site more dynamic, where you could request a
custom region, at which point I would consider poking the supercomputer cluster
with long spoons from the webserver. First - we need users.</p>
<h2>Users</h2>
<p>This is a bit double-edged - probably the folks most interested in the daily
information would be foreign fishing vessels :) Regardless, potentially
interested parties must be made aware of this resource funded by the
taxpayer.</p></div>
    </content>
    <updated>2010-09-06T18:18:00Z</updated>
    <category term="Africa"/>
    <category term="Cape Town"/>
    <category term="Centre for High Performance Computing"/>
    <category term="CHPC"/>
    <category term="Environment"/>
    <category term="Marine Remote Sensing Unit"/>
    <category term="Massively parallel processing"/>
    <category term="MERIS"/>
    <category term="MODIS"/>
    <category term="MRSU"/>
    <category term="South Africa"/>
    <category term="University of Cape Town"/>
    <category term="University of Stellenbosch"/>
    <category term="University of the Western Cape"/>
    <author>
      <name>Andy</name>
    </author>
    <source>
      <id>urn:md5:7502</id>
      <author>
        <name>Andy Rabagliati</name>
      </author>
      <link href="http://blog.wizzy.com/feed/atom" rel="self" type="application/atom+xml"/>
      <link href="http://blog.wizzy.com/" rel="alternate" type="text/html"/>
      <title xml:lang="en">Wizzy Africa</title>
      <updated>2010-09-06T18:38:54Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.swimgeek.com/blog/?p=2435</id>
    <link href="http://www.swimgeek.com/blog/2010/09/06/quick-update-122/" rel="alternate" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2010/09/06/quick-update-122/#comments" rel="replies" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2010/09/06/quick-update-122/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Johann Botha (joe): Quick Update</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">Some weeks I wake up and I’m somebody’s dad. Some weeks I wake up and I’m a kid on an adventure… Monday, woke up in Athens.. babies don’t sleep this well, only got out of the hotel at 2pm, no … <a href="http://www.swimgeek.com/blog/2010/09/06/quick-update-122/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Some weeks I wake up and I’m somebody’s dad. Some weeks I wake up and I’m a kid on an adventure…</p>
<ul>
<li>Monday, woke up in Athens.. babies don’t sleep this well, only got out of the hotel at 2pm, no point if the light is bad for photography right?, blogged, found a new hotel, the first one was in an area that looked like <a href="http://en.wikipedia.org/wiki/Mogadishu">Mogadishu</a> at night, train to <a href="http://en.wikipedia.org/wiki/Piraeus">Piraeus</a> and back.. harbour area, good time to read the travel guide, Greek salad and octopus legs with a <a href="http://en.wikipedia.org/wiki/Mythos_%28beer%29">Mythos</a> beer, Roman <a href="http://en.wikipedia.org/wiki/Agora">Agora</a>, bought a few tshirts, followed my nose for a while, <a href="http://en.wikipedia.org/wiki/Hadrian%27s_Arch">Hadrian’s Arch</a>, <a href="http://en.wikipedia.org/wiki/Temple_of_Olympian_Zeus_%28Athens%29">Temple of Olympian Zeus</a>, <a href="http://en.wikipedia.org/wiki/Zappeion">Zappeion Hall</a>, <a href="http://en.wikipedia.org/wiki/Panathinaiko_Stadium">Panathinaiko Stadium</a>, National Gardens, Parliament, a 10 Euro Gin Martini on a rooftop in Gazi, a beer at <a href="http://www.gazicollege.gr/">Gazi Collage</a> again, picked up a fresh orange juice on the way to the hotel.</li>
<li>I think I need a Cape Town sticker for my camera bag.. but the official <a href="http://www.capetown.travel/">Cape Town tourism branding</a> may look a bit gay.</li>
<li>Pet hate: tourists who hang around monuments (inconsiderately) when I want to take photos.</li>
<li>Tuesday, pretty useless hotel breakfast, moved to a new hotel, National Archaeological Museum, a late lunch, nap, the 16mm and I went to explore the <a href="http://en.wikipedia.org/wiki/Ancient_Agora">Ancient Agora</a>, <a href="http://en.wikipedia.org/wiki/The_Acropolis">The Acropolis</a>, watched the sunset from the <a href="http://en.wikipedia.org/wiki/Temple_of_Athena_Nike">Nike Temple</a>, g&amp;t on the balcony overlooking the Agora and the Pantheon, Jacques arrived late.. he fell off his bike on the way to the airport.. on the highway, we went out for a few drinks.</li>
<li>Maybe we should go to NZ for the <a href="http://www.rugbyworldcup.com/">rugby world cup in Sept 2011</a>.</li>
<li>Nice music on the subway in Athens, <a href="http://en.wikipedia.org/wiki/Dave_Brubeck">Dave Brubeck</a>, etc.</li>
<li>Wednesday, got up late, Jacques got himself a Fear and Loathing hat and shades, I got myself 3 pairs of sunglasses, lunch, nap, we solved the world’s problems on the roof of our hotel.</li>
<li>
<blockquote>“Truth seeking is a dangerous business.” — Jacques<p/></blockquote>
</li>
<li>
<blockquote>Lawyer: What about that tattoo on your chest, doesn’t it say “DIE BART DIE”?<br/>
Bob: “No! That’s German…for “Die Bart Die” (Courtroom laughs.)”<br/>
“No one that speaks German can be a bad man.” — Simpsons<p/></blockquote>
</li>
<li>When I’m not really making phone calls my phone can go about 8 days on a single charge.. Jacques does not even get one day with his iPhone.</li>
<li>
<blockquote>“Somewhere in the world it’s 5pm” — about opening a beer at 11am.<p/></blockquote>
</li>
<li>
<blockquote>“Ek’s op ‘n pakkie ‘n dag.. Nurofen.” — Jacques about toothache.<p/></blockquote>
</li>
<li>
<blockquote>“Buy then there is blood on the streets.” — Jacques about property investment.<p/></blockquote>
</li>
<li>Thursday, Jacques’s bag got stolen in a cafe with his passport in it, took a ferry to Mykonos.. Jacques was not happy, so we depleted the ferry’s mini-bar sized Johnnie Red and there was probably a bit more Afrikaans swearing than necessary, two friendly girls took us to their family run hotel, had a swim.</li>
<li>
<blockquote>“Soos on nou geleer het uit Californication.. floozies is nie die antwoord nie.” — Jacques, about relationships<p/></blockquote>
</li>
<li>I met a girl who within a day pretty much knew everything about me. To be mysterious or not?.. I think I have more personal information online than anybody I know, but I’d still like to think I’m not giving away the whole story.</li>
<li>Did I mention how hot the woman in Athens are, even the Police woman are hot.</li>
<li>Street names are a bitch in Greece, often a street has three names.</li>
<li>Why did I come to Greece?.. because I enjoyed the Egyptian history lesson or because Mia watched Mamma Mia over and over?</li>
<li>Focus. Relax. The two most frequent (opposing) instructions Mia gets from her dad.</li>
<li>I really need a travel companion who likes to read travel guides and plan things. Maybe Mia will be into that.</li>
<li>Seems <a href="http://en.wikipedia.org/wiki/Santorini">Santorini</a> is one of the islands where Atlantis is believed to have been.</li>
<li>I think I need to meet a girl for whom I’d like to make compilation CDs again.</li>
<li><a href="http://en.wikipedia.org/wiki/Mykonos">Mykonos</a> is pure hedonism.</li>
<li>Jacques thinks it’s strange that I tell people I’m from Cape Town and not South Africa.</li>
<li>Friday, woke up on an island, a nice breakfast overlooking the sea, walked to the closest scooter rental place, hired at 50cc quad bike.. which was not designed to carry 210kg up a hill so Jacques had to walk a few times, cruised around or the right-hand side of the road without a helmet, this country really needs to update their laws to allow 125cc bikes without a license, had lunch next to the beach, walked around the old harbour town, nap, sundowner by the pool, walked to a restaurant close to the hotel and had <a href="http://en.wikipedia.org/wiki/Moussaka">Moussaka</a>, Jacques kept me awake with a crazy romantic plan to cure me of Naulene.</li>
<li>Saturday, had a Red Bull for breakfast.. needed the B vitamins, took the bike to Ornos beach, Mykonos old harbour, had some Swordfish fillet at a small shoreline cafe, took the orange lawnmower over the island to Super Paradise Beach.. which turned out to be a (half) nudist beach, got some rays, crazy sundowner beach party, Cob and garlic mash for supper, figured it was a bad idea to go to <a href="http://www.spacedance.gr/">Space Dance</a>, g&amp;t’s and some photo processing.</li>
<li>Sunday, greek yoghurt with honey, Paradise Beach, a Scuba dive at Paradise Point with an Afrikaans dive instructor from Somerset West, got some rays, Paradise beach party at <a href="http://www.tropicanamykonos.com/">Tropicana</a>, Jacques convinced some people he was from Texas and I was from California, saw the hottest woman I’ve ever seen (true story), headed back to our local restaurant for supper, g&amp;t’s at the hotel.</li>
<li>Seems Jacques is pretty screwed without a passport. He’s taking a longer than planned holiday.</li>
<li>My current travelling setup is pretty efficient. I guess I could go without the laptop and the heavy camera, but at least this way I can process my photos while travelling and not end up with a backlog when I get home.</li>
<li>The SA dive instructor figures it’s a good idea to hit Thailand (<a href="http://en.wikipedia.org/wiki/Phi_Phi">Phi Phi</a> islands) in January.</li>
<li>
<blockquote>“Trust me, it’s paradise. This is where the hungry come to feed. For mine is a generation that circles the globe and searches for something we haven’t tried before. So never refuse an invitation, never resist the unfamiliar, never fail to be polite and never outstay the welcome. Just keep your mind open and suck in the experience. And if it hurts, you know what? It’s probably worth it.” — Richard, The Beach.. goodbye Mykonos<p/></blockquote>
</li>
<li>Next: I’m in London for a week, entertaining Mia.</li>
</ul>
<p>Have a fun week, crazy kids.</p></div>
    </content>
    <updated>2010-09-06T16:55:12Z</updated>
    <published>2010-09-06T16:55:12Z</published>
    <category scheme="http://www.swimgeek.com/blog" term="Rants"/>
    <author>
      <name>joe</name>
      <uri>http://www.swimgeek.com/</uri>
    </author>
    <source>
      <id>http://www.swimgeek.com/blog/feed/atom/</id>
      <link href="http://www.swimgeek.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.swimgeek.com/blog/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Ideas are bulletproof..</subtitle>
      <title xml:lang="en">SwimGeek</title>
      <updated>2010-09-06T16:55:12Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>urn:md5:2a8d1be965ae2ccac56299c2db3b09c1</id>
    <link href="http://blog.wizzy.com/post/Evesdropping-today-s-smartphones" rel="alternate" type="text/html"/>
    <title xml:lang="en">Andy Rabagliati (wizzy): Eavesdropping today's smartphones</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>There have been a number of countries, like <a href="http://www.schneier.com/blog/archives/2010/08/uae_to_ban_blac.html" hreflang="en">UAE</a> and <a href="http://www.schneier.com/blog/archives/2008/05/blackberry_givi_1.html" hreflang="en">India</a> that have demanded access to encrypted communications
of Research-In-Motion's (RIM) BlackBerry smartphones. These efforts are
misguided, and unfairly target RIM's business.</p>    <h2>Public key encryption</h2>
<p>We need a quick primer on today's encryption. We pick the standard scenario
where Alice wants to talk to Bob, and Charlie is trying to listen in.</p>
<p>In the old days Alice had to get a 'secret' to Bob before they can chatter.
This was vulnerable because there was always the possibility that Charlie could
intercept that initial exchange.</p>
<p>Nowadays, <a href="http://en.wikipedia.org/wiki/Public-key_cryptography" hreflang="en">public key encryption</a> makes that unnecessary. Bob can publish
a (large) number, in his newspaper, or on his business card. This Bob's public
key. If Alice uses some well-known, open-source software like <a href="http://en.wikipedia.org/wiki/GNU_Privacy_Guard" hreflang="en">GPG</a> that
even Charlie has, Alice can send a message to Bob that only Bob (with a second,
private large number key) can decrypt.</p>
<p>Let us be clear. The code that does the encryption and decryption is open,
available for inspection by Charlie, who may spend years with scientists and
huge computers and will still never break the code. The secret to decoding the
message is Bob's private key, which he has never given to anyone.</p>
<h2>Duality of the key pair</h2>
<p>The two keys, Bob's Private and Public key, are a dual - what is done by one
can only be undone by the other. There are infinitely many of these key pairs,
and when you need them they can be generated. The bigger these numbers are, the
harder it is to decrypt. The numbers can be made up to any size.</p>
<p>They can be used for signatures too - Bob can create an email, and sign it -
attach a (very big) number to that email created with his private key. Anyone,
like Alice or Charlie, can verify that only someone with access to Bob's
private key could have 'guessed' the number Bob put at the bottom of the Email
- proving that Bob wrote it.</p>
<h2>Secure communication protocols</h2>
<p>Public key encryption is at the cornerstone of SSL - the secure wrapper to a
number of protocols - https:// that is used to access your banking website,
ssmtp for email submission, and imaps for email retrieval to name a few. It is
a very well studied mathematical science - we have a pretty good idea what
America's National Security Agency is able to do concerning cracking these
protocols.</p>
<h2>Blackberry phones</h2>
<p>Research-In-Motion have two types of customers - corporate, and casual
smartphone buyers that like the BlackBerry phone. For corporate customers, they
install the BlackBerry Enterprise Server (BES) - a computer at their premises
that interfaces to their corporate mail server and securely delivers the mail
to the smartphone.</p>
<p>This traffic is encrypted at the BES (Alice), send over RIM's network and
the public phone network (Charlie) and decrypted on Bob's smartphone - using
the private key that has never left the innards of his phone. RIM corporate
clients know this, and that is why they buy RIMs devices.</p>
<h2>Snooping traffic</h2>
<p>The only way the message could be read by Charlie is if he installed
snooping software on either the BES or the phone itself. UAE tried to install
at the phone, but <a href="http://news.bbc.co.uk/2/hi/technology/8161190.stm" hreflang="en">they were outed</a>. RIM go into exhaustive detail on the steps
used to generate and exchange the keys. If this process is followed nobody
except that corporation can read those messages. Especially not Charlie, RIM
themselves, or the UAE or Indian government.</p>
<p>With proper attention to detail, SSL protocols like SSMTP and IMAPS can be
made just as secure, with no possibilities of eavesdropping. RIM has just come
under the spotlight because its business model is based on this security. My
Nokia E71 can access my mailserver, and the traffic between the two is secured
as tightly as RIM's service. What is different is that key management on my
phone is too sloppy. A Corporate Nokia customer could request more
strictness.</p>
<h2>BlackBerry Internet Service</h2>
<p>The BlackBerry Internet Service is the service non-corporate individuals get
if they just buy a BlackBerry at the corner store. Depending where that server
is located, and who has access to it, will entirely determine the security of
the service. If Charlie controls this server, then naturally Alice and Bob can
expect no privacy.</p>
<p>If the UAE or India lean too hard on RIM, hard enough to either control the
key generation process so private keys are revealed, or the numbers
representing the keys are small enough to be broken by a large computer, or if
either the BES or smartphone have spyware installed, there will no longer be
any reason for corporates to buy their service, and RIM will go out of business
in those markets.</p>
<p>Security-conscious Blackberry buyers will instead buy another smartphone,
most of which (with attention to detail) can be made just as secure to
eavesdroppers. The government will have gained very little in snooping on
someone determined to keep their privacy.</p>
<h2>Android</h2>
<p>Furthermore, the new Google smartphone OS, Android, is open-source. Soon
individuals or companies will be able to install their own version of the same
encryption software RIM uses and neither their network provider, cellphone
provider or government will be able to do anything about it.</p>
<h2>Conclusions</h2>
<p>Perhaps India and the UAE are just going after the conveniently-packaged
security-in-a-box that the casual smartphone user has been able to buy in the
BlackBerry brand - and they want to at least deny that to their perceived
enemies. But it is a limited solution, will not stand the test of time, and
unfairly targets one company - RIM.</p>
<p>As a user, don't stand for this bullying by the governments. Take your
privacy and security seriously. Hold companies like Yahoo and Google and
Facebook and Twitter accountable for your privacy using their services, or use
them understanding that it might be, and probably is, routinely snooped.</p></div>
    </content>
    <updated>2010-09-02T20:33:00Z</updated>
    <category term="Computers"/>
    <category term="blackberry"/>
    <category term="cellphone"/>
    <category term="crackberry"/>
    <category term="eavesdropping"/>
    <category term="India"/>
    <category term="internet"/>
    <category term="research in motion"/>
    <category term="SSL"/>
    <category term="UAE"/>
    <author>
      <name>Andy</name>
    </author>
    <source>
      <id>urn:md5:7502</id>
      <author>
        <name>Andy Rabagliati</name>
      </author>
      <link href="http://blog.wizzy.com/feed/atom" rel="self" type="application/atom+xml"/>
      <link href="http://blog.wizzy.com/" rel="alternate" type="text/html"/>
      <title xml:lang="en">Wizzy Africa</title>
      <updated>2010-09-06T18:38:54Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://localloop.co.za/?p=526</id>
    <link href="http://localloop.co.za/2010/08/the-smart-phone-i-would-want/" rel="alternate" type="text/html"/>
    <link href="http://localloop.co.za/2010/08/the-smart-phone-i-would-want/#comments" rel="replies" type="text/html"/>
    <link href="http://localloop.co.za/2010/08/the-smart-phone-i-would-want/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Simeon Miteff (simeon): The smart phone I would want</title>
    <summary xml:lang="en">Until I can use the same software I use on my two computers, on a mobile phone, I don’t consider the “smart phone” to be a general purpose computing device. Paul Graham has a similar metric, he wants the device to be capable of hosting it’s own development environment. Graham, among many others, has done [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Until I can use the same software I use on my two computers, on a mobile phone, I don’t consider the “smart phone” to be a general purpose computing device. Paul Graham has a <a href="http://www.paulgraham.com/apple.html">similar metric</a>, he wants the device to be capable of hosting it’s own development environment.</p>
<p>Graham, among many others, has done a good job of describing how Apple has crippled the iPhone in this regard by locking down the platform and imposing a broken app store model to “publish” software that runs on it. Instead of re-hashing the ecosystem issues surrounding mobile phone platforms, I have a technical wish list:</p>
<ol>
<li>Hardware and software feature parity with best smart phones out there:
<ul>
<li>Quality touch interface, high resolution display, good battery life, all the right radio hardware (GPS, GSM, Wifi, UMTS), sufficient storage and CPU power</li>
<li>Software to support standard phone use-cases out of the box: turn-by-turn navigation, tethering, web browsing, full multimedia support, camera functions, etc.</li>
</ul>
</li>
<li>The same Open Source UNIX-like operating system I use on other platforms: this happens to be Linux</li>
<li>A familiar, quality package system like Debian’s.</li>
<li>The ability to cross-compile and run any application I could use on my PC (this implies X11 support).
</li><li>Support for standard peripherals (USB host/otg).
</li>
</ol>
<p>Neither the iPhone, nor any Android-based phone meet these criteria.</p>
<p>The Nokia N900 comes <em>very</em> close, but it’s still missing software support for some standard smart phone use cases. Although I’m a bit disappointed about the Maemo -&gt; Meego move throwing dpkg out in favor of RPM, I still have hope for the Nokia, and I’m interested to see them finish the software (Hi Edwin).</p>
<p>Finally, I want hardware support for an external display. That might sound weird, but if a phone is really a general purpose portable computing device, then you should be able to “dock” it at your desk, like one does a laptop. Maybe I don’t “get” smart phones, but I prefer the view that the world is wrong.</p>
<p>Anyone with me on this? I would appreciate some comments.</p>
<p><strong>Update:</strong> The Nokia N9 prototype running Meego seems promising. I guess we’ll see when it’s launched.</p></div>
    </content>
    <updated>2010-09-01T13:02:48Z</updated>
    <published>2010-08-13T11:58:49Z</published>
    <category scheme="http://localloop.co.za" term="Technical"/>
    <category scheme="http://localloop.co.za" term="android"/>
    <category scheme="http://localloop.co.za" term="iphone"/>
    <category scheme="http://localloop.co.za" term="maemo"/>
    <category scheme="http://localloop.co.za" term="meego"/>
    <category scheme="http://localloop.co.za" term="n900"/>
    <category scheme="http://localloop.co.za" term="nokia"/>
    <category scheme="http://localloop.co.za" term="smart phone"/>
    <author>
      <name>Simeon Miteff</name>
      <uri>http://www.localloop.co.za</uri>
    </author>
    <source>
      <id>http://localloop.co.za/feed/atom/</id>
      <link href="http://localloop.co.za" rel="alternate" type="text/html"/>
      <link href="http://localloop.co.za/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Internet and Networking in South Africa</subtitle>
      <title xml:lang="en">Local Loop</title>
      <updated>2010-09-01T13:02:48Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://localloop.co.za/?p=554</id>
    <link href="http://localloop.co.za/2010/09/localloop-co-za-now-locally-hosted/" rel="alternate" type="text/html"/>
    <link href="http://localloop.co.za/2010/09/localloop-co-za-now-locally-hosted/#comments" rel="replies" type="text/html"/>
    <link href="http://localloop.co.za/2010/09/localloop-co-za-now-locally-hosted/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Simeon Miteff (simeon): Localloop.co.za now locally hosted</title>
    <summary xml:lang="en">One of the weird ironies about this blog has been that although it is focused on networking in South Africa, the web server hosting it for the last ~two years was a Linode.com virtual machine in New Jersey, USA. The server’s IPv6 connectivity was via tunnel to HE.net in New York. Now, thanks to the [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>One of the weird ironies about this blog has been that although it is focused on networking in South Africa, the web server hosting it for the last ~two years was a <a href="http://www.linode.com">Linode.com</a> virtual machine in New Jersey, USA. The server’s IPv6 connectivity was via tunnel to HE.net in New York.</p>
<p>Now, thanks to the generosity of my friends at <a href="http://www.ipinx.net">IPINX</a>, this blog is hosted in Midrand, Gauteng and it has native IPv6. I would guess this is probably one of the few web servers in South Africa with native v6 outside of AS2018.</p>
<p>I took the opportunity to upgrade to the latest WordPress. If you spot anything thats broken, please let me know.</p></div>
    </content>
    <updated>2010-09-01T12:59:02Z</updated>
    <published>2010-09-01T12:20:54Z</published>
    <category scheme="http://localloop.co.za" term="General"/>
    <category scheme="http://localloop.co.za" term="hosting"/>
    <category scheme="http://localloop.co.za" term="IPINX"/>
    <category scheme="http://localloop.co.za" term="IPv6"/>
    <category scheme="http://localloop.co.za" term="Wordpress"/>
    <author>
      <name>Simeon Miteff</name>
      <uri>http://www.localloop.co.za</uri>
    </author>
    <source>
      <id>http://localloop.co.za/feed/atom/</id>
      <link href="http://localloop.co.za" rel="alternate" type="text/html"/>
      <link href="http://localloop.co.za/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Internet and Networking in South Africa</subtitle>
      <title xml:lang="en">Local Loop</title>
      <updated>2010-09-01T13:02:48Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.swimgeek.com/blog/?p=2427</id>
    <link href="http://www.swimgeek.com/blog/2010/08/30/quick-update-121/" rel="alternate" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2010/08/30/quick-update-121/#comments" rel="replies" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2010/08/30/quick-update-121/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Johann Botha (joe): Quick Update</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">I’m writing this one from Athens.. ~30 hours in the air this week. Monday, backups, camera battery charging, gym, swim, lunch at Balduci’s with Jonathan and hardware crypto vendors, bought a UPS and installed it for my workstation, last minute … <a href="http://www.swimgeek.com/blog/2010/08/30/quick-update-121/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’m writing this one from Athens..</p>
<ul>
<li>~30 hours in the air this week.</li>
<li>Monday, backups, camera battery charging, gym, swim, lunch at Balduci’s with Jonathan and hardware crypto vendors, bought a UPS and installed it for my workstation, last minute packing, packed Mia’s bee suitcase, Georg gave Mia and I a lift to the airport, flew to London with BA, Club World seats are pretty awesome, had a Kir Royale while listening to Blonde on Blonde, read a book about Greece, watched Sherlock Holmes.. not bad, Mia watched How to train your dragon again and slept for a good 7 hours.</li>
<li>11 hour flight, 1 hour backwards. Must say the Boeing 747-400 is like a flying fortress, smoothest take-off ever.</li>
<li>Alexander the Great died when he was 33. Impressive.</li>
<li>Tuesday, we woke up to land at Heathrow, tea, took a bus to Stansted airport to drop Mia off with Naulene, train to London CBD, met Jacques for a sushi lunch, work, London curry and some Johnnie Black.</li>
<li>Wednesday, woke up at Jacques house, flew from Heathrow to Boston Logan with American Airlines (not something I’ll easily do again), sat next to a Alvaro, who is from Guatemala.. doing a PhD related to the flexible electronics market at MIT, bus and train ride to Cambridge, nice place, found a guest house, took a walk down Mass. Ave.</li>
<li>7 hour flight, 6 hours backwards.</li>
<li>Mia went to Cambridge for a week, then Germany for a week. So both Joe and Mia were in Cambridge, just not the same Cambridge. I phoned her, she seemed happy.</li>
<li>Thursday,<a href="http://www.trustfabric.org/2010/08/27/vrmcrm-2010/">VRM+CRM 2010</a> day1 at Harvard Law School, dinner at a seafood restaurant with the conference people, when we finished dinner it was 3:30 SA time.. tired.</li>
<li>Cambridge is a bit like Stellenbosch, only there is free wifi pretty much anywhere and everybody has an iPhone4.</li>
<li>Friday, VRM+CRM 2010 day2, a sunset walk.</li>
<li>US food: Naked Smoothies and the salads at Harvard were great. I tried a Dunkin’ Doughnut (half), had a Big Mac, had (most of) a Hershey  bar, wanted to try Wendy’s but did not get around to it.</li>
<li>I figure people like order. Deterministic outcome. After a week of creating order it’s time to go experience some unknowns. A ten day mini-break in Greece. Time to go visit the birth place of democracy.</li>
<li>A thought about visa applications from countries who are very strict about their visas: I wonder what percentage of their own citizens would make it through their visa process if they were not born there.</li>
<li>Alvaro made an interesting comment about not really knowing where home is.. South America, UK, US? I think you don’t feel at home anymore if you leave a place for more than 5 years. Alvaro also commented that the most popular technologies are usually not the best technologies.</li>
<li>Saturday, blogged about VRM things, a tourist/photography day, took the train to MIT, found the MIT Media Lab, had McDonalds for lunch.. seemed like an experience you need to have at least once in the US.. they did not ask me if I wanted to supersize my meal, train/bus to Logan airport, flew to Heathrow with BA, watched She’s out of my league.. pretty good.</li>
<li>7 hour flight, 6 hours forward.</li>
<li>Sunday, flew from Heathrow to Athens, train ride to the centre of Athens, found a hotel, nap, took my camera and explored on foot, had a salad and a beer at a cafe in the Gazi area.. nice vibe, meandered along some side streets and walked past the <a href="http://en.wikipedia.org/wiki/Acropolis">Acropolis</a>.</li>
<li>5 hour flight, 2 hours forward.</li>
<li>I have 4 different currencies in my wallet. Finding the right coin is silly.</li>
<li>Travel tip: don’t wear a belt or shoes, just easier for airport security.</li>
<li>I think my body clock must be a bit confused, but at least I’m not feeling jet-lagged.</li>
<li>Tune of the week: Why Don’t You Get A Job? – Offspring, reminds me of somebody I know (-;</li>
</ul>
<p>Have a fun week, crazy kids.</p></div>
    </content>
    <updated>2010-08-30T11:00:52Z</updated>
    <published>2010-08-30T09:13:46Z</published>
    <category scheme="http://www.swimgeek.com/blog" term="Rants"/>
    <author>
      <name>joe</name>
      <uri>http://www.swimgeek.com/</uri>
    </author>
    <source>
      <id>http://www.swimgeek.com/blog/feed/atom/</id>
      <link href="http://www.swimgeek.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.swimgeek.com/blog/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Ideas are bulletproof..</subtitle>
      <title xml:lang="en">SwimGeek</title>
      <updated>2010-09-06T16:55:12Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.swimgeek.com/blog/?p=2421</id>
    <link href="http://www.swimgeek.com/blog/2010/08/24/compass-and-a-willing-accomplice/" rel="alternate" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2010/08/24/compass-and-a-willing-accomplice/#comments" rel="replies" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2010/08/24/compass-and-a-willing-accomplice/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Johann Botha (joe): Compass and a willing accomplice</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">Time for a bit of adventure again, kids. I need some new travel photos. Mia and I flew to London yesterday. She’s spending two weeks with her mother.. who still hates my guts. I’m off to Boston tomorrow for VRM+CRM … <a href="http://www.swimgeek.com/blog/2010/08/24/compass-and-a-willing-accomplice/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Time for a bit of adventure again, kids. I need some new travel photos.</p>
<p>Mia and I flew to London yesterday. She’s spending two weeks with her mother.. who still hates my guts.</p>
<p>I’m off to Boston tomorrow for <a href="http://cyber.law.harvard.edu/projectvrm/VRM_CRM_2010">VRM+CRM 2010</a>.</p>
<p>Then Jacques and I are off to France/Nice for a few days and then Greece. Keen to find some good free diving spots on the islands. I’m not very good at planning these things, but it’s fun jumping on a plane and reading the travel guide on the way.</p>
<p>Then back to London for a few days.</p>
<blockquote><p>“Walk tall, kick ass, love music and never forget that you come from a long line of truth seekers, lovers and warriors.” – Dr. HST.. a quote to inspire some adventure</p></blockquote>
<p>Rock ‘n Roll.</p></div>
    </content>
    <updated>2010-08-24T15:44:38Z</updated>
    <published>2010-08-24T15:42:06Z</published>
    <category scheme="http://www.swimgeek.com/blog" term="Rants"/>
    <author>
      <name>joe</name>
      <uri>http://www.swimgeek.com/</uri>
    </author>
    <source>
      <id>http://www.swimgeek.com/blog/feed/atom/</id>
      <link href="http://www.swimgeek.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.swimgeek.com/blog/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Ideas are bulletproof..</subtitle>
      <title xml:lang="en">SwimGeek</title>
      <updated>2010-09-06T16:55:12Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>urn:md5:cba54e836038310ec823aed8212aa70b</id>
    <link href="http://blog.wizzy.com/post/wikileaks-and-the-twitterverse" rel="alternate" type="text/html"/>
    <title xml:lang="en">Andy Rabagliati (wizzy): wikileaks and the twitterverse</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Last month <a href="http://www.theage.com.au/technology/technology-news/the-story-behind-the-afghan-warlogs-leak-20100726-10s02.html">
wikileaks published a large tranche of Afghan war documents</a>, that the
Pentagon doesn't like. Actually, they <strong>want it all back</strong>, if
such a thing is possible in the download age.</p>    <h2>Crowd-sourcing</h2>
<p>This is the new 'enemy' - the indiscriminate information age. Even during
the case, <a href="http://twitter.com/wikileaks">wikileaks</a> gave its
followers - 120 thousand and growing - a sharply-focused <em>feed</em> into
this continually-evolving situation. <a href="http://en.wikipedia.org/wiki/Afghan_War_Diary">Wikipedia</a> is there to
helpfully keep the permanent record, written by the crowds, not by chosen
editors. We choose our own news these days - I don't read what just one editor
says.</p>
<h2>Kenya Election</h2>
<p>I believe in free information - I host on my ftp server "<a href="http://blog.wizzy.com/post/2007-Kenya-Election">statements of domestic election observers</a> the
night before the announcement of the results" in case that information were
lost. I get about 100 downloads a month.</p>
<h2>Iran</h2>
<p>Authoritarian governments everywhere - most recently demonstrated <a href="http://www.time.com/time/world/article/0,8599,1905125,00.html">in Iran</a>,
fear this uncontrollable melange of information - created by twitter and short
urls. It is funny to see government trying to swat the fly.</p>
<h2>South Africa</h2>
<p>There is a <a href="http://www.csmonitor.com/World/Africa/Africa-Monitor/2010/0819/South-Africa-s-media-tribunal-US-ambassador-weighs-in-on-press-freedom">
proposed Media Tribunal</a> in South Africa - with the government's motive
questioned. All governments have to acknowledge that it is impossible now to
control the information - perhaps they think that if they have the TV, radio
and newspapers covered they have dealt with the majority of the ANC electorate.
I will miss the straight-talking <a href="http://www.nytimes.com/2010/07/23/world/africa/23tutu.html">Desmond Tutu</a>
in the South African media.</p>
<h2>Europe</h2>
<p><a href="http://en.wikipedia.org/wiki/Julian_Assange">Julian Assange</a> is
the founder of wikileaks, reportedly permanently on the move like the <a href="http://en.wikipedia.org/wiki/Cathar_Perfect#Persecution">Cathar Perfecti</a>.
He was <a href="http://www.guardian.co.uk/media/2010/aug/21/julian-assange-wikileaks-arrest-warrant-sweden">
bizarrely accused</a> of rape and molestation in Sweden, and equally hastily
withdrawn. Even the legal system cannot keep up with this instant feedback
loop.</p>
<h2>America</h2>
<p>America is the land of the free. It is the homesteaders, the hackers, the
start of the open source movement and the tools that built Linux and the
software I use every day.</p>
<h3>Democracy</h3>
<p>America is also proud of its democratic heritage and sees nothing wrong with
exporting informed choice for the electorate <a href="http://blog.wizzy.com/post/Zimbabwe-2008-election">onto countries</a> whose government would prefer
the old days.</p>
<p>It has been hard to see the hacker culture that made a lot of what is good
today in a struggle with its own government. Omnipresent cameras mean that
<a href="http://en.wikipedia.org/wiki/The_Man">The Man</a> already has powerful
tools. But the strength of the American system is they <strong>will</strong>
resolve it, if necessary by counting heads.</p>
<h3>More Afghan War Documents</h3>
<p>Wikileaks has published in association with the War Diarys above, a <a href="http://cryptome.org/0002/wl-diary-mirror.htm">huge, unknown, encrypted
file</a>. Possibly more war documents ? A few hundred pages of /dev/random ?
All it needs is a password to unlock it. Yes, I already tried "Assange" and all
the dog names I could think of.</p></div>
    </content>
    <updated>2010-08-22T15:59:00Z</updated>
    <category term="Politics"/>
    <category term="2007 Kenya presidential elections"/>
    <category term="Afghan war diary"/>
    <category term="ANC"/>
    <category term="Assange"/>
    <category term="Kenya"/>
    <category term="Mwai Kibaki"/>
    <category term="wikileaks"/>
    <category term="Zimbabwe"/>
    <category term="Zuma"/>
    <author>
      <name>Andy</name>
    </author>
    <source>
      <id>urn:md5:7502</id>
      <author>
        <name>Andy Rabagliati</name>
      </author>
      <link href="http://blog.wizzy.com/feed/atom" rel="self" type="application/atom+xml"/>
      <link href="http://blog.wizzy.com/" rel="alternate" type="text/html"/>
      <title xml:lang="en">Wizzy Africa</title>
      <updated>2010-09-06T18:38:54Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.arbitraryuser.com/blog/?p=742</id>
    <link href="http://www.arbitraryuser.com/blog/2010/08/20/who-invented-the-lightbulb/" rel="alternate" type="text/html"/>
    <link href="http://www.arbitraryuser.com/blog/2010/08/20/who-invented-the-lightbulb/#comments" rel="replies" type="text/html"/>
    <link href="http://www.arbitraryuser.com/blog/2010/08/20/who-invented-the-lightbulb/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Endersby (nlt): Who invented the lightbulb?</title>
    <summary xml:lang="en">Lets get one thing straight. Thomas Alva Edison did not invent the lightbulb. This story requires context: In 600AD the greek writer Thales of Miletus started writing about Electricity. Mostly this was all about rubbing Amber together and noticing static charge In 1760 French physicist Charles-Augustin Coulomb starts actually making sense of electricity. In 1779 [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Lets get one thing straight. Thomas Alva Edison did not invent the lightbulb.</p>
<p>This story requires context:</p>
<div style="padding-left: 30px; padding-right: 100px;">
<ul>
<li>In <strong>600AD</strong> the greek writer Thales of Miletus started writing about Electricity. Mostly this was all about rubbing Amber together and noticing static charge</li>
<li>In 1760 French physicist Charles-Augustin Coulomb starts actually making sense of electricity.</li>
<li>In 1779 Alessandro Volta builds the first true battery.</li>
<li>In the late 1700s and early 1800s every scientist, tinkerer and hacker is playing with electricity.</li>
<li>30 years later, in <strong>1809, Humphry Davy builds the first true electric lamp</strong>. This is 38 years before Edison is even born.</li>
<li>50 years later, in 1860, Sir Joseph Wilson Swan builds an electric light bulb and starts tinkering with carbon-filament incandescent electric bulbs (The same stuff Edison eventually used).</li>
<li>Ten years later in 1877, the American <strong>Charles Francis Brush manufactured carbon arcs and was lighting public parks and office blocks</strong>.</li>
<li>In 1879, three years after Brush already had electric light in office blocks, <strong>Thomas Alva Edison discovers that a carbon filament in an oxygen-free bulb was able to stay glowing for up to 40 hours</strong>.</li>
<li>Two years later some dude named Lewis Howard Latimer makes a better filament.</li>
<li>20 years later another guy called Willis R. Whitney invents a process to stop the globe getting dimmer as it got older</li>
<li>Seven years later, in 1910, a guy called <strong>William David Coolidge invents a tungsten filament that lasts a lot longer</strong> than the carbon ones.</li>
</ul>
</div>
<div class="wp-caption alignleft" id="attachment_743" style="width: 230px;"><img alt="" class="size-full wp-image-743" height="260" src="http://www.arbitraryuser.com/blog/wp-content/uploads/2010/08/220px-Thomas_Edison_1878.jpg" title="Thomas Alva Edison" width="220"/><p class="wp-caption-text">Thomas Alva Edison - Douchebag Extraordinaire</p></div>
<p>So all that Edison ever “invented” was that a vacuum increased the lifespan of the filament.</p>
<p>So, the next obvious question is, why does everyone think that Edison invented the light bulb? The answer to that question is an interesting one because it has more to do with propaganda than it does to do with invention.</p>
<p>A lightbulb is useless without electricity, Edison knew that… and like many clever businessman Edison knew that real inventors are generally very bad at making money out of their inventions because they’re always too busy working on version 2.</p>
<p>Edison realised that the only way to make real money was to get electricity into people’s houses so that you could sell them lightbulbs, and electricity… This was brilliant because it’s the “Give away the razor, sell the razorblades” plan except both lightbulbs and electricity are consumables… so its more like “Give away the connection and sell the lightbulbs and the electricity”. Edison also wasn’t the first person to figure this out, he was just really really good at marketing… Or really really bad at marketing, depending on how you feel about Elephants.</p>
<div class="wp-caption alignright" id="attachment_745" style="width: 245px;"><img alt="" class="size-full wp-image-745 " height="249" src="http://www.arbitraryuser.com/blog/wp-content/uploads/2010/08/topsyelephant1.jpg" title="Topsy the Elephant" width="235"/><p class="wp-caption-text">Topsy the Elephant</p></div>
<p>Another person who realised that Electricity was going to make a lot of money was a rich businessman called Westinghouse. Westinghouse had become friends with an eccentric Yugoslav scientist called Nikola Tesla who had been experimenting with electricity his whole life. When Tesla wasn’t busy building Tesla Coils or trying to harness the power of lightning (or trying to harness energy from outer space, I shit you not) he worked with Westinghouse to build electricity generators and plan electricity distribution systems. Tesla knew more about electricity than pretty much anyone else alive at that point and early on had realised that Alternating Current (AC) was far better at distributing electricity than Direct Current (DC). So Westinghouse and Tesla started generating and distributing power to the rich and famous.</p>
<p>Edison didn’t like this. Not only were Tesla and Westinghouse competitors, but they were also proposing a different, better, system (AC) that Edison knew would eventually win the battle. Edison had managed to market himself as the father of electricity — a magician and folk hero —  and he was getting incredibly rich.</p>
<div class="wp-caption alignleft" id="attachment_744" style="width: 235px;"><img alt="" class="size-full wp-image-744" height="294" src="http://www.arbitraryuser.com/blog/wp-content/uploads/2010/08/225px-N.Tesla_.jpg" title="Nikola Tesla" width="225"/><p class="wp-caption-text">Nikola Tesla - True Genius</p></div>
<p>So Edison did what any self respecting douche-bag marketer would do… he started publicly torturing animals… and filming it.  Thomas Alva Edison, the “inventor of the lightbulb” went out into the streets and publicly electrocuted, to death, animals in a bid to show the public that Alternating Current was far too dangerous to be in their homes. And yes, in case you’re wondering, that reference to elephants earlier is because Edison even electrocuted, to death, an adult elephant.</p>
<p>Of course AC isn’t really any more dangerous than DC and Edison knew that… While there are some issues with AC’s 50-60 Hertz frequency being closer to that of your heart, both AC and DC are equally able to kill elephants and small children.</p>
<p>Sadly the public was gullible and Tesla was devastated… He went from being an eccentric socialite magician to being that guy who wants to murder small children and animals. Westinghouse had thicker skin and managed to keep his chin up, but Tesla became a recluse and started working in isolation on increasingly crazier ideas like harnessing power from the stratosphere. Tesla believed that it would be possible to get this power so cheaply that it would become free. Whether Tesla was onto something or whether his eccentric genius mind had finally snapped will never be known… In 1943 he died, alone, drowning in debt, in a hotel room.</p>
<p>Thomas Edison was no doubt a very clever man, but he was also ethically a disgusting person who thought nothing of destroying others to elevate his own fame. </p></div>
    </content>
    <updated>2010-08-20T09:46:37Z</updated>
    <published>2010-08-20T08:39:40Z</published>
    <category scheme="http://www.arbitraryuser.com/blog" term="Aggregate This"/>
    <category scheme="http://www.arbitraryuser.com/blog" term="Philosophy"/>
    <category scheme="http://www.arbitraryuser.com/blog" term="hacking"/>
    <author>
      <name>arbitraryuser</name>
      <uri>http://www.arbitraryuser.com/blog/wp-atom.php</uri>
    </author>
    <source>
      <id>http://www.arbitraryuser.com/blog/feed/atom/</id>
      <link href="http://www.arbitraryuser.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.arbitraryuser.com/blog/category/aggregate-this/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Jonathan Endersby, Recovering Technologist</subtitle>
      <title xml:lang="en">arbitrary user » Aggregate This</title>
      <updated>2010-08-20T09:46:37Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-4747365620312494918.post-7071617067807255049</id>
    <link href="http://teepog.blogspot.com/feeds/7071617067807255049/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://teepog.blogspot.com/2010/08/blue-sky-bird-pic.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/4747365620312494918/posts/default/7071617067807255049?v=2" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/4747365620312494918/posts/default/7071617067807255049?v=2" rel="self" type="application/atom+xml"/>
    <link href="http://feedproxy.google.com/~r/teepog/firstdraft/~3/B989N0N3uLk/blue-sky-bird-pic.html" rel="alternate" type="text/html"/>
    <title>Arno Breedt (Macavity): Blue-sky bird (pic)</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">While attempting to photograph a random empty piece of azure sky, I happened to catch this bird in flight. This makes for a wonderful desktop background -- I like to use my desktop's Invert function, and this fits right in: when inverted, the blue bitflips to a weird-but-soothing-on-tired-eyes yellowish colour. Click the thumbnail to see full size. (1600x1200, taken with a Nokia 5230 phone.)<br/>
<br/>
<br/>
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_Hly48WS8WJE/TG2hsGlcf_I/AAAAAAAAAG0/chhIfm2lOAU/s1600/Birdsky.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://4.bp.blogspot.com/_Hly48WS8WJE/TG2hsGlcf_I/AAAAAAAAAG0/chhIfm2lOAU/s400/Birdsky.jpg" width="400"/></a></div><br/>
<br/>
<span style="font-size: x-small;">This photo is free for personal use and open source projects :)</span><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/4747365620312494918-7071617067807255049?l=teepog.blogspot.com" width="1"/></div><img height="1" src="http://feeds.feedburner.com/~r/teepog/firstdraft/~4/B989N0N3uLk" width="1"/></div>
    </content>
    <updated>2010-08-19T21:39:24Z</updated>
    <published>2010-08-19T21:38:00Z</published><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://teepog.blogspot.com/2010/08/blue-sky-bird-pic.html</feedburner:origLink>
    <author>
      <name>TeePOG's blOG</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/12479619100502897821</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-4747365620312494918</id>
      <author>
        <name>TeePOG's blOG</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/12479619100502897821</uri>
      </author>
      <link href="http://teepog.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://teepog.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://www.blogger.com/feeds/4747365620312494918/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" rel="next" type="application/atom+xml"/>
      <link href="http://feeds.feedburner.com/teepog/firstdraft" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>My (mostly) unfiltered thoughts. May include Linux, levity, rhyme, reason, cats, cooking, and other alliteratively unrelated topics.</subtitle>
      <title>First Draft</title>
      <updated>2010-08-30T08:14:21Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.frith.co.za/?p=95</id>
    <link href="http://blog.frith.co.za/2010/08/18/santa-barbara-day-zero/" rel="alternate" type="text/html"/>
    <link href="http://blog.frith.co.za/2010/08/18/santa-barbara-day-zero/#comments" rel="replies" type="text/html"/>
    <link href="http://blog.frith.co.za/2010/08/18/santa-barbara-day-zero/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Adrian Frith (htonl): Santa Barbara: day zero</title>
    <summary xml:lang="en">I’m visiting Santa Barbara, California for ten days, attending CRYPTO 2010 (the 30th International Cryptology Conference) and the Second SHA-3 Candidate Conference. This post describes my journey to Santa Barbara, and the conference reception on Sunday 15th August.
My journey from Cape Town to Santa Barbara was as comfortable as could be expected. Of course, a [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><em>I’m visiting Santa Barbara, California for ten days, attending <a href="http://www.iacr.org/conferences/crypto2010/">CRYPTO 2010</a> (the 30th International Cryptology Conference) and the <a href="http://csrc.nist.gov/groups/ST/hash/sha-3/Round2/Aug2010/index.html">Second SHA-3 Candidate Conference</a>. This post describes my journey to Santa Barbara, and the conference reception on Sunday 15th August.</em></p>
<p>My journey from Cape Town to Santa Barbara was as comfortable as could be expected. Of course, a trip that lasts thirty hours and involves three economy-class flights, transiting through Jo’burg and Frankfurt, can never be expected to be particularly comfortable. That said, all the planes were on time, and all of them were uneventful.</p>
<p>Cape Town-Joburg was the standard 2-hour SAA domestic flight; all that needs to be said about it was that the turkey wrap served for lunch was surprisingly quite edible. OR Tambo International Airport, despite all the reconstruction, was rather irritating. Firstly, if you’re coming off a domestic flight at Terminal B there’s virtually no signage to direct you to the Terminal A international departures area. Secondly, there’s hardly anywhere to sit at the boarding gates. A Boeing 747 carries 400-500 people, and an Airbus A340 slightly less than that; why, then, at our country’s flagship international airport, do the boarding gates for long-haul flights only have seats for about 50 people to wait?</p>
<p>Joburg-Frankfurt was an overnight flight, also SAA, on the Airbus A340-600. This plane had personal video screens in the back of the seats, which made for a nice distraction; however, the software that runs them is obviously rather buggy. <strong>Warning: geeky stuff begins.</strong> At one point it segfaulted, dumping to a Linux console. Evidently the software is some kind of <a href="http://www.libsdl.org/">SDL</a>-based program launched by a rather hackish batch script; that was all I could tell before it rebooted automatically. Unfortunately I couldn’t get a photo in the low-light conditions. <strong>Geeky stuff over.</strong></p>
<p>We hit quite a lot of turbulence over the Congo, and again over Switzerland, but nothing seriously scary. My attempts to sleep on the flight failed, so I resorted to watching movies to pass the time. Guy Ritchie’s recent <em>Sherlock Holmes</em> was fun but not, of course, particularly true to the original books. I also saw <em>Invictus</em>, which I will admit had me in tears a few times.</p>
<p>Frankfurt Airport, though much larger than OR Tambo, was considerably easier to navigate. Apart from an incredibly long queue for the security check, there were no hassles, and I reached the gate with three hours to wait before boarding – at least, I <em>thought</em> I had reached the gate. I was waiting to the one specified on my boarding pass, and as more and more people arrived, the vast majority of them appeared to be Indian. Now, I know there are a lot of Indians who work in IT in California, but this was getting to be little suspicious. So I checked, and yes indeed the Los Angeles flight had been moved to another gate. This is my one complaint about Frankfurt Airport: there are lots of boards listing the gate assignments before you clear security, but afterwards there is only one board in the whole wing.</p>
<p>Ironically, the passenger next to me on the flight to Los Angeles was an Indian working in IT in San Diego. This flight, although only an hour longer than the previous one, seemed absolutely interminable. I was, of course, more tired that I had been on the first flight; I also had a piercing headache for the first two hours. (Thank you, mother, for suggesting I take a bottle of Panado tablets along.)</p>
<p>Also, the flight only had overhead video screens, which showed first some incomprehensible German dance music videos, then one of the sequels to <em>Shrek</em>. After that, as is apparently inevitable with Germans, they showed episodes of <em>Mr. Bean</em>. So I spent most of the time trying to sleep, with little success: all I managed was a series of ten-minute naps.</p>
<p>Anyway, in the end the flight arrived at LAX thirty minutes early. Unlike some unpleasant stories I’d heard, clearing Customs &amp; Border Protection was quick and easy – in fact, the only question I was asked was, “what is the purpose of your visit?” My baggage arrived fairly quickly and undamaged, and ultimately I was out of the terminal by the time the plane was originally scheduled to land.</p>
<p>It was quite a relief to breathe fresh air after such a long time in an air-conditioned environment. Of course, this was Los Angeles, so the air was not <em>particularly</em> fresh. The bus to Santa Barbara, along “the 101″, took a little more than two hours; the overwhelming impression for me was the sprawl – every hillside seemed to have a house on it, every valley had malls and office buildings. The later part of the drive, along the coast from Ventura to Santa Barbara, was more pleasant and reminded me of the R44 from Gordon’s Bay to Betty’s Bay, though the road was wider and the slope not as steep.</p>
<p>We finally arrived at the conference accommodation at UCSB sometime after five in the evening; at this point I had been awake, excepting short naps on the plane, for something like 40 hours. But there was still the conference reception dinner to attend – and I’m glad I did, not only because I was rather hungry after all that traveling (and the food was very good), but also because I had the opportunity to meet many people and have some very interesting conversations. As an aside, this is something I am particularly coming to like about the crypto community: the people in it, and even its most eminent members, are friendly and willing to chat, even with mere graduate students like me. No matter how interesting the conversation, though, by eight o’clock I couldn’t keep my eyes open and I had to retire to bed.</p></div>
    </content>
    <updated>2010-08-18T00:50:00Z</updated>
    <published>2010-08-18T00:50:00Z</published>
    <category scheme="http://blog.frith.co.za" term="Personal"/>
    <category scheme="http://blog.frith.co.za" term="Travel"/>
    <category scheme="http://blog.frith.co.za" term="conference"/>
    <category scheme="http://blog.frith.co.za" term="crypto"/>
    <category scheme="http://blog.frith.co.za" term="crypto 2010"/>
    <category scheme="http://blog.frith.co.za" term="santa barbara"/>
    <author>
      <name>adrian</name>
      <uri>http://adrian.frith.co.za/</uri>
    </author>
    <source>
      <id>http://blog.frith.co.za/feed/atom/</id>
      <link href="http://blog.frith.co.za" rel="alternate" type="text/html"/>
      <link href="http://blog.frith.co.za/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Ramblings about life, university, mathematics, computing, Linux, open source, etc.</subtitle>
      <title xml:lang="en">Adrian's Thoughts</title>
      <updated>2010-08-18T00:50:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://jonathancarter.org/?p=1748</id>
    <link href="http://jonathancarter.org/2010/08/16/happy-birthday-debian-2/" rel="alternate" type="text/html"/>
    <link href="http://jonathancarter.org/2010/08/16/happy-birthday-debian-2/#comments" rel="replies" type="text/html"/>
    <link href="http://jonathancarter.org/2010/08/16/happy-birthday-debian-2/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Carter (highvoltage): Happy Birthday, Debian!</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/>Today, Debian turns 17. It’s great to see how one of the first GNU/Linux distributions out there still manages to be important and relevant. Happy birthday, Debian! This may also be a good time to say thanks to a team or package maintainer who makes it possible.</div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/><p>Today, <a href="http://en.wikipedia.org/wiki/Debian">Debian</a> turns 17. It’s great to see how one of the first GNU/Linux distributions out there still manages to be important and relevant. Happy birthday, Debian!</p>
<p>This may also be a good time to say <a href="http://thank.debian.net/">thanks to a team or package maintainer</a> who makes it possible.</p>
<p><a href="http://news.debian.net/2010/08/16/happy-birthday-debian-2/"><img alt="" class="aligncenter size-full wp-image-1749" height="392" src="http://jonathancarter.org/files/images/DebianTurns17.jpg" title="DebianTurns17" width="555"/></a></p></div>
    </content>
    <updated>2010-08-16T11:31:12Z</updated>
    <published>2010-08-16T00:51:51Z</published>
    <category scheme="http://jonathancarter.org" term="Free Software"/>
    <category scheme="http://jonathancarter.org" term="Debian"/>
    <author>
      <name>jonathan</name>
      <uri>http://www.jonathancarter.co.za</uri>
    </author>
    <source>
      <id>http://jonathancarter.org/feed/atom/</id>
      <link href="http://jonathancarter.org" rel="alternate" type="text/html"/>
      <link href="http://jonathancarter.org/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">rebel without a pause</subtitle>
      <title xml:lang="en">jonathan carter</title>
      <updated>2010-08-16T11:31:12Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://mithrandi.net/blog/?p=307</id>
    <link href="http://mithrandi.net/blog/2010/08/htc-sense-facebook-contacts-sync/" rel="alternate" type="text/html"/>
    <link href="http://mithrandi.net/blog/2010/08/htc-sense-facebook-contacts-sync/#comments" rel="replies" type="text/html"/>
    <link href="http://mithrandi.net/blog/2010/08/htc-sense-facebook-contacts-sync/feed/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Tristan Seligmann (mithrandi): HTC Sense / Facebook contacts sync</title>
    <summary xml:lang="en">Jonathan just ran into this on his new HTC Desire (updated to 2.2 “Froyo”); I haven’t confirmed it on any other handset, but I imagine the problem is common to many HTC Sense + Android handsets. Anyhow, I figured I’d put this information out there to help anyone that runs into this issue. If anyone [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://jonathan.jsphere.com/">Jonathan</a> just ran into this on his new HTC Desire (updated to 2.2 “Froyo”); I haven’t confirmed it on any other handset, but I imagine the problem is common to many HTC Sense + Android handsets. Anyhow, I figured I’d put this information out there to help anyone that runs into this issue. If anyone has a contact at HTC, please pass this along, so that they can look into a fix/workaround.</p>
<p>When “Facebook for HTC Sense” tries to connect to Facebook to retrieve contacts or profiles, the client sends <code>Expect: 100-Continue</code> in the HTTP header. Facebook’s HTTP servers do support <code>100 Continue</code>, but some proxy servers (such as squid) do not. If you have configured your phone to use a proxy server, or are behind a transparent proxy (which many ISPs do inflict on their users), and the proxy server does not support this, it will (correctly) respond with 417 Expectation failed response. At this point, HTC’s client does not attempt to retry the request without requesting 100-Continue, but instead fails with an error message. This results in an empty Facebook directory / contacts list, and an error when you attempt to refresh it.</p>
<p>If the proxy server is on your own network, simply bypassing it should solve the issue for you. If this is your ISP’s proxy server, then you’ll either need to work around it somehow, or contact HTC and/or your ISP for assistance.</p></div>
    </content>
    <updated>2010-08-15T01:52:02Z</updated>
    <published>2010-08-15T01:52:02Z</published>
    <category scheme="http://mithrandi.net/blog" term="Uncategorized"/>
    <category scheme="http://mithrandi.net/blog" term="android"/>
    <category scheme="http://mithrandi.net/blog" term="desire"/>
    <category scheme="http://mithrandi.net/blog" term="htc"/>
    <category scheme="http://mithrandi.net/blog" term="tech"/>
    <author>
      <name>mithrandi</name>
      <uri>http://mithrandi.net/</uri>
    </author>
    <source>
      <id>http://mithrandi.net/blog/feed/</id>
      <link href="http://mithrandi.net/blog" rel="alternate" type="text/html"/>
      <link href="http://mithrandi.net/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">the shards of meaning</subtitle>
      <title xml:lang="en">Shattered Crystalline Matrix</title>
      <updated>2010-08-15T01:52:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://localloop.co.za/?p=531</id>
    <link href="http://localloop.co.za/2010/08/open-access-consumer-broadband-in-south-africa/" rel="alternate" type="text/html"/>
    <link href="http://localloop.co.za/2010/08/open-access-consumer-broadband-in-south-africa/#comments" rel="replies" type="text/html"/>
    <link href="http://localloop.co.za/2010/08/open-access-consumer-broadband-in-south-africa/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Simeon Miteff (simeon): Open access consumer broadband in South Africa</title>
    <summary xml:lang="en">An open access network (OAN) is a horizontally layered business model for telecoms that has some interesting advantages. It is typically implemented by separating physical infrastructure from services. This creates a virtual market place, where end users have a choice of multiple service providers, and the service providers in turn are freed from having to [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>An open access network (OAN) is a horizontally layered business model for telecoms that has some interesting advantages. It is typically implemented by separating physical infrastructure from services. This creates a virtual market place, where end users have a choice of multiple service providers, and the service providers in turn are freed from having to invest in expensive and difficult to maintain access networks.</p>
<p>The <a href="http://en.wikipedia.org/wiki/Open_Access_Network">wikipedia article</a> describes OAN in more detail, and refers to a number of examples where this model has been implemented in broadband access networks.</p>
<p>But if the service provider doesn’t pay for the infrastructure, who does? Governments have already done this once, discovered they’re no good at it and consequently privatized the state owned telcos. These telcos are moving in the <em>opposite</em> direction of open access, instead trying to figure out ways out of the dumb-pipe trap through vertical integration, value added services, and so on.</p>
<p>An idea called <a href="http://www.newamerica.net/publications/policy/homes_tails">homes with tails</a> proposes to include the last mile as part of your property when you build or buy a house. This is smart, because it opens up a brand new (and also bandwidth/throughput/services independent) way to amortize the cost of the broadband access network.</p>
<p>Yesterday, Joe Botha <a href="http://www.swimgeek.com/blog/2010/08/11/broadband-in-joes-world/">blogged</a> about what he imagines a network architecture/billing model for broadband OAN could be. What he doesn’t mention is that this idea is not new to South Africa. This prompted me to dump my thoughts on the matter (many of which I’ve been ruminating on for some time) into this post:</p>
<p>A few years ago, Neology (who I’ve previously <a href="http://localloop.co.za/2009/07/new-kid-on-the-block-neology/">blogged</a> about) did an OAN pilot project in Hatfield for the <a href="http://en.wikipedia.org/wiki/Pretoria">Tswhane (Pretoria)</a> municipality. If I have the story straight, this was a Wifi based mesh network that had an http captive portal that let you choose between 2 or 3 different ISPs, and it <em>worked</em>. This initiative subsequently stalled (apparently due to council politics) but my point is that OAN broadband been demonstrated in the <em>local</em> context.</p>
<p>If the access network infrastructure was not owned by government, but by the end users instead, perhaps the outcome would have been different. So let’s push this idea further. The next best thing would be to avoid relying on local government for wayleaves/right of way/servitudes. This might be possible using wireless local loop, but I’m just going to ignore that option because a bunch of home owners have little chance competing against multi-billion Rand tel/cellcos for exclusive access to radio spectrum (and the ISM-band WISP approach has some drawbacks).</p>
<p>Now it only takes a short drive around your city in South Africa to notice the transformation from traditional suburban townships to gated communities/housing complexes/residential estates. Herein lies the opportunity to do exactly what I’ve described in the paragraph above. I’ve head some entrepreneurs and local ISPs (who?) have begun to wire up these estates internally and provide centralized Internet break-out. I don’t know if this is done on an open access basis, but again, my point is that this piece of the puzzle exists.</p>
<p>Finally, Dark Fiber Africa have <a href="http://www.dfafrica.co.za/open_access_dfa.php">recently begun</a> doing something similar in office parks, and as with their metro dark fiber networks, their model is open access.</p>
<p>So where to from here?</p>
<p>Vodacom, MTN and Cell C have all invested in fiber-based back-haul to their cellular base stations (ever wondered why the roads are being dug up and trenches filled with brightly coloured plastic ducts, deep in residential areas?). These base stations now represent an extensive “curb” (in the network sense), and since in many cases towers are shared by two, or all three operators, I think base stations make an ideal location for OAN broadband “meet me” points.</p>
<p>I haven’t asked, but I suspect the cellcos aren’t thinking this way (yet). If they venture into fixed line residential broadband, they will probably first attempt PON-based overbuild in affluent suburbs.</p>
<p>A final thought to leave you with is to consider the explosive growth in recent years of <a href="http://www.wug.za.net">Wireless User Groups</a>. These non-profit hobbyist metro Wifi networks are mostly used for fire-sharing and gaming (Internet access is specifically <em>not</em> provided). It shows that at least some South African consumers are willing to invest in their own telecoms infrastructure. Perhaps the way to bridge the gap between WUG and WISP is to form a fully licensed and professionally operated telecoms cooperative, like <a href="http://www.thephone.coop">this one</a>.</p></div>
    </content>
    <updated>2010-08-13T07:37:05Z</updated>
    <published>2010-08-12T21:12:15Z</published>
    <category scheme="http://localloop.co.za" term="General"/>
    <category scheme="http://localloop.co.za" term="broadband"/>
    <category scheme="http://localloop.co.za" term="Neology"/>
    <category scheme="http://localloop.co.za" term="open access"/>
    <category scheme="http://localloop.co.za" term="tshwane"/>
    <author>
      <name>Simeon Miteff</name>
      <uri>http://www.localloop.co.za</uri>
    </author>
    <source>
      <id>http://localloop.co.za/feed/atom/</id>
      <link href="http://localloop.co.za" rel="alternate" type="text/html"/>
      <link href="http://localloop.co.za/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Internet and Networking in South Africa</subtitle>
      <title xml:lang="en">Local Loop</title>
      <updated>2010-09-01T13:02:48Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.saturnlaboratories.co.za/114 at http://blog.saturnlaboratories.co.za</id>
    <link href="http://blog.saturnlaboratories.co.za/archive/2010/08/12/using-script-simulate-serial-device-virtualbox" rel="alternate" type="text/html"/>
    <title>Raoul Snyman (superfly): Using a Script to Simulate a Serial Device for VirtualBox</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Recently I needed to simulate a serial device (a GPS, to be precise) for a Windows application I'm modifying for a client.</p>
<p>I don't use Windows on a regular basis, but I do have a license for it, and an original Windows XP CD from back in the day, so I loaded Windows in a VirtualBox virtual machine for the odd occasion I might need Windows, like when I build the Windows version of <a href="http://openlp.org/">OpenLP 2.0</a>.</p>
<p>Fortunately for me, because I'm running Linux on my system, and I have Windows running in VirtualBox, it's actually quite easy to simulate a serial device.</p>
<p>VirtualBox allows you to specify where to connect the guest's serial device on the host, and provides a few options. I selected "pipe" which is a standard Un*x socket, and I set VirtualBox to create the pipe if it didn't exist. I set the value of the pipe to be <code>/tmp/vbox-socket</code>.</p>
<p>Next I hauled out an extremely handy little program called <code>socat</code>. I had to install this, but that was a simple case of <code>sudo aptitude install socat</code>. Once I had installed socat, I set up a connection from a pseudo serial device (<code>man pty</code> can tell you more about that) to the Un*x socket:</p>
<pre>@:~$ socat UNIX-CONNECT:/tmp/vbox-socket PTY,link=/tmp/vbox-pty</pre><p>That will create a pseudo serial device called <code>/tmp/vbox-pty</code> and connect the Un*x socket to the pseudo serial device. Now, to connect up your script to the PTY device, simply use the standard Linux redirection:</p>
<pre>python gps_simulator.py &gt; /tmp/vbox-pty</pre></div>
    </summary>
    <updated>2010-08-12T11:40:43Z</updated>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/gps" term="GPS"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/modem" term="Modem"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/serial" term="Serial"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/simulate" term="Simulate"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/simulation" term="Simulation"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/socat" term="socat"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/virtualbox" term="VirtualBox"/>
    <author>
      <name>raoul</name>
    </author>
    <source>
      <id>http://blog.saturnlaboratories.co.za</id>
      <link href="http://blog.saturnlaboratories.co.za" rel="alternate" type="text/html"/>
      <link href="http://blog.saturnlaboratories.co.za/rss.xml" rel="self" type="application/rss+xml"/>
      <title>Planetary Ponderings</title>
      <updated>2010-08-12T12:05:06Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://www.bloggroll.com/view/24</id>
    <link href="http://feedproxy.google.com/~r/Bloggroll/~3/QaiyQlOfJKE/24" rel="alternate" type="text/html"/>
    <title>Jonathan Groll (eyesonly): Emacs-like keybindings for the new ABAP frontend editor</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><img alt="" class="l" src="http://www.bloggroll.com/stat/emacs_logo.png"/>In the new <span class="caps">SAP</span> <span class="caps">ABAP</span> <a href="https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2142">editor</a>, it’s sort-of possible to remap the keybindings you use. If you’re a regular <a href="http://www.gnu.org/software/emacs/emacs.html">Emacs</a> user, you often find yourself pressing the wrong key combination accidentally – for instance C-a to go to the beginning of a line, only to find that the new <span class="caps">ABAP</span> editor by default respects the regular <a href="http://en.wikipedia.org/wiki/Common_User_Access">windows <span class="caps">CUA</span></a> keybindings – so C-a does a “Select All” as it does in many windows programs.</p><p>I’ve redefined many of the new editor keybindings that I use to be more Emacs-like. If you’re interested, <a href="http://www.bloggroll.com/stat/abap_emacs.pdf">here is a <span class="caps">PDF</span> document</a> listing all of my defined keybindings for the “emacs” schema. This is a stylesheet transformation of the file “keymap.xml” that is stored in your <span class="caps">SAP</span> work directory (so, in my case this is C:\Documents and Settings\Jonathan User\SapWorkDir\ab4_data\keymap.xml). <a href="http://www.bloggroll.com/stat/keymap.xml">Here is my keymap.xml file</a>, I would say simply replace your own keymap.xml file with mine <strong><span class="caps">BUT</span></strong> I’ve had sufficient grief doing it even when upgrading my <span class="caps">SAP</span> <span class="caps">GUI</span> from one release to another, so doubt this will work for you. If you do want to try that, please backup your entire SapWorkDir first (as a point of reference, I’ve had this blog post in draft form since December 2008 due to not being sure how to share my keybindings with others).</p>
<p>What is probably more sensible if you want to try a similar Emacs keybinding scheme is to take a look at the <span class="caps">PDF</span> containing my keybindings and to manually create your own Emacs keybinding scheme. To do so, start by clicking on the little yellow icon on the far right bottom of your editor screen (indicated by the arrow):<br/>
<img alt="" class="c" src="http://www.bloggroll.com/stat/abap_emacs.png"/></p>
<p>Why do I say that its only “sort-of” possible to remap the keybindings? Well, there are limitations : (1) Our nice custom keybindings can’t be used when in display only mode, like when we’re on a non-development system (2) We can’t do complicated key sequences, eg. C-x C-w can’t be bound to “File.Saveas”. (3) Meta key bindings are difficult as pressing the <span class="caps">ALT</span> key on its own makes the menu bar at the top of the screen active, so the <span class="caps">ALT</span> key must always be combined with other modifiers like control (4) The windows key cannot be bound. In fact, we seem to be stuck with Shift, Control and Alt as modifiers. (5) Some things like kill-line (C-k) have no equivalent command in the front-end editor. (5) Block mode in the two editors is different in concept.</p>
<p>There are some windows <span class="caps">CUA</span> keybindings that you may be particularly fond of that get lost if you rebind them – for instance C-v does a “Clipboard Paste”. I’ve also bound that to C-y in the keybindings file above to be more like Emacs, but you may not like that, so I guess whatever keybindings you end up using will become a matter of personal taste, which is as for all things Emacs. Still, some sensible substitutions for cut-copy-paste are also defined by default in the new editor – for instance Shift-Insert performs a paste as it does on many terminal emulators.</p>
<p>By the way, as far as I know the new editor mode only is available for the windows <span class="caps">SAP</span> <span class="caps">GUI</span>. <sup class="footnote"><a href="http://feeds2.feedburner.com/Bloggroll#fn1">1</a></sup> The option to select the new editor does not appear in all the versions of the Java <span class="caps">GUI</span> that I’ve tried. It would be a shame if the new editor was never ported to the Java <span class="caps">GUI</span>, and my Linux street cred has suffered enormously as a consequence.</p>
<p>I have considered developing a proper “abap-mode” for the stand-alone Emacs editor as well, but it does seem it would have very little benefit for the effort involved – the benefit would apply if you opened a saved file with <span class="caps">ABAP</span> code in it in Emacs, or if you pasted into an Emacs window outside of your <span class="caps">SAP</span> <span class="caps">GUI</span>. If it were feasible to embed Emacs into the <span class="caps">SAP</span> <span class="caps">GUI</span> as the default editor then an abap-mode would be a real consideration. However, I don’t see how it’ll be feasible due to the tight integration that the new editor enjoys. For instance, one would have to allow for drill-down into other sections of code, allow for integration with the SE80 code browser and so forth. So I personally see a truly embedded Emacs as a wonderful thing (that will never happen!).</p>
<p>I also have a wish-list for commands that I’d love the new <span class="caps">ABAP</span> editor to support. Top of this list would be an Emacs kill-ring. Luckily, there is something similar – pressing “Edit.PasteExtended” (By default bound to Control-Shift-V) pops up a list of the clipboard history, so all is not lost however, and if you didn’t know about this feature it’s great.</p>
<p class="footnote" id="fn1"><sup>1</sup> The new front-end editor is available for <span class="caps">SAP</span> <span class="caps">GUI</span> for Windows 6.40 Patch level 10 and onwards, also your server must be able to support it – the first official server version that supports it is <span class="caps">SAP</span> NetWeaver2004s, although since then the editor has been <a href="https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/3914">backported</a>, you can also run with it on older versions going back to 6.20 (but your system must be at one of the newer patch levels).</p><img height="1" src="http://feeds.feedburner.com/~r/Bloggroll/~4/QaiyQlOfJKE" width="1"/></div>
    </summary>
    <updated>2010-08-12T08:15:44Z</updated><feedburner:origLink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.bloggroll.com/view/24</feedburner:origLink>
    <source>
      <id>http://www.bloggroll.com/</id>
      <author>
        <name>Jonathan Groll (eyesonly)</name>
      </author>
      <link href="http://www.bloggroll.com/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/Bloggroll" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>The webshite of Jonathan Groll</subtitle>
      <title>The Bloggroll</title>
      <updated>2010-08-12T09:05:05Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-6950106.post-986954891333087431</id>
    <link href="http://blog.charlvn.com/feeds/986954891333087431/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="https://www.blogger.com/comment.g?blogID=6950106&amp;postID=986954891333087431" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/6950106/posts/default/986954891333087431" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/6950106/posts/default/986954891333087431" rel="self" type="application/atom+xml"/>
    <link href="http://blog.charlvn.com/2010/08/blogger-export-xml-to-json-converter-in.html" rel="alternate" type="text/html"/>
    <title>Charl van Niekerk (charlvn): Blogger Export XML to JSON Converter in PHP</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><pre><code>#!/usr/bin/php
&lt;?php
error_reporting(-1);
$doc = new DOMDocument();
$doc-&gt;load($_SERVER['argv'][1]);
$entries = $doc-&gt;getElementsByTagName('entry');
$posts = array();
$comments = array();
for ($i = 0; $i &lt; $entries-&gt;length; $i++) {
 $entry = $entries-&gt;item($i);
 $links = $entry-&gt;getElementsByTagName('link');
 for ($j = 0; $j &lt; $links-&gt;length; $j++) {
  $link = $links-&gt;item($j);
  if ($link-&gt;getAttribute('rel') == 'alternate') {
   $href = $link-&gt;getAttribute('href');
   if (substr($href, 0, 24) == 'http://blog.jokevn.com/2') {
    if (strstr($href, '#') === false) {
     $post = new stdClass();
     $post-&gt;id = substr($href, 23);
     $post-&gt;title = $entry-&gt;getElementsByTagName('title')-&gt;item(0)-&gt;textContent;
     $post-&gt;content = $entry-&gt;getElementsByTagName('content')-&gt;item(0)-&gt;textContent;
     $post-&gt;date = $entry-&gt;getElementsByTagName('published')-&gt;item(0)-&gt;textContent;
     $posts[] = $post;
    } else {
     $comment = new stdClass();
     $comment-&gt;post = substr($href, 23, strpos($href, '.html') - 18);
     $comment-&gt;author = $entry-&gt;getElementsByTagName('name')-&gt;item(0)-&gt;textContent;
     $comment-&gt;content = $entry-&gt;getElementsByTagName('content')-&gt;item(0)-&gt;textContent;
     $comment-&gt;date = $entry-&gt;getElementsByTagName('published')-&gt;item(0)-&gt;textContent;
     $comments[] = $comment;
    }
   }
  }
 }
}
file_put_contents('posts.json', json_encode($posts));
file_put_contents('comments.json', json_encode($comments));</code></pre><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6950106-986954891333087431?l=blog.charlvn.com" width="1"/></div></div>
    </content>
    <updated>2010-08-07T18:45:33Z</updated>
    <published>2010-08-07T18:44:00Z</published>
    <author>
      <name>Charl van Niekerk</name>
      <email>charlvn@charlvn.com</email>
      <uri>http://www.blogger.com/profile/16555795103153299929</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-6950106</id>
      <author>
        <name>Charl van Niekerk</name>
        <email>charlvn@charlvn.com</email>
        <uri>http://www.blogger.com/profile/16555795103153299929</uri>
      </author>
      <link href="http://blog.charlvn.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/6950106/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.charlvn.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/6950106/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>The lightsaber is mightier than the sword!</subtitle>
      <title>Charl van Niekerk</title>
      <updated>2010-09-05T18:00:19Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://jonathancarter.org/?p=1588</id>
    <link href="http://jonathancarter.org/2010/08/06/im-just-saying/" rel="alternate" type="text/html"/>
    <link href="http://jonathancarter.org/2010/08/06/im-just-saying/#comments" rel="replies" type="text/html"/>
    <link href="http://jonathancarter.org/2010/08/06/im-just-saying/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Carter (highvoltage): I’m just saying</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/><p><a href="http://www.engadget.com/2010/08/05/ftc-denies-request-for-documents-on-adobe-complaint-confirms-in/"><img alt="" class="aligncenter size-full wp-image-1589" height="331" src="http://jonathancarter.org/files/images/adobe-demotivator.png" title="adobe-demotivator" width="555"/></a></p></div>
    </content>
    <updated>2010-08-05T22:15:01Z</updated>
    <published>2010-08-05T22:08:49Z</published>
    <category scheme="http://jonathancarter.org" term="Free Software"/>
    <category scheme="http://jonathancarter.org" term="Adobe"/>
    <category scheme="http://jonathancarter.org" term="Apple"/>
    <category scheme="http://jonathancarter.org" term="Demotivator"/>
    <category scheme="http://jonathancarter.org" term="Flash"/>
    <author>
      <name>jonathan</name>
      <uri>http://www.jonathancarter.co.za</uri>
    </author>
    <source>
      <id>http://jonathancarter.org/feed/atom/</id>
      <link href="http://jonathancarter.org" rel="alternate" type="text/html"/>
      <link href="http://jonathancarter.org/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">rebel without a pause</subtitle>
      <title xml:lang="en">jonathan carter</title>
      <updated>2010-08-16T11:31:12Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://mithrandi.net/blog/?p=298</id>
    <link href="http://mithrandi.net/blog/2010/07/htc-ota-updates/" rel="alternate" type="text/html"/>
    <link href="http://mithrandi.net/blog/2010/07/htc-ota-updates/#comments" rel="replies" type="text/html"/>
    <link href="http://mithrandi.net/blog/2010/07/htc-ota-updates/feed/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Tristan Seligmann (mithrandi): HTC OTA updates</title>
    <summary xml:lang="en">I’m a little bored, and the whole internet (well, at least the portion of it composed of Desire owners) seems to be going crazy waiting around for the recently-announced rolling out of the Android 2.2 update for the HTC Desire, so I thought I’d poke around a little in the OTA update process. UPDATE (2010/08/03): [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I’m a little bored, and the whole internet (well, at least the portion of it composed of Desire owners) seems to be going crazy waiting around for the <a href="http://www.engadget.com/2010/07/30/official-htc-rolling-out-android-2-2-and-720p-video-capture-to/">recently-announced</a> rolling out of the Android 2.2 update for the HTC Desire, so I thought I’d poke around a little in the OTA update process.</p>
<p><strong>UPDATE (2010/08/03):</strong> The update seems to be rolling out to most people, but some people still aren’t getting it, even though they have unlocked/unbranded phones. From what I’ve been able to discover, HTC appears to be employing an IMEI “blacklist” of some kind; checkins with specific IMEI values fail to return the 2.2 update, but anything else (including completely invalid IMEI values) returns the update. I’m still not sure whether this is just their way of staggering the update, or if there is some other reason for withholding the update from the affected devices.</p>
<p><strong>UPDATE (2010/08/05):</strong> HTC now seems to either have a bad content server, or be in the process of pulling the update from their servers, including the update file itself <a href="http://liveimage.htc.com/OTA_Bravo_Froyo_HTC_WWE_2.09.405.8-1.21.405.2_release4dua3bcrut4wrv30.zip">on liveimage.htc.com</a>. If it is deliberate, I have no idea why they’re doing it, and I can’t currently find any information that sheds any light.</p>
<p>The process seems to be relatively straightforward: when you hit “Check now”, the phone sends an HTTP POST to http://andchin.htc.com/android/checkin (not https, thus all in the clear, making it easy for me to sniff :P), with a Content-Type of “org/x-json” (wat), and a JSON-encoded payload. The payload looks as follows (I’ve pretty-printed it and stripped personal identifiers, but it’s still good enough to get a response):</p>
<pre class="brush: jscript;">{
  "locale": "en_GB",
  "checkin": {
    "build": {
      "product": "bravo",
      "serialno": "HTXXXXXXXXXX",
      "changelist": "174215",
      "build_type": "user",
      "carrier": "htc_wwe",
      "radio": "32.36.00.28U_4.06.00.02_2",
      "firmware_version": "1.21.405.2 CL174215 release-keys",
      "bootloader": "0.80.0000",
      "id": "htc_wwe/htc_bravo/bravo/bravo:2.1-update1/ERE27/174215:user/release-keys",
      "revision": "129"
    }
  },
  "model_number": "HTC Desire",
  "logging_id": 0,
  "imei": "",
  "id": 0,
  "digest": "8fccfd93dcbe837d072e5f1494da2"
}
</pre>
<p>Note the “carrier” value there; this is “htc_wwe” for phones that are not carrier-locked / otherwise carrier-customized. If you had a Sprint phone, for example, this would be “sprint”. I believe this value is ultimately determined by the the “androidboot.carrier” kernel parameter passed to the kernel by the boot loader.</p>
<p>I’m not sure what “digest” is of; it is 29 hex digits long, which doesn’t make any sense for a cryptographic digest. It doesn’t <em>seem</em> to be a personal identifier of any kind, though; if you modify it, you get some “upload crash” response back, which contains (among other things) the correct digest, so I can only guess that it corresponds to the product information in some way. I’ll be interested to see if it changes once I have the new update installed.</p>
<p>The response that comes back looks like this:</p>
<pre class="brush: jscript;">{"time_msec":"1280538364433","stats_ok":true,"intent":[{"action":"android.server.checkin.FOTA_CANCEL"}]}
</pre>
<p>The “intent” part will probably be obvious to Android developers (it’s specifying what the UI should do next), and time_msec is a UNIX timestamp in milliseconds, corresponding to the time the response was sent.</p>
<p>If an update *is* available, the response looks like this instead:</p>
<pre class="brush: jscript;">{
  "stats_ok": true,
  "intent": [
    {
      "action": "android.server.checkin.FOTA_UPDATE",
      "data_uri": "http://liveimage.htc.com/OTA_Bravo_HTC_WWE_1.21.405.2-1.15.405.4_release_P4ohim1mtp6zggcyon.zip",
      "extra": [
        {
          "name": "promptMessage",
          "value": "System Upgrade"
        },
        {
          "name": "promptFeature",
          "value": "Update:HTC application improvement"
        },
        {
          "name": "promptVersion",
          "value": "System upgrade1.21.405.2 (27.07 MB)We would recommend using a free Wi-Fi hotspot or an unlimited data plan to apply this update. If not, standard data connection charges may apply. Any questions? Contact us via http://www.htc.com/www/CA_Hotline.aspx"
        },
        {
          "name": "promptSize",
          "value": "27.07 MB"
        },
        {
          "name": "promptMinutes",
          "value": "30,..."
        },
        {
          "name": "timeoutSeconds",
          "value": "120"
        },
        {
          "name": "force_update",
          "value": "false"
        }
      ]
    }
  ],
  "time_msec": "1280513282008"
}
</pre>
<p>Now, it seems as if they are planning to do a rolling release of the 2.2 update, somehow. I assume this means that they will only be responding with the updated version to some requests, but I don’t know exactly what mechanism they’ll be using to do that. Oh well…</p></div>
    </content>
    <updated>2010-08-05T13:39:02Z</updated>
    <published>2010-07-31T01:37:44Z</published>
    <category scheme="http://mithrandi.net/blog" term="Uncategorized"/>
    <category scheme="http://mithrandi.net/blog" term="android"/>
    <category scheme="http://mithrandi.net/blog" term="desire"/>
    <category scheme="http://mithrandi.net/blog" term="htc"/>
    <category scheme="http://mithrandi.net/blog" term="tech"/>
    <author>
      <name>mithrandi</name>
      <uri>http://mithrandi.net/</uri>
    </author>
    <source>
      <id>http://mithrandi.net/blog/feed/</id>
      <link href="http://mithrandi.net/blog" rel="alternate" type="text/html"/>
      <link href="http://mithrandi.net/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">the shards of meaning</subtitle>
      <title xml:lang="en">Shattered Crystalline Matrix</title>
      <updated>2010-08-15T01:52:02Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://mikro2nd.net/blog/mike/business/2010/08/03/Measuring-Progress.html</id>
    <link href="http://mikro2nd.net/blog/mike/business/2010/08/03/Measuring-Progress.html" rel="alternate" type="text/html"/>
    <title>Mike Morris: Measuring Progress</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><span style="font-weight: bold;">Background</span><br/><br/>I am about to take on the leadership of a new, still-in-formation developer team, on a project - the first of several - of critical importance to the client. This means that everything is up for negotiation: team structure, development methodology, coding styles, frameworks to be used,... <span style="font-style: italic;">everything</span>!<br/><br/>Initially my role was confined to that of Consulting Architect, but, by force of circumstance, has evolved to Architect and Team Leader <span style="font-style: italic;">Pro Tem</span> for a few months while the client gets their dev team properly resourced and settled-in. Naturally I'm trying to help that along as best I can.<br/><br/><span style="font-weight: bold;">Methodology</span><br/><br/>The client initially planned to use a BDUF (Big Design Up Front), waterfall approach to the project. The requirement is extremely well-known and quantified, in a very well understood business domain. <br/><br/>I have never believed in my tummy that BDUF is in any sense realistically or practically achievable, though, even long before the Agile Movement tore the idea to shreds. It is impossible to foresee every detailed design element, no matter how hard you work at it. On the other hand, some Agile proponents seem to say that <span style="font-weight: bold;">no</span> up-front design is necessary... <span style="font-style: italic;">Perhaps my hearing is playing tricks with me. </span>I cannot agree with them, either.<br/><br/>So call me a proponent of <span style="font-weight: bold;">SDUF</span>: <span style="font-style: italic;">Some</span> Design Up Front.<br/><br/>And on the Process front, I don't think there's a lot to argue about when we contrast a waterfall/sequential process with an agile/incremental process. For me the critical difference lies in how we report and feed-back progress and how frequently we do this. And what we do about the feedback we receive - how flexibly we accommodate direction changes from customers, business sponsors, unit-tests,... to change the still-in-the-pipeline development and requirements <span style="font-style: italic;">without</span> completely trashing the budget and time-to-market constraints. An also-essential aspect of agile development is "to reflect on what has gone before, and to adjust what we do to make 
things better." [<a href="http://xprogramming.com/articles/beyond-agile-synthesis/">Ron Jeffries</a>]<br/><br/>Waterfall possibly still does have a place in some circumstances. I can't honestly say that I've ever actually been party to such circumstances, though I've certainly been on projects where some of our business partners thought they needed hard, contractual milestones with no going back. (In reality we always "went back" anyway, when necessary, after some amount of renegotiation.)<br/><br/><span style="font-weight: bold;">Metrics</span><br/><br/>A very greenfield situation, this, which some people would immediately call a "wonderful opportunity", but which I very much see as a "two-edged weapon"...<br/><br/>The question that has been most on my mind is, "<span style="font-style: italic;">What should we measure?</span>"<br/><br/>I am a very firm believer in the old saw, "<span style="font-style: italic;">Tell me how you Measure me, and I'll tell you how I Behave</span>."<br/><br/>Measure a sales-person by the number of sales, and you'll get a high order volume of the easiest-to-sell products, regardless of whether they represent the best margins or quality-of-business for the company. Measure the same sales-person by margin-value of product, and you'd best hope that your high-margin products are ones that lots of people <span style="font-style: italic;">want</span> to buy. Measure them by the number of sales calls they make and you'll have lots of calls that don't result in sales.<br/><br/>Here is where I believe that some Scrum proponents are going wrong... We take Features and break them up into Tasks - the developers' unit-of-work. And they measure Task completions using a <a href="http://en.wikipedia.org/wiki/Burn-down_chart">burn-down chart</a> of Tasks completed versus time. This can easily result in a situation where many Tasks are being completed, but not so many Features. A situation where Features reach an 80%-complete state, and then get stuck, for any of a variety of reasons, all of which amount to "Nobody wants to complete those Tasks" because they're boring,... or they're "just" test Tasks,... or they're difficult (because not well understood), or...<br/><br/>The solution is really simple. Just measure Feature completion instead of Task completion. Then the team only gets rewarded when Features or User Stories get completed. We only get beer and Pizza when the Business gets value.<br/><br/>But is this enough? Can we go further? Is there a way to tie developer reward directly to delivered Business Value?<br/><br/>In the situation I'm headed into, Business Value should be pretty easy to quantify: The product to be built is one that will directly generate revenue for the company, so we can very easily quantify how much Business Value the software is generating. (Successful completion of the product will also deliver a huge  strategic Business Value by enabling <span style="font-style: italic;">new</span> revenue streams, but that's also quite easy to quantify, and, indeed, is the prime reason the client is taking on this quite substantial investment in the first place...)<br/><br/><span style="font-style: italic;">Are there ways to close the loop?</span> To feed-back to the dev team on how much business-value their efforts are generating without making money too much of an up-front issue? Then, too, I have a reservation: Developers can have notoriously short memories, and the sort of value we're talking about here is only delivered on longer time-scales... Maybe it's good to have both long-time-loop feedbacks as long as we also have the short-timespan feedback in place <span style="font-style: italic;">as well</span>... Waterfall's failures are largely a result of too little feedback taking too much time for us to correct project course when we need to.<br/><br/>My instinct is that moving towards a <a href="http://www.threeriversinstitute.org/blog/?p=516">continuous deployment process</a> (the step beyond continuous integration) might help to shorten this feedback loop, which is completely the point of "agile" thinking, but I'm still not really <span style="font-style: italic;">clear</span> on how we might implement it.<span style="font-weight: bold;"/><br/></div>
    </content>
    <updated>2010-08-03T10:49:35Z</updated>
    <published>2010-08-03T08:49:35Z</published>
    <author>
      <name>mike</name>
      <uri>http://mikro2nd.net/blog/mike//</uri>
    </author>
    <source>
      <id>http://mikro2nd.net/blog/mike//</id>
      <icon>http://mikro2nd.net/favicon.ico</icon>
      <link href="http://mikro2nd.net/blog/mike//" rel="alternate" type="text/html"/>
      <link href="http://mikro2nd.net/blog/mike/?flavor=atom" rel="self" type="application/atom+xml"/>
      <rights>Copyright (c) mike</rights>
      <subtitle>web2, net3, programming, design, business, and the fundamental nature of spacetime</subtitle>
      <title>one mikro2nd</title>
      <updated>2010-08-03T10:49:35Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.saturnlaboratories.co.za/112 at http://blog.saturnlaboratories.co.za</id>
    <link href="http://blog.saturnlaboratories.co.za/archive/2010/08/02/tortoisebzr-style-right-click-menus-kde" rel="alternate" type="text/html"/>
    <title>Raoul Snyman (superfly): TortoiseBZR-Style Right-Click Menus in KDE</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I think most folks are probably well aware of the Windows Subversion client, TortoiseSVN. It has been around for a number of years, and is easily one of the most handy version control clients on any platform.</p>
<p>Recently, I have been wanting to be able to do the same thing in Linux. Simply right-click and update. Sure I can use the command line, and sure I could even use Bazaar Explorer, but I don't always have a terminal open, and Bazaar Explorer doesn't work with files as much as workflow, and that doesn't always fly.</p>
<p>So, I started looking around to find out how I could edit Konqueror or Dolphin's context menu, or "service menu" as it is known in FreeDesktop terms. After much hunting, looking at existing service menu files, I was able to put together a submenu for QBazaar, the Qt dialogs for Bazaar (the same dialogs that get used in TortoiseBZR, in fact).</p>
<p>You can get my <a href="http://blog.saturnlaboratories.co.za/programs/qbazaar-desktop" title="QBazaar.desktop file">QBazaar.desktop file</a> from the <a href="http://blog.saturnlaboratories.co.za/programs" title="Scripts &amp; Programs">Scripts &amp; Programs</a> section on my blog. Once you have downloaded it, you need to copy it into the following location:</p>
<pre>~/.kde/share/kde4/services/ServiceMenu</pre><p>Note: The capitalisation is required, so don't make "ServiceMenu" all small letters.</p></div>
    </summary>
    <updated>2010-08-02T20:50:11Z</updated>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/bazaar" term="Bazaar"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/distributed-version-control" term="Distributed Version Control"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/kde" term="KDE"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/tortoisebzr" term="TortoiseBZR"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/version-control" term="Version Control"/>
    <author>
      <name>raoul</name>
    </author>
    <source>
      <id>http://blog.saturnlaboratories.co.za</id>
      <link href="http://blog.saturnlaboratories.co.za" rel="alternate" type="text/html"/>
      <link href="http://blog.saturnlaboratories.co.za/rss.xml" rel="self" type="application/rss+xml"/>
      <title>Planetary Ponderings</title>
      <updated>2010-08-12T12:05:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.saturnlaboratories.co.za/111 at http://blog.saturnlaboratories.co.za</id>
    <link href="http://blog.saturnlaboratories.co.za/archive/2010/08/01/bazaar-branching-merging-subversion-repositories" rel="alternate" type="text/html"/>
    <title>Raoul Snyman (superfly): Bazaar Branching &amp; Merging on Subversion Repositories</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>In my last post, I talked about <a href="http://blog.saturnlaboratories.co.za/archive/2010/07/05/using-bazaar-subversion-repositories" title="Using Bazaar on Subversion Repositories">using Bazaar on Subversion repositories</a>. Soon afterward, <a href="http://blog.smartcube.co.za/" title="Rants of a mobile dev">David Rubin</a> asked me in IRC if I can do the standard branching and merging on a Bazaar working copy of a Subversion repository, and how easy it is.</p>
<p>The answer is, "Yes, very easy." In fact, you don't even need to care that it is from a Subversion repository. For instance:</p>
<pre style="margin-top: 1em;">@:~$ bzr checkout https+urllib://svn.domain.com/svnroot/project/trunk trunk
@:~$ bzr branch trunk newfeature
@:~$ cd newfeature
[... do some stuff ...]
@:~$ bzr commit
@:~$ cd ../trunk
@:~$ bzr merge ../newfeature
@:~$ bzr commit</pre>
<p>All done!</p></div>
    </summary>
    <updated>2010-08-01T20:56:00Z</updated>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/bazaar" term="Bazaar"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/branch" term="Branch"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/distributed-version-control" term="Distributed Version Control"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/merge" term="Merge"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/repository" term="Repository"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/subversion" term="Subversion"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/version-control" term="Version Control"/>
    <author>
      <name>raoul</name>
    </author>
    <source>
      <id>http://blog.saturnlaboratories.co.za</id>
      <link href="http://blog.saturnlaboratories.co.za" rel="alternate" type="text/html"/>
      <link href="http://blog.saturnlaboratories.co.za/rss.xml" rel="self" type="application/rss+xml"/>
      <title>Planetary Ponderings</title>
      <updated>2010-08-12T12:05:06Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://confluence.za.net/blog/?p=204</id>
    <link href="http://confluence.za.net/blog/?p=204" rel="alternate" type="text/html"/>
    <link href="http://confluence.za.net/blog/?p=204#comments" rel="replies" type="text/html"/>
    <link href="http://confluence.za.net/blog/?feed=atom&amp;p=204" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Adrianna Pińska (Confluence): Oh, look.  A terrible news article about a subculture.</title>
    <summary xml:lang="en">So the M&amp;G did an article on ICON, the recent gaming convention up in Jo’burg.  It’s about as awful as you would expect, only worse.  It makes it sound as if all the women were walking around in revealing outfits with their tits falling out, and that the main attraction of the con [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>So the M&amp;G did an article on ICON, the recent gaming convention up in Jo’burg.  It’s about as awful as you would expect, only worse.  It makes it sound as if all the women were walking around in revealing outfits with their tits falling out, and that the main attraction of the con to women is the possibility of attracting a horde of desperate nerds no matter how shy or unconventionally attractive they are.  Not, you know, participation in any of the games, or the purchase of cool toys; those are for the smelly man-children running around and whacking each other with rubber swords.</p>
<p><a href="http://www.mg.co.za/article/2010-07-28-sex-mutton-broth-and-gaming-at-icon-festival">Here’s where you can read this wonder of modern journalism in all its glory.</a>  Use of latex and bleach is recommended if you have a gentle and sensitive nature or are allergic to fail.</p>
<p>Since I appear to be kind of half maybe possibly not actually logged in to the website, and I have no idea whether it’s eaten my comment, and if it hasn’t eaten my comment it has almost certainly eaten the paragraph breaks in my comment, thus rendering it unreadable, here it is again:</p>
<blockquote><p>This is yet another “quirky human interest” article written by a clueless mainstream journalist who briefly encounters a subculture and then regurgitates a hopelessly confused mess of whatever they found most memorable.  But it’s a lot worse than average.</p>
<p>I came here expecting to get a bit annoyed about the conflation of LARPing with the SCA, or the portrayal of all LARPing as MEAD-style boffer LARPing.  But the horrible and sensationalist gender stereotypes on display here kind of eclipse the geeky details.</p>
<p>I disagree that the article helps any of the hobbies it features.  It tells men “these subcultures welcome sexist jerks” and tells women “stay far away from here unless you would enjoy wading through a cesspit of sexist jerks”.</p>
<p>I was there, I wore normal clothes (like a lot of other women there, who I guess were not exciting or exotic enough to be mentioned), I had a great geeky time and nobody was rude to me.  But if all I knew about ICON came from this article, I would avoid it like the plague.</p></blockquote>
<p>I know women who dress up at cons, sometimes in revealing outfits, satirically and non-satirically.  I know a lot of the women from the T&amp;A RPG team.  I may have to agree to disagree with them about the feminist implications of dressing up in revealing outfits at cons, but that’s a whole other post — and on the whole I think they should wear whatever the hell they want and not be assumed to be wearing it for the benefit of dudely eyeballs.  Our differences of opinion notwithstanding, I think it’s safe to say that the satirical element went so far over the reporter’s head it may have ended up in that giant football dirigible floating over the city.</p>
<p>(In non-ranty post-ICON news, I have giant blisters on my hands from screwing my giant alien’s legs in, but it was so worth it.  It looks totally badass. <img alt=":D" class="wp-smiley" src="http://confluence.za.net/blog/wp-includes/images/smilies/icon_biggrin.gif"/> )</p>
<p>P.S. The really annoying thing about this is that in South Africa roleplaying isn’t that male-dominated anymore.  OK, maybe the nationwide roleplaying diaspora — all those tiny cells of friends who have played AD&amp;D all by themselves since high school and never talk to other roleplayers — is male-dominated, but the larger communities centered on e.g. ICON or CLAWs at UCT are full of women and have been for over a decade.  And they’re not just “girlfriends and sisters”; they write LARPs and modules and organise things and come to conventions every year.  Anyone who doesn’t recognise that is seriously misrepresenting the community.</p></div>
    </content>
    <updated>2010-07-29T11:26:52Z</updated>
    <published>2010-07-29T10:08:02Z</published>
    <category scheme="http://confluence.za.net/blog" term="Games"/>
    <category scheme="http://confluence.za.net/blog" term="Rants"/>
    <author>
      <name>confluence</name>
      <uri>http://confluence.za.net</uri>
    </author>
    <source>
      <id>http://confluence.za.net/blog/?feed=atom</id>
      <link href="http://confluence.za.net/blog" rel="alternate" type="text/html"/>
      <link href="http://confluence.za.net/blog/?feed=atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Powered by space monkeys!</subtitle>
      <title xml:lang="en">Confluence</title>
      <updated>2010-07-29T11:26:52Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://mikro2nd.net/blog/mike/teaching/2010/07/28/Refresher-Training-is-Good-Too.html</id>
    <link href="http://mikro2nd.net/blog/mike/teaching/2010/07/28/Refresher-Training-is-Good-Too.html" rel="alternate" type="text/html"/>
    <title>Mike Morris: Refresher Training is Good, Too!</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">Some while ago I was teaching a course -- <a href="http://coco.co.za/wiki/JavaWebApplicationProgramming">Java Web Application Programming</a>, as it happens --  to a group of quite-experienced web developers working in a large corporate environment. Needless to say, we all thought that this was yet another case of the Training Department getting their act together waaaay too late...<br/><br/>We soon discovered, however, that some of the core concepts and technologies of Java Web Application development were, at best, only poorly understood, even by the most experienced developers in the group. Many of the details of the HTTP protocol were unknown to them, as was the development of custom Tag Libraries -- a key component for developing clean, maintainable Java Web applications without in-page scripting. They had not thought much about the consequences of placing large (multi-megabyte) objects in the application Session... (this is in a clustered web-container environment!)<br/><br/>This is not a criticism of those developers! They had, for years, been delivering absolutely critical business functionality. This is merely an observation that technologies move on; sometimes developers need a little help to catch up, since their management usually neglects to allow time for self-study catch-up on new evolutions in the technology.<br/><br/>More important, it is an observation that Development Managers, Team Leaders and Project Managers shouldn't assume that their developers are completely up-to-date on the technologies they're using for day-to-day development.<br/><hr align="left" height="1px" width="25%"/><br/><span style="font-style: italic;">Replicated from </span><a href="http://coco.co.za/wiki/KeyTechnologyTrainingStory" style="font-style: italic;">http://coco.co.za/wiki/KeyTechnologyTrainingStory</a></div>
    </content>
    <updated>2010-07-28T15:14:41Z</updated>
    <published>2010-07-28T13:14:41Z</published>
    <author>
      <name>mike</name>
      <uri>http://mikro2nd.net/blog/mike//</uri>
    </author>
    <source>
      <id>http://mikro2nd.net/blog/mike//</id>
      <icon>http://mikro2nd.net/favicon.ico</icon>
      <link href="http://mikro2nd.net/blog/mike//" rel="alternate" type="text/html"/>
      <link href="http://mikro2nd.net/blog/mike/?flavor=atom" rel="self" type="application/atom+xml"/>
      <rights>Copyright (c) mike</rights>
      <subtitle>web2, net3, programming, design, business, and the fundamental nature of spacetime</subtitle>
      <title>one mikro2nd</title>
      <updated>2010-08-03T10:49:35Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://jonathancarter.org/?p=1530</id>
    <link href="http://jonathancarter.org/2010/07/28/if-i-were-superstitious/" rel="alternate" type="text/html"/>
    <link href="http://jonathancarter.org/2010/07/28/if-i-were-superstitious/#comments" rel="replies" type="text/html"/>
    <link href="http://jonathancarter.org/2010/07/28/if-i-were-superstitious/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Carter (highvoltage): If I were superstitious…</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/>A few weeks ago I moved to Québec, Canada. Today I bought this car from a colleague at Révolution Linux, he doesn’t need it anymore since he’s moving to Montréal. He bough it just a few months ago from another colleague who moved to France. It doesn’t have a CD player, instead, it has a [...]</div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/><p>A few weeks ago I moved to <a href="http://en.wikipedia.org/wiki/Quebec">Québec, Canada</a>. Today I bought this car from a colleague at <a href="http://www.revolutionlinux.com/">Révolution Linux</a>, he doesn’t need it anymore since he’s moving to <a href="http://en.wikipedia.org/wiki/Montreal">Montréal</a>. He bough it just a few months ago from another colleague who moved to <a href="http://en.wikipedia.org/wiki/France">France</a>.</p>
<p><img alt="" class="aligncenter size-full wp-image-1531" height="331" src="http://jonathancarter.org/files/images/hondalx.jpg" title="hondalx" width="550"/></p>
<p>It doesn’t have a <a href="http://en.wikipedia.org/wiki/Compact_Disc_player">CD player</a>, instead, it has a <a href="http://en.wikipedia.org/wiki/Cassette_deck">tape deck</a>, which plays <a href="http://en.wikipedia.org/wiki/Magnetic_tape">analogue magnetic tapes</a>. They’re horribly obsolete now but this was how I listened to music way back when I was a kid. Another college that lives down the street from me has a hi-fi with a CD player AND a tape deck. I was planning to go there to write the <a href="http://en.wikipedia.org/wiki/Smash_(album)">Offspring Smash album</a> to tape, it’s one of my favourite driving albums and I never tire from it.</p>
<p>All the tapes from 2 owners back was still in the car. I decided to remove them when I got home this afternoon. The *first* tape I took out happened to be this one:</p>
<p><a href="http://jonathancarter.org/files/images/offspringtape.jpg"><img alt="" class="aligncenter size-full wp-image-1534" height="333" src="http://jonathancarter.org/files/images/offspringtape.jpg" title="offspringtape" width="550"/></a></p>
<p>I was amazed and delighted! Then I removed the next tape:</p>
<p><a href="http://jonathancarter.org/files/images/highvoltagetape.jpg"><img alt="" class="aligncenter size-full wp-image-1535" height="332" src="http://jonathancarter.org/files/images/highvoltagetape.jpg" title="highvoltagetape" width="550"/></a></p>
<p>It had “High voltage” written on it, which is very close to my <a href="https://launchpad.net/~jonathan">IRC</a>/<a href="http://identi.ca/highvoltage">Identica</a>/<a href="http://twitter.com/highvoltage">Twitter</a> nickname, “highvoltage”. If I were at all superstitious, I’d take it as a very good sign that this car will serve me very well!</p></div>
    </content>
    <updated>2010-07-28T02:36:43Z</updated>
    <published>2010-07-28T01:49:35Z</published>
    <category scheme="http://jonathancarter.org" term="Free Software"/>
    <category scheme="http://jonathancarter.org" term="Jonathan"/>
    <category scheme="http://jonathancarter.org" term="Canada"/>
    <category scheme="http://jonathancarter.org" term="CD Player"/>
    <category scheme="http://jonathancarter.org" term="France"/>
    <category scheme="http://jonathancarter.org" term="High voltage"/>
    <category scheme="http://jonathancarter.org" term="highvoltage"/>
    <category scheme="http://jonathancarter.org" term="identi.ca"/>
    <category scheme="http://jonathancarter.org" term="IRC"/>
    <category scheme="http://jonathancarter.org" term="Montreal"/>
    <category scheme="http://jonathancarter.org" term="Quebec"/>
    <category scheme="http://jonathancarter.org" term="Smash"/>
    <category scheme="http://jonathancarter.org" term="Tape Deck"/>
    <category scheme="http://jonathancarter.org" term="Tapes"/>
    <category scheme="http://jonathancarter.org" term="The Offspring"/>
    <category scheme="http://jonathancarter.org" term="Twitter"/>
    <author>
      <name>jonathan</name>
      <uri>http://www.jonathancarter.co.za</uri>
    </author>
    <source>
      <id>http://jonathancarter.org/feed/atom/</id>
      <link href="http://jonathancarter.org" rel="alternate" type="text/html"/>
      <link href="http://jonathancarter.org/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">rebel without a pause</subtitle>
      <title xml:lang="en">jonathan carter</title>
      <updated>2010-08-16T11:31:12Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://mithrandi.net/blog/?p=287</id>
    <link href="http://mithrandi.net/blog/2010/07/the-desire-post/" rel="alternate" type="text/html"/>
    <link href="http://mithrandi.net/blog/2010/07/the-desire-post/#comments" rel="replies" type="text/html"/>
    <link href="http://mithrandi.net/blog/2010/07/the-desire-post/feed/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Tristan Seligmann (mithrandi): The Desire post</title>
    <summary xml:lang="en">Encumbered forever by desire and ambition, there’s a hunger still unsatisfied; our weary eyes still stray to the horizon, though down this road we’ve been so many times. — Pink Floyd, High Hopes Introduction As some of you already know, I recently became the proud new owner of an HTC Desire. You can find the [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><blockquote><p>Encumbered forever by desire and ambition,<br/>
there’s a hunger still unsatisfied;<br/>
our weary eyes still stray to the horizon,<br/>
though down this road we’ve been so many times.</p>
<p>— Pink Floyd, <strong>High Hopes</strong></p></blockquote>
<h2>Introduction</h2>
<p>As some of you already know, I recently became the proud new owner of an <a href="http://en.wikipedia.org/wiki/HTC_Desire">HTC Desire</a>. You can find the detailed specs elsewhere, but the phone is pretty much a Nexus One with an optical trackpad, real buttons, a little extra flash memory, and the HTC Sense software. This post isn’t exactly going to be an in-depth review, but I thought I’d give a brief rundown of my impressions, and also the apps I’m using on the phone at the moment.</p>
<p>Overall, I’m pretty happy with the phone. I can get 1-2 days of use between charges (depending on usage), which is good enough for my purposes, and that does include push email (quite a lot of email, in the case of my personal account) and syncing all sorts of stuff on a pretty regular schedule. The phone UI is generally way more responsive and snappy than my previous phones (<a href="http://en.wikipedia.org/wiki/Nokia_E71">Nokia E71</a>, <a href="http://en.wikipedia.org/wiki/Nokia_E65">E65</a>), and the touch screen works reasonably well. Also, I can actually get apps for a lot of the services I use now, whereas I couldn’t before (not many people are making Series 60 apps).</p>
<h2>Input</h2>
<p>The lack of a real keyboard turned out to be not as bad as I expected. Tap-typing with a single finger is not as fast as using both thumbs was on the E71, and holding the phone so that I can use both thumbs is somehow awkward enough that I never did it. Selecting predicted words is a lot easier with the touch screen, though (no need to scroll through the list). However, I am now using the <a href="http://beta.swype.com/">Swype Beta</a>, an alternative input method where you “swype” your finger through the letters of the word you want, without lifting it, along with a lot of other nice tweaks to the on-screen keyboard. It works pretty nicely; it doesn’t always select the right word, but you can finish your sentence (or paragraph) and then go back and select a different word where it made mistakes. If a word isn’t in the dictionary, or isn’t really a word at all, you can just tap it out; regular words will be added to the dictionary after you press space, but you can also add “non-words” like “http://” or “.co.za” for convenience. I’m fast enough on the Swype keyboard now that I can use it for taking notes during a conversation in real-time, which is great. Unfortunately, the beta is closed at the moment; if you didn’t have a chance to grab the app while it was open, you’ll have to wait around until they decide to let people have a crack at it again, or they open it up to everyone.</p>
<p>The multi-touch screen is great. A lot of apps (like Maps, or the browser) support the “pinch” and “spread” (what’s the real name for the opposite of pinch?) to zoom in and out, which easily lends itself to an “arbitrary precision” navigation style: zoom out to cover a lot of ground, then zoom back in to precisely select a button or other page element. The “momentum-based” scrolling mechanism (again, what the heck is this actually called?) is also used by most apps, and is similarly awesome. It sort of behaves like a <a href="http://en.wikipedia.org/wiki/Globe">globe</a>: flick the screen to start scrolling; over time, it slowly slows down, but you can touch the screen to “catch” it once you get to where you want to be, or flick it again to keep going.</p>
<h2>Multi-tasking</h2>
<p>The Android approach to multi-tasking is awesome, and I kinda wish my desktop operating systems worked the same way. Under the hood, it’s basically just standard Linux processes being scheduled by the kernel, but with a bit of a twist. In terms of the UI, there’s no explicit process management. Some apps have an “exit” option, and you can burrow into the Applications list to “Force Stop” any app, but there isn’t even any built-in way to get a list of currently-running apps (although third-party apps for this purpose are available), simply because you don’t really need it. When the OS runs out of memory (think “OOM killer” if you’re familiar with Linux), it kills off the oldest apps to free up memory. In addition, provision is made for apps to save and restore their state. As a result, if you switch back and forth between apps, they’ll probably still be running, so switching will be immediate. If you open up an app that you haven’t used for a while, it may not be running anymore, so it’ll take a little longer (but usually not that much longer) for the app to start up again and restore the state. Most apps don’t do anything if they’re not in the foreground, so there’s no need to worry about wasting your battery running apps you’re not using. There are also “services”, which are for long-running background tasks that shouldn’t be killed off to reclaim memory; synchronization, for example.</p>
<p>Unfortunately, some people seem to be confused by all of this; as a result, there are a plethora of “advanced task killer” apps and suchlike on the Android market. These are all just about pointless; all you are likely to accomplish by running around killing random processes is breaking certain functionality like background synchronization that you turned on. If you want to stop your contacts syncing, for example, just go turn that off in the settings, instead of using an app that kills the process every time it starts up. Also, if an app really is draining your battery in the background, it’ll show up in the battery info screen, and you can then uninstall it or otherwise take steps to solve the problem. The only exception to the latter is built-in functionality that gets aggregated into the “Android Platform” entry; it may not be obvious what you need to disable or reconsider if “Android Platform” shows up as using too much juice.</p>
<h2>Intents</h2>
<p>Think of <a href="http://developer.android.com/reference/android/content/Intent.html">intents</a> like file type associations on steroids. Instead of just “open this file which is of some type”, you also have “open this URL” and “dial this phone number” and “view these map coordinates” and “search for this text” and “display the home screen” and “the battery is running low” and just about anything else you can think of, including brand new intents created by third-party developers.</p>
<p>Since any application can register itself to handle an intent, this means that third-party applications can do anything from hooking in as a phone dialler (eg. a SIP client), to replacing the home screen; just about any aspect of the “default” OS software can be replaced. This can also be done selectively; for example, if you follow a link to a Google Maps URL (even from another web page in the browser), you’ll be given the option to open it in the “Maps” app as well as opening it in the browser.</p>
<p>The net result is that third-party software can replace and enhance the OS in a practically unlimited fashion; and different third-party apps can interoperate and integrate without a great deal of special effort being exerted on the part of the application developers.</p>
<h2>GPS / Location</h2>
<p>The Desire has <a href="http://en.wikipedia.org/wiki/Assisted_GPS">A-GPS</a> functionality. My E71 also supposedly had this functionality, but it never seemed to work; getting a GPS lock could take up to 5 minutes if I started the Ovi Maps app up in a different location to where I last closed it. On my Desire, under optimal conditions (outdoors, clear view), I can generally get a GPS lock in seconds, no matter how far I’ve moved since the last time I got a lock. I can even get a GPS lock in under 30 seconds standing indoors in the middle of my house! I guess this is probably a combination of a better A-GPS implementation and a better GPS receiver, but I’m definitely much happier with the results.</p>
<h2>Battery lifetime</h2>
<p>A few quick notes I wanted to make on battery lifetime. Firstly, the battery lifetime seems to go up after the first several charge-discharge cycles; I guess this probably applies to all batteries in this class, but I thought it was worth mentioning. Secondly, active wifi use generally uses less battery than an active cell data (GPRS/EDGE/3G/HSDPA) connection; but an idle wifi connection will use more battery than an idle cell data connection. You can adjust the wifi “sleep” policy to take advantage of this by disabling the wifi connection after a certain timeout, although you may wish to avoid the extra cell data charges. Also, if you are in an area with poor cell reception, the cell radio will use more battery as the transmit strength is increased in order to successfully transmit; this applies even if you are not making use of cell data.</p>
<h2>My applications</h2>
<p>You can see a list of <a href="http://www.appbrain.com/user/mithrandi/apps-on-the-phone">all of the applications I have installed</a> (thanks to <a href="http://www.appbrain.com/">AppBrain</a>), but not all of them are worth mentioning, so I’ll run through the interesting ones here, with some commentary. Unfortunately paid apps are not currently available from the Android Market in South Africa, which some apps are either not available at all, while others are only available in free+ads form.</p>
<ul>
<li><a href="http://www.appbrain.com/app/com.aldiko.android">Aldiko Book Reader</a><br/>
A pretty decent eBook reader for ePub format books. It includes support for purchasing books from some sites (they have a mechanism whereby any online store can integrate their catalogue); otherwise you can download and import them from anywhere you can find them, or copy them onto the phone from your PC.</li>
<li><a href="http://www.appbrain.com/app/com.roflharrison.agenda">Android Agenda Widget</a><br/>
This is a ridiculously customizable home screen widget for viewing your calendar and tasks. It has support for “styles”, but you can also individually customize just about every aspect of the widget. It also provides widgets in almost every every possible size from 1×1 up to 4×4. It supports the various calendars (Google, HTC, etc.) as well as Astrid and some other tasks app that I can’t remember offhand.</li>
<li><a href="http://www.appbrain.com/app/com.appspot.swisscodemonkeys.apps">AppBrain App Market</a><br/>
The name is a little misleading: this is not a separate market, but just a way to sync and share your installed apps list, as well as scheduling installs / uninstalls via the web interface (which will be performed the next time you sync using the phone app).</li>
<li><a href="http://www.appbrain.com/app/com.timsu.astrid">Astrid Task/Todo List</a><br/>
A nifty tasks list manager. You can schedule multiple reminders for tasks, tag them, track expected time / time spent, and sync with Remember The Milk.</li>
<li><a href="http://www.appbrain.com/app/com.metago.astro">ASTRO File Manager</a><br/>
Android does not come with any kind of file manager, although you won’t need one very often since apps tend to avoid explicit file management. Still, there is the occasional need to rename or move a file around; it can also be very useful to transfer files over the network, especially with the SMB module.</li>
<li><a href="http://www.appbrain.com/app/com.google.zxing.client.android">Barcode Scanner</a><br/>
Scan a variety of barcodes, including <a href="http://en.wikipedia.org/wiki/QR_Code">QR codes</a> and UPC / EAN barcodes. Many sites provide download / market links for apps in the form of QR codes; scanning the code from another display is obviously easier than retyping the URL.</li>
<li><a href="http://www.appbrain.com/app/com.dropbox.android">Dropbox</a><br/>
Nothing much to this app; it just lets you view / download files you have stored on <a href="http://dropbox.com/">Dropbox</a>.</li>
<li><a href="http://www.appbrain.com/app/com.evernote">Evernote</a><br/>
Create and access your Evernote notes, including geotagging support.</li>
<li><a href="http://www.appbrain.com/app/com.joelapenna.foursquared">Foursquare</a><br/>
Check in on <a href="http://foursquare.com/">Foursquare</a>, get alerts when your friends check in nearby, view nearby venues, and search for venues.</li>
<li><a href="http://www.appbrain.com/app/com.levelup.foxyring">FoxyRing: Smart Ringtone</a><br/>
I’m not actually using this app currently, but you may find it useful regardless. The app allows you to adjust your ringtone settings based on ambient noise levels, time of day, and location, as well as overriding them for selected contacts.</li>
<li><a href="http://www.appbrain.com/app/com.glympse.android.glympse">Glympse</a><br/>
Unlike <a href="http://www.google.com/latitude">Google Latitude</a>, which shares your location to all of your contacts the whole time you have it active, <a href="http://glympse.com/">Glympse</a> provides more limited and granular sharing. When you create a “Glympse”, you specify a lifetime (eg. 30 minutes) after which the Glympse expires, and optionally start and destination locations; a unique code is then generated. You can then share the URL by text message or email, or you can post it on Facebook. The recipients can then view your location in realtime, until the Glympse expires, either when the specified time has elapsed, or by you manually expiring it at any time of your choosing.</li>
<li><a href="http://www.appbrain.com/app/com.google.android.apps.unveil">Google Goggles</a><br/>
This app is described as a “visual search” application. You take a picture of anything, and the application attempts to recognise it. This might mean scanning a barcode / QR code, scanning and OCRing text (which you can then translate or search for), detecting a well-known landmark, a work of art, and <a href="http://google.com/mobile/goggles">more</a>.</li>
<li><a href="http://www.appbrain.com/app/com.eclipsim.gpsstatus2">GPS Status</a><br/>
A simple app that allows you to visualize the GPS satellites in range, how many satellites you are locked onto, and see other information from the GPS receiver.</li>
<li><a href="http://www.appbrain.com/app/com.amazon.kindle">Kindle for Android</a><br/>
Amazon’s <a href="http://amazon.com/kindle">Kindle</a> application. Great for reading Kindle books, but if you can get them in ePub, rather use Aldiko (see above), as the Kindle app is not nearly as featureful.</li>
<li><a href="http://www.appbrain.com/app/com.nimbuzz">Nimbuzz</a><br/>
This is an IM / voice chat app. It has support for Skype, which is useful, as Fring no longer has Skype support, and the official Skype Android app is currently only available to Verizon subscribers through a special deal. It also supports a variety of IM networks, including Facebook, but unfortunately generic Jabber support is no longer available.</li>
<li><a href="http://www.appbrain.com/app/kenyu73.realsignal">Real Signal</a><br/>
A simple app that gives you a configurable cell signal strength meter, as well as allowing you to see the actual numerical signal strength.</li>
<li><a href="http://www.appbrain.com/app/com.rememberthemilk.MobileRTM">Remember The Milk</a><br/>
Only usable by RTM Pro subscribers (although you get a 14-day trial of Pro if you aren’t a subscriber). This lets you sync your RTM tasks to your phone, create tasks on your phone, and includes a widget for displaying tasks. Not strictly necessariy in conjuction with Astrid (see above), but I find it useful for managing additional task views (eg. my shopping list).</li>
<li><a href="http://www.appbrain.com/app/net.jjc1138.android.scrobbler">ScrobbleDroid</a><br/>
Just what it sounds like: scrobble your music activity to <a href="http://last.fm/">last.fm</a>. Compatible with various music players.</li>
<li><a href="http://www.appbrain.com/app/com.shazam.android">Shazam</a><br/>
Want to know what song is currently playing? Capture an audio sample via the phone’s microphone with this app, and then search their online database to identify the song.</li>
<li><a href="http://www.appbrain.com/app/com.google.android.apps.shopper">Shopper</a><br/>
This app overlaps with Google Goggles somewhat (see above). You can scan media (DVDs and CDs) or books by barcode or cover image, and then search for them online with Google Shopper; useful for doing some comparative shopping when you’re in a physical store.</li>
<li><a href="http://www.appbrain.com/app/com.codesector.speedview.free">SpeedView</a><br/>
A simple speedometer app that uses the GPS to track your speed.</li>
<li><a href="http://www.appbrain.com/app/com.tripit">TripIt</a><br/>
Sync your <a href="http://tripit.com/">TripIt</a> travel plans to your phone; allows for offline access, so you can get your important travel details even if you can’t get an internet connection from where you are.</li>
<li><a href="http://www.appbrain.com/app/com.farproc.wifi.analyzer">Wifi Analyzer</a><br/>
Visualize the wifi networks in range, including the channel and signal strength. Useful for selecting an unused channel for your wifi network, or picking an internet access point.</li>
</ul></div>
    </content>
    <updated>2010-07-22T23:18:58Z</updated>
    <published>2010-07-22T20:05:45Z</published>
    <category scheme="http://mithrandi.net/blog" term="Uncategorized"/>
    <category scheme="http://mithrandi.net/blog" term="android"/>
    <category scheme="http://mithrandi.net/blog" term="cellphone"/>
    <category scheme="http://mithrandi.net/blog" term="desire"/>
    <category scheme="http://mithrandi.net/blog" term="htc"/>
    <category scheme="http://mithrandi.net/blog" term="tech"/>
    <author>
      <name>mithrandi</name>
      <uri>http://mithrandi.net/</uri>
    </author>
    <source>
      <id>http://mithrandi.net/blog/feed/</id>
      <link href="http://mithrandi.net/blog" rel="alternate" type="text/html"/>
      <link href="http://mithrandi.net/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">the shards of meaning</subtitle>
      <title xml:lang="en">Shattered Crystalline Matrix</title>
      <updated>2010-08-15T01:52:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://confluence.za.net/blog/?p=200</id>
    <link href="http://confluence.za.net/blog/?p=200" rel="alternate" type="text/html"/>
    <link href="http://confluence.za.net/blog/?p=200#comments" rel="replies" type="text/html"/>
    <link href="http://confluence.za.net/blog/?feed=atom&amp;p=200" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Adrianna Pińska (Confluence): Forever Bubble</title>
    <summary xml:lang="en">Finished all the levels in the default Frozen Bubble levelset? Run out of custom levels from the interwebs?  Random levels too boring?   Making levels too hard?  Sounds like you need Forever Bubble — what I made on Tuesday night instead of working.
Randomly generate pretty levels — for ever!  Run it [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Finished all the levels in the default Frozen Bubble levelset? Run out of custom levels from the interwebs?  Random levels too boring?   Making levels too hard?  Sounds like you need <a href="http://locustforge.za.net/trac/browser/confluence/foreverbubble/foreverbubble.py">Forever Bubble</a> — what I made on Tuesday night instead of working.</p>
<p>Randomly generate pretty levels — for ever!  Run it with <tt>--help</tt> to see all the options.  You need the argparse and networkx python modules, and obviously python.  It should work on any *NIX.  The Frozen Bubble levels directory needs to exist if you want to save there.  Patches, ports and comments welcome.  If you generate a particularly awesome level, paste it into a comment; maybe I’ll compile a “greatest hits” levelset.</p></div>
    </content>
    <updated>2010-07-22T09:32:04Z</updated>
    <published>2010-07-22T09:29:38Z</published>
    <category scheme="http://confluence.za.net/blog" term="Games"/>
    <category scheme="http://confluence.za.net/blog" term="Tech and coding"/>
    <author>
      <name>confluence</name>
      <uri>http://confluence.za.net</uri>
    </author>
    <source>
      <id>http://confluence.za.net/blog/?feed=atom</id>
      <link href="http://confluence.za.net/blog" rel="alternate" type="text/html"/>
      <link href="http://confluence.za.net/blog/?feed=atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Powered by space monkeys!</subtitle>
      <title xml:lang="en">Confluence</title>
      <updated>2010-07-29T11:26:52Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-22557003.post-4348022487937572853</id>
    <link href="http://blog.grahampoulter.com/2010/07/calculating-true-cost-of-car-ownership.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/22557003/posts/default/4348022487937572853" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/22557003/posts/default/4348022487937572853" rel="self" type="application/atom+xml"/>
    <link href="http://blog.grahampoulter.com/2010/07/calculating-true-cost-of-car-ownership.html" rel="alternate" type="text/html"/>
    <title>Graham Poulter (verdant): Calculating the true cost of car ownership</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_rswIZalsPuc/TEbjvqdIa8I/AAAAAAAACJQ/Mt4wLYNt3vM/s1600/Ford_Fiesta_mk6_hatchback_car.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="123" src="http://2.bp.blogspot.com/_rswIZalsPuc/TEbjvqdIa8I/AAAAAAAACJQ/Mt4wLYNt3vM/s200/Ford_Fiesta_mk6_hatchback_car.jpg" width="200"/></a></div>In December 2008 I bought my 2004 model-year, 80000km Ford Fiesta 1.6i Ambiente for R72,800, freshly serviced. It now has 99,100km on the clock and went in early for the 100,000km service due to a fault that will yet cost me a couple grand more to get fixed properly.<br/>
<br/>
Here are the costs so far. Maintenance includes the service, two front tyres and wheel alignment, a battery, car washing, and a couple of random repairs.<br/>
<a name="more"/><br/>
<ul><li>Parts &amp; Maintenance: R4,539</li>
<li>Licensing: R872</li>
<li>Petrol: R11,854</li>
<li>Parking: R410</li>
<li>Fines: R615</li>
<li>Santam 3/F/T insurance: R2,989</li>
</ul>Total cost: R21,279<br/>
<br/>
But there's more: the car's current book value is R59,200 according to Santam, a depreciation of R13,600 since purchasing, bringing my total costs incurred during ownership to R34,879. Divide by 19,100km travel gives a complete running cost of R1.826 per kilometer.  Yet of this cost, petrol only makes up 62c.<br/>
<br/>
So, at least for me, petrol is only one-third of the all the costs I've incurred owning a car.  Note: I've include costs not part of proper Total Cost of Ownership: namely avoidable costs (fines/parking) and mileage-dependent costs (petrol,repairs).<br/>
<br/>
<i>Edit: Added insurance costs split out licensing as Alapan suggested, qualified total as "costs incurred".</i><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/22557003-4348022487937572853?l=blog.grahampoulter.com" width="1"/></div></div>
    </content>
    <updated>2010-07-21T12:11:17Z</updated>
    <published>2010-07-12T14:45:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="finance"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="review"/>
    <author>
      <name>Graham</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/16072516650932490004</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-22557003</id>
      <author>
        <name>Graham</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/16072516650932490004</uri>
      </author>
      <link href="http://blog.grahampoulter.com/feeds/posts/full" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/22557003/posts/full" rel="self" type="application/atom+xml"/>
      <link href="http://blog.grahampoulter.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/22557003/posts/full?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>Articles by Graham Poulter</subtitle>
      <title>Graham's Blog</title>
      <updated>2010-08-26T06:34:01Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-22557003.post-6066979767648969856</id>
    <link href="http://blog.grahampoulter.com/2010/07/how-to-reduce-3g-bandwidth-usage-and-3g.html#comment-form" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/22557003/posts/default/6066979767648969856" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/22557003/posts/default/6066979767648969856" rel="self" type="application/atom+xml"/>
    <link href="http://blog.grahampoulter.com/2010/07/how-to-reduce-3g-bandwidth-usage-and-3g.html" rel="alternate" type="text/html"/>
    <title>Graham Poulter (verdant): How to reduce 3G bandwidth usage, and 3G vs ADSL</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">My new place doesn't have ADSL yet, so I tethered my 3G iPhone to the computer. As a result, this post is about ways to make the computer sip bandwidth instead of guzzle it, and the changing break-even price between 3G and ADSL in South Africa.<br/>
<a name="more"/><br/>
Since I'm on MTN I needed to download a special config to enable tethering for the iPhone 3G, which is available from <a href="http://wan.to/iphone/">http://wan.to/iphone/</a>.  Here's a how-to for <a href="http://www.ubuntugeek.com/iphone-tethering-on-ubuntu-9-10-karmic.html">iPhone tethering in Ubuntu</a>.<br/>
<br/>
But 3G bandwidth in South Africa is expensive: <a href="http://www.mtn.co.za/FindaPlan/Pages/DataBun.aspx">R80 for a 100MB MTN bundle </a>(although its cheaper in bulk: R389 for a 2GB MTN bundle). The first time I plugged the phone into Windows the OS grabbed 40MB for updates.  After that I did all I could to minimise bandwidth consumption:<br/>
<br/>
<b>Operating System Tweaks</b> <br/>
<ul><li>Disable automatic download of operating system updates.</li>
<li>If using Windows, disable 3rd-parter auto-updaters using <a href="http://www.piriform.com/ccleaner">CCleaner</a> (disable Flash, Java,  Google updaters and any others)</li>
<li>Monitor TCP connections to see if any unexpected services  are using the internet (<a href="http://en.wikipedia.org/wiki/Lsof"><i>lsof -i</i></a>  on linux, <a href="http://technet.microsoft.com/en-us/sysinternals/bb897437.aspx">TcpView</a>  on Windows) and turn them off.</li>
<li>In iTunes, turn off update checking and change the default Podcast settings to "check manually" and never automatically download episodes!  That was another 20MB downloaded behind my back...</li>
</ul><b>Firefox Preferences </b><br/>
<ul><li>Disable Firefox update and add-on updates.</li>
<li>Uncheck the <i>Load images automatically</i> checkbox. Text-only default saves a <i>lot</i> of bandwidth: I'm not going to pay to see sidebar ads.</li>
<li>Install <a href="https://addons.mozilla.org/en-US/firefox/addon/433/">FlashBlock</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/1865/">AdBlock Plus</a> add-ons, to prevent downloading random content.</li>
<li>Install <a href="https://addons.mozilla.org/en-US/firefox/addon/59/">Firefox User Agent Switcher</a> to pretend to be a mobile browser and get smaller mobile versions of websites.  If pretending to be an iPhone, be aware that Firefox is <i>not</i> compatible with some iPhone-only webapps.  </li>
</ul><b>Google Chrome Options</b> <br/>
<ul><li>In Options, "Under the bonnet", disable checking for updates, and various things like search-completion and DNS prefetching.</li>
<li>In  "Content settings" select "Do not show any images" and "Do not allow any sites to use plug-ins"</li>
<li>Start Google Chrome with <i>--user-agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3" </i>to pretend its an iPhone<i>. </i>Chrome uses WebKit and will work with many iPhone webapps.</li>
</ul><br/>
With this setup I can do searching, mail and news-checking on PC tethered to the phone, without spending hundreds of rands for 3G bandwidth.<br/>
<br/>
<b>The iPhone is <i>faster</i> tethered??</b><br/>
<br/>
The strangest thing is that iPhone 3G internet suddenly gets <i>fast </i>when I tether it.  Safari on the phone at the same desk takes a while to load a heavy page, but plug the phone into the PC and use the PC browser and everything comes down at 500kbps.  I should double-check.  Does MTN have some way of knowing whether the phone is tethered and making 3G slow for mobile phones but fast when used like a 3G modem?   If so, is there a way for the iPhone to pretend its tethered when its not?<br/>
<br/>
<b>Comparing the cost of ADSL and 3G</b> <br/>
<br/>
A <a href="http://www.telkom.co.za/common/pricelist/prices/local/TELKOMCLOSER_CALLING_PLANS.HTML">Telkom Closer 2 calling plan</a> (free installation and free off-peak calls) is R170 per month, plus R200 pm for an <a href="http://www.mweb.co.za/adsl/">MWEB All-in-One 2GB ADSL</a> package - total of R370 per month.  That is <i>almost as expensive</i> as adding MTN's 2GB data bundle for R389 assuming an existing contract.  For more than 2GB per month, ADSL will be far cheaper, since R519 will buy the R170 Closer 2 line and R349 MWEB all-in-one uncapped ADSL at 384kbps.<br/>
<br/>
<i>Edit: Added iTunes podcast-disabling, and section on Google Chrome.</i><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/22557003-6066979767648969856?l=blog.grahampoulter.com" width="1"/></div></div>
    </content>
    <updated>2010-07-13T07:30:57Z</updated>
    <published>2010-07-09T15:22:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="tech"/>
    <author>
      <name>Graham</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/16072516650932490004</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-22557003</id>
      <author>
        <name>Graham</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/16072516650932490004</uri>
      </author>
      <link href="http://blog.grahampoulter.com/feeds/posts/full" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/22557003/posts/full" rel="self" type="application/atom+xml"/>
      <link href="http://blog.grahampoulter.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/22557003/posts/full?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>Articles by Graham Poulter</subtitle>
      <title>Graham's Blog</title>
      <updated>2010-08-26T06:34:01Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-6950106.post-6769738102863875023</id>
    <link href="http://blog.charlvn.com/feeds/6769738102863875023/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="https://www.blogger.com/comment.g?blogID=6950106&amp;postID=6769738102863875023" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/6950106/posts/default/6769738102863875023" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/6950106/posts/default/6769738102863875023" rel="self" type="application/atom+xml"/>
    <link href="http://blog.charlvn.com/2010/07/twitter-facebook-app-usability-fail.html" rel="alternate" type="text/html"/>
    <title>Charl van Niekerk (charlvn): Twitter Facebook App Usability Fail</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I just updated my Twitter profile picture and wanted to update my Facebook profile picture. What will the button do? Update my Facebook profile from my Twitter profile, or vice versa?</p>
<p class="post-image3"><a href="http://4.bp.blogspot.com/_k_papVvKUXc/TC_M864LE8I/AAAAAAAAAj4/PHfv_nZ7Juc/s1600/twitterfail.png"><img alt="Screenshot" src="http://4.bp.blogspot.com/_k_papVvKUXc/TC_M864LE8I/AAAAAAAAAj4/PHfv_nZ7Juc/s400/twitterfail.png"/></a></p>
<p>The answer: vice versa. Not cool guys. If it only works in one direction, please only make the arrow go in one direction!</p>
<p>A small thing, I know, and might sound like a nitpick. But it's these things that just tend to piss people off unnecessarily.</p><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/6950106-6769738102863875023?l=blog.charlvn.com" width="1"/></div></div>
    </content>
    <updated>2010-07-03T23:52:16Z</updated>
    <published>2010-07-03T23:50:00Z</published>
    <author>
      <name>Charl van Niekerk</name>
      <email>charlvn@charlvn.com</email>
      <uri>http://www.blogger.com/profile/16555795103153299929</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-6950106</id>
      <author>
        <name>Charl van Niekerk</name>
        <email>charlvn@charlvn.com</email>
        <uri>http://www.blogger.com/profile/16555795103153299929</uri>
      </author>
      <link href="http://blog.charlvn.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/6950106/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://blog.charlvn.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/6950106/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <subtitle>The lightsaber is mightier than the sword!</subtitle>
      <title>Charl van Niekerk</title>
      <updated>2010-09-05T18:00:19Z</updated>
    </source>
  </entry>
</feed>
