Sunday, December 31, 2006

My take on Microsoft/Linux patent issues

Since the Novell/Microsoft deal, more of us worry about Microsoft legal attacks on Linux using some of their (unnamed) patents. This is troublesome to me for at least two reasons: Linux and other open source software allow me to build systems for customers at a lower cost point (good for my business), and I enjoy developing on a Linux box for Linux deployments.

For Linux on the desktop, I believe (but I am not a lawyer) that as long as I (and other Linux users) typically buy a commodity PC with Windows and then install dual boot Linux, then how could I possibly be infringing on Microsoft patents: I have a paid up license for Windows on the same PC that I am running Linux on. The situation for server side Linux is less clear, but server side Windows is much less important to Microsoft's cash flow than the desktop.

Accurate predictions are difficult, but I would not be surprised if through corruption of politicians some countries put up legal roadblocks to using free (as in GPL) and other open source software. Long term, I believe that these countries will be at a competitive disadvantage over other countries where businesses of all sizes and individuals can continue to lower IT costs while benefiting from collective software development.

It is really simple: diversity of commercial and open source software, with fair competition is good for business. As a reluctant Microsoft customer, I would ask Microsoft to publicize which of their patents that they think Linux violates - provide real details. Of course they will not do this because I believe that their strategy is to threaten but to not take action. Computer professionals can push back against Microsoft by favoring companies like IBM that take a more fair and balanced approach to commercial and open source software. We can all help by making small contributions to organizations like FSF and the EFF.

Saturday, December 30, 2006

JRuby 0.9.2

JRuby 0.9.2 was released a few weeks ago but I just got around to trying it out this morning. My favorite feature is the "JRuby IRB Console". An easy way to experiment with JRuby is to simply to download the console JAR file that conveniently contains the JRuby run time system, has a "tab auto complete", and has readline support. If you have not given JRuby a try yet, download the IRB Console, and follow through the tutorials. Good stuff!

JRuby performance problems:

I love programming in Ruby but find myself working a lot in Common Lisp instead for vastly better runtime performance. JRuby performance is very poor at this time (much slower than the standard Ruby system, which is itself slow), but with support from Sun and some development time, performance and Java platform integration will improve.

Thursday, December 28, 2006

Getting around problems with Apple's iTunes DRM

I have had computers either break or I reloaded the operating system without de-authorizing the computers from Apple's iTunes music store. There is a limit of 5 authorized computers per account, so I was in the position of not being able to play some TV shows that I purchased. It turns out that all you need to do is visit Apple's support page for iTunes that starts the iTunes application, allowing you to de-authorize all computers. Then you can re-authorize just your currently working computers. You can de-authorize all computers once per year.

Thursday, December 21, 2006

Correction: Google SOAP Search APIs

Google has stopped issuing new API keys to developers and is adding no new resources to support the search APIs, but: "you can continue to execute queries, and we have no plans to turn off the service in the future".

Better news!

Web services as a business

I am disappointed that Google did not keep supporting their SOAP based search APIs. Google seems to favor too strongly advertising revenue over other revenue streams like:
  • Commercial support for a search API - pre-pay per a large number of search requests
  • Subscription CDR or DVD-R backups of a user's data for all Google services; for example: for a fee, receive a backup in the mail every 3 months: I would consider $50 to $75 (depending on if a CDR or DVD-R is required) dollars per year to be reasonable and with the number of people using GMail, Google Docs, Calendar, Reader, etc., this might be a good revenue stream
In any case, I would like to see more success stories for large and small companies commercially supporting web services.

I hope to have a major version update of my KBtextmaster natural language processing (NLP) toolkit released in the next 4 months (or so). I am planning on providing a public web interface so customers can "try before they buy". I am likely to provide a public REST based web services interface also - easy since the product includes REST and SOAP support. I have thought a lot about selling web services that extract semantic information from news stories, but it is likely better to just sell customers KBtextmaster and help them customize it for their specific needs.

Tuesday, December 19, 2006

Google search API: rest in peace

I have been using Google's search API (limited to 1000 queries a day) for research and demos since 2002. A cool service, I am sorry to see it go.

I also use Yahoo's free search API and sometimes run Nutch which supports the OpenSearch API.

My favorite use of Google's API was a "who/where" natural language processing question answering demo that I used to run on

Sunday, December 17, 2006

I updated this weekend

I spent an evening or two a year ago setting up for my own use: I wanted a one stop Ruby news page. I spent an hour yesterday putting RSS/Atom spidering in a background work thread to avoid occasional delays in processing requests.

DRM and (Un)Trusted Computing: really a big deal?

