Innovation in Software

Vagueware

Archive for the ‘history’ tag

You are reading a blog - Innovation in Software - no longer under active maintenance. These pages are kept here for archive purposes. If you wish to find out more about Vagueware please read our current website which will include links to the new blogs when live.

My Life in Computers

with 2 comments

Will writes about his life in computers as part of another meme that seems to be spreading. My life in computers is indicative of quite how poor my family were when I was growing up – a bit painful in places, alas.

I remember my first experience of a computer at home was my elder sister’s Vic20. I don’t remember ever getting a chance to do more than play games on it when I was about 5 or so, but I remember looking at the source code for BASIC programs and thinking “I wish I could do that”. Occasionally my Dad (at that time an accountant, he later became a systems analyst working on AS/400 systems in California) would bring home an Apple or IBM system to take a look at.

At primary school we regularly got to work on a BBC Master, mostly working in a language called LOGO that was meant to teach us about angles, recursion in geometry and the basics of algorithms I suppose.

When I got to secondary school, I started to teach myself during lunch breaks in the computer room – by borrowing a book from the school library on BBC BASIC and taking up the computer teacher’s offer of letting us use the computer suite for our own projects during Lent in return for a donation to CAFOD (I went to a Catholic school), I got to understand the basics.

For several years I didn’t have access to a computer at all at home. I would spend my evenings writing out programs on paper at home and dry-running them before going into school the next day and typing them in and seeing how I fared. This meant I developed a real eye for syntax that I’ve since lost in lieu of “Save, tab over, run” – something I need to get back, perhaps.

At the age of about 12 or 13 I managed to get an Amstrad CPC 6128 at home thanks to my Dad swagging it from my now step-Mum for a few week’s pocket money. I should point out that this was at a time when most of my peers were coding on Amiga 500 and Atari ST machines – I was fully a whole generation out – and it would be like giving somebody an Amiga today. Even so, I was loved it and was grateful for the chance to write code at home. It had the same 3” disk as Amstrad PCW machines, it’s own green monochrome monitor (CPCs didn’t plug into TVs) that used to give me headaches and my mother would complain if I left it set up in the living room for more than about 15 minutes.

Around this time my Father then donated to me an original twin-floppy IBM XT. It also had a dedicated green screen and was at the time I got it approximately 7-8 years old. It didn’t have a graphics card and had serious problems running contemporary software, however it did introduce me to MS-DOS and the ‘Microsoft way’ of doing certain things. This machine died when I took it around to a friend’s house a few years later, and I have a horrible feeling my step-dad eventually put the enclosure in a bin – something I deeply regret now for the environmental consequences as much as the fact I would love to have kept it for sentimental reasons.

I also seem to recall a BBC Micro coming home around this time that was pretty much DOA despite it costing a considerable amount to purchase from one of my school teachers. That little lesson taught me a lot about who to trust and how to check out a machine completely before purchasing – a boot-up is not the same as a functioning machine. I don’t know where that machine ended up.

I mostly however begged, borrowed and paid for computer time – my hometown of New Mills was the first place in the UK outside of London to get a cyber-cafe, and so I spent a lot of time hanging around there and the computer suite at the sixth form college I ended up attending (The Ridge) using Internet access as and when I could and coding up stuff in QBasic and occasionally C. At University I was regularly in the computer labs, almost moving into UMIST’s MSS J9 and Sackville cluster at times. I was working full-time in the suite in Kilburn building in the summer of 1997, and spent most of time trying to work out how to get around the various systems admins had put in place to prevent me from doing useful things (like, for example, run a decent compiler).

It wasn’t until I was about 20 years old that I actually ended up owning my own system that could reasonably be argued as being ‘up-to-date’. Prior to that, it had always been somebody else’s hardware or a generation or two out of date. That first machine was a cheap Taiwanese import laptop with an AMD processor bought from Morgan Computer on Piccadilly approach. I carried it through a mob of rioting Millwall fans and Police horses outside Piccadilly station to get it home.

Since then I’ve owned a whole variety of machines, mostly bought off eBay because I hate paying showroom prices and know what I’m doing. The most noted of these machines amongst friends being my Thinkpad 240 (nicknamed ‘Stinky’) which I infamously took to pieces in the middle of the pub during a BSDUG because somebody had a screwdriver handy. My most recent self-build was a Shuttle XPC that now serves my sister, brother-in-law and niece at their home in the Peak District: it is considerably faster and better equipped than any machine I could have ever dreamed of owning as a teenager.

I’m writing this on an iBook G4 which has been my primary machine for the last year or so. I have with me an old Celeron desktop I use for the occasional journey into Windows, a pile of older hardware I keep because it deserves a good home (a Sun IPX, a Vax, various old laptops that served me well over the years). It’s time for a major round of upgrades though.

