Category Archives: tech

One Size Does NOT Fit All

In a few posts on this blog I’ve tried to make the point that you need to know your local market. It seems Google are beginning to wake up to this… well, in Japan anyway, people in Eastern Europe or for that matter Western Europe will have to make do with an American viewpoint.

If you think about it, it shouldn’t be that unusual that a large corporation changes to suit it’s customers. But it is and it is noteworthy because it makes you wonder how many times a corporation has moulded the customers expectations to fit a “need” that is created for their products. Street-view has been a wonderful case in point in the UK and EU with people on all sides trying to determine the legitimacy of it – and in some cases the need for it ? Most times we need a map, not a picture.

How many times has a vendor pitched a product that will integrate “with a few changes to the surrounding infrastructure” ?

The conciseness of the funny characters

Hacker news brought me the delights of this post on the point that the Chinese language can express more in fewer characters then English. Something I can vouch for which makes translation from English to other languages painful for me.

Anyway, the scary bit, Twitter doesn’t allow 140 Unicode characters !?!

Look, if you say character, you should mean you support any Unicode character! And yes, that may in fact be 560 bytes, but come on, English is not the only language in the world.

Every Project Starts with a Deadline

Everyone in Software is familiar with the “Iron Triangle”, the triumvirate of Time, Features (Functionality, or Scope), and Resource. In summary, these are the three factors that control any project, altering any one of them always alters the effect of the others, with enough Features, Time, and Resource, you have a high Quality product.

In recent years all the various methodologies have focussed on trying the win the “Time” argument, to stop the idea of time limits being set up front and thus reducing the Functionality as the Resource is generally fixed (which even if increased may have less benefit)  which may in turn lead to a lower quality product.

This has lent some credence to a new myth, that projects don’t need to have deadlines or set time limits, and in fact shouldn’t have in order to create good “Quality” software.

And in the real world…

This is a joke. Let’s start from the very beginning, suppose you are asked to deliver a project, you will generally be asked three questions, never mind all the ones you should be asking, those three are:

  • How much ?
  • How long ?
  • Who do you need to hire/what do you need to do it (you could suggest this is how much) ?

Consider that everything you do has a deadline, even if this deadline is not the one for delivery. It is important to set a goal, and often this represents a line in the sand, where you can evaluate the progress and determine if you can proceed.

If you doubt this, consider what you ask the guy who comes to install your cable. If (s)he fails to turn up when they say or takes 2 weeks to wire a plug, you are not going to pay them. When you bought your house, your bank didn’t give you money that you could “pay back when you wanted”, they attached a timeline to it that reflected a best guess according to your capability to pay.

The Punchline

Your project has a deadline. It will always have one. Your aim is to have a realistic one, and that assumes the business understands what it is trying to have delivered. Even then a deadline is not your enemy, it marks a decision point for others to determine if they want the deliverable. It also acts as a focal point for your efforts, provided that the focus is not panic. There is no point in the argument of “it’s done when it’s done”, the money running out stops that dead. Remember the bank who lent you the money for your house, they don’t stop the clock because your job did. The bad news is that the bigger the organisation, the larger the number of levels that the deadline has been established over… so maybe the idea started at the board, so the CEO has a point in time in mind, then the Architects get the idea, and at some point there has to be a business case, and this will always need a deadline!

Practically, you have the following options:

  • Cheap and quick – may never get upgraded/fixed, but will do, soon find out how import the deliverable really is :)
  • No time at all – build a prototype, be upfront about it, if it works out, you can work on the full system, if not, well software doesn’t take up landfill.
  • No resource – establish your own timeline of what you need to achieve – if the shortfall is obvious, either you get more resource, or time.
  • Work nights! – this is not an option. Unless you are 20 and can work on 3 hours sleep, you’ll start spending 50% of your productive time fixing what you thought you achieved. Don’t do it. The odd hour fine, night, no.

Or hopefully:

  • Just enough of each of the three parts of the triangle – due to the business understanding what needs to be done and having funded/invested appropriately

Conversely:

  • Too much time – things wander and all three parts can be wasted.

Good luck with the deadline :)

The Funny Character Taskforce Rides again!