I have blogged several times on how much I enjoy Apple's iTunes store, always burning any songs I buy to a CDR as MP3 as backup. I just did get burned by Apple's DRM however. This was partially carelessness on my part and partially some bad luck with hardware. You can only "authorize" 5 computers at once to work with your iTunes store account. I had a disk go bad on a Mac and had to re-install OS X without first unregistering the computer with the iTunes store. I had a similar experience recently with a Windows laptop: re-installed Windows without remembering to de-authorize that computer with the iTunes music store. Now I can't watch several Battle Star Galactica videos I purchased on my laptop. Oh well, no great loss.

(Un)Trusted Computing is a bigger deal: if I buy a computer, I want control over:
  • What software gets installed on my computer
  • When I buy a license to run an operating system, like Windows, I want to be trusted as a customer, and not have my computer (partially) disabled if Microsoft makes an error
I am currently running Windows 2000 on my laptop, and I am happy enough: I still can get security updates, my system is stable, and I can run Windows-only VPN software that my customer provides me. My experience with Windows XP was less happy, but still reasonable. While Microsoft Vista's (Un)Trusted Computing might appeal to unsophisticated computer users, Vista does not appeal to me, and I am hoping to permanently avoid Vista.

Richard Stallman and Eben Moglen of the have been warning about loss of freedoms for computer users for many years, and unfortunately some of their dire predictions seem to be coming true.

What I think is important is that people who want Microsoft's Vista should have the right to Use Windows. Same with Apple users. People who want to use these proprietary systems will certainly be able to get "locked in" all they want.

The problem I have is for the 1% to 2% of computer users (like me!) who appreciate the advantages of running Linux, even without having access to media like DVDs, etc. I want to be "left alone", and be free to set up my Linux computer as I like it. In regards to patent issues: I see great hope because large companies like IBM are sharing part of their protective patent "umbrella" with the Linux community. Good going IBM - I will certainly give them my business when I can. Also, I hope that the courts take a fair approach to enforcing patents: patent holders like Microsoft who might want to legally attack Linux users should be made to publish which patent violations Linux is supposedly guilty of, and I believe that the Linux community will quickly get rid of any legally offending code if any such code exists in Linux.

Saturday, December 16, 2006

Public web applications and knowledge workers

Public web applications, especially those that allow exporting my data in easily processed formats, have been the most important changes in the way I use computers since I made the transition from punched cards to a Dec-10 in the 1970s, when I bought my second home computer in 1978 (serial #71 Apple II), when my company SAIC bought a Xerox Lisp Machine for me in 1982, and I started using the Internet in 1985. I now use GMail, Google Calendar,, Flickr, Google Documents,, Google Reader, Picasa web photos, and as a regular part of my work process and for entertainment.

The key thing is that all of these public web services allow you to export your data for archival backup, use in utility scripts and programs, etc. Most also support, in addition to manual data export, web service interfaces.

The only work that I perform "locally" is programming in Emacs+Common Lisp, various languages in Eclipse, and writing large documents using either Latex or Even for "local work", all of my working materials are stored on leased managed servers in subversion repositories.

Thursday, December 14, 2006

Java JDK6: bundling web services, embedded database, etc.

I have been reading some negative comments on adding web services, embedded database, etc. to the core Java libraries but I think that this is in general a good thing. If you don't like the now "standard" web services libraries, then just use the stack you prefer. The good thing is that it is just about trivial to do two things:
  • Export methods from one of your POJO classes as a web service
  • Build a client from a WSDL resource (e.g., "wsimport -d generated")
Java DB (Apache Derby) is a good embedded database and having it in the JDK (but not the JRE) by default makes it easier to deliver small applications to customers and feel more confident that they will have an easy installation experience. I could care less if the JDK download is a few megabytes larger.

Tuesday, December 12, 2006

Eclipse Mylar: automating context manangement for work tasks

Mylar is a new Eclipse extension for associating parts of a project with different specific tasks. You inform Mylar as to which task you are working on, and Mylar learns to associate project resources with tasks stored in Bugzilla (best support), Trac, and JIRA repositories. I set up Milar to use local tasks that are stored with my Eclipse workspace - when collaborating with other developers, sharing tasks with Bugzilla is the way to go.

Switching tasks (either local or stored in a Bugzilla repository) is quick, and automatic hiding of project files and resources in Milar's "focused UI" helps reduce the overload of information that a programmer needs to deal with. So far, I have only used local tasks and Ruby projects but from the documentation, Milar should work the same for Java, Python, etc. development in Eclipse.

Great idea and well implemented!

Monday, December 11, 2006

out of the hospital and back online

I have 2 large pulmonary embolisms - a bummer, but I am stable now and out of the hospital :-)