“Microsoft CTO used a BlackBerry” – BlackBerry Cool.
Year: 2005
Programming in Java: Resources for the day
“Ruby off the Rails” – IBM Developer Works, a introduction to Ruby for Java developers.
Yet another Java blog.
Rediff: BlackBerry Connect for the Nokia 9300 now available through AirTel, India
Article: “Airtel’s BlackBerry: Not too hot” – Rediff.com, Dec 16th. 2005.
My take, author’s spelling – not too hot! But then let me not miss the real theme of the article. The author is not the only one to complain about the poor memory available on RIM devices (I believe he is talking about permanent storage memory). BBConnect devices are one way to get around such limitations. Surprisingly, India got BBConnect before the US did. Could it be that the outstanding case with NTP is delaying BBConnect’s introduction to the U.S. mobile market? There are also a few standard BlackBerry features missing on the BBConnect device. For example, wireless synchronization of your contacts and calendar.
Business Week: A trade-off between Design/Innovation and Cost does not exist
Original Article: “India and China: not just cheap“. Business Week.
I enjoyed reading the article. It challenges an otherwise tempting assumption – don’t expect that a lower cost implies lower quality. Putting any faith in the existence of such a relationship is a mistake. The author presents evidence from past events in the automobile and electronics industry. Essentially, the form India assumes in foreign eyes is that of a cheap back office, things get done well, for cheap and conform to specifications, however, don’t expect anything innovative. The innovation will still lie in the hands of the Masters. The author asserts that such an atitude is simply denying reality.
With the increase in foreign interest and investment in Information Technology, India finds itself at the cusp of an interesting and valuable opportunity. It now has an increased ability to shore up its strengths and bridge its weaknesses. From a long-term point of view – social change is inevitable. This has been the predominant theme of 2005. The reality is – the depth and range of capabilities of Indian companies is going to grow, fueled by this very social change. An endless feedback loop (very like the cycle of karma and evolution 🙂 ). Talent will be honed and innovation beyond expectations will be encouraged. This applies to all fields, science, engineering, management and others. India does have some catching up to do in terms of its contribution.
Game Development in India
Business week is tracking video game development for mobile phones by Indian dev. shops. The particular game in focus will be published by Indiagames is called “Emperor Ashoka”.
Application development for mobiles has a relatively lower entry level in the software development industry, costs less but it does require expertise in art and design. In order to overcome this barrier, Indiagames enlisted the help of a UK-based shop Short Fuze. This is an interesting development. Packaging any product destined for the shelves (in this case 3G wireless operators) requires a complete spectrum of skills. Indian developers definitely have the skills to bend the rules of software development. On the other hand, there seems to be a lack of confidence in the skills that require a combination of creative and artistic talent. I find it hard to understand this lack of confidence. Indian artistic talent is held in high regard the world over.
To be fair, the publishing company want their finished product to appeal to a western audience (primarily). Hence the hiring of a UK-based art and design company. The foreign touch is very evident in the appearance and costumes of the characters and the level design. It is evident that Indiagames is sticking closely to the “Prince of Persia” model. Lets give the target market a slick looking product first. I anticipate that the company (and Indian mobile companies) are missing out on a great opportunity to begin building on the Indian mobile market first. In fact, the first few comments on the Business week forums was from a reader of Bengali who objected to the use of the form of goddess Kali in the game.
The challenges in cultivating such a market at home appears to be a lot more difficult than exporting to an already established (western) market. Is it really that difficult to get the middle-class Indian to part with his cash? If Pizza Hut, Subway and McDonalds can do it, why can’t the software industry? I have several misgivings about the fact that Indian software shops are mostly in business for foreign markets.
I appreciate the hard work Indiagames have put into this game. The game screenshots look great. I also like their thinking, they want their players to be able to play the game across platforms, on the PC, on the mobile, and even on their gaming console. It might take a while, but that is definitely innovative. To save your game on the PC and then pick it up where you left off while riding the subway – I like! They are also hoping that the exotic nature of their game will allow it to gain some mileage over the other games available to mobile phone users. Have a look at some of their existing games. I am sure “Emperor Ashoka” will match up to the high standards.
- “India’s new Export: Video Games” – Business Week
- Indiagames, India
- Short Fuze, UK
Update (6th Feb. 2006): Piracy in the Indian Gaming Industry [ContentSutra].
Embattled RIM sends word out to the investors
Reference: Patent Abuse – Jim Balsillie, December 19th, 2005.
Finally, Jim has spoken. RIM’s CEO, Jim Ballsillie has just put out an op-ed on the Wall Street journal. You may read the article on RIM’s website if you have not subscribed to the WSJ. Way to go Jim, all those who complain that RIM’s silence on the issue is hurting RIM must now be quiet. For a while, I thought no one at the helm had the guts to put down NTP’s sabre rattling and FUD. The tone of the article is aggressive. Jim makes it very clear that RIM believes NTP’s only motivation in this issue is greed. It would be wrong for RIM to simply give in to NTP’s unreasonable demands (almost extortion).
No, it’s not about legitimacy, fairness, entitlement or anything described above. It’s about greed. It’s about a willingness to abuse the overburdened patent system for personal gain. The NTP lawyers have been blinded by their ambitions to the point where they turned down one of the largest settlement offers in history and a royalty rate that is 10 to 20 times higher than industry norms for uncontested patent portfolios.
I found it interesting that NTP has been trying to delay the patent re-examination. The obvious intent would be to prevent their case from eroding.
It’s not about embracing and respecting the process within the USPTO. NTP has repeatedly and purposefully delayed the re-examination process. It’s latest attempt at delay was thankfully denied by the USPTO last week. NTP also failed to comply with its duty to provide the USPTO with highly material evidence (called the “TeleNor art”) until it was effectively forced to comply months later. It even recently tried to overwhelm the USPTO’s re-examination process by filing over 30,000 new patent claims on top of its existing 1,921 claims (which was already considered to be an unusually high number of claims for these patents).
Makes me wish that media would portray all aspects of the case. The only news I have heard shouted out loud are the setbacks that RIM has faced in court. Sure, everyone wants to short the stock :P. Sucks.
Let me not get caught up with my sentiments on this issue, after all, if RIM is bashed in public, I am going to sit up and take notice. Nothing new there. To be more objective – the system that rewards patents and enforces them here in the USA does require a serious review from those who have the most to lose – Investors and Inventors. RIM has had the unfortunate pleasure of facing a shutdown even when the severity of its violations have been undeserved of such a fate.
Culture, programming and technology
The global nature of the Internet offers an interesting insight into cultures around the world. As an observer, you may want to focus on the positives or the negatives.
For example, the Tokyo Stock Exchange just suffered two embarassing glitches in their software and electronic systems (see “Tokyo Exchange Struggles with Snarls in Electronics” – New York Times).
An excerpt:
In a hastily called news conference late Sunday evening, the exchange’s president and chief executive, Takuo Tsurushima, admitted that a failure by the exchange’s computer system was also at fault. Previously, the exchange had squarely blamed Mizuho, saying that the brokerage had not only botched the trade order but also had made an error as it tried to stop the order.
But Mr. Tsurushima also made reference to a glitch on Nov. 1 that froze trading on the Tokyo Stock Exchange for all but 90 minutes of an entire day, an unusual and embarrassing mishap for one of the world’s top bourses.
“I feel a heavy responsibility for having caused turmoil in the market twice in such a short time,” Mr. Tsurushima told reporters. He said he might resign, a customary gesture in Japan to take responsibility.
So, the Japanese take responsibility very seriously, seriously enough to consider resigning their positions or taking a pay cut as punishment. Obviously, some engineer somewhere in the Fujitsu ranks made a mistake. His management were more than ready to take the blame. I need not add that the Japanese are highly regarded for the lowest error rates in their software.
I sense a widespread trend amongst many American technology employees to prop up Indian programmers in general for a dressing down.
Take these comments below (original story “Competing to work for Microsoft” – Slashdot). The original story is about the Microsoft programming competition in India. The winner gets to work with Bill himself.
Give me that guy’s code, and I’ll find at least a dozen things in it that are pretty much fireable offenses in any reasonably disciplined dev org. During my time at Microsoft (5+ years), I’ve known no less than 50 Indian SDEs (MSFT jargon for software developer). Only two of them could write what I’d call “good code”. One of these two was a freakin’ genius, but I digress. I don’t know if it’s cultural or not, but it seems that Indians are predisposed to writing horribly convoluted, unmaintainable cut&paste garbage (sorry, I can’t call _this_ “code”). For most of them, if it works _somehow_ means it’s good enough. If it were up to me, half of these folks (not just Indian, of course) would be gone and the rest would be scared of checking in atrocities they check in right now for others to rewrite later.
And the thing is, the culture at MSFT is such that you can’t just email into dev team alias and say “this is crap, and this needs to be rewritten”. You’d “hurt people’s feelings”, which will affect your yearly review, pushing it towards (or below) 3.5 grade, for which you get bonus and stock grant that may or may not cover the cost of living. So folks just shut up and suffer.
…BTW, this is not a racist or anti-outsourcing rant. Test folks in China did (and no doubt still do) a stellar job. I’m just puzzled that Indians fuck up so badly time after time. If you guys are reading this, you’ve got to realize that sooner or later it will become clear to the higher ups that company money is better spent in China, despite pretty shitty English that Chinese folks speak.
How is this not a rant against Indian programmers in general, or not racist in nature? When did dev orgs start firing people they hired for the code they write? The comment promotes the assertion that if your Indian, and your a programmer, you probably suck at programming. But isn’t the real issue the culture at the authors company that does not promote self-improvement? Is it not a problem that Microsoft is hiring people who can’t write code in the first place? At least give them an opportunity to improve? No, of course not, the author intends to conclude that the programmers country of origin is an issue here. Does it piss me off to see that Slashdot condones such a narrow, misdirected view? Yes, it does.
Someone followed with comments that came closer to appropriating the blame:
I totally agree with you but I think your aim is a bit off. I do not see the engineers from India as competitors. I see it as my managers just gives my job away to anyone they feel like. If my manager does not value my competence there is nothing I can do about it.
The company I work for outsource projects to Wipro and TCS. The thing that is strange is that any person they send is automatically accepted as an engineer without any tests or screening what so ever. Ofcourse this is now being abused and I am now seeing 24 year old graduates arriving into mission critical projects.
The problem is that management is seeing software development as hard as digging a ditch. You just give anyone (preferebly the cheapest one) a shovel and off he/she go. The thing that is most funny is that in the company I work for it is all based on a lie. My manager plus a senior manager I spoke to 2 days ago claims that I cost 4 times as much as a resource from India. This is not true. What they are comparing is my funny money internal cost with the real fee from Wipro or TCS. What I really cost is 1.5 times. (+ the cost for my office) Of the cost for my salary the Swedish government is taking 55% and when ever I buy something I pay around 25% sales tax. (Food is 12.5% and taxi/bus is 6%) so in the end I might earn LESS than my Indian counterpart.
I want to finish off my rant with a quote from a management book, Object Technology – A Manager’s Guide. Page 11. I think this quote explaines quite well managements view on us software developers. “For most business people, polymorphism is so obvious that they have a hard time seeing what is so special about it”
He is right to a certain degree – the process of outsourcing to India should not worry the good Engineers in the U.S. In the majority of shops in India, mismanagement (in outsourcing shops) is possibly the rule rather than the exception. New Engineers are often inducted without sufficient training. However, I will also point out – don’t be so condescending as to dismiss all Indian Engineers as incompetent. The ranks of the smartest at Microsoft are replete with Engineers from India. People of Indian origin, or with education from India count themselves amongst eminent scientists and businessmen in the technology area. They have worked hard to get there.
I promise you, the code written by this guy who will win this Microsoft competition will blow your socks off. Next time you see some junior developer write poor code – don’t blame his country of origin. Criticise him, give him an opportunity to improve, display some maturity in thought!
Java applications: Performance tuning tools
Pet Peeve. On having reached Code Complete, I get around to experimenting with performance optimizations for my application(s). I came around to Java a while ago (circa 2000 from the “C” camp). The “C” developer community has a plethora of professional tools available under various licenses. The set of free tools for “C” are enough to get by on, some even provide additional value. In contrast, looking for Java performance tools has always been frustrating. I have trouble finding even the most basic tools I can use, tools that will give me some insight into whats going on under the hood of my application.
Looking for the profiler. In the past I have used JMechanic with Eclipse. I personally thought it was a very simple plugin to use. It got the job done. The plugin was unable to provide timing statistics but it was able to provide a good heap analysis. Unfortunately, JMechanic was abandoned when Hyades (now known as TPTP) for Eclipse came around. Before trying Hyades, I tried a bunch of profilers. None worked out as intended – they either did not work, or fell short of what is expected.
Act 2: There are no free lunches. Main characters are, Santosh, an intermediate developer as far as Java is concerned. Sarinder, a wisened veteran 😉 of professional java programming.
Santosh: Damn, this memory profiler will list the objects created, but won’t filter them by namespace.Sarinder: Which profiler are you using?
Santosh: This free plugin for eclipse.
Sarinder : Ahh, see that’s your problem right there. It’s free.
First attempt. My current Eclipse install was originally based on Eclipse 3.1M3. Somewhere down the line, I upgraded it to Eclipse 3.1 final release. Why is this relevant? It seems the upgrade had everything to do with what was to come next. Before installing TPTP I walked through their installation guide, downloaded and installed all the pre-requisites for TPTP. Unfortunately, I did not get very far. “Unable to create part: Profiling Monitor”. So frustrating, the message was not even helpful from any possible perspective. I guess thats what happens when you don’t pay attention to exceptional circumstances (see “Grouchy Code”). Wait a minute, I just found another installation guide on the Eclipse home site. It appears I may have missed a few components. Which would mean that the original TPTP documentation isn’t complete. So I go ahead and install the missing components. That doesn’t help either and I am still stuck with the lame error message.
My question is, how do I debug the problem with TPTP in Eclipse and understand where it failed?
Cleaning house. On Day 2, I decided I had to blow away my current Eclipse install and make a fresh attempt at installing Eclipse TPTP features. :P. I hate to do this. But it worked, arggghhh :-). I am no officially in the “try it, see if it fails or works” club that Steve McConnell warns about :-). I now have TPTP working and if I can get anything useful out of it, I will definitely write about it as a matter of record.
Resources.
The Java Performance Tuning Page.
The Java Manageability Page.
AppPerfect.
JavaLobby.
Grouchy Code.
Installing Hyades.
Java applications: Get supported Locale
For web application developers, internationalization of the application is an absolute neccesity. The user should be able to select a locale that suits him from a supported set of locales. What locale is appropriate when the locale has not already been selected? One solution is to fall back on a default locale, provided it is supported by the users browser.
I found a small, useful snippet of code on Koders.com. The application checks to see if it can match up any of the locales supported by the Browser to the locales that it can support. For those unfamiliar with Java, understanding the underlying concepts is easy. These concepts are really language-independent and are good to know if your interested in web services. For intermediate level web developers, this is probably a concept encountered and learnt often.
The key idea is a simple one. Java Locales are a combination of language and country. While there exist different locales for “English, US” and “English, UK”; a web application will often support just the English language in an answer to both locales. However, Browsers will explicitly list “English, US” (or UK as the case may be). A strict match between “English”, and “English, US” will fail (see Locale.equals()). Instead, applications must treat the supported language – “English”, as a wildcard, matching it with “English, US”, when appropriate.
Be wary of the pitfalls in this approach. You can get away with showing “English, US” to users from UK. You might now get away with showing a page rendered in “Chinese, PRC” to users from Taiwan. I’m not sure if this example is the best one, but it illustrates the problem. To summarise, the application may be written treat the supported locale “English” as a wildcard. On the other hand, when explicitly told to support “English, US” it should resort to strict matching of locales to locales supported by the browser.
You can also enhance the scheme by matching Brand’s default locale before looking at other locales.
Resources.
Exchange 2003 SP2 mobility features against BlackBerry Enterprise Server.
Older post: What’s under the hood of Exchange 2003 SP2. How are the new features a real challenge to the BlackBerry Enterprise Server? Could it potentially convince users of Exchange 5.5/2000/2003 + BES to switch over to Windows Mobile devices instead? I would love to know.
- New Mobility features in Exchange Server 2003 SP2 [Microsoft.com].
- Exchange 2003 SP2 has been released [RIMarkable.com].
An update: In order to work with Windows Mobile clients, Exchange 2003 with SP2 maintains a HTTPs connection with each client. It is over this secure connection that new email is ‘push’ed to the handheld as it arrives. From “Exchange Server 2003 support for mobile devices“.
New with Exchange Server 2003 SP2 is Direct Push Technology, enabling a seamless push e-mail experience for compatible devices. Exchange ActiveSync uses an encrypted HTTPS connection established and maintained between the device and the server to push new e-mail messages, schedules, contact information, and tasks to the device. Synchronization is much faster with enhanced data compression translating to a faster experience when sending and receiving messages. The Exchange ActiveSync protocol also provides for control over mobile devices, including new abilities in SP2 to provision and enforce device security policies.
Exchange 2003 SP2 will now also have many of the remote management and security enforcement features that the BlackBerry Enterprise Server offerss. For example, administrators can now enforce the degree of security for Windows mobile passwords for every device connected to the Exchange server. See “Better Together: Windows Mobile 5.0 and Exchange Server 2003“. If I read correctly, a Https connection (over the existing wireless data connection) will still be initiated by the client and will be ‘kept alive’ – which leads to obvious questions on efficiency and scalability. This set of add-ons is enough to make an Exchage 2003 administrator to decide for the free SP2 addon instead of BES.
If it were to come down to which platform is a better option, Windows Mobile just steals the edge. Windows Mobile OS is supported by Microsoft, there are several applications available for the platform, the platform is available on a variety of devices. In contrast, BlackBerry technology is available primarily on the BlackBerry handset which comes in two standard flavours. Both flavours have greater appeal amongst prosumers (when compared to Windows mobile), but fail to match the wider feature set available with Windows mobile devices. For reasons unknown, RIM has yet to introduce expansion slots, voice recognition technology and other premium features for the BlackBerry. GPS navigation is only available with Sprint/Nextel’s 7520 (see “GPS navigation with your BlackBerry“). Partner devices including the Nokia 9300 with BlackBerry technology on-board were only recently made available in the U.S (see “BlackBerry on the Nokia 9300“). The hope is that these devices will fill in the void for prosumers who demand such features. At this time, the 9300 is the only partner device announced by RIM for the U.S handheld market.
Now for some speculation. It is not hard to see that Microsoft’s Windows Mobile leadership would look to level the handheld market such that the BlackBerry device is no longer perceived as a niche (read mobile email) device. Such a market would be driven simply by the number of productivity applications offered by every type of handheld (for example a PDA, or phone first). If the device were to lose it’s existing aura, BES cannot compete against the free handouts that Microsoft will distribute with Exchange 2003. These enhancements are also a great temptation for established corporate networks running with Exchange 5.5.
My hope is, RIM will continue to innovate and maintain leadership in terms of technology and alliances with other technology partners. It will continue to offer a wider range of applications that leverage advancements in wireless data connections (and not just mobile email).