Amusingly I got a link to Joel Spolsky’s post on Unicode by one of my Italian colleagues. The punch line being that even though we both work for a European company (owned by a US company) we can’t seem to be able to put the accent on the last ‘o’ of his surname – which should be ‘ó’ – in the User Directory of the mail system.

It also made me remember that I’d had this post in my reading list for a long time. In essence the point being made is that complying to Unicode standards does not mean an implicit use of UTF-\d{1,2} although for some reason which escapes me, this is exactly what .Net and Java do by having UCS style chars which are 2 bytes wide (or wchar). Great. Why ?!

Anyway, the point, Unicode – support it, you aren’t an island, no matter what Ted says, even if you never release your code to a non-english speaking country use a platform that supports it so on the chance you do, you’re ready. Given the number of places that need this (Hint: it’s the majority!) it’s going to make sense at a programming language level and on your product. If you’re using XML and ASCII the chances are you’re converting from ASCII to UTF-8/16 to process the XML even if you’ve specified ISO-8859-1 (Latin 1). If an encoding to support Unicode is there, use it.

For those in Europe and pretty much anywhere else in the world, it’s a must. In the US, I guess you can afford to annoy Spanish speaking people, hey ?

Technology does not make the user smarter

So GPS now means you can find anything, anywhere… but it does seem that trying to create a shortcut around having to look at maps and learn some basic geography doesn’t really work, as this couple trying to find Capri found:

"Capri is an island. They did not even wonder why they didn’t cross any bridge or take any boat," said a bemused tourism official in Carpi.

Do me a favour, when you need to get somewhere, learn the area, you found your way around before GPS, you can still do it, and someday that will come in handy.

Who is watching you twitter ?

The City have managed to do something that the rest of the Web have yet to figure out, which is get someone to point out why participating in social media isn’t really… um… social.

"Teenagers do not use Twitter," he wrote. "Most have signed up to the service, but then just leave it as they realise that they are not going to update it (mostly because texting Twitter uses up credit, and they would rather text friends with that credit). They realise that no one is viewing their profile, so their tweets are pointless."

The full article is here: Twitter is not for teens, Morgan Stanley told by 15-year-old expert | Business | guardian.co.uk

It also begs the question, what are these people going to be like as customers when they become the next set of wage-earners ? I’m glad I don’t work on a newspaper… but then I’m also worried about the “summarise” aspect. Will any kind of intellectual investment in the world around you become a thing of the past ?

KILL the Network Manager

Gaargh! Upgraded Ubuntu and simply upgraded my existing problem. For some reason which I cannot fathom, my desktop with it’s nice wired connection is not permitted to connect automatically. With the wonderful new GUI based tools I can’t simply tweak the boot scripts to fix it.

This is definitely more painful then needed, but this works (with thanks to the people over at the Ubuntu forum):

1) Setup /etc/network/interfaces to have an appropriate entry for the         
interface you use such as:

   1: auto eth0

   2: iface eth0 inet dhcp 

You may also wonder why that entry is not already there… I know I did!

2) Purge the Network manager:

   1: sudo aptitude purge network-manager network-manager-gnome 

3) KILL the remaining Network Manager processes (if you don’t; any DHCP sessions you try and create will not bind)

   1: root      5749     1  0 11:59 ?        00:00:00 /usr/sbin/nm-system-settings   

   2: --config /etc/NetworkManager/nm-system-settings.conf

   3: xxxxx     6328  6086  0 11:59 ?        00:00:01 nm-applet --sm-disable 

4) Restart the networking:

   1: sudo /etc/init.d/network restart

The Pros of this approach ? There is now hopefully only one thing managing your network and it will no longer do it by creating merged config files in /run to do it. The Cons ? You lose your nice status icon. You may get over that.

Do you have this document ?

It started as a question this morning as I made the usual coffee. The question being, why should I write documents instead of webpages or wiki articles ?

Over the course of a large number of projects, I’ve always had a Wiki around to document things in. I have to say I really like wikis although they do take up a lot more time then you would think.

When I’ve needed to actually distribute information, it’s always in a document. Be it .doc(x) or PDF.

The reasoning is pretty simple: ultimately a document is a solid tangible artefact that can be printed, signed, and filed. You don’t ask for your employment contract as a wiki article and when you buy a house you don’t sign into Google Docs to get the deeds!

