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” ?

Advertisements

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.