Archive for April, 2011

Length of working day

30 April 2011 Leave a comment

Someone I know recently posted on facebook that they only worked 10.5 hours in one day, and wanted to know if he should feel guilty. I’d say definitely, yes. But not for putting in only 10.5 hours, but for doing more than his contracted hours (in the US, I guess this is 8 hours, after subtracting breaks). He should feel guilty that he’s not spending those extra hours with his family. He should feel guilty that he’s creating an expectation in the workplace that everyone should work extra, unpaid hours.

I guess that there are two reasons to work extra hours. One is that there’s a corporate culture of this. I see this in the USA, and in India as well. I see it a little in the UK, too. When I worked for a bank in the city, I was at my desk for ten hours a day, and my manager mentioned that he just wanted to see me be there a little longer. I pointed out the 3.5 hours commute I had in addition to working, and the fact that I had a 15-minute window to see my kids at night, *if* the trains were on time, but he really didn’t understand: he was young, single, and striving for promotion.

I recently read Managing Humans: Biting and Humorous Tales of a Software Engineering Manager and one thing I noticed was the number of times that working the weekend was expected. Sure, the companies appeared to be mainly startups, and maybe everyone had equity share, but it seemed that these people were expected to work extra *days* as a matter of course. This seems so wrong to me – weekends should be sacred and for the family, not working.

In some cases, it’s just being in the office, not how much work you get done. This is called “presenteeism.” For many, many years, I’ve noticed that I am edgy when involved in seemingly non-work related discussions, either at desks or at the water cooler. I’ve felt guilty that I’m not working. Now I’m doing more reading into management, and trying to develop my people skills (mildly aspergic), I don’t feel so bad about these conversations, at least I didn’t last month! But I suspect that in some places, the amount of time spent working is well below the amount of time *in*the*office*.

The second reason for working extra hours is that there is a crisis. A support issue that needs fixed to prevent the company going under. A last-minute show-stopper bug preventing a release going out. In my opinion, these are ligitimate reasons to work late. But it’s not, in my opinion, productive to work long hours for a long period. A week of extra half-days, even if fuelled with free pizza, is going to dull almost everyone, and productivity will drop so much so that everyone would be better off just working a normal day.

I’m working in Europe from next week, and one of the reasons I am going there is because there are strict labour laws where, in some cases, your manager can be fined if he lets you work more than 40 hours a week. This sounds like bliss!

That’s *my* association

23 April 2011 Leave a comment

I get really cheesed off with some software, always hijacking my file extension associations.

For the uninitiated, these link a file (normally the bit after the dot in a filename, ext in ThisIsAFile.ext) to an application. To do this, Windows (and other GUIs) keep a list: If the file is a .doc, open it with Word. If the file is a .xls, open it with Excel, if it’s a .frood, offer these choices . . . .

It’s easy for those files in my example, but there is a real, and constant battle for the audio and video world. Each time I upgrade an otherwise nice and wholesome piece of software, a video player called VLC media player, it insists on attempting to take over all my audio file extensions – like .mp3, aac, and even the playlist files .m3u, which it hides under a different menu to “audio files”. 1: it’s a video player – it’s in the bloody name and 2: every time it asks, and defaults to taking over the associations. Why can it not remember my choices from the last install? This is particularly important as the fantastic browser check from Qualys always points out when it’s out-of-date.

I need to point out that if every piece of software did this, and you didn’t respond appropriately, you’d probably not see the same application open a file twice. Yor browser would run around like an eager puppy, saying “I can deal wih that jpg; I can deal with that .bmp; I can deal with that .pr0n as well!” Thankfully, not all software is as self-centered as VLC, so the average user gets some consistency.