So when are online tools good ? The cons for online articles are many:

  • Wiki articles are constantly in flux and need an editor to keep them sane
  • Pages move/get archived, become out of date
  • Blogs are great as journals but no good for documents…
  • Websites for wikis are often internal
  • Easily edited documents aren’t always the best basis for agreement between disparate parties.

There is a possible future where all our documents are webpages constructed on the fly from some huge database, but for now, I think I prefer the old-fashioned document.

In a project I like doing the following:

  • Day to day information (where is x, why do y etc), development, discourse, commenting etc – Wiki. This means you can keep it up to date (do you ?!)
  • Blogs – team blogs – in place of reports ? maybe, but remember that people talk to each other so their use is limited if the audience is internal
  • Design decisions/Contracts/Pitches/Version Controlled lifecycle documents – Document formats. While Wikis and so forth provide workflow and versioning, there is nothing quite as close or transparent to your organisation as having a document with a date and version on it. Everyone can see it, and everyone can reference (cite) it.

Now, there is one problem that electronic documents have that wikis do not. Where to store and search them… that is something I’m still trying to figure out. Maybe we can take some ideas from our older colleagues here, since paper file based systems seem to have had this figured out over time.

Chrome OS: VNC for Dummies ?

It had to happen, Google is releasing an OS. Their target is netbooks, small low-cost (and power) computers for those wanting something a bit bigger then a smartphone and smaller then a laptop.

Is this going to change my life ? Well probably not, much like Chrome, it will end up occupying the curiosity section at the back of the shop doomed to obscurity.

The key aspect of this OS is the idea that it will get you up and on the web in seconds, as “the operating systems that browsers run on were designed in an era where there was no web” (Sundar Pichai, vice-president of product management, and Google’s engineering diector Linus Upson). We’ll leave the fact that an operating system has nothing whatsoever to do with the web.

Bear in mind that Google’s key plan is to get their grubby mitts on all your data, be it email, docs, video, contacts, whatever. Whatever is information, they want it. With it they can keep making money via AdSense/AdWords. If they know your hobbies then they’ll want you to know about people out there who can help you with them.

This has remarkably little to do with an OS and yet I feel deja-vu coming on. Remember IE4 anyone ? Or Windows 98 ? The Active Desktop ? The idea that we were always permanently connected to the ‘net ? Isn’t that a Sun marketing slogan ?

The idea isn’t new, so will it stick this time ?

The main thrust I can see from all this is that Google is building a better VNC, all your applications are in their house, and your netbook (with Chrome OS!) is just a gateway to them. But here is the question, on the eve of the launch of a service that has gathered millions of mobile numbers without notifying their “customers”, do you really want everything you have on the web, and then – in the hands of someone else ?

Even if that isn’t a primary concern to you, the other key challenges to Chrome are simply the technical ones, unless they are going to emulate Apple, they will have to support the myriad of devices and drivers out there. If they do manage this, they may then still have to persuade people to develop for them. I do wonder if we are about to see someone overreach themselves. In the commercial world, this isn’t going to make a dent. In the netbook market it’s still interesting to note the lack of impact of Linux, and the fact that XP was preferred simply because it was familiar and ran all the applications important to the users.

Where am I going with this ? Well here is the main problem, building a “new” desktop/netbook OS in this day and age is going to be a thankless and expensive task. You’ll need to cover: Hardware Support, and have Applications built for you. You’ll need testing, for all the devices that you do (or do not support). You need a user base, for whom you offer something that they either can’t get somewhere else, or that you do better. You can also produce yet another distribution of Linux, in an already fragmented market. Somewhere you’ll also need cash to build this platform and the willingness of people to invest in building for a new target platform. While Google ticks many of the boxes, it does strike me as more of an academic rather then a commercial exercise to do this. Just because you can do something doesn’t mean you should.

Bistromathics

Douglas Adams was right, the world is powered by ideas on the back of a napkin. In fact I wish people would do more of this.

I didn’t know that one of it’s main uses would be to stop the “I can do that in a weekend” point of view. But then estimation, is time and time again (pun not intentional) an issue raised by developers.

Maybe the best way to start a project is in a bistro, with a large supply of napkins and no computers…