Today, computers and the Information Technology rule huge amount of our daily lives yet they are wide open to the most ridiculous misdemeanours, mostly with no consequence to the culprits. How did it come to this? If unckecked, often that is, nearly anybody can claim to be an IT expert and cause untold damages to organisations and their clients and customers? The basic safeguards are either not in place or they are desperately inadequate. Why is it so? Why didn’t the automobile and aviation (who’ve also known huge growth in relatively short timeframes) know similar “laisser-faire”?
It’s a good thing that we can learn from our forefathers’ legacies. It’s good that we can experience the world in our own way – some will rightly dispute the term “our forefathers”. This way we can enrich ourselves and our communities, discover new things (“new” in this context only applies to the discoverer and some part of his/her community). Nearly every discipline in our body of knowledge and society have known a select group of influential contributors, some of these have single-handedly driven things forward. These pioneers’ and geniuses’ acts and thoughts in some cases took the entire mankind to new places, always with the duality of good/bad aspects and consequences.
People have quickly learned that some experiments and explorations are best kept within bounds. If nothing else we realised that we could get hurt or others (we care about) could also get hurt. Every time we reached such epiphany we came up with elaborate principles, ways of behaving and means of communicating for preserving self- and preserving loved-ones. Examples abound, we have rules and regulations to deal with all aspects of society, we have codes of conduct, we have traffic rules, we have laws, we have regulatory bodies, and so on and so forth. This can be collectively called “civilisation”, for the lack of a better term. Thank goodness we can now walk up and down city streets, buy food, enter and exit buildings, get on planes, trains, cars, go places, all of this with reasonable assurance that we will get through the experience unharmed and we can repeat the feat again and again.
After reading a couple of articles about the latest development nighly build of Firefox 3 beta for Mac Os X Leopard. I thought I should give beta-4 a try – I had already been running beta-3. Blimey! When you experience software running this fast you can’t help thinking: what else could have been done much better that isn’t yet? I’ve been in this industry for 17 years now and I keep wondering how much waste there is. Looking around you at whatever IT project you’re involved in or software you must be running or building, there’s got to be an unlimited amount of waste around. So IT Waste Recycling has got to be the business with the most growth potential for years to come. Never mind mobile internet which is already over-crowded thanks to Google Android and Apple’s iPhone. I know I’m making a bit of a leap here, but I’m quite sure it’s not far from the truth.
Microsoft might be up to something that would really boost programmer productivity. What took them so long? I suppose the tools are maturing, I bet Open Source has been of tremendous help, programmer productivity tools are getting so much better.
Anyway, Microsoft appears to be incubating something that is long overdue: a tool that makes it possible to design and build web application coherently ignoring the front-end/back-end chams, then deal with component deployment on web tiers much later. The potential productivity gains are obvious, this could herald a small revolution on its own. With all manners of aspect orientation and dynamic scripting languages available, this is clearly the next logical evolutionary step.
At first, specialist front-end developers might look at this with suspicion, but the model is definitely sound. At some point the hype will kick in. Check it out: http://labs.live.com/volta
It’s that man again, Damon condems celebrity culture and I agree with him.
It’s not that anyone will really pay attention but he’s speaking his mind and doesn’t need nice and tidy scripts. The BBC article can be found here. Well done mate!
Nomad people take their cattle around to better grazing areas year in year out. They are always locating the best resources and have no problems migrating constantly. I see the future of computing following a similar model, swarms of rudimentary computing units self-organise to deliver the best service at their point of consumption. Resources are truly allocated on-demand, scalability becomes transparent.
In my take of Nomad Computing, object-orientation reaches its pinnacle. The traditional separation of databases and applications and web tiers will become meaningless. Each of these concepts will become more ‘nomad’, programmers need not worry about them. Databases systems and application server systems would have to mutate into entities that can register themselves and join in on local computing resource hubs. Once they’re in they start to figure out the best ways to self-organise for maximum throughput, spontaneously creating clusters based on usage patterns. Writing applications for Nomad Computing would be easier: no more coding login windows or data access objects, such usage patterns will be retired. Instead developers would concentrate on object graphs they intend to create, this would encourage crafting and creativity. Operating System platforms will also become largely irrelevant and pushed further in the background, taking away arguably one of the biggest pains in custom application development: deployment concerns.
A possible drawback to Nomad Computing will be hunting and fixing bugs and removing malicious software. These problems would possibly become intractable. Governance and safety would also become horrendously complex since unforeseen outcomes would be commonplace. Perhaps all these disciplines would need to evolve in entirely new ways. Specialised software will need to emerge to provide answers and keep ahead.
I realise this is all far fetched but it just seems that we might not be too far from it.
In a way we’ve already started to see early implementations of Nomad Computing, Amazon’s S3 and Apache Hadoop are good examples in the right direction. Power grids in electricity distribution industry are perhaps the closest model I see as incarnating Nomad Computing. Once we’ve really figured out how to do Nomad Computing properly we would be in a position to leverage massively multi-core systems as they become available.
Now that we have got all manners of multi-core and kernel mode programming I think modality should be on its way out. Few things are less irritating than an un-responsive computer, computers should always respond full stop. With GUI systems, modality is often the cause of computer freezes, regardless of the ‘root cause’ of the issue. It’s the lack of modality in Unix system command line interface that make them mostly manageable and more resilient.
In the early 90s Microsoft Windows programming involved creating well … ‘windows’ and ‘dialogs’ in C++. The same thing could be achieved with Visual Basic and various other development platforms. Dialogs could be modal or non modal. You relied on the underlying messaging system to orchestrate functionality between modules. The whole concept was fairly simple, the complexity really came from the high number of APIs and libraries to code against. With C++ the other half of complexity came from the challenge for programmers to write code that truly reflected what they really had in mind and what they really ought to know about the tools and platforms being used, a gigantic ‘expectation’ gap. Writing my first dialogs and seeing ‘hello word’ was an exciting moment. Microsoft Windows and most graphical user interface systems still build on the fundamental concepts of ‘modal’ and ‘non modal’ dialogs and windows.
Looking back I think modality’s raison d’etre was and still is to try and preserve the integrity of the data being manipulated. You wanted to be sure that the program’s context is in a predictable state before proceeding further. This is inherently a sequential concept that ought to be left behind soon. In a true parallel computing world I would expect hardware and software modules to be even more self-contained, able to ‘move on’ if some desired state was not reached. This should rid us of computers totally freezing under certain conditions. This might never happen with silicon chips based Moore Law abiding platforms. Perhaps nano technology would help if it departs completely from ‘old’ models. Off to learning a bit about nanotechnologies then. Who knows.
I think this is a really good article on Agile Development. Philippe Kruchten is writing here for those equipped with academic lenses using semi-scientific overtones. It’s a nice reading for the experienced practitioner.
Read: Voyage in the Agile memeplex here
UPDATE: I was just kidding, in case anyone didn’t notice. If you’re here for the first time then I’m trying to be cynical.
Hindsight is a wonderful thing that you see very clearly when looking back at some events. Most of the time you wish the hindsight were actually insights, i.e. you knew about something before you got to where you are as you reflect on things. This tends to be a problem, something that often tastes like a regret. Hindsight is one of the characteristics of Silver Bullets. Silver Bullets can be found everywhere if you looked carefully and with the right timing.
Where do you find Silver Bullets? How do you recognise any if you saw one?
I obviously won’t give away the precious answers just like that. Let me give a few general tips though. I’ll leave it up to you to do the rest of the work.
A silver bullet:
- is a proven best practice, best in class solution that is particularly well suited to your very specific needs
- gives your organisation a unique competitive advantage over the rest, despite being a proven best practice
- is very cost-effective, it solves your business puzzles and challenges without creating new ones
- makes all your stakeholder groups very happy while only requiring negligible compromises
- powers the specific business model you have selected without any further consequences to you
- helps decision makers’ career: nobody ever loses his/her job because of a silver bullet, on the contrary you get praises for your foresight and imaginative approach to solving business problems.
If you’ve been reading, this should be enough clues to get you started in finding the specific Silver Bullets that befits your organisation.
A less talked about fact: PC security challenges often lie with a weaker link, the user indeed. Here are examples of why that might be:
- [Microsoft Windows] update notifications are often ignored by users. Looking over people shoulder I’ve seen many simply click away without ever bothering to read call-to-action messages and never letting the software update install
- Web browser security also rely on people reviewing SSL certificates prior to visiting a page, users routinely ignore such warnings and carry on anyway. In fact users would happily follow any URL they get, they rarely check what they’re clicking on
- Lugging around “garbage” : anything that can be installed gets installed, often case never or rarely used afterwards. This is a waste of system resources, PCs become irremediably cluttered and potentially damaging software is kept around. Only a rebuild will remedy such situations.
Enterprise deployments often remedy these risks by locking down PCs and forcing users through ever lasting roaming profile upload/downloads. Let’s get heavy handed and deprive people of their “liberty”. I’ve seen login and logout processes taking up to 10 minutes to complete, that’s insane! It gets even worse when using systems management software that jump in willy-nilly and start downloading huge software upgrades while you’re trying to get on with your work. Clearly you are working for your PC, not the other way around. If managers would calculate the productivity loss due to such soviet-style systems they’d have a fit. The next frontier in enterprise productivity battles is in fighting these clunky systems management software.
It seems as though people are pitching usability against security. Making users responsible for the security of their own PCs is probably as risky as leaving those systems wide open. This is not because people are dumb, it’s mainly because the whole notion of computer security and the tools of the trade are esoteric and pose totally unreasonable demands on users.
Good computer security starts with a good design, if it’s not build to be usable and secure it can never be properly usable and/or secure to use.
I quote here Hans Rosling, a man with great understanding of human societies. Not knowing about Hans Rosling is akin to illiteracy for anyone involved in international development or the aid industry.
TED Talks is a place where great videos can be found. I’m not talking about watching a dog skating or Chris Crocker, two of YouTube hits. I’m talking about well put together presentations that really teach you something new, serious talks from serious people nicely packaged.
One of the most inspirational videos I’ve seen of late is Hans Rosling single-handedly redefining the notions of development and progress. Hans’ approach to analysing and presenting statistics is very refreshing and certainly a novelty to me. It tells me that nothing is really new under the sun. There are mainly changed interpretations, new insights leading to new ways of thinking or new behaviours. Evolutionists would talk about evolutionary changes, there’s a truth in that.
Hans Rosling brings us the sort of new insight that makes us think differently and hopefully behave differently. What’s knowledge worth if not applied? In the world we live in today, it pays more than ever to free your mind and open your eyes, the rewards can be priceless while costing you nothing. Pun intentional. History will probably place Hans and his colleagues amongst the champions of Enlightenment 2.0 – I’m referring to the contemporary equivalent of the eighteen century european Enlightenment movement, a fiction of mine naturally.
Back to back I watched two presentations:
- Andrew Mwenda: Let’s take a new look at African aid. then,
- Hans Rosling’s masterful presentation: New insights on poverty and life around the world.
After visualising these two videos I wondered what we learn from the story of Cuba. The country is said to have a very high level of litteracy and one of the world’s best health care systems. It’d be interesting to hear Hans Rosling’s opinion about this. Perhaps I should just get his book Global Health to find out.