Sunday, October 31, 2004

Ongoing education: something a little different

I believe that education is a life long process. I usually spend at least 10 hours a week studying most aspects of computer science: sometimes reviewing previously read or new text books, reading ACM, AAAI, etc. journals, etc. Frankly, I usually enjoy this more than watching TV in the evenings.

I am trying something different: through the ACM Portal, I am working my way through project management courses. Part of this is purely practical: I plan on concentrating on combining open source knowledge management tools with my own commercial products for automaticly mining sematic information from texts, documents, web sites, etc. Rounding out my world view to include the business side as well as technical issues can only help :-)

I have another motivation: a friend of mine likes to point out that the job of management is to get the most work out of people for the least amount of money. While I think that this is a little too simplistic, there is some truth in this; for example, occasionally I run into people like this in my consulting business. The 'bottom liners' who resist spending resources on documentation, formal testing, etc. and need to be convinced that system robustness is as important as 'feature creep'.

Anyway, I am sometimes very formal when it comes to requirements and design (depending on what customers want to pay for), but I look forward to better understand formal management processes.

Saturday, October 30, 2004

Easy cross platform RPC

A few years go, both Microsoft's manager of the .Net framework and I were house guests in the same house for a weekend. He mentioned that he considered SOAP to be a possible universal RPC mechanism for all levels: method calls inside a CLR (a JVM in Java-speak :-), between CLRs running on the same server, and across a network. At the time, this seemed a little heavy weight to me, but...

This afternoon, I was experimenting with Java to Common Lisp communications. I was using the old version 1 of my KBtextmaster product (written in Common Lisp) that converts plain input text to a highly structured data object containing useful semantic information. KBtextmaster produces an XML document with this data.

To get to the point: On the Lisp side I used Sven Van Caekenberghe's nifty XML-RPC package and exposed a single lisp function that accepts a string argument and returns an XML payload as a string. On the Java (client) side, I used about 6 lines of code and the Apache XML-RPC library to test the remote service.

I expected this to be easy (and it was :-) but I was also pleasantly surprised at how low the communications overhead is. I am planning on also supporting REST, which should have even less overhead. I thought about also supporting a SOAP interface, but I am concerned that the overhead for SOAP is too large.

I am hoping that my schedule clears up a little in December and January so that I can get version 2 of KBtextmaster "shipped" - development has been on hold for 5 months, but I am really excited about getting back to work on this project.

PS. I just did a simply timing test; averaging over 100 calls, the RPC and Lisp side semantic processing was taking about 400 milliseconds per call - most of that would be in the semantic processing.

Friday, October 29, 2004

Congratulations Julie!!

I just had a telephone call that made my day: my step-daughter Julie graduated last spring with an accounting degree and is now working on her CPA. She had applied, along with about 70 other applicants, for a job slot with a good accounting firm in San Diego. She got the job!

When Julie was only 15, she got a part time job after school at a local doctor's office. Within a few months, she was doing their billing and some book keeping for them. She has always been very hard working and responsible, so her new employers made a very, very good decision. She is also a Mom of two great kids.

Java Wiki tools

A customer has been interested in adding Wiki support to their web site. There are many Java packages available, but I found two that seemed especialy easy to set up and use:

VeryQuickWiki
Fwiki

I have been looking at web based open source document management, authoring tools, knowledge management, etc. that might work well with version 2 of my KBtextmaster product that I hope to release first or second quarter of 2005. The KBtextmaster is a service that provides REST and XML-RPC interfaces for categorizing and summarizing text (*). I am planning on providing free "glue" code for Python based Plone and several Java open source projects.

(*) I m considering support for RDF tuple extraction from text (based on a few ontologies), but that is likely to be a separate product in the future - that code is still 'research quality' and probably will be for some time.

Thursday, October 28, 2004

100,000 Excess Civilian Iraqi Deaths Since War

"The use of air power in areas with lots of civilians appears to be killing a lot of women and children"

read more

Cool: free music CD in November WiRED Magazine

I always enjoy my subscription to WiRED Magazine; this month it contains a free music CD containing Creative Commons Licensed music. I was the "featured commoner" on the Creative Commons web site a couple of years ago because my free web books (see my main web site) use one of their licenses.

Anyway, I liked 6 of the songs well enough to permanently import them into my iTunes music library.

Wednesday, October 27, 2004

OpenCroquet improvements: coming fast

When I got home from San Diego last night I spent some time playing with the recent updates to OpenCroquet. Since the latest version was released a couple of weeks ago, there have been many updates: the system now seems to run much faster on my Mac and many of the virtual worlds either now work or work better. Give it a try!

I can not imagine a better environment than Squeak and OpenCroquet for teaching children all aspects of using computers. Sure, OpenCroquet will not help students write papers, etc., but none the less it is a fascinating experiment in what you can do with 3D graphics, in-the-simulated-world "world creation", real time programming, networking, etc., etc. I think that stepping back from immediate practicality and encouraging experiments is a good thing. My young grandson is in the Lego-blocks-experimenting mode; in a year or two I think that he will be ready for OpenCroquet: he is already creative and as he gets older we will upgrade the learning tools that he has.

