Archive for May, 2007

Microsoft: OSS Violate More Than 230 of Our Patents

Fortune magazine is reporting that Microsoft believes that free and open source software violated more than 230 of its patents. From a business stand point, this seems like another way to increase Microsoft’s revenue from the royalties it must think that I can get from OSS community but at the same time ignorant would be OSS adopters might reconsider and stay with Windows which still means more money for Microsoft. However this is a rather myopic tactic since the possibility of revenue from royalties collected from OSS companies or groups is miniscule (just ask SCO); the number of players in the OSS movement can’t be threatened successfully by a single company. SCO’s approach to taking on Linux was to sue companies that use Linux and demand money from them. What are the effects of such an approach on Microsoft and its enormous install base?

Over the last two weeks I have been spending a some time looking at the projects available at codeplex.com. While most of the projects I have looked at (and were of interest to me) were in their starting stages, CodePlex is an interesting under taking though I still couldn’t get the feeling that I am dealing with Microsoft’s definition of open source. CodePlex is a good way for Microsoft to emulate the open source community and the advantages it has; it is more like Sun Microsystems with their JCP (Java Community Process) approach to managing and evolving Java (prior to its release to open source). I still believe that Microsoft needs to be more accommodating of open source in order for it to survive in the long term and though this particular piece seems more like another FUD tactic. Of course it also shows the internal struggle at Microsoft to have everyone tow the same line as far as Microsoft’s relationship with open source goes.

Microsoft is still putting efforts into defining FOSS in a manner that allows it to do business with it in a manner that it (Microsoft) is accustomed to. The deal with Novell was more about business than anything else and the threat of litigation could scare some more OSS companies to get into such deals with MS; the deals are beneficial to Microsoft from a business stand point and hence the more FOSS companies sign up with Microsoft the better their business.

While the posturing might seem interesting and all, up to this point there is no mention of a specific patent number that Linux or any other FOSS violates. A patent attack on OSS cannot be sustained because the very same reason that allows FOSS to evolve rapidly can be brought to bear to avoid and/or circumvent any credible patent infringement that Microsoft may have against the movement. This is something that Microsoft is probably aware of hence they need to be deliberately vague about their accusations or else those accusation may not hold for long.

The other angle of a patent attack defense would come from supporters of FOSS like IBM, Nokia, Red Hat, Sun Microsystems (and others) and groups like the Open Invention Network which represent a patent pool that can be useful in launching counter attacks.

1 Comment

Beginning of a New Semester

This week saw the start of a new semester which means same old challenges to go through and for some reason it is increasingly becoming clear that the start of a semester must necessarily suck! While I am not a fan of mourning about the realities of life, I must admit the bulk of the usual challenges I deal with at the start of the semester are largely taken care of; only one unit has been scheduled in a lecture room that requires scaling an ungodly number of stairs. I am hoping this will be sorted out soon.

This semester I have one IT-centric unit in the name of Computer Graphics; I am yet to have the first lecture but I think this is something I intend to enjoy and hopefully be a good reason to become more friendly with graphics. I am mostly biased towards web applications and the web apps I have developed so far aim for simplicity and some elegant but eye catching use of color. In short not much graphics come into play when I work on a web app. Of course a web app is suppose to serve a purpose and hence most of the bling bling is not necessary. I don’t think the Computer Graphics unit is going to be about those kinds of graphics though but it will be fun to discover more details about graphics.

World Civilization I is the humanity elective that I am taking this semester. From the first lecture it is going to be an interesting unit though the fact that I am taking evening classes will some what mean less involvement in the lectures on my part. I liked the introductory lecture and it is the kind of lecturing that I prefer: no notes provided. Single Origin theory was fascinating; I had a look at the Wikipedia entry on the subject and my mind was abuzz with the possibilities. In all the world, there is the greatest genetic diversity in Africa which according to the theory means that Africa was the birth place of the modern man. From a simplistic view, it is hence acceptable to posit that new generation of human beings are more likely to emerge from the great genetic diversity present in Africa. I am currenlty following the Heroes TV series; in this series, a number of people have super human abilities as a result of evolution …

The other units for the semester include Business Law, Introduction to Macroeconomics and Cost Accounting. All these are business units and that’s all I am going to say about them for now other than the fact that there will be a need to read a large amount of notes.

Leave a comment

Current Challenge Update

Last week I blogged about an issue that I was focusing on in the current project that I am working on. In my hunt for a solution, I came across a couple of MyFaces tags that I didn’t pay much attention to and it turns out that they were the solutions that I was looking for. First up the default implementation of the dataTable component is not robust enough; yes, it does all the fancy things of iterating through a list of objects but when additional capabilities are required, it fell short (miserably so). I found myself remembering my time with ASP.NET 2.0 with a heavy dose of nostalgia. ASP.NET 2.0 allows a developer to create seemingly advanced UI scenarios without much complications of how the whole setup comes together. The GridView control is particularly intriguing.

Back to the subject: JSF RI implementation of dataTable was woefully inadequate so I looked to MyFaces’ implementation of the same control and it has this really useful attribute called “preserveModel”; when this attribute is set to true, it preserves the list that is bound to the dataTable control. I have not yet pushed this to its limit but I can see its potential already and thus I will be looking forward to creating some interesting UI scenarios.

For those interested in itemized list of accessing components in a table, here it is:

  • The simplest way to preserve the state of a dataTable is to use MyFaces’ extended implementation of the component; in particular set the preserveModel attribute to true. This is not the only attribute that is useful there are a number of other attributes that can be leveraged in the interaction between the presentation layer and the managed beans.
  • Using managed beans with request scope is generally a nasty business; too many parameters passing between the presentation layer and the managed beans. A more amenable scope would be the session scope but there is a need to ensure that the scope is not abused unless you don’t mind your code chewing up a large chunk of memory just to run. In the current project, I have a number of managed beans that need to be in the application scope since most of the data and methods they provide access to do not change regularly.

In solving this particular challenge, I have also come to discover the importance of using events in a JSF application more often as opposed passing parameters through a HTTP request query string which quickly becomes unmanageable in a sufficiently complex scenario. Events enable a more intuitive development experience and the resultant UI is quite simple and in most cases not confusing to the user (or at least that is the hope from a developer’s perspective). I am a believer in the value of an application that can communicate its state to the end user.

The main tag that led to the realization of simplicity is MyFaces’ updateActionListener tag which I am currently using to change the state of managed beans. The tag is nested inside a commandLink component and then when that commandLink is clicked on the specific details of the updateActionListener tag are also executed. Here is a code sample

<h:commandLink id=”cmdDemoCommand” actionListener=”#{demoBean.doDemoAction}”>

<h:outputText value=”Test Demo”/>

<t:updateActionListener property=”#{demoBean.currentObject.id}” value=”#{demoManager.currentId}”/>

</h:commandLink>

Without the use of the updateActionListener tag, the manner in which these properties are kept in sync would have been a complex and messy process. My current experience leads me to the conclusion that it makes it much easier to develop the back end code that manage the user’s data and particular navigation scenarios which cannot be adequately accounted for by the usual JSF navigation rules.

Leave a comment