Posts

Showing posts from May, 2006

New PowerLoom site

Thanks to reader Vinodh Das for pointing this out to me: the PowerLoom web site has been updated and as one of the developers told me, PowerLoom is now released under an open source license. PowerLoom is a great system - if you are interested in AI, logic, reasoning systems, etc., then check it out.

Interesting product: AllegroCache

I have been evaluating AllegroCache for a customer for one of their tasks. AllegroCache provides a metaclass that allows programmers to make CLOS classes persistent with very little work. AllegroCache is similar to Berkeley DB B-Tree but is implemented in Lisp and scales to very large problem sets. Individual class slots can be tagged to be indexed for fast lookup and search. It is possible to write something like AllegroCache in a dynamic language like Common Lisp. The obvious idea for me is: do this in other dynamic languages like Ruby! The job would be easier in Ruby assuming that Ruby is already linked with the open source licensed Berkeley DB libraries. I already use Ruby's DBM disk-based hash libraries a lot, but being able to search on multiple class attributes would be great. AllegroCache supports great query functionality, so implementing something close to AllegroCache's functionality in Ruby would probably be at least a couple month task. One problem with this idea

Dealing with Knowledge Artifacts that are still in paper form

When my wife and I lived in Solana Beach California my home office wall had about a 20 foot wide set of bookshelves. When we moved to Sedona, my home office shrunk to a 10x12 foot room. I also went from an ocean view to a mountain view - the change in views is fine but I miss the library shelf space! Since I consider myself, like many people, to be a "knowledge worker", I thought that it would be fun to talk about how I deal with storage problems for physical artifacts like ACM and AAAI journals, books, etc. Please send me your ideas via email, and I will add them to my list here. Fortunately, most journals are also available online, and articles can be copied for personal use. Before throwing out old journals I take a quick look for articles that might be of use in the future and I do a web search including the journal name and the article name. Articles in the ACM Portal or AAAI Digital Library (for example) can be copied locally for personal use by members after logging in

The Da Vinci Code

My reward for a long day yesterday hacking Lisp code was a night out with my wife and friends to see "The Da Vinci Code". What a great movie! I thought that with very few exceptions the movie moved at a fast and interesting pace and was a sweet story. The movie had a great scene of the Council of Nicea that in 323 AD decided what would be in the Bible - a very short scene of people haggling over what was to be in the Bible, but this scene set the stage for a story of an alternate view of the possible life of Christ. I find it unfortunate that some people can not just take this move at face value as a work of fiction. I read an article this morning interviewing many Christian religious leaders. I agree with the leaders who looked at this movie as an opportunity for dialog and not as a threat to their beliefs. My personal belief is that spirituality is more valid and much more important than rigid religious dogma. Although I respect all religions I consider my self to be a Chri

Will Java JRE be installed by Linux distros by default? Is it too late for this to have a large impact?

I wrote my first Java book using a version 1 beta JDK so I have been in the game for a long while. I also downloaded (2400 baud modem?) enough of Slackware Linux to boot in 1993. Soon after I then made one of the best investments ever, and for a very small fee bought a set of floppy disks with Slackware, X, and the gnu tools. Linux and Java for server side development and deployment have been reluctant lovers for about a decade. Forget about wide spread client side Linux Java development because Java was not installed automatically - except for SuSE Professional. Finally, Sun is tweaking their licensing policies and it looks like automatic JRE installation with many distros is going to happen. Is it too late to make a huge difference? I believe so. If this had happened 5 years ago and if technology like Apple's contribution of multiple JVMs sharing memory for libraries had become a standard Linux install item, then the Java and Linux worlds would be very different today. Too bad,

Google Web Toolkit

I have been thinking of re-writing the first version of our cooking and recipes web site in Rails largely for the AJAX support. Since looking at the Google Web Toolkit code examples this morning, I will probably leave the site alone except for adding AJAX support for user editing of their 'ingredients on hand' and using the AI recipe modification agent. The concept of developing in pure Java using your IDE of choice and then performing automatic Javascript and HTML conversion is brilliant.

The Lisp community needs to do this more often

One of my gripes with Lisp is that there is not an easy to use package installation utility like, for example, Ruby gems. Common Lisp does have ASDF, but I get a lot of "misses" trying to install and experiment with Lisp programs using ASDF. The continuation based UnCommon Web project looks interesting, but has been a pain to install all of the dependencies until now. Marco Baringer has packaged UCW and all of its dependencies in a single tar file so for me the install was very quick, and I could experiment with UCW painlessly. Thanks Marco!

I am back home

I was fortunate in my surgery: the surgeon started off arthroscopicly and determined that he did not have to do a bone graft after all. The entire procedure was done arthroscopicly. Anyway, I am feeling pretty good. I do need to keep my shoulder immobilized for several weeks. It is good to be home!