I’m currently thinking through my choices on my next purchase, planned for June or thereabouts. Currently I’m thinking a 15” Macbook might be a good fit because I need to be able to run Linux, OS X and Vista and one machine to do all three would be a good fit. Staying portable gives me some flexibility as well, although the price premium for Apple hardware is really bothering me – I might just abandon supporting OS X and go for a cheaper x86 machine that is better equipped.

Written by Paul Robinson

April 16th, 2007 at 11:00 am

Posted in Hardware, Home

Tagged with , , ,

Programmers: Engineers or Crafts[wo]men?

with 5 comments

”It is true some rather interesting projects get abandoned by their developers or shall I say their artists. Most of them are sculptures made out of C (or any other language). And this is the biggest handicap of those programs. They aren’t engineered they get crafted.” – Reiner on www.gnomedesktop.org

When I was 11, I wandered into the school library and on the shelves found a book called “Learn to program BASIC on the BBC Micro”. It was about 60 pages long, and most of each page was covered with pictures of robots telling me what ‘PRINT’ did. Coincidentally the time of year was Lent, and it being a Catholic school I had the option of foregoing lunch and instead donating 40 pence to CAFOD to use the computer room for ‘personal projects’. This was how I began my study. It quickly became an obsession.

By the time I got to 14, I had discovered a few things:

  • I couldn’t afford a real computer, but it didn’t matter. This was 1992 and yet whilst my richer friends were playing with Amiga 500 and Atart ST machines, I was stuck with an Amstrad CPC 6128 my father had kindly managed to donate. This was where I learnt the true value of engineering within constraints.
  • I didn’t want to study Computer Science. This, I still believe was the right decision. However, my failing was thinking that I wanted to study Software Engineering. I didn’t want to be an academic trying to understand the philosophy of bubble sorting – I wanted to change the World and write software that would help run The Future, and I figured Software Engineering would give that to me.
  • My school teachers had realised I was the best person to call when a computer broke somewhere in the building, and as a result, I knew I would probably be able to make a living out of my obsession if I needed to. Knowing that you can make a living with the skills you have when you’re 14 is… empowering.

I set my course. I worked just about hard enough (but no harder) to get to UMIST – now merged into Manchester University a campus I still live on the edge of – and studied Software Engineering.

Actually, that’s a lie.

I was on the course, sure, but I chose to get drunk most of the time instead. See, the problem was, fine, I could learn formal specification and learn how to build a compiler, and that would all be swell, but I now realised it wasn’t going to change anything. I was not going to be able to express myself the way I wanted to if I was confined by determining the correctness of my code mathematically. I thought Software Engineering was more concrete than Computer Science, but in actual fact it was just the same abstract notions but sat in front of a screen and expressing them via C instead of in the library expressing them via pseudo-code.

What I then realised is something I should have had the guidance of when I was 14: I didn’t really want to be an engineer. Engineers do what they’re told, follow a plan, make sure the foundations are set correctly and regulations are followed.

I wanted to be an architect, a craftsman, an artisan. The depression of the realisation that I had taken the wrong course actually drove me to the point of barely turning up for class at all. I ended up taking on a variety of full-time jobs whilst attending exams so I at least came out with a piece of paper. I also spent a lot of time getting drunk and playing pool.

This conflict still continues inside me – sometimes I feel I want to be the engineer, building automated tests, writing out my code in formal proofs, knowing that my code is correct. Other times I want to be the scupltor, using the IDE like a blank slab of marble or a lump of clay awaiting moulding. Some of my best programming has come from just writing a line that kind of looks like it might be the core of what I wanted to do and then wrapping it in other code that made it work. That’s hardly the way you would want a fly-by-wire or power-station safety system to be written, but it is immensely satisfying. It’s fun. It’s art.

So now I look at these formal methodologies, whether they be more traditional lifecycle-led with their heavy requirements capture stage at the front, or if they’re agile, and I think “what a bore”. In some ways I’m drawn more to agile methodologies not because they are more productive, but because they are more fun. They are there to provide confidence to the client, sure, but they allow the artisan programmer out, free to roam.

It feels wrong though – when I go out roaming, I feel as though I am not a professional programmer. All of a sudden I feel I am an artist playing amateur programmer, and I live in fear of being discovered and found out. I constrain myself with project management tools and development methodologies, not because I think they do me any good, but because they stop me feeling guilty.

You know how I spend most of my day? I write a lot of Ruby, specifically Ruby on Rails. I reckon I must spend about 20%-25% of my time looking things up in the API docs for either Ruby or Rails. Do I know how to code in them? Sure I do. I just don’t bother memorising the API. I just find the bit I need, the syntax and method parameters that need to be called right there and then. With time some methods become second-nature, but I don’t actively memorise this stuff. I’m too busy coming up with my own ideas to remember other people’s. How un-engineer-like is that? How skittish and flaky is it? I don’t think I even deserve to be called a programmer if I do things like that.

