“Pity”, ninjas, and how not to suck

TL;DR

Another post giving the 501 Developer Manifesto more attention than it deserves. I honestly wouldn’t waste my time reading it if I were you.

Why are you still here? If you’ve seriously got nothing better to do than read this, I pity you. I really, really pity you. Because you’re pitiable.

“Pity” is a derogatory word

Let’s get this one out of the way for a start. There’s a reason why “I don’t want your pity” is one of the hallmark clichés of badly written dialogue. If there is probably some pity in your attitude toward someone, it implies that you feel lucky not to be that person; that their situation is deficient in some way that yours is not. If you are making specific reference to an aspect of that someone’s life that they consider important and special and even defining, then you shouldn’t be surprised when they are insulted, and paraphrase Fight Club in Hacker News comments.

A clarification of terms

I shouldn’t really need to write this, as this post on Scott Hanselman’s blog (the first link on the 501 Manifesto page) explains very clearly what is intended by the epithet “501 developer”. It has nothing to do with what time you leave work, or how hard you work while you are there. Being a 501 developer means that you have no great enthusiasm for your work; no desire to learn new and interesting things; no ambition within your chosen career. It means you’re probably just grinding the levels until you get to a better-paid management role, which you will then carry out very badly because you don’t really understand thing one about software development.

If you:

  • Never read technical blogs
  • Are not aware of open source projects (unless they’re forced on you at work)
  • Have never attended any kind of developer-focused event
  • Don’t own any books about coding or productivity
  • Aren’t quite sure why Github is called Github
  • Couldn’t* care less about trying to be better at your job

…then you are a 501 developer, and no, we don’t respect you for it. If you do any of those things, you’re not a 501 developer, regardless of what time you leave work, and I respect you as a professional and as a human being.

*Yes, Americans, the term is “couldn’t care less”. “I could care less” means “I care”.

It is perfectly possible to arrive at work at 9am, leave work at 5 or 5:30pm, and yet still read blogs and discuss software development on the internet and follow internet-famous software people Twitter and go to your local user group when there’s a speaker talking about something that interests you and read Clean Code and maybe do a little bit of extra-curricular coding with something new, and still spend plenty of time with your family and your Moog synthesiser and collection of blank cassette tapes.

That’s the real issue here, is that by taking the time to register a domain and create a web page and attach a blog to it, and by linking to Computer Zen and Coding Horror and making apparent his knowledge of the Agile manifesto, the author of the 501 manifesto has identified himself as anything but a 501 developer. Maybe the problem is that he’s lucky enough to have never worked with an actual 501 developer, in a massive room full of 501 developers for a 501 company in a 501 vertical market, so he doesn’t understand just how bad it can be.

Because you don’t have to be obsessive about it. You don’t have to self-identify as a ninja or a rock-star or a temporally-displaced Olympian demi-god (no? Just me then*). You don’t have to write the blogs, or speak at the user groups, or write the books, or make the next big thing to avoid being classified 501 (but the people who do those things would prefer it if you didn’t make fun of them for it). You just need to care, just a little bit, that’s all.

*Irony, dipshit.

One last thing

If you do have an obsession, and it’s not your job, what are you doing to rectify that situation? Because if you have one all-consuming passion and it’s not what you do all day, every day, and the thing that you do do all day every day keeps you from that passion, that sucks.

It sucks to be in that situation. And you can write a manifesto and you can think you’re “taking back the word” and you can convince yourself the people you work with who love what they’re doing and can’t believe somebody’s paying them to do it are pitiable, but at the end of the day you’re the one being kept from doing the thing you really love by having to do something you merely tolerate because you have two kids and an oppressive mortgage.

My ideal laptop

In which I want the moon on a stick, I do.

As I browse around fantasy-laptop-shopping, I see lots of laptops which have features that I really, really want, but I’ve never found one laptop that has everything. So I’m going to outline the spec I want, comprised entirely of things that are either available in current laptops or, at least, announced and imminent parts.

Currently I have a late-2009 15” MacBook Pro, which has a 2.53Ghz Core 2 Duo CPU, and has been upgraded with 8GB of RAM and a 512GB Crucial m4 SSD. I also have access to a 17” HP Envy, on loan from my last employer while I am doing some freelance work for them.

I do most of my own development, including open source stuff and some speculative projects, on the MacBook, using Parallels 7 to virtualise Windows 7, because when I had it running under Snow Leopard’s Boot Camp it kept blue-screening at inopportune moments. Like five minutes from the end of my presentation at DDD SouthWest 2011.

The MacBook also gets used for most of my speaking engagements, although I have been known to use the Envy when I’m talking about Azure because I’m not sure about running the Azure Emulator inside an emulator.

The Spec

Form factor

I’m happy with the size and weight of the MacBook Pro, although obviously thinner and lighter is always welcome. Remains to be seen whether those Air-style MacBook Pro rumours are true or not. The other good thing about Macs is their small, light power supplies. The brick that comes with the Envy seems to weigh almost as much as the laptop itself, and it insists on you dragging the three-pronged not-quite-a-kettle lead around too. It all adds to the mass and bulk, especially on long trips to overseas conferences. Just make it as thin and light as you can; whatever it adds to the cost I’ll easily make up in savings on chiropractic bills.

