When I first learned that George Galloway was to attend a US Senate hearing, I was miffed at the arrogance of the American government asking a foreigner (and an MP at that) to appear before it. But Galloway went there of his own volition, it seems.
Anyway, he seems to have come out of the entire episode unscathed, which cannot be said of his accusers. The full text of his statement is well worth reading. Yep, a bitch-slapping, no doubt about it.
Thursday, May 19, 2005
Wednesday, May 18, 2005
MDA and code generation
Context CurrencyOption::currentPrice::get
"WebServiceDispatcher.find
('\"Options Price Info\").execute("+
("self.currency.country+","+
self.putOrCall = OptionKind::#put ?
"put" : "call"+","+
self.americanOrEuropean =
ExerciseKind::#american? "1" : "2"+","+
self.expirationDate+")"
The above code fragment appears in Model Driven Architecture and is an example of an action statement that can be used to generate code for an operation.
I could be wrong here, but doesn't this call into question the whole premise of using MDA to automate the code generation and produce error-free code? The generated code would only be error-free in as much as the above code is error-free (ignoring for the time being the fact that it would give any self-respecting Perl script a run for its money in the Complex Code Sweepstakes). In effect, you are simply moving the debugging effort up a level, from the Java layer to the action statement layer.
I am veering around to the view that MDA will only go so far; there will always be some code that will have to be manually written (whether you do it at the action statement level or at the programming language level), unless the problem is so well understood that code generation is a breeze.
"WebServiceDispatcher.find
('\"Options Price Info\").execute("+
("self.currency.country+","+
self.putOrCall = OptionKind::#put ?
"put" : "call"+","+
self.americanOrEuropean =
ExerciseKind::#american? "1" : "2"+","+
self.expirationDate+")"
The above code fragment appears in Model Driven Architecture and is an example of an action statement that can be used to generate code for an operation.
I could be wrong here, but doesn't this call into question the whole premise of using MDA to automate the code generation and produce error-free code? The generated code would only be error-free in as much as the above code is error-free (ignoring for the time being the fact that it would give any self-respecting Perl script a run for its money in the Complex Code Sweepstakes). In effect, you are simply moving the debugging effort up a level, from the Java layer to the action statement layer.
I am veering around to the view that MDA will only go so far; there will always be some code that will have to be manually written (whether you do it at the action statement level or at the programming language level), unless the problem is so well understood that code generation is a breeze.
Tuesday, May 17, 2005
Movie Review: XXX-2: The Next Level
XXX-2 has got to be one of the worst movies I have seen in the last decade or so. It is unbelievably clichéd, has some really third-rate acting and assumes a very unintelligent audience. Some scenes that I particularly disliked:
- The way the geeky sidekick hacks into the DoD computers so easily and retrieves the troop movement detail
- Hijacking the civilian truck that has a concealed cache of high-tech weaponry
- The way Ice Cube's car, unable to catch up to the train with regular tires, manages to do so after climbing on to the rails and having the tires shredded (don't even get me started on how the width of the tracks is miraculously equal to the distance between the car wheels)
Sunday, May 15, 2005
25 years of DOS
Microsoft is planning to celebrate the 25th anniversary of DOS. This article examines the reasons for the success of DOS and posits that Linux is at the same inflection point DOS was at 25 years ago. According to the author, one of the reasons this inflection point has come about is that people are fed up with Microsoft's greed:
IMO, the real reason people don't like Microsoft is that they have cottoned on to its predatory and monopolistic policies, claims of non-existent innovation, poor track record vis-a-vis security and the endless upgrade-without-real-benefits road it forces its users to take.
A friend of mine told me he thinks that if Microsoft released just 10% of the roughly $2 BILLION in CASH (does not include other assets) to help curb diseases and help starvation, many people could be helped. Instead the goal and mode of operation is to continue to amass wealth. People see this. People know this. It bugs them.I respectfully disagree. Why should Microsoft spend its cash reserves on charity? The company's charter is to make money for its stockholders, not eliminate hunger, poverty and disease. By the same token, why doesn't Sun, IBM or Oracle use their money this way? Why target only Microsoft?
IMO, the real reason people don't like Microsoft is that they have cottoned on to its predatory and monopolistic policies, claims of non-existent innovation, poor track record vis-a-vis security and the endless upgrade-without-real-benefits road it forces its users to take.
Saturday, May 14, 2005
Security through obscurity
I keep reading that Windows has more security vulnerabilities and exploits simply because it is the most popular OS and that Linux, MacOS and others are not that heavily targeted because they are niche OSs. Here is the latest example of this:
Yes, Microsoft's software has security holes, but hackers mainly love it because there are so many Windows PCs out there. Write one virus and 90% of the wired world could be yours.Question: considering the enormous negative publicity that a successful exploit against Linux would generate, with the attendant vindication of the OSS detractors and their I-told-you-so's, do you really believe that hackers are not trying their best to discover and exploit security holes in Linux? At the risk of sounding paranoid, I wouldn't put it past Microsoft to invest some of their resources into this; IMO, such a tactic would be more fruitful than hiring the services of hatchet men like ADTI and Laura Didio.
I have always wondered about this
Why are all the bills tabled by the government named like this: Weapons of Mass destruction and their Delivery Systems (Prohibition of Unlawful Activities) Bill, 2005? The crux of the bill, i.e. the prohibition in this case, is always mentioned as an afterthought. I can very well imagine how the government would go about naming a bill for protecting women: Rape of Good Looking Women (Punishment) Bill, 2005; leaving one to wonder whether the bill was meant to protect good looking women or to punish them for being good looking.
Friday, May 13, 2005
No Koreans were flushed down the toilet
From Juan Cole's blog:
A friend of mine with Pentagon contacts tells a tragicomic story. The Pakistani government complained to the US Department of Defense about the desecration of the Koran. The Pentagon passed the protest to the Southeast Asia division. It looked into the matter in East Asia and responded that it could find no evidence that the US military had flushed a Korean down the toilet.:-)
FreeBSD 5.4
Before I start my rant about FreeBSD 5.4 and my experiences installing it, here is a topical and informative factoid: the fear of the number 13 is called triskaidekaphobia.
Back to the topic of the post:I downloaded FreeBSD 5.4 yesterday. I wanted to check out how an OSS, non-Linux OS looked like; in particular, how different it would be from a typical Linux distro. Answer: not very different. If it looks like Linux, walks like Linux, talks like Linux...
Anyway, the one thing I take away from my brief dalliance with FreeBSD is that it didn't get the bootloading right. During installation, it offered a choice of incorporating the existing OSs in its loader, but when I tried to boot my existing Suse installation, nothing happened; no error messages, just a beep. No way for me to get back to Suse.
I had to reinstall Ubuntu into the partition I installed FreeBSD in (this was the same partition which had earlier contained Ubuntu) to get things back to normal.
P.S. The disk partitioning part of the FreeBSD install needs some working over. It's strictly not for beginners and nowhere near as straightforward as that of even a pretty 'raw' distro (from an installation perspective, that is) like Ubuntu. I had to abort the installation thrice before figuring out the correct way to set up the partitions.
Back to the topic of the post:I downloaded FreeBSD 5.4 yesterday. I wanted to check out how an OSS, non-Linux OS looked like; in particular, how different it would be from a typical Linux distro. Answer: not very different. If it looks like Linux, walks like Linux, talks like Linux...
Anyway, the one thing I take away from my brief dalliance with FreeBSD is that it didn't get the bootloading right. During installation, it offered a choice of incorporating the existing OSs in its loader, but when I tried to boot my existing Suse installation, nothing happened; no error messages, just a beep. No way for me to get back to Suse.
I had to reinstall Ubuntu into the partition I installed FreeBSD in (this was the same partition which had earlier contained Ubuntu) to get things back to normal.
P.S. The disk partitioning part of the FreeBSD install needs some working over. It's strictly not for beginners and nowhere near as straightforward as that of even a pretty 'raw' distro (from an installation perspective, that is) like Ubuntu. I had to abort the installation thrice before figuring out the correct way to set up the partitions.
Tuesday, May 10, 2005
As promised
...here are the nominations for the BS Hall of Fame:
- ...to achieve the vision of an agile enterprise with a flexible IT infrastructure that enables a business to respond to changes in the best possible way. As the business dynamics change and new opportunities emerge in the market, the IT infrastructure of an enterprise should be designed to be able to respond quickly and provide the applications needed to address the new business needs before the business opportunity disappears.
- ...to provide an environment where better business applications can be developed with less effort - business applications which should closely align to the business processes, which should not be too complex, and which can be adapted to the changing nature of business processes without too much effort.
- Developing enterprise-scale applications today requires an approach to software architecture that helps architects evolve their solutions in flexible ways. This approach should permit reuse of existing efforts in the context of new capabilities that implement business functionality in a timely fashion, even as the target infrastructure itself is evolving.
- Modern business systems need to cater to rapidly evolving business requirements in an ever-shrinking window of opportunity. Modern business systems also need to keep pace with rapid advances in technology.
- ...the growing need of enterprises to consolidate, reuse, adapt and integrate their typically large collection of software assets in an agile manner...to evolve abstractions and develop architectures and methodologies that significantly improve the way software systems are built and maintained today.
Monday, May 09, 2005
Teaser
Don't you just hate it when you are reading a technical article and have to wade through the obligatory first paragraph targeted at PHBs that goes something like this: "In a constantly evolving and ever-changing business environment, the demands placed on IT support systems are getting bigger everyday. For an organisation to successfully meet these challenges, stay agile and adapt itself..."?
In case you are thinking of writing such a technical article, I can be of some help: I am going to post a collection of such BS sentences I have culled out in the course of my technical reading. I would post them today, but the choicest pieces are languishing in my desk drawer at work.
In case you are thinking of writing such a technical article, I can be of some help: I am going to post a collection of such BS sentences I have culled out in the course of my technical reading. I would post them today, but the choicest pieces are languishing in my desk drawer at work.
Dish TV sucks big time
The morons have taken to relaying the F1 races with commentary in Tamil. In case you are wondering how that sounds, believe you me, you're better off not knowing. It's that bad.
They are also the most customer-unfriendly people around. I have sent them two emails complaining how non-transparent their billing process is and have suggested improvements, but have received no response. Not sure if somebody even read the emails.
The reason I am a hapless Dish TV customer is that they were the only option for me for catching last year's Euro 2004 matches live, as my friendly neighbourhood cable operator defaulted on his payment to ESPN just when the tournament was starting to get interesting.
Another drawback with Dish TV is that you don't get channels like Star World and Star Movies (mercifully, HBO found its way in somehow), but I don't mind this so much, what with their Zee-equivalents being equally good.
They are also the most customer-unfriendly people around. I have sent them two emails complaining how non-transparent their billing process is and have suggested improvements, but have received no response. Not sure if somebody even read the emails.
The reason I am a hapless Dish TV customer is that they were the only option for me for catching last year's Euro 2004 matches live, as my friendly neighbourhood cable operator defaulted on his payment to ESPN just when the tournament was starting to get interesting.
Another drawback with Dish TV is that you don't get channels like Star World and Star Movies (mercifully, HBO found its way in somehow), but I don't mind this so much, what with their Zee-equivalents being equally good.
Sunday, May 08, 2005
My own domain
I am in the process of moving my home page to my own domain (rajeshjayaprakash.in). Two things are holding me up:
- Though I have FTP'd my files to the hosting server, I am only shown the default Plesk index.html when I try to access the URL.
- The Name Server details of the hosting server have to be updated with the guys with whom I registered the domain name.
Thursday, May 05, 2005
PSV Eindhoven 3 - 1 AC Milan
Andy Gray got it right when he said that the best team did not get through to the final; Milan's performance reminds me of how Argentina sneaked into the Italia '90 final after not doing anything special (though, to be fair, Milan were nowhere near as negative as the Argentines).
When I checked the program listings in the newspaper, I found that the match was scheduled to be relayed between 8:30 PM and 10:30 PM (IST). I didn't think much of this when I started watching the match. But after PSV had scored their second goal, it suddenly struck me: the match hadn't gone into extra time, since the time slot allotted for the replay was not sufficient, implying that there was at least one more goal to come. But I didn't realise then that there was also big time heartbreak ahead.
P.S. The PSV fans were thoroughly rude to Milan's Seedorf, a Dutchman, booing and whistling whenever he played the ball. But not a peep from them regarding Stam, who is also a Dutchman, and an ex-PSV player to boot. What's up with that?
P.P.S. No offence, but is Vennegoor of Hesselink a count?
When I checked the program listings in the newspaper, I found that the match was scheduled to be relayed between 8:30 PM and 10:30 PM (IST). I didn't think much of this when I started watching the match. But after PSV had scored their second goal, it suddenly struck me: the match hadn't gone into extra time, since the time slot allotted for the replay was not sufficient, implying that there was at least one more goal to come. But I didn't realise then that there was also big time heartbreak ahead.
P.S. The PSV fans were thoroughly rude to Milan's Seedorf, a Dutchman, booing and whistling whenever he played the ball. But not a peep from them regarding Stam, who is also a Dutchman, and an ex-PSV player to boot. What's up with that?
P.P.S. No offence, but is Vennegoor of Hesselink a count?
Wednesday, May 04, 2005
No treble for Chelsea
Definitely not for the weak of heart. Though the match never rose to great heights in terms of technical brilliance, the occasion and the stakes involved more than compensated for it. The atmosphere during the closing stages especially (six freaking minutes of injury time!) was simply electric. I'll bet quite a few hearts stopped beating as Gudjohnsen's shot missed the target in the dying seconds of the match.
Book review: UML Bible
UML Bible is the third book in the Bible series that I have bought; it is also the best among the three. One reason for this is its relatively smaller size compared to the other two (XML Bible and BEA Weblogic Server Bible). It could have been made even smaller if the author hadn't heeded the publisher's threat of canceling the book contract if he turned in a manuscript less than 500 pages long (I think this a standard clause in all the Bible book contracts). Another reason I like UML bible is that there are no typos.
Content-wise, it's sort of OK. I was not disappointed, but neither did it excite me. It probably has something to do with the way these Bible books are structured. They present a lot of information, but there seems to be a deliberate intent to fill pages at the cost of sacrificing succinctness. This may find approval with the kind of folks who judge a book by the number of pages or a PowerPoint presentation by its duration, but it doesn't satisfy those who want to get up to speed about something without wading through pages of laboured explanations.
One thing I simply hate about the Bible series is the incredibly stupid saying on the back cover: "If UML/XML/<insert book topic here> can do it, so can you...". WTF is this supposed to mean?
Content-wise, it's sort of OK. I was not disappointed, but neither did it excite me. It probably has something to do with the way these Bible books are structured. They present a lot of information, but there seems to be a deliberate intent to fill pages at the cost of sacrificing succinctness. This may find approval with the kind of folks who judge a book by the number of pages or a PowerPoint presentation by its duration, but it doesn't satisfy those who want to get up to speed about something without wading through pages of laboured explanations.
One thing I simply hate about the Bible series is the incredibly stupid saying on the back cover: "If UML/XML/<insert book topic here> can do it, so can you...". WTF is this supposed to mean?
Monday, May 02, 2005
If ever xymphora gets tired of blogging,
...he can pursue a literary career and be assured of making a mark; consider this:
It took two woodsheddings, the first by Bush Administration official John Bellinger III - after which Lord Goldsmith found his natural baritone voice had become a tenor - and then by Blair cronies Lord Falconer and Baroness Morgan - at which point Lord Goldsmith had become a full soprano - before Blair got the opinion he was looking for.Guffaw!
Sunday, May 01, 2005
Dodgy mathematics
Though I have my doubts about the official 9/11 account, this is not the way to go about debunking it. Here is a simple refutation of the article's premise:
Assume that a murder has taken place and that the prosecution asserts that:
A. The defendant bought a knife at a store.
B. The defendant stabbed the victim with this knife.
If it can be shown that the defendant didn't buy the knife at said store, then the assertion that the defendant bought the knife at said store AND stabbed the victim with this knife is false, which is a perfectly valid assertion. But this does not prove that the defendant did not stab the victim with that knife.
Similarly, if the probability of the defendant buying the knife at a particular store being true is 0.1 and that of his stabbing the defendant with it being true is 0.7, the probability of both these assertions being true is 0.1 x 0.7 = 0.07; again, a valid statement. But this still does not make assertion B any less likely, or preclude another high-probability compound event (example: the defendant stole the knife [probability 0.4] and stabbed the victim with it [probability 0.7] -- leading to a compound probability of 0.4 x 0.7 = 0.28).
Assume that a murder has taken place and that the prosecution asserts that:
A. The defendant bought a knife at a store.
B. The defendant stabbed the victim with this knife.
If it can be shown that the defendant didn't buy the knife at said store, then the assertion that the defendant bought the knife at said store AND stabbed the victim with this knife is false, which is a perfectly valid assertion. But this does not prove that the defendant did not stab the victim with that knife.
Similarly, if the probability of the defendant buying the knife at a particular store being true is 0.1 and that of his stabbing the defendant with it being true is 0.7, the probability of both these assertions being true is 0.1 x 0.7 = 0.07; again, a valid statement. But this still does not make assertion B any less likely, or preclude another high-probability compound event (example: the defendant stole the knife [probability 0.4] and stabbed the victim with it [probability 0.7] -- leading to a compound probability of 0.4 x 0.7 = 0.28).
Vajra woes
The Practice of Programming contains the following advice on debugging:
I am going to follow this advice and use this post as a sounding board to help me fix a bug in Vajra (it's not really a bug, but more of how to address an implementation issue):
Strings are to be handled specially by the JVM. There is to be only a single instance of each unique string, i.e., even if there is more than one String object that 'stores' the value "Hello, world", all these objects will share a single instance of "Hello, world" maintained internally by the JVM.
I am handling this requirement currently by trapping the execution of the ldc and ldc_w instructions (those of them dealing with string literals, that is) and either creating string objects by myself (or reusing already-created string objects, as the case may be). I am also executing the <init> method for the newly created strings manually.
Now the problem is, how to handle string objects that are created by other means, i.e. when a String doesn't come into existence through an ldc/ldc_w, but through a normal call such as
Nope, still waiting for the Eureka moment.
Another effective technique is to explain your code to someone else ... you can even use non-programmers as listeners. One university computer center kept a teddy bear near the help desk. Students with mysterious bugs were required to explain them to the bear before they could speak to a human counselor.The idea being that telling someone about the bug produces a solution by itself.
I am going to follow this advice and use this post as a sounding board to help me fix a bug in Vajra (it's not really a bug, but more of how to address an implementation issue):
Strings are to be handled specially by the JVM. There is to be only a single instance of each unique string, i.e., even if there is more than one String object that 'stores' the value "Hello, world", all these objects will share a single instance of "Hello, world" maintained internally by the JVM.
I am handling this requirement currently by trapping the execution of the ldc and ldc_w instructions (those of them dealing with string literals, that is) and either creating string objects by myself (or reusing already-created string objects, as the case may be). I am also executing the <init> method for the newly created strings manually.
Now the problem is, how to handle string objects that are created by other means, i.e. when a String doesn't come into existence through an ldc/ldc_w, but through a normal call such as
String s = new String();Should I trap these <init> calls and handle them in a special manner? But in that case, how to handle cases where one <init> method in turn calls another <init> method of String? There is also the problem of how to keep the member data of a String object in synch with the internal object representation in Vajra in this situation.
Nope, still waiting for the Eureka moment.
Robert Fisk on the Assam Regiment
Robert Fisk writes about the role played by Indian peacekeepers in Lebanon. The essay is primarily about the relevance of the United Nations: he poses the question that, since Security Council Resolution 1559 is forcing Syria to withdraw from Lebanon, should the UN have been allowed to use its clout to make Saddam step down, instead of allowing the US to do so and make a right royal mess of it? My take is that, irrespective of whether you are for it or against it, the US military action did send shivers down the spines of countries like Syria and forced them to comply. I doubt whether 1559 would have had the same effect absent the American action in Iraq.
Having said that, the fact that Chirac threw his weight behind the resolution (Franco-Syrian relations go back a long way) could also have played a part.
Having said that, the fact that Chirac threw his weight behind the resolution (Franco-Syrian relations go back a long way) could also have played a part.
Chelsea win League title
I watched the Chelsea-Bolton match till Lampard scored the first goal. I switched the TV off after that, knowing there was no way Bolton were going to draw or win, after muffing at least three clear chances to score in the first half. I also didn't want to see the gloating, arrogant look on Mourinho's face when the final whistle blew.
Mourinho says "I want to stay with Chelsea as long as I can. My heart is with the club", but let's see what tune he sings when the likes of Man United and Arsenal get their acts together next season and start whupping Chelsea's ass. The honeymoon might end as early as next week if Liverpool manage to knock Chelsea out of the Champions' League.
Mourinho says "I want to stay with Chelsea as long as I can. My heart is with the club", but let's see what tune he sings when the likes of Man United and Arsenal get their acts together next season and start whupping Chelsea's ass. The honeymoon might end as early as next week if Liverpool manage to knock Chelsea out of the Champions' League.
Subscribe to:
Posts (Atom)
