<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>computing done simply is computing done properly</description><title>offspin</title><generator>Tumblr (3.0; @offspinltd)</generator><link>http://www.offspin.com/</link><item><title>Recalling Windows</title><description>&lt;a href="http://www.telegraph.co.uk/technology/picture-galleries/9305367/Microsoft-Windows-Interfaces-through-the-years.html"&gt;Recalling Windows&lt;/a&gt;: &lt;p&gt;I have to take issue with &lt;a href="http://www.telegraph.co.uk/technology/picture-galleries/9305367/Microsoft-Windows-Interfaces-through-the-years.html?frame=2236437" target="_blank"&gt;slide 3&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The third major Windows release, on May 22, 1990, was the first time Windows graphics could compete with the interfaces used on the Apple Macintosh.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Really? I don’t see much to recommend &lt;a href="http://upload.wikimedia.org/wikipedia/en/9/96/Sys6screenshotbusy.png" target="_blank"&gt;this&lt;/a&gt; over &lt;a href="http://www.telegraph.co.uk/technology/picture-galleries/9305367/Microsoft-Windows-Interfaces-through-the-years.html?frame=2236434" target="_blank"&gt;this&lt;/a&gt;.&lt;/p&gt;</description><link>http://www.offspin.com/post/24200728786</link><guid>http://www.offspin.com/post/24200728786</guid><pubDate>Fri, 01 Jun 2012 17:47:00 +0100</pubDate></item><item><title>Closing Windows</title><description>&lt;p&gt;There&amp;#8217;s so much wrong &lt;a href="http://www.guardian.co.uk/technology/blog/2012/may/25/vs11-windows8-microsoft-fuss-nothing" target="_blank"&gt;here&lt;/a&gt; it&amp;#8217;s hard to know where to start. My eyes were particularly drawn to this gem of herd-mentality ignorance though:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class="Apple-style-span"&gt;Web apps are really important in the big picture. A developer who knows how to put together a state-of-the-art web application has his or her professional skillset in good shape. A developer who can build a Windows Forms app but is baffled by &amp;#8220;$(&amp;#8216;div&amp;#8217;).addClass(&amp;#8216;foobar&amp;#8217;)&amp;#8221; needs to take some time out of playing Diablo III and spend more time on&lt;a href="http://www.codeschool.com/"&gt;CodeSchool&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span class="Apple-style-span"&gt;No, I&amp;#8217;m not &lt;em&gt;baffled&lt;/em&gt; by that snippet of &amp;#8220;code&amp;#8221; (although I have no idea what Diablo III is). I am a bit fed up of seeing dangerous code like it, in the dangerous language of  Javascript, in the dangerous environment of a browser. Programmer-defined strings as keys - you will definitely need to hire Offspin to clean that database up. Let me know how you get on when some 20-something programmer spells &lt;em&gt;foobar &lt;/em&gt;as &lt;em&gt;fubar&lt;/em&gt; in the above. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="Apple-style-span"&gt;Windows Forms is the most solid and reliable platform for business apps. It&amp;#8217;s also 10x quicker to develop in than KiddieScript, and 10x quicker to execute. And it doesn&amp;#8217;t break with each version of Windows - unlike web apps which break every week when Firefox 92010 auto-installs with a brand new way of rendering borders. &lt;/span&gt;&lt;/p&gt;</description><link>http://www.offspin.com/post/23857017123</link><guid>http://www.offspin.com/post/23857017123</guid><pubDate>Sun, 27 May 2012 12:55:00 +0100</pubDate></item><item><title>Please Don't Learn To Code</title><description>&lt;a href="http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html"&gt;Please Don't Learn To Code&lt;/a&gt;: &lt;p&gt;I’m not a massive fan of Mr. Atwood, but he’s spot on here. Schools are for learning about academic subjects, not for learning how to do jobs.&lt;/p&gt;</description><link>http://www.offspin.com/post/23100624579</link><guid>http://www.offspin.com/post/23100624579</guid><pubDate>Tue, 15 May 2012 13:32:55 +0100</pubDate></item><item><title>AUTOEXEC.BAT lives on</title><description>&lt;p&gt;Amazing that there are still arbitrary size limits, even in 64-bit Windows 7. I was disappointed to see Powershell reporting that &lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt; was not found in the startup, after installing SQL Server 2012. Turns out that the PATH environment variable is limited to 2047 characters, and several installations had used this up.&lt;/p&gt;
&lt;p&gt;I am indebted to this site &lt;a href="http://www.kjctech.net/2010/04/18/how-to-make-an-old-school-subst-virtual-drive-persistent/"&gt;&lt;a href="http://www.kjctech.net/2010/04/18/how-to-make-an-old-school-subst-virtual-drive-persistent/"&gt;http://www.kjctech.net/2010/04/18/how-to-make-an-old-school-subst-virtual-drive-persistent/&lt;/a&gt;&lt;/a&gt; for the solution. Basically you use a registry hack to do what you would once have done in AUTOEXEC.BAT:&lt;/p&gt;
&lt;pre&gt;SUBST P: "C:\Program Files"
SUBST R: "C:\Program Files (x86)"
&lt;/pre&gt;
&lt;p&gt;then edit the path to replace those references with P:\ and R:\ and you&amp;#8217;re done.&lt;/p&gt;</description><link>http://www.offspin.com/post/22719113844</link><guid>http://www.offspin.com/post/22719113844</guid><pubDate>Wed, 09 May 2012 17:03:00 +0100</pubDate></item><item><title>Government Design Shock</title><description>&lt;a href="https://www.gov.uk/designprinciples"&gt;Government Design Shock&lt;/a&gt;: &lt;p&gt;The HN headline, “&lt;a href="https://www.gov.uk/designprinciples?"&gt;Digital Design Principles from the UK Gov&lt;/a&gt;” had me heading over there for a laugh. But actually a lot of it makes sense. I did like the first comment on HN from ktizo though:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class="comment"&gt;Holy crap, much of this makes sense. Who are these people and what have they done with the real government? I’m not falling for it. Must be a late april fool.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://www.offspin.com/post/20656258254</link><guid>http://www.offspin.com/post/20656258254</guid><pubDate>Sat, 07 Apr 2012 17:23:20 +0100</pubDate></item><item><title>Agile is a Sham</title><description>&lt;p&gt;It&amp;#8217;s inevitable that any &amp;#8220;light&amp;#8221; methodology will reduce the opportunities for methodologists. To counteract that, they make Agile more complicated than waterfall, add more compulsory meetings, and sell courses for &amp;#8220;certified scrum masters.&amp;#8221;  I was happy in previous jobs to start implementing some of the ideas in &lt;a href="http://martinfowler.com/articles/newMethodology.html" target="_blank"&gt;Martin Fowler&amp;#8217;s article&lt;/a&gt;. But seeing big corporations &amp;#8220;doing agile&amp;#8221; makes me nostalgic for &lt;a href="http://en.wikipedia.org/wiki/Structured_systems_analysis_and_design_method" target="_blank"&gt;SSADM&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Sadly I think the original link to this text has gone from the net, but it sums it up perfectly for me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;#8220;Making good software is hard, and anyone claiming to have a magical process that guarantees good software is selling snake oil. I can appreciate your wanting to make a buck, but would also seriously appreciate it if you could find some other industry besides software development to go screw up.&amp;#8221;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a class="tumblr_blog" href="http://williamedwardscoder.tumblr.com/post/20054342100/agile-is-a-sham"&gt;williamedwardscoder&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;thats SCRUM and TDD and all the rest; it is all those new ways of managing development projects and being super-productive and modern and buzzword-compliant; all the sprints, scrums, playing cards crass commercial nonsense.&lt;br/&gt;&lt;br/&gt;The management pitch is that by getting programmers to follow some process rote you will get good, predictable results out.&lt;br/&gt;&lt;br/&gt;See, the thing is, the success of the coding-part of a project is dependent on the calibre of the engineers doing that coding and not the process they follow.  &lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://williamedwardscoder.tumblr.com/post/20054342100/agile-is-a-sham"&gt;Read More&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://www.offspin.com/post/20077411755</link><guid>http://www.offspin.com/post/20077411755</guid><pubDate>Wed, 28 Mar 2012 21:56:00 +0100</pubDate></item><item><title>Digestion</title><description>&lt;p&gt;There doesn&amp;#8217;t seem to be a lot of consensus on adding security to web services. For example, here are two ways advertised for Rack (the Ruby framework on which &lt;a href="http://www.sinatrarb.com" target="_blank"&gt;Sinatra&lt;/a&gt; is built):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://rack.rubyforge.org/doc/Rack/Auth/Basic.html"&gt;Rack::Auth::Basic&lt;/a&gt; implements HTTP &lt;a href="http://rack.rubyforge.org/doc/Rack/Auth/Basic.html"&gt;Basic&lt;/a&gt; Authentication, as per RFC 2617.&lt;/p&gt;
&lt;p&gt;Initialize with the &lt;a href="http://rack.rubyforge.org/doc/Rack.html"&gt;Rack&lt;/a&gt; application that you want protecting, and a block that checks if a username and password pair are valid.&lt;/p&gt;
&lt;span&gt;
&lt;div id="description"&gt;
&lt;p&gt;&lt;a href="http://rack.rubyforge.org/doc/Rack/Auth/Digest/MD5.html"&gt;Rack::Auth::Digest::MD5&lt;/a&gt; implements the &lt;a href="http://rack.rubyforge.org/doc/Rack/Auth/Digest/MD5.html"&gt;MD5&lt;/a&gt; algorithm version of HTTP &lt;a href="http://rack.rubyforge.org/doc/Rack/Auth/Digest.html"&gt;Digest&lt;/a&gt; Authentication, as per RFC 2617.&lt;/p&gt;
&lt;p&gt;Initialize with the [Rack] application that you want protecting, and a block that looks up a plaintext password for a given username.&lt;/p&gt;
&lt;p&gt;opaque needs to be set to a constant base64/hexadecimal string.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="constants-list"&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;Oh. So I can send the password across the net in plain text, but I do at least have the ability to encrypt the password in the database (because I can re-encrypt the plaintext one in Rack::Auth::Basic to check it against.) Or I can have it encrypted across the net, but because Rack::Auth::Digest::MD5 needs a plaintext password I have to keep the passwords in clear text in the database. &lt;/p&gt;
&lt;p&gt;Actually you &lt;em&gt;can&lt;/em&gt; use encrypted passwords with digests: there is a &lt;em&gt;passwords_hashed&lt;/em&gt; property, but you only find this out by reading the source code.&lt;/p&gt;
&lt;p&gt;You see, this is where Microsoft win. On two counts:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Although many more lines of code are needed to implement authentication in a WCF service (check &lt;a href="https://github.com/offspin/building_blocks/blob/master/party/ruby/config.ru" target="_blank"&gt;this&lt;/a&gt; compared to &lt;a href="https://github.com/offspin/building_blocks/blob/master/party/dotnet/PartyService/Validator.cs" target="_blank"&gt;this&lt;/a&gt;), it is at least documented.&lt;/li&gt;
&lt;li&gt;Although you can&amp;#8217;t do digest authentication with WCF properly, in most cases I would be running on IIS and use Windows security, and I wouldn&amp;#8217;t need to handle authentication at all in my application. When a user leaves, the sysadmin just disables their Windows login. That&amp;#8217;s it.&lt;/li&gt;
&lt;/ol&gt;</description><link>http://www.offspin.com/post/17817423344</link><guid>http://www.offspin.com/post/17817423344</guid><pubDate>Sat, 18 Feb 2012 11:59:00 +0000</pubDate></item><item><title>Perceptions</title><description>&lt;p&gt;Been doing some boilerplate REST code, using the excellent &lt;a href="http://www.sinatrarb.com/" target="_blank"&gt;Sinatra&lt;/a&gt; on Ruby/Linux and &lt;a href="http://msdn.microsoft.com/en-us/library/dd203052.aspx" target="_blank"&gt;WCF&lt;/a&gt; on Windows.&lt;/p&gt;
&lt;p&gt;I did the Ruby stuff first and it seems really straightforward (once you have read the source code for the framework, because, like all open source stuff, the documentation is useless), and I&amp;#8217;m quite impressed that I don&amp;#8217;t need to create acres of object hierarchies just to generate some XML from the database. &lt;/p&gt;
&lt;p&gt;Because my test data is - well, crap, really - and I couldn&amp;#8217;t be bothered to fix it properly, I added a new column to a table to remove natural-key duplicates.  My gut feeling, given the amount of typing I&amp;#8217;d had to do to create the WCF service in the first place, was that it would take ages to add this new column to that, and not long to add it to the Ruby service. As it turned out though, &lt;a href="https://github.com/offspin/building_blocks/commit/3400841cd4efe90a8f572fa4b5af21db9c23484a" target="_blank"&gt;this commit&lt;/a&gt; has fewer changes than &lt;a href="https://github.com/offspin/building_blocks/commit/7ab6e66a995dbc808b5ce2c936b6fcb4e0c10651" target="_blank"&gt;this one&lt;/a&gt;&lt;/p&gt;</description><link>http://www.offspin.com/post/17226344378</link><guid>http://www.offspin.com/post/17226344378</guid><pubDate>Tue, 07 Feb 2012 21:47:00 +0000</pubDate></item><item><title>Raspberry Blown</title><description>&lt;p&gt;The Raspberry Pi becomes more of a joke every day. Today they offer some rather limp excuses for &lt;a href="http://www.raspberrypi.org/archives/509" target="_blank"&gt;why they can&amp;#8217;t manufacture it in the UK&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;TL;DR: it boils down to (a) UK manufacturers wanted to be paid for their work (b) the Government wants us to pay tax (c) all this eats into our margin.&lt;/p&gt;
&lt;p&gt;Margin?! They are a charity so why does their margin matter? As a charity they get buckets of tax relief anyway.&lt;/p&gt;
&lt;p&gt;I maintain that &lt;em&gt;there is no need to teach computer programming in schools. &lt;/em&gt;Use of the programming features found in the leading commercial product, Microsoft Excel, is more widely applicable for 90% of the jobs that the brighter kids will end up doing.&lt;/p&gt;
&lt;p&gt;They want to encourage these kids to go into technology and want tax relief and Government funding for computer programming lessons. But when they get a chance to support British industry they ignore it because it&amp;#8217;s cheaper to use foreign labour at below UK minimum wage in appalling working conditions. When they get a chance to pay some tax to support the funding they so passionately desire, they whine about it and pay taxes to foreign governments instead.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m enjoying this technical disaster movie. Stay tuned &amp;#8230;.&lt;/p&gt;</description><link>http://www.offspin.com/post/15665586803</link><guid>http://www.offspin.com/post/15665586803</guid><pubDate>Wed, 11 Jan 2012 09:50:32 +0000</pubDate></item><item><title>"Informally, the programs were called “ropes” because of the durable form of read-only..."</title><description>“Informally, the programs were called “ropes” because of the durable form of read-only memory into which they were transformed for flight, which resembled a rope of woven copper wire. For the lunar missions, 36K words of “fixed” (read-only) memory, each word consisting of 15 bits plus a parity bit, were available for the program. In addition there were 2K words of artfully timeshared “erasable” or RAM memory. Allowing for the identical Apollo guidance computer (AGC) in the Command Module (CM), containing a program called COLOSSUS, it is correct to say that we landed on the moon with 152 Kbytes of onboard computer memory.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://www.doneyles.com/LM/Tales.html"&gt;Apollo 11 and Other Screw-Ups&lt;/a&gt;&lt;/em&gt;</description><link>http://www.offspin.com/post/14020064966</link><guid>http://www.offspin.com/post/14020064966</guid><pubDate>Sat, 10 Dec 2011 17:18:00 +0000</pubDate></item><item><title>Railings</title><description>&lt;p&gt;Some private reactions to my dismissal of the Raspberry Pi involved the simplicity of setting up development environments in Linux.&lt;/p&gt;
&lt;p&gt;The most hyped business development framework on that platform at the moment has to be Ruby on Rails.  There are a lot of issues with its philosophy, but in general it is quite a good framework, if you ignore its database generation and employ a professional to design and build the database.&lt;/p&gt;
&lt;p&gt;Setting it up has always been a nightmare though. I decided that I would go through the pain again, with the latest version of Ubuntu and the latest versions of Ruby and Rails, and document it. I won&amp;#8217;t include rants about all the false starts before I got to this point.&lt;/p&gt;
&lt;p&gt;I use Oracle&amp;#8217;s VirtualBox for all my VM experiments. It&amp;#8217;s free, and to my mind more efficient than the paid alternatives (Parallels and VMWare) which I&amp;#8217;ve tried. It has a limitation on the Mac that you can only create 32-bit guests, but for experimental use that&amp;#8217;s not a major limitation.&lt;/p&gt;
&lt;p&gt;So I downloaded the latest 32-bit version of Ubuntu Server (don&amp;#8217;t bother with the full desktop version for rails development, you&amp;#8217;re better off using your normal machine and browser for testing.)  I installed a basic setup, with only OpenSSH Server ticked in the optional installations (so that I could access it by ssh from the MacBook host.) I installed all required updates, then builtRuby from source:&lt;/p&gt;
&lt;p&gt;First thing we need is the build environment (C and utilties)&lt;/p&gt;
&lt;pre&gt;   sudo apt-get install build-essential
&lt;/pre&gt;
&lt;p&gt;Then a load of stuff forming the ever-increasing list of things needed by Rails but not automatically installed by it, causing wacky runtime errors on first test (sorry, I did promise no ranting :-)&lt;/p&gt;
&lt;pre&gt;   sudo apt-get install sqlite3 libsqlite3-dev \
      zlib1g-dev libssl-dev libyaml-dev \
      libreadline6-dev nodejs&lt;/pre&gt;
&lt;p&gt;Then get the source&lt;/p&gt;
&lt;pre&gt;   wget htt p://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz 
   tar zxvf ruby-1.9.3-p0.tar.gz 
   cd ruby-1.9.3-p0/ 
   ./configure --prefix=/usr/local/ruby&lt;/pre&gt;
&lt;p&gt;(I like to put ruby in its own part of /usr/local, because the makefiles provided in the source build don&amp;#8217;t have an &amp;#8216;uninstall&amp;#8217; target, so this makes it easier to remove manually.)&lt;/p&gt;
&lt;pre&gt;   make
   sudo make install
&lt;/pre&gt;
&lt;p&gt;We then need to add the path into the system profile&lt;/p&gt;
&lt;pre&gt;   sudo vi /etc/profile.d/ruby.sh
&lt;/pre&gt;
&lt;p&gt;adding the lines:&lt;/p&gt;
&lt;pre&gt;   PATH=$PATH:/usr/local/ruby/bin
   export PATH
&lt;/pre&gt;
&lt;p&gt;After logging out and back in, we should now be able to see the executable&lt;/p&gt;
&lt;pre&gt;   ruby --version
&lt;/pre&gt;
&lt;p&gt;Before installing the Rails gems, make sure the gem system is up-to-date (note the path modification doesn&amp;#8217;t work for &lt;em&gt;sudo&lt;/em&gt;)&lt;/p&gt;
&lt;pre&gt;   sudo /usr/local/ruby/bin/gem update --system 
   sudo /usr/local/ruby/bin/gem install rails
&lt;/pre&gt;
&lt;p&gt;And after all this, you should get a working Rails&lt;/p&gt;
&lt;pre&gt;   rails new cwoir 
   cd cwoir 
   rails server
&lt;/pre&gt;
&lt;p&gt;This really is a lot of faff. It&amp;#8217;s very different to the last time I did it (Ubuntu 10 and Rails 3), and that was a pain as well. The Ubuntu and Rails communities both seem to delight in breaking everything at regular intervals, and going back to my point about the Pi, I can&amp;#8217;t see how this is easier than downloading the Express versions of Visual C# and SQL Server from Microsoft on to a Windows PC. I know quite a lot about Linux, I know how to build things from source, modify the system, etc. A beginner wanting to explore programming would surely be put off by all the incantations above, just to get to a stage where you have a working tool.&lt;/p&gt;</description><link>http://www.offspin.com/post/14012184732</link><guid>http://www.offspin.com/post/14012184732</guid><pubDate>Sat, 10 Dec 2011 13:19:00 +0000</pubDate></item><item><title>No pi for me</title><description>&lt;p&gt;The &lt;a href="http://www.raspberrypi.org/"&gt;Raspberry Pi&lt;/a&gt; is just wrong on so many levels.&lt;/p&gt;
&lt;p&gt;The BBC micro (which appears to be its inspiration) was not a cheap, entry-level computer. It was the most expensive micro on the market. This is more like the &lt;a href="http://www.old-computers.com/museum/computer.asp?c=961"&gt;Sinclair MK14&lt;/a&gt; and I predict that it will sell in around the same numbers.&lt;/p&gt;
&lt;p&gt;The computer fraternity always bemoan the fact that ICT (Government Orwell-speak for computing) as taught in schools is just &amp;#8220;using Word and Excel.&amp;#8221; But that is what 90% of the pupils will need to know about computers. And you can do more programming in Excel than on this thing.&lt;/p&gt;
&lt;p&gt;Computer programming is a job. Some call it a profession: I think it&amp;#8217;s a skilled trade. But whatever it is, it&amp;#8217;s not a fundamental part of schooling. We don&amp;#8217;t demand that schools teach kids how to sell cars or lay bricks.&lt;/p&gt;
&lt;p&gt;A better way to speed up the death-march computer projects of the 2020s would be to get kids to read books like &lt;a href="http://www.amazon.co.uk/Mythical-Month-Essays-Software-Engineering/dp/0201835959"&gt;The Mythical Man Month&lt;/a&gt; or &lt;a href="http://www.amazon.co.uk/Data-Reality-William-Kent/dp/1585009709/"&gt;Data and Reality&lt;/a&gt;. The technical bits of those can all be skipped as they are years out of date, but the rest is still very relevant, and in my experience, understood by a very small percentage of those involved in commissioning, managing or coding computer systems.&lt;/p&gt;</description><link>http://www.offspin.com/post/13795202155</link><guid>http://www.offspin.com/post/13795202155</guid><pubDate>Mon, 05 Dec 2011 22:25:02 +0000</pubDate></item><item><title>Windows Phone 7</title><description>&lt;p&gt;My wife has just got the new &lt;a href="http://www.nokia.co.uk/gb-en/products/phone/lumia800/" target="_blank"&gt;Nokia Lumia 800&lt;/a&gt;.  It is a really nice looking phone, to my eyes the only one that actually looks smarter than the iPhone, and Windows Phone 7 is a really slick system. But unfortunately there is a lot of functionality missing.&lt;/p&gt;
&lt;p&gt;Firstly, you can&amp;#8217;t transfer stuff to or from it with Bluetooth. That&amp;#8217;s pathetic - even the old 6310i could do that.&lt;/p&gt;
&lt;p&gt;You can&amp;#8217;t get any non-media file on to the device at all, because you can&amp;#8217;t save attachments from email. You can only add MP3 ringtones in a really complicated way, and can&amp;#8217;t add SMS tones at all - you&amp;#8217;re stuck with the manky set that&amp;#8217;s supplied.&lt;/p&gt;
&lt;p&gt;And you can&amp;#8217;t sync contacts to Outlook (unless you use Exchange Server) - you have to put all of them on a Windows Live account first. Unbelievable that they don&amp;#8217;t support their own email client.&lt;/p&gt;
&lt;p&gt;These flaws are such a pity because the Nokia&amp;#8217;s a nice phone and WP7 has the makings of a brilliant OS. But in its current version it could not replace my iPhone.&lt;/p&gt;</description><link>http://www.offspin.com/post/13463854410</link><guid>http://www.offspin.com/post/13463854410</guid><pubDate>Mon, 28 Nov 2011 20:22:00 +0000</pubDate></item><item><title>12-factor</title><description>&lt;a href="http://www.12factor.net/"&gt;12-factor&lt;/a&gt;: &lt;p&gt;A lot of this is good sense for any application, and a lot of it is the stuff I’ve been advocating and implementing (where permitted) for years. I’m interested in the idea of environment variables instead of config files. I’ve always been uncomfortable with the ‘config not checked in’ idea, and I’ve suffered from the flaws, but I’m still not sure env vars are the answer. Given the quality of most of the rest of the site though, I’m prepared to look into it.&lt;/p&gt;</description><link>http://www.offspin.com/post/13221201071</link><guid>http://www.offspin.com/post/13221201071</guid><pubDate>Wed, 23 Nov 2011 21:57:05 +0000</pubDate></item><item><title>Restoring the MacBook</title><description>&lt;p&gt;What they don&amp;#8217;t tell you (this is Lion by the way, I never tried this with Snow Leopard):&lt;/p&gt;
&lt;p&gt;When you restore from a Time Machine backup to a brand new drive, it doesn&amp;#8217;t recreate the recovery partition. And then you can&amp;#8217;t recreate the recovery partition. So unless you did a USB key recovery image beforehand (I did (&lt;a href="http://support.apple.com/kb/HT4848"&gt;http://support.apple.com/kb/HT4848&lt;/a&gt;)), you will never be able to restore again.  Once the recovery partition is gone, you can&amp;#8217;t use the above link to create a new USB recovery image, because it requires the recovery partition to be in place.&lt;/p&gt;</description><link>http://www.offspin.com/post/13221068280</link><guid>http://www.offspin.com/post/13221068280</guid><pubDate>Wed, 23 Nov 2011 21:54:00 +0000</pubDate></item><item><title>The Mythical Man-Month</title><description>&lt;a href="http://www.win-vector.com/blog/2011/10/the-mythical-man-month-is-still-a-good-read/"&gt;The Mythical Man-Month&lt;/a&gt;: &lt;p&gt;&lt;span&gt;You wouldn’t think anything new could be said about this classic work. But I particularly liked this bullet point:&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;System architects once were the people who said “no” to features to maintain design consistency and coherency. Now architects are the people who buy and bring in external frameworks and technologies (killing any chance of consistency or coherency). Kind of like the Fahrenheit 451 quote “I remember firemen used to fight fires.”&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description><link>http://www.offspin.com/post/11831926144</link><guid>http://www.offspin.com/post/11831926144</guid><pubDate>Sun, 23 Oct 2011 21:13:26 +0100</pubDate></item><item><title>Dennis Ritchie, 1941-2011</title><description>&lt;p&gt;Dennis Ritchie has died. He was one of the inventors of Unix and C. Without those, there would be no Mac OS X and no iPhone App development tools (well not in Obj-C anyway).&lt;/p&gt;
&lt;p&gt;I suspect the mainstream media will not be quite all over this.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d just like to say that his book on the C programming language is one of the few old programming books I&amp;#8217;ve hung on to. Because it&amp;#8217;s so good.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.tagxedo.com/rip-dennis-ritchie-father-of-unix-and-c-58975"&gt;http://blog.tagxedo.com/rip-dennis-ritchie-father-of-unix-and-c-58975&lt;/a&gt;&lt;/p&gt;</description><link>http://www.offspin.com/post/11392021853</link><guid>http://www.offspin.com/post/11392021853</guid><pubDate>Thu, 13 Oct 2011 12:19:49 +0100</pubDate></item><item><title>Why your ideas won't work</title><description>&lt;a href="http://colinm.org/language_checklist.html"&gt;Why your ideas won't work&lt;/a&gt;</description><link>http://www.offspin.com/post/11327660042</link><guid>http://www.offspin.com/post/11327660042</guid><pubDate>Tue, 11 Oct 2011 21:44:01 +0100</pubDate></item><item><title>TDD is hocus</title><description>&lt;a href="http://www.writemoretests.com/2011/09/test-driven-development-give-me-break.html"&gt;TDD is hocus&lt;/a&gt;: &lt;p&gt;Too right. I have never bothered with these automated tests, nearly everyone I see using them turns them off during development and then hands a junior programmer the job of getting them back up-to-date. They do absolutely &lt;em&gt;nothing&lt;/em&gt; to improve the quality of the code, they just create busy-work for third-rate programmers who can’t be trusted with writing second-level forms.&lt;/p&gt;</description><link>http://www.offspin.com/post/10598023802</link><guid>http://www.offspin.com/post/10598023802</guid><pubDate>Sat, 24 Sep 2011 15:58:56 +0100</pubDate></item><item><title>HP in decline</title><description>&lt;a href="http://www.cringely.com/2011/08/losing-the-hp-way/"&gt;HP in decline&lt;/a&gt;: &lt;p&gt;Cringely, who &lt;a target="_blank" href="http://www.cringely.com/2011/02/why-leo-apotheker-will-be-fired-from-hewlett-packard/"&gt;predicted in February that Apotheker would be fired&lt;/a&gt;, explains the HP slow motion car crash.&lt;/p&gt;</description><link>http://www.offspin.com/post/10551118047</link><guid>http://www.offspin.com/post/10551118047</guid><pubDate>Fri, 23 Sep 2011 08:51:17 +0100</pubDate></item></channel></rss>