But I bet I have more fun than most engineers. Because as the code comes out, at the end, it feels like a piece of art is being formed. Sure it might be a reporting module that spits out graphs and pie charts, but I know the inner beauty of that little bit of optomisation that made it query the database 12 times rather than 800 times. I know how I flitted from the model, to the view, to the controller, hoisting each little function up like a piece of scaffolding. I know that before I started there was nothing, and now there is code, there is function, there is value. The World is very slightly different for the users.

If I could go back and give advice to my 14-year old self on how to become a professional software engineer, you know what I’d tell him? Go and study Art or Philosophy. It will do more for your ability to create than any Computer Science course ever will – and you can learn all the CS stuff from Knuth anyway, if you need to. I’d tell him that the true beauty of this profession is that it has the advantages of being a writer, a musician or artist except it’s far more profitable. I’d point out that understanding how code works isn’t as important as understanding how you work.

I’d also probably tell him which girls secretly fancied him and to stay off the beer when he got to Uni, but that would spoil the journey of excrutiating self-discovery. :-)

So I’m keen to learn: am I alone in this industry? Should I be stripped of the title ‘Programmer’ or even more laughably ‘Software Engineer’ and just be known as ‘that guy who does that stuff, with you know, the computers and stuff’? Is the real motivation behind the uptake of Agile not the fact it makes people more productive, but it makes people feel more natural, more like artists? What would you tell the younger you about how to harness ‘the art’ or the ‘the science’ of programming?

Written by Paul Robinson

September 19th, 2006 at 11:00 am

Why Manchester?

without comments

Vagueware is based in Manchester, England. This is not an insignificant fact.

Manchester was once known as the heart of the Industrial Revolution. You can walk around the city and if you know your history, will be confronted over and over again with stories of world-changing events occuring right here.

The canals around Castlefield are on a tentative UNESCO World Heritage site shortlist because of their importance in the 19th century – the Bridgewater canal was the first artificial inland waterway to be built in Britain since Roman times.

Jospeh Whitworth invented the design of the standardised screw on nuts and bolts here – several streets and buildings are named for him. Before that he had worked on Babbage’s calculating machine.

John Dalton worked – he taught Joule, also a notable man at what later became the University – and studied here and looked after the clock in the Portico library which is still one of the most beautiful libraries in Britain. Manchester was home to the first rate-supported public lending library in the country.

The University was the place where Rutherford and Bohr invented the field of nuclear physics (Rutherford’s lab is now so highly radio-active that it is entombed in concrete) and it is also the place where Turing worked on The Manchester Mark I.

The political reform acts of the 19th-century that reformed democracy for all, were kick-started by the movement started here in Manchester as a result of Peterloo and the Free Trade Movement. Emily Pankhurst had her home here, and Manchester was a central force in the Suffragette movement with notable support from one of the more famous locally-born politicians

Elizabeth Gaskell called this city home, and invited Dickens to visit – at the time 40,000 people a week were moving to Manchester looking for work, and conditions were grim. No surprise then that Marx and Engels travelled here and sat in the local pubs considering the conditions of the working man – Engels paid for much of Marx’s life out of the proceeds of his Manchester business, as it happens.

It’s an important place. It has a history that is neglected even by the locals, but there are plenty of reasons other than those above that mean I want to keep Vagueware here and let it flourish.

First off, it’s a University town – the largest in Europe. Whilst I don’t have a huge amount of respect for the discoveries of academics who don’t have to fiscally justify their research, being in a city full of young, enthusiastic people with fresh ideas is infectious. If you sit in a coffee shop in Silicon Valley you probably hear all about who is sleeping with who in some D-list tech company nobody cares about. In Manchester, you overhear people’s dreams.

Secondly, it’s still a relatively cheap place to live. Not cheap in real terms, but compared to London it’s a snip. What’s more, it’s small so you don’t need a car or an infinite supply of change for black cabs and tubes to get around – I can walk everywhere I need, and afford to live here on a lowish income. I live 500 yards from a mainline train station, 25 minutes from an international airport and less than an hour to either the Peak District or the Lake District (everybody needs a day off). It’s a great place to start a business.

More importantly though, there is a tech industry here waiting to burst out. Most of the firms tend to be standard new media web development shops that take on bespoke work – there’s plenty enough to go around. What isn’t here is a company that wants to build dot.com products/services and let them stand on their own. There is no Ycombinator, no 37signals, no groups of people ready to take on the World. What isn’t here is a company championing leadership, innovation and being brave. That’s where I want Vagueware to fit in.

Over the next 12-36 months, I want Vagueware to show it is possible to build viable dot.com entities and base them out of Manchester. Once I do it, others will follow. And then, with a bit of luck, the next industrial revolution can start to take off in the home of the last one.

Gutsy talk this, I know. Almost arrogant. But heck, if I fail, who is going to care? I’d rather fail spectacularly than get by meekly.

Written by Paul Robinson

September 5th, 2006 at 12:00 pm