Saturday, October 23, 2004

Visiting San Diego - I just saw a large screen iMac

I am visiting my parents in San Diego. My Dad bought my Mom one of the new large screen iMacs: wowza! It is huge! My Mom is 80 - this computer should last her a few years! I will use my trusty old iBook to work while I am here (too much trouble to set up my working environment on the new computer). Still, I am installing OpenCroquet on my Mom's iMac (my Dad enjoys making animated movies - he is getting to be very good at it, so he might be interested in OpenCroquet also).

Tuesday, October 19, 2004

Why doesn't Alan Greenspan level with us about the economy?

This is just my opinion, but I truly believe that Alan Greenspan says things that he knows to be misleading. I think that what he says in public is motivated by two things:
  • The Federal Reserve is not part of the US government: it is privately owned by a few very rich families. Greenspan works for these people and does what is in their best interests.
  • In order to save money on future taxes, the ultra-rich will do anything to re-elect George Bush.
In my opinion, the US economy is heading for a bad fall yet Greenspan fails to give average Americans a heads up to possible problems with the economy.

I believe that Greenspan is trying to postpone any bad economic news until after the reelection of George Bush. If you care about your and your family's economic future, try reading something that is true.

PS. one of my astute readers recommended doing a Google search for owns federal reserve.

Write once, compile and run everywhere

I was thinking last night of how choice of development platform matters less and less. I do most of my development work using three languages/platforms (Java, Common Lisp, and Python, (*)) that are very portable between Linux, Mac OS X, and Windows.

Now, I must admit that I do not do nearly as much application level GUI development as I used to - so, GUI portability is just not an issue with me anymore. Even GUI portability is manageable however: LispWorks Common Lisp has portable UI libraires; Python GUI applications can be built in a portable way with wxwindows, etc.; and, if you must, for Java there is JFC :-)

Freedom to work in a development environment that I enjoy is very important to me. I truely like working in OS X, with SuSE Linux a close runner-up. Did I leave out any other major operating systems?

(*) Notice how I left out C++. I have written 5 C++ books and spent almost 10 years as a C++ developer and mentor. Now, I think that unless performance issues are unusually important that choosing C++ for a software project is fairly much a stupid decision. (And, if performance is that important, just use a high quality Common Lisp compiler: I sell a commercial product written in Common Lisp: the binary executables are small, the runtime performance is superb, and the memory footprint is reasonably small.)

Monday, October 18, 2004

Great New York Times article

This article was fascinating: lots of quotes and material from General Tommy Franks and other military and civilian leaders in Iraq make a fascinating news article. The article is a long 7 pages, but really worthy reading - very interesting stuff.

Tuesday, October 12, 2004

Good book: The Definitive Guide to Plone; my AI products

I just ordered this book recently and it is excellent. I have a keen interest in open source knowledge and content management systems because early next year I plan on releasing version 2 of my commercial KBtextmaster product and I would like to provide wrappers to integrate it with most of the open source content management systems (connected as a remote service using HTTP POST requests and REST responses).

I have not updated my KBtextmaster product in a while. Starting in December, I am scheduling my time to finish off the version 2 functional improvements (better automtic categorization, better identification of proper names like people, places, products, and automatic generation of RDF for a few selected ontologies).

Very high quality knowledge and document management systems are now available for free as open source projects. My plan (interupted by a fun full time 6 month consulting project) is to position the KBtextmaster as an optional add-in tool for people building knowledge management systems.

KBtextmaster is written in Common Lisp and version 2 will only be available as a compiled executable built with LispWorks.

"It's just the bats, Madam"

My wife has been nicely bugging me about what she thought was an air conditioning leak: above our front door (exterior wall), we get a white residue build up. I crawled around in our attic and saw no leaks.

An air conditioning guy was at our neighbor's house and my wife asked him to come over to look at our "leak". He did, took one look and said that we are lucky - we have bats hanging out (literally) above our front door. He said that we should "Google for how to build a bat house" to encourage them to stick around (bats eat a lot of insects and are considered to be useful wild animals up here in the mountains were I live).

This also explains the mysterious tiny brown nobules to the left of our front door: bat droppings! They were so tiny that they just got cleaned up when we periodically clean up our entry way.

Croquet is released

I was up very early this morning checking on a new deployment for a customer, and decided to check the Croquet site before going back to sleep: I was pleased indeed to grab the Mac OS X download distribution and try it out.

I am very busy now (work wise) so it might take a while to get in 20 or 30 hours to learn the Smalltalk Croquet specific classes and write some code - but, I am looking forward to experimenting with this new technology. Croquet combines two interests of mine: large scale network applications and 3D graphics.

Sunday, October 10, 2004

I visited the Arcosanti archology last night

Carol and I, with 4 friends, drove south about an hour to get to the arcology started by internationally renowned architect Paolo Soleri about 30 years ago. I have been to Arcosanti several times and I always enjoy myself there. Arcosanti is only a 90 minute drive north of Phoenix Arizona, so if you are ever in the Phoenix area I recommend a side trip to Arcosanti. The food is excellent (mostly grown on the premises), the people who live there are interesting, and I usually visit when they have concerts in the acoustically perfect amphitheater.