CPU

I’m running Visual Studio 2010 and 2011, plus SQL Server 2008 R2 and 2012 and IIS 7.5 or IIS 8 running as services, and emulators for Azure and Windows Phone and VMs for Linux and suchlike, and a whole bunch of other cool beta stuff because I’m an incurable neophile, so I want a beefy CPU. I’m thinking Intel Core i7-3820QM, which is supposed to be available next month and is based on the new 22nm Ivy Bridge architecture. Shouldn’t be too much of a problem to get that.

Hard disk

Needs to be solid-state, obviously. In pure fantasy-land, I’d have a pair of 512GB SSDs set up in RAID/0, but I’d settle for one 512GB SSD (which I already own) and a 750GB Seagate Momentus XT secondary drive. So two drive bays, obviously.

Before we move on, let me just suggest one extra thing: can I get an easily-accessible HDD/SDD caddy system for the primary drive (maybe a bit like a PCMCIA), so I can switch between operating systems by swapping drives? That would be awesome.

Memory

The Lenovo ThinkPad W520 is the existing example here: you can spec that up with 32GB of RAM. That should do it. But can I please have that in a laptop that weighs less than my head? And a tip: if adding 24GB of RAM to your default 8GB spec in your “Configure your laptop” page costs more than buying 32GB of compatible RAM from Crucial, guess which I’m going to do? Yeah.

GPU

I don’t play games on PC, because I have an Xbox 360 and a PS3 and a Wii and a DS and a PS Vita so I’m really OK for that stuff. But there are other uses for GPUs these days: I want to play with C++ AMP, and make backups of my Blu-ray and DVD discs, which takes much less time when you’ve got a few CUDA cores kicking around. So I’d like an nVidia GPU, preferably one of the 500M series, although I’d accept an NVS 4200M (which appears to be the new Quadro). Obviously the GPU should be switchable, so it can fall back to the integrated graphics in the CPU when running unplugged.

Update: Peter Bright has pointed out that Quick Sync is better than GPU for video encoding/transcoding, which is true. I still want a GPU for playing with C++ AMP, though.

Screen

One of these, please. 15”, and 16:10 (or 8:5) format. 16:9 is all very well for watching movies, but when you’re working on text, that extra height is really nice to have. Oh, and make it multi-touch with Gorilla Glass 2 while you’re at it. Ta.

Keyboard

A nice, backlit, chiclet keyboard, obviously. With a physical Insert key, because I use ReSharper and there’s a ton of neat things hiding under the Alt-Ins keyboard shortcut. Oh, and if you’re Apple, put bloody # on a key already. Seriously.

If you want to do the Razer thing and bung some programmable OLED keys on there, that would be awesome, but stick them on the top row, not to one side where I’ll keep hitting them instead of Esc or Ctrl or Backspace.

Track-pad

A decent track-pad, which goes *click* when you click it, is essential, and it should support gestures like two-finger scrolling and… actually, just two-finger scrolling would be fine. Yes, I know the screen is touch, but it’s all the way over there; I can’t be reaching for that all the time. Again, Apple is the exemplar here.

Connectivity

A built-in VGA output would be useful for attaching to all those 1024×768 projectors, but stick a Mini DisplayPort on there too, like HP have done on my Envy.

A decent set of USB 3.0 ports (at least two), maybe with a couple of 2.0 for keyboard and mouse.

Really good WiFi is more important than a physical Ethernet port, and frankly, I’m not that fussed about being able to fit a 3G SIM until I can find a carrier who will give me multiple SIMs for the same account/allowance. Until that frabjous day, I will make do with my MiFi thing. Bluetooth, though, I need Bluetooth for communicating with the Lego Mindstorms robots.

Personally, I don’t care whether it’s got an SD/XD/CF/BS slot or not, but people seem to like them, so I have no objection to there being one. Put one on, or don’t, it’s all good. Its presence, or lack thereof, is not going to stop me buying this thing, is what I’m saying.

Docking station

Now, what you could do here, Mr/Ms Laptop Manufacturer, is take a leaf out of Sony’s Vaio Z book and offer an optical-cable-connected docking station which has got a full desktop GPU in it and can drive 3 monitors. But for preference, make it an nVidia GPU. If you can do that, then the on-board graphics can be the NVS chip.

Optical drive

Yeah, no.

In summary, then:

I want the moon on a stick. But if you build the moon on a stick, I will buy it, and so will others like me. And there are enough like me to justify building this. So go on. What are you waiting for?

[meta: new blog location]

My regular reader (hello Mike) may have noticed that I’ve moved to Blogger; it’s part of a stream-lining exercise regarding hosting packages, which were mounting up. Hopefully I’ll retrieve the older content and re-upload it soon.

Follow

Get every new post delivered to your Inbox.

Join 4,018 other followers