Showing posts from December, 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

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.

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.

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

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

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 compute

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 o

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.

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!

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 :-)