Arcosanti is way ahead of its time. Right now, few people are willing to take a slight hit in standard of living in order to use a very small percentage of our national average use of natural resources. Fast forward 10 or 20 years when gas and heating fuel cost many times what they are today and the elegant low environmental-impact living style of Arcosanti looks good indeed. The beautiful buildings are designed to stay cool in the hot Arizona mountains summers and warm in the brisk winters. Whenever I go to Arcosanti I feel like I am looking at the future of how the human race can comfortably and happily adapt to resource shortages.

Saturday, October 09, 2004

the intellectual exercise of figuring out the world

Note: this weblog was an email that I sent to my family and some friends - then I decided to also publish it here

Even though we can't do much about politics, world peace, etc., I have
a somewhat morbid curiousity that encourages me to try to figure out
how the world really works.

A really good start is to google for "dollar euro oil" and skim
through the first several links.

This exercise can take as little as 10 or 15 minutes if you read quickly!

Here are the first few google links, BTW:

http://www.feasta.org/documents/papers/oil1.htm

http://www.projectcensored.org/publications/2004/19.html
http://www.money.telegraph.co.uk/money/main.jhtml?xml=/money/2003/10/10/cnoil10.xml&menuId=242&sSheet=/money/2003/10/10/ixfrontcity.html


Note on google ranking: these are the first 4 links because these web
pages have the most web links pointing to them. Google web ranking
based on number of incoming links is a good but not perfect indicator
of the world's interest in a web page.

Wednesday, October 06, 2004

OpenCroquet announcement and paradigm shifts

Well, there is a new announcement for OpenCroquet: soon! Even though OpenCroquet is based on Squeak Smalltalk that has some very old roots indeed, I still think that OpenCroquet may be a new paradigm shift - we will see.

Lisa Rein has set up a web site with Alan Kay's Video demos of OpenCroquet.

From the OpenCroquet web site: "a combination of open source computer software and network architecture that supports deep collaboration and resource sharing among large numbers of users".

BTW, the last 2 video files (numbers 5 and 6) contain the actual OpenCroquet demos - but the earlier files are also interesting.

Tuesday, October 05, 2004

Waiting for free software releases

Some of the best software that I use is FREE, so please don't think for a minute that I am complaining. Still, there are two (hopefully!) soon to be released free packages that I can't wait for:
  • Open Croquet - this may change the way we think of online collaboration and generally large scale network applications
  • Apple Computer's early development release of JDK 15. (also known as JDK 5)
Everything else, I can be wait for :-)

Monday, October 04, 2004

GMail is getting better and I am really enjoying Clusty

One of my favorite improvements to GMail is the ability to automatically forward anything in your inbox to another email account. I had been concerned about backing up business email sent to my GMail account. Now, I just forward everything to my POP account on my local ISP - from there it is trivial to do a local permanent archive.

Yesterday I configured my Firefox browser to use the clustering "Clusty" search engine for the defualt browser (although it is very fast to do searches also using Google, a9.com, etc.) I left Google as my default search engine for Safari (the browser I use the most).

One thing that makes Clusty so interesting to me is that I have been working (for the last year and a half, although lately because of a full time consulting job I have had to put this development on hold) on version 2 of my KBtextmaster product that uses similar technology: I cluster documents based on what categories I automatically assign to them (for this, I use the Reuter's categories and trained with their excellent 2+ gigabyte tagged news corpus). I also identify people's names, places, etc. and I am planning on using this information to improve clustering also.

Saturday, October 02, 2004

Second brilliant thing I have seen today: Rich Hickey's Lisplets

I saw a reference to Rich Hickley's Lisplets package on Bill Clementson's blog this morning. On several occasions I have hacked around mixing Java and Common Lisp code using both REST (sending a HTML GET request and returning an XML payload) and Sven Van Caekenberghe's very nice XML-RPC implementation for Common Lisp.

However, Lisplets fit in better for my needs: I just about always write web applications in Java but I have a lot of code written in Common Lisp that I would like to use occasionally. (I hate to admit it, but often, since I code quickly, I will just recode in Java once I have figured out how to solve a problem.)

Brilliant: article about database wrappers in Python

This article by Scott Scriven is brilliant. One of the software engineers that I talked with when I spent a day at Google earlier this year was telling me about a cool technique for wrapping database tables to access data in a more "pythonic" way. This article provides the details. HIGHLY RECOMMENDED.

I must say that although much of my programming is in Java (mostly because of the awesome server side frameworks and tools) I find myself spending more and more time developing in Python. Actually, maybe I should re-phrase that as spending less time because Python is such an awesomely productive language that I am sometimes surprised at how quickly programming tasks get done.

Last night I spent a short while doing something I had never bothered doing before: organizing some of the more useful Python code that I have written into modules and set up a PYTHONPATH to the root of my new library setup. Before, I tended to use Python for many small and quick tasks.

It is a little sad, but my increase in use of Python comes at the expense of using Common Lisp and Scheme less (I have written Springer-Verlag books on both Common Lisp and Scheme and really love those languages).