Surgery Thursday - I will be offline for a few days

I am having my shoulder operated on tomorrow - a result of my bad fall while hiking a couple of months ago. I have a broken bone and two detached tendons that won't heal up without surgery. The surgeon is going to start arthoscopically but he may have to do a bone graft to the affected area in which case he will switch over to conventional surgery.

Integrating a semantic network with a reasoning system

For a long term AI project, I am using Common Lisp and CLOS to model customer application specific nodes in a semantic network. This morning I worked out the non-obvious (to me!) bits for integrating my stuff with the Loom reasoning system by deriving Loom concepts from my CLOS classes. Cool stuff!

Why the ultra-rich should stop supporting Bush

Bush brags that the ultra-rich 'elite' are his 'base' and with giant tax cuts for the rich and policies that favor corporations he used to be correct. However, I believe that an unstable world is bad for business. I also believe that the Bush administration's policies have made the world a less safe place for people and for protecting long term profits and prosperity for corporations. I expect to see the ultra-rich, owners of corporations, CEOs, and "classic" conservative republicans start to at least in their actions acknowledge that Bush is bad for business and turn their back on him and the high-stakes gambling neoconservatives (they had their chance to set policy, rolled the dice and lost - the whole world has seen their failures -- lets hope that they have the class to retire gracefully instead of trying to cling to power). In the U.S., with the looming real estate crash, I believe that owning stock in multinational corporations is probably a good in

I sometimes forget how fast compiled Common Lisp is

Java and Ruby are usually my staple languages for my work. I am working on an AI system for a new customer and I started prototyping everything in Ruby - lots of progress in a short time, but for some things that I want to do Ruby is just too slow so I have separated out the most time consuming calculations and I am writing that module in Common Lisp. Compared to Ruby (and even Java), test cases, etc. in compiled Lisp seem infinitely fast - surprising since for a lot of things like hash table lookups, etc. most of the time is spent in library routines anyway. I used to have a strong preference for writing entire systems in the same language, but really, it is easy enough to break up systems into modules written in different languages.

$19 for a more productive environment

I just made a great improvement to my working environment in my home office. I received a FedEx package this morning with a video KVM switch so that while I am using my main writing and development PC (a good Linux box that I can boot to Windows XP as needed) that uses two LCD monitors for extra screen real estate, I can push a button and one of the monitors flips to the view for my trusty old Mac dual G4 tower. A nice setup for someone like me who needs to use 3 different operating systems.

Excellent: ABC's streaming TV shows

I checked it out this morning while enjoying my coffee: http://dynamic.abc.go.com/streamin . The quality is not quite what you would get from cable. Sometimes you barely notice compression visual artifacts but with any high spacial frequency stuff it is noticeable. However, actor's faces are rendered clearly. Try it yourself and see if you like it. I bet that the bandwidth costs are high for ABC because they are not taking advantage of UDP multicast or IPv6 multicast technologies. While the commercials are limited and not annoying it would be good to have an option of paying (perhaps?) $0.50 for a anytime one-time view of a TV show without commercials.

What happens that major news is not reported?

Stephen Colbert took an opportunity to harshly criticize the U.S. news media and poke a little fun at President Bush last weekend. Here is the complete text transcript. Here is a short clip on YouTube.com. I believe that this is very newsworthy, but there has been what looks to me like a total news blackout of this event except for the original live C-SPAN broadcast. I so totally agree with Colbert's rip of the U.S. news business - our generation does not seem to have great news people like Edward R. Murrow (took on Joseph McCarthy for ruining many innocent lives) or Walter Cronkite (for too many things to mention). For people living in the U.S., it is almost mandatory to use services like news.google.com to access and read a wide variety of news from around the world - otherwise you simply will not know everything that is happening. When you do read things in the foreign news that are either self-censored in U.S. news or badly under-covered, please make the effort to inform

IDEs: best of breed vs. 'good enough'

I spend about half my time developing in Ruby and half in Java. For Java development, in my opinion nothing is as good as IntelliJ - I love it! I am still in the exploring mode when it comes to Ruby development. When using OS X, I sometimes use TextMate and I like TextPad on Windows - both inexpensive and very useful. That said, when I am dealing with larger programs, I find Eclipse and both the Ruby and the Rails plugins to definitely be 'good enough'. Actually, as a 'good enough' platform to build other platforms, Eclipse is the 'best of breed' :-) In the last few years, I have used Eclipse (with suitable plugins) for Ruby, Python, C, C++, and Prolog. Eclipse is also very good for Java, but not the best. If there is one thing that I like best about Eclipse it is probably the subversion and CVS support.