I have been working hard recently to configure several systems for a major demonstration that I am supposed to have tomorrow morning with management. These systems are a bunch of virtual machines that are connected to a storage area network. From the onset, there has been some problems with these machines but nobody seems to know what is wrong. Needless to say, I got struck by Murphy’s Law. Sigh.
I shall hereby state a new Law: working with idiots make simple things difficult.
I will ask my boss to put in a requisition for our own server infrastructure so that we do not need to rely on the incompetence of others. How are we ever going to deploy the entire infrastructure when nothing seems to work the way it should and all our vendors keep pointing fingers at each other citing the stability of the infrastructure at other customer sites. Piss off.
PS: If anyone wants a Google Wave invite, let me know. I’ve got a few to give away.
I always hear software guys complaining that it is difficult to write parallel software and exploit concurrency because of all the inherent problems related to parallelism. Personally, I don’t quite get the gripe, either because – i have no idea what parallelism is; or software guys are dumb. Maybe I am just being harsh or maybe I am not. I think that the trouble is the kind of training that a software guy is generally given today, does not prepare someone for the world of concurrency.
In the classical world of computing, software was generally written as a series of instructions, stored using binary symbols, that are meant to be executed by a machine in strict sequence. As a result, most programmers who have begin their training in the old world of computing, would have been trained with this one-threaded way of thinking. In a parallel world of computing, one needs to have a different paradigm of thought, which is multi-threaded. I say that humans are most certainly capable of concurrent design and thinking. Software people are not born dumb but are merely trained to think that way.
Let me use an analogy, that of sheet music. In many ways, it is just like software programming. A sheet music is a series of instructions, written down in symbolic notation, that are meant to tell the musician what notes to hit and when, in strict sequence.
A beginner student who just started piano lessons, would only be taught to play a single line of melody consisting of only single notes with one hand. This is your classical single-threaded software programme with only a single sequence of instructions being executed. Then, the student moves on to play a single line of melody consisting of only single notes, with each hand separately. This is your classical multi-tasking software programme, where multiple tasks are scheduled and run at different times but with only one instruction being executed at any instant in time.
This is roughly where we are in terms of software programming. We have mastered the art of writing software (playing music) this way. However, I’m sure that you have realised by now that Mozart did not play music like this, except maybe when he was 3 years old. In fact, the only students who play music this way are those who have only had the benefit of a few weeks of musical training.
After a month or two, the student begins to play two single melodies, one with each hand, together. You can think of this as your super-scalar system executing more than one set of instructions at a time. Then, as the student progresses, the student goes on to play multiple melodies, several with each hand, together. This is your classic multi-threaded software. And you know what, we are still only talking about a single individual with ten fingers and two hands – or a single super-scalar multi-threaded core.
Now, try thinking of an orchestra. You get my point.
So, you see. Humans have been capable of programming massively multi-core, multi-threaded software for hundreds if not thousands of years. All that we need is the right rule-set, training and tools. I tend to see a lot of simile between sheet music and software systems. In fact, there are various synchronisation mechanisms built into music as well. I think of musical beats as synchronous clock ticks and chords as thread synchronisation mechanisms.
We just need to start training people to think multi-threaded concurrency from the onset. While we can be lazy and leave things to the compiler to figure out, Beethoven did not leave the writing of his 5th symphony to automatons. The following is a good graphical representation that any computer geek (hardware and software) can appreciate. Let us all take our inspiration from the maestro.
This is a very cool re-imagining of the standard computer desktop user interface. From the 10/GUI website:
Over a quarter-century ago, Xerox introduced the modern graphical user interface paradigm we today take for granted. That it has endured is a testament to the genius of its design. But the industry is now at a crossroads: New technologies promise higher-bandwidth interaction, but have yet to find a truly viable implementation. 10/GUI aims to bridge this gap by rethinking the desktop to leverage technology in an intuitive and powerful way.
That’s what I feel when I think about the fiasco that is the MCA EGM last weekend. Now that he has been defeated in a no-confidence vote, he should do the right thing and step down from his position. If he chooses to stay on to defend his ailing legacy, he would just end up being a lame-duck president and the laughing stock at meetings – just like Samy Vellu. The people have spoken and the leaders need to listen.
For the good of the party, he has to go. The party is bigger than any one president.
One positive lesson that I took away was that the ordinary members still cared about the party. An unprecedented 97% turnout of delegates is a potent show of force – that they can still get together on important matters. Unlike certain former presidents who decided to run off overseas and keep away from the fray, nothing seemed to keep the normal party members from turning up, even if they had to come in a wheel chair.
Well, lets just hope that he grows a pair and steps down. If he does not, there will be hell to pay for blatantly going against the results of the EGM. His political opponents will not back down unless and until he steps down. The biggest winners of the EGM were probably the VPs. They are probably now measuring the level of support for a possible bid at the top two positions of the party. They would be dumb not to.
PS: Personally, I never had a positive thing to say about the lamer president anyway.
Amidst the fiasco that is our MCA EGM today, I went out window shopping for the PS3 slim. I wanted to find out what the current price was for the slim and the prices of games locally. The PS3 slim is currently retailing for RM1399 but those are for import units. Although the Malaysian PS3 has not yet shown its face, that has not stopped the retailers from stocking up and reselling import units. So, I began to wonder if the PS3 units were region locked like the PS2 and the thing is – it is not.
Which bodes well for me because, the games in Malaysia are seriously expensive. They cost between RM129 to RM200++ per game, which is crazy. However, the games are cheaper online and much cheaper used. I browsed through the prices for some games at a popular retailer. Turns out that MGS4 costs only £10 (RM60) pre-owned, which is far more affordable than the exhorbitant prices in Malaysia. I have begun to blame the high prices of media in Malaysia on pirates. The pirates destroy any sort of after-market for games.
I hope that when the PS3 launches, Sony Malaysia would be kind enough to sell it at around RM1099 or RM1199 and not RM1399 for the console and controller. Then, I may actually consider buying the games online. Mirrors Edge is retailing for £7 brand new on Amazon. Then again, a lot depends on what kind of usage I would have for my PS3. It may end up being used more as a HTPC than a gaming console.
Whoah. I just read this article on the Brazilian wandering spider. Turns out that it will give you a massive boner before killing you. According to the wikipedia article:
P. nigriventer venom contains a potent neurotoxin, known as PhTx3, which acts as a broad-spectrum calcium channel blocker that inhibits glutamate release, calcium uptake and also glutamate uptake in neural synapses. At deadly concentrations, this neurotoxin causes loss of muscle control and breathing problems, resulting in paralysis and eventual asphyxiation. In addition, the venom causes intense pain and inflammation following an attack due to an excitatory effect the venom has on the serotonin 5-HT4 receptors of sensory nerves. This sensory nerve stimulation causes a release of neuropeptides such as substance P which triggers inflammation and pain.
Aside from causing intense pain, the venom of the spider can also cause priapism in humans. Erections resulting from the bite are uncomfortable, can last for many hours and can lead to impotence. A component of the venom (Tx2-6) is being studied for use in erectile dysfunction treatments.
The amount of P. nigriventer venom necessary to kill a 20 g mouse has been shown to be only 0.006 mg intravenously and 0.0134 mg subcutaneously as compared to 0.110 mg and 0.2 mg respectively for Latrodectus mactans (Black Widow). This ranks Phoneutria venom among the most deadly found in spiders.