The popular browser, Firefox, was just as bad, I use the Heroes browser, Opera, but I also have IE and Firefox installed. I don’t use Chrome because Google are powerful enough already – actually I’d say they are too powerful, but I’ve got my 18th job interview with them lined up so I’m hoping to get in while ‘evil’ is still relatively cheap – I want a small throne, at least. But some sites do not work with Opera (despite it being the first browser to pass the ACID-3 test (stop yawning at the back!), so I need an alternative. I’d rather eat my own kidneys devilled with Tabasco sauce and onions than use IE, so I use Firefox. And Firefox was very naughty indeed, and when I upgraded it, it did not even *ask* if it could be my default browser, it just did it. As presumptuous as an Australian internet activist during a night of passion (allegedly).

So, I can understand that many, many people can get confused when they used to click on a file, and it would open in a particular app. Then, the install some more software (maybe more than one, people are fools like that) and next time they try the same action, they get an unfamiliar app thrown in their face, beause the new software has hijacked the file association.

As PC manufacturers are loading stacks of crappy software on new PCs for $$$, there is now another confusion – on my Dell Vista PC, every user (me, the wife, the kids) was hounded to buy some expensive software whenever we clicked on a particular file type – in this case, any image file at all. To put this in context, new user, new PC, plug in the new digital camera, click on the files, and the PC asks for money to install a full version of the software – that’s just wrong!

In my opinion, this is moving PCs away from being easy to use. I had this rosy idea that one day, PCs would be easy to use. They’d coaxs inexperienced users through configuration, and degrade gracefully when things went wrong. However, I think that in the immediate future (next ten years) PCs are going to be clogged down by more and more software that says it has the user’s best wishes at heart, but in reality it will recommend paid for options – and won’t even mention the free options that may be as good, or even better than, the commercial options.

All Nerfed out

23 April 2011 1 comment

I am now the proud owner of a Nerf gun, a Nerf N Strike Recon CS-6, in fact. My son has an N Strike Raider Rapid Fire CS-35 Blaster. Mine has a laser sight, and his has a 35-bullet rotating magazine.

Nerf is harmless. The guns fire foam darts at a reasonable speed, as long as you do not hit someone in the eyes or face, then there are no bruises. My vegetarian, tree-hugging mate found that Nerf guns are also good for killing the invasion of flies that we have locally. I’ve taken out a few myself, although I’ve found that I only stun them, and then need to move in with a secondary weapon.

Geeks and Nerf seem to go together like Fred and Ginger (aren’t they both dead now?) or drums’n’bass. Why is this? I had a desk calendar where each discarded page could be made into a model aeroplane, and these littered the desks of my fellow software developers. We loved them, and the managers hated them – even the ones who used to be softies themselves. Geeks love toys. Nerf, remote control airships, anything that they would have loved as kids seems to be OK. It’s as if softies haven’t grown up.

Perhaps this is one of the things that makes a good softie – a child-like imagination.Software development can be an enormously creative process. It’s been likened to art (Knuth titled his works the Art of Computer Programming, after all.) And creativity involves the imagination.

My manager asked me to take my plane calendar home – he did not like the mess and lack of order, with planes launched and scattered on the floor. But it did not affect our performance, we can be very focussed when we need to. And softies respect each other’s need for lack of interruption – in a lot of places I’ve worked, people will either see headphones on as a sign that says “do not interrupt,” or some people actually put signs up asking not to be disturbed.

The planes, nerf, toys provide a point where developers can let their brains take a rest. Being physical, it also gives them a chance to stretch their legs and get their butts off their chairs, even if it’s just picking up a plane or Nerf dart.

So, if you’re a manager and you see your geeks being unruly or untidy, please leave them to it – their apparent playing is part of the creative process. Don’t, however, let them take the mickey too much, as this cartoon shows:
Are you stealing those LCDs? Yeah, but I'm doing it while my code compiles (XKCD)

Incidently, this is why I prefer C++ to Java or Perl, you get time to put a fake moustache on.

Categories: Real Life, Software

Code Wars

21 April 2011 Leave a comment

The screen is split. Both left and right views zoom in over the shoulder of a stooped individual to the large computer monitor that now fills both screens.

There’s a vice-over. A hushed voice, as would befit snooker, or a Royal parade. The tones used are revered, and every word is carefully chosen. Let’s listen in:

[Voice 1] So, Dave, we’re five minutes into this competition and both contenders are well into their stride. Initial impressions, Dave?

(The screen shows both users are typing furiously, menus are popping up and items added to lists on the left and right of the main code-editing windows)

[Dave] John, it’s really interesting how both users really know their IDE’s inside out. Grekor, on the left, is using Exclipse, and, as you can see he has quickly set up a project that targets the correct build type. He’s *very* good with the context menus, as you can see.

(The screen shows both users are typing furiously, menus are popping up and items added to lists on the left and right of the main code-editing windows)

[Voice 1, now identified as John] So, Dave, is Grekor alreay ahead?

(The screen shows both users are typing furiously, menus are popping up and items added to lists on the left and right of the main code-editing windows)

[Dave] Not in the slightest, John, as Joolz is also using his IDE to create the project template. Joolz has chosen NetBeans, and it, too, provides a default project type.

[John] Ah, now let me remind the viewers that the contendors are free to choose their programming languages, development environments, keyboards, and mice and are given 20 minutes to alter the configuration of their PC once it’s been built by Charlie, who heads our team of “hardware hacker hoods.” When I say he heads the team, I mean he’s the only….

[Dave] Sorry to interrupt you there, Joanne, but our back-room boys have spotted something interesting.

(A larger code window appears in front of the split-screen view. It’s semi-transparent, but you can’t really see what’s behind, which means it’s pointless, but looks good (-ish). Remind me to rent the better video desk if we make a second series.)

[John] Did you just call me Joanne? That was supposed to be our little secret!

[Dave] Look at this. (screen zooms in on one line of code, grainy, but highlighted as the rest is greyed out slightly. ) Grekor has used entirely the wrong syntax for his regular expression! That will compile alright, but it’s never going to work properly. This is a major mistake for Grekor, and it will be a tricky one to find.

[John] someone once said “Some people, when faced with a programming problem, thing ‘Aha! I’ll use regular expressions!” If they do that, they’ve suddenly got two problems.

[Dave] (laughs) Too right!

(The large window shrinks to the centre and disappears with a pop. The screen now shows both users are typing furiously, menus are popping up and items added to lists on the left and right of the main code-editing windows)

[John] Grekor, I remind you, won his previous heat where the competition was very mathematical. This assignment is more text-based, isn’t it Dave?

[Dave] Very much so. I must admit I was suprised when both contenders chose Java, Perl would have been my first choice!

(The screen gets darker and the voices more muted. Eventually, you awake and are in the office. No-one  appears to know what you’ve experienced. You blink and reach for the Dr Pepper in front of your screen…)

Idea by Nick, Ian and Alistair. Vidio by  @netroman. Coming to a screen near you, soon. 

Categories: Software Tags: , , ,

Between a rock and a hard place

21 April 2011 4 comments

“Buying a TV is harder than buying a computer,” my buddy recently said. The reason he said this is because everything will be obsolete in a few months.

I’ve got a similar quandry, but I’ve only got two choices to decide between.

For many years I’ve used Gentoo Linux as the operating system for my server and laptops. Gentoo has the advantage of being very flexible, and normally very quick to produce security patches for the various pieces of software that are installed. The unusual feature of Gentoo is that everything is compiled on your machine, with your choices of options. Things don’t always work, and actually maintaining a Gentoo system will (a) teach you a lot about Linux and (b) take a proportion of your time every so often.

My server was built in 2005. I’m shocked by this, but it has a 5-year old  Linux kernel using features that have long since been removed (devfs made way to udev, for example). Migrating from this kernel will be painful, and the system has already got a host of cobbled-together software that is failing to build consistently. (This is partly due to my lack of knowledge when fixing build problems in the past).

So, I’ve decided to rebuild the server. The server has a few main purposes: It hosts my personal web site, where I keep my Effective C++ CD. It hosts email for me and the family, providing storage and a webmail interface. It is a fileserver for us all. And it runs the software that powers my Squeezebox digital music player.

And it’s this last role that’s my big problem. Since emerging the latest and greatest of everything, the software has failed to build and run. And that means no music, no radio, no-thing at all.

So, I have to rebuild. The question is do I use the latest Gentoo, or do I use a mainstream Linux distribution? And, do I use a 32- or 64-bit version, as in Gentoo, many more packages are marked as unstable on the 64-bit version than on the 32-bit, and even Ubuntu recommend 32 bit and not 64 bit, despite most new computers being 64-bit systems.

I really don’t want to give up on Gentoo, it has taught me a lot about  Linux and there is a certain kudos in using a cutting-edge system. I just want to be sure that the server will work for me after I spend hours installing it.

Computers (and software) are like having children (or pets)

20 April 2011 Leave a comment

If you have a child, you don’t just give birth, and then it turns into an adult over time. You have to help your child – in the early years, feeding, clothing and cleaning, in later years feeding, clothing in ever-more-expensive clothes, and nagging them to clean themselves, and eventually just worrying about them and feeding when you can.

It’s the same for pets, but they desire less in the way of expensive clothes.

And so it is with computers. Unlike your vacuum cleaner or iron, you need to maintain your computer. Apply patches, defrag the disk, renew licenses for anti-virus, buy it new software, remove dust from its CD drive (actually, I guess you do need to maintain vacuums by emptying them, and irons by descaling them).

As computers become more prevalent, then the maintenance issue increases with every “smart” device. Smart phones need software updates, cars have many computers that can require software updates, and so on. Soon, there will be computers in irons and vacuum cleaners.

When digital  TV arrived, I bought a couple of set-top-boxes to use with my existing TVs. They were awful – one kept rebooting itself, and another would occasionally decide that there were new channels, and it would insist on scanning for them. It would insist – there was no way to refuse the request, but, annoyingly it still required user confirmation before starting. So, you’d power up, walk off to make a cup of tea, and come back to press OK (the only choice) and wait 5 minutes. And it never found any new channels.

Neither of these set-top boxes had an upgrade path. I couldn’t improve the software in any way. I sold one on ebay, the other went in the bin at the weekend. Hopefully upgrading will become the norm for all smart devices in the future, even irons.

One day, devices will be self-diagnosing and self-repairing, but for now we’re in the point of the lifecycle where we will spend more of our own time maintaining our devices. This will leave us less time to maintain our loved ones and the things that really matter to us.

Categories: Analogies, Real Life Tags: , ,

It’s not only software that fails…

19 April 2011 Leave a comment

I did a double-take when I saw the advert for pressure washers in a local store.

They were boldly advertising a two-year guarantee, as if that was something to be proud of, a unique selling point, even.

To me, this is unacceptable. If I buy a tool – a machine, even – then I’d expect it to last a lot longer than two years, unless I was very unlucky. I just don’t understand why we put up with shoddy stuff. This home and garden tool will probably see action less than once a week, for less than an hour each time (I’m thinking washing cars weekly (except when on holiday) and cleaning the patio once a year) so less than 100 hours of use in it’s guaranteed lifetime.

To me, that seems unacceptable. I notice that other garden tools like strimmers and leaf blowers are also flimsy and poorly made, and I think we’re being taught to expect these to only have a limited lifetime. Building tools to last longer costs more, and, of course, the repurchase is delayed, so less revenue overall.

Everything available in the UK is built to a price, and designed to last a specific number of years. Ford, for example, state that their cars are designed to last ten years, or 100,000 miles.  But they really only design them to last 3 years (their warranty period) before they start to break. But with a car, repairs are cost-effective. When your pressure washer breaks, it will probably cost as much to repair as it did to buy.

The same can be said of software, of course. The more money you pour into development, the higher the quality can be, and the more sturdy it is. The difference is that software doesn’t wear out, but what happens is that defects that have always been there become more visible. The solution is to repair (patch) or replace (upgrade).

Categories: Analogies, Software Tags: