Monday, May 31, 2004

Memorial Day fun

While Memorial Day is a day of acknowledgement of sacrifices and a day of appreciation for current members of our armed services, Memorial Day is also a day to celebrate our country and to take a well deserved day off of work.

My wife and I just saw an early matinee: "The Day After Tomorrow". My wife is a big fan of Whitley Strieber who, with Art Bell, co-wrote the book that the movie was based on.

The weather is fine today in the mountains where we live in Northern Arizona and we will most likely put our baby parrot in his travel cage and everyone will enjoy a day outside on our deck. (Our parrot Brady just flew into my office and landed on me, BTW). We already took our dog for a hike early this morning, so he will be happy laying around begging for treats.

Server side Java: less is more?

Although I have written a few books on the full J2EE software stack, I am increasingly adopting a "less is more" attitude for my own development projects.

While I actually enjoy installing and experimenting with, and eventually using more complex software stacks, the reality of modern post dot-bomb IT development (the most useful features for the smallest development and maintenance costs) continually pushes me towards as much simplicity as possible as seen in this chronology of my favored infrastructure tools:

  • Full J2EE stack, usually using Sun's reference implementation, JBoss, and/or Sun ONE

  • Using EJBs, but using simple POJO classes with XDoclet tag markup for automated persistence in an EJB container

  • Using POJO classes with Prevayler based persistence inside a servlet/JSP container

Complexity is only good when you need it! I am finding the use of Prevayler to be more than fantastic. I am using Plain Old Java Object (POJO) business logic classes that can be written and junit-tested in isolation of any JSP or EJB containers. Then using XML-RPC and/or SOAP based web services interfaces, and JSP based web interfaces, it is easy to expose working functionality as needed by an application.

How to increase our national security

I am not happy with what the Bush administration is doing to protect our national interests and safety. I suggest a few alternative ideas:

  • Energy independence: I rode around in a friend's Toyota Prius yesterday. Instead of giving huge tax breaks to people who buy SUVs, reward people for buying fuel efficient cars.

  • Create a large scale Peace Corps: do everything we can to restore our international image and try to regain at least some trust in the international community.

  • Trust the professionals in our military and intelligence agencies and use Congressional oversite where public transparency can not be used for security reasons.

  • Allow government agencies to collect data to fight terrorism, but recognize that we want to remain a free society: insist that judges are consulted for search warrents, permission to invade privacy, etc. Also use Congressional oversite.

I realize that what I am proposing is very contrary to the actions chosen by the Bush administration - still, even though I am just a Java consultant, I think that I have a better handle on what is good for our country than our current administration.

Sunday, May 30, 2004

cheap hardware and free software: disruptive technologies

I paid $199 for a new Linux PC last year when my 4 year old Linux server died. Increasingly, deploying web applications is a reasonably simple process of integrating the right Open Source Java infrastructure tools (for me, these are usually Tomcat, Axis SOAP support, Joram JMS, etc.) and some custom application specific software. In my Java consulting business, it has been several years since any customer wanted to deploy on anything but Linux and free Open Source infrastructure software.

Robert X. Cringely recently wrote an article about the (roughly) $70 Linksys WRT54G 802.11g wireless access point and router that includes a four-port 10/100 Ethernet switch. He points out that Linksys uses Linux in this device, plays fair by the GPL, and publishes the firmware code for the device.

I like the idea of supporting light weight web applications, etc. on such a low price, compact, and low power device as the Linksys WRT54G! Too light weight (too little RAM, etc.) for Java, but it is simple enough to write useful socket server based applications in C or C++ and support HTTP, REST, etc.

Lower development and deployment costs simply mean that companies and other organizations can afford to provide more service, use better internal business intelligence tools, etc. I like the trend of spending money on custom web application development (whether it be to programmers in the U.S., India, China, Rusia, etc.) that is saved in hardware and infrastructure tool costs.

I turned off my old blog service at knowledgebooks.com

I have been happy enough with the blogger.com service, so I just killed the SnipSnap service on my knowledgebooks.com test/demo server. My test/demo server runs on a broadband connection that is not always reliable (we live in the mountains, so I am not complaining about the service :-)

BTW, if you want to run your own blog server, I recommend SnipSnap because it is trivial to set up and use (just requires Java 1.3.x or higher).

Saturday, May 29, 2004

I am appreciating JavaScript more

For years, I have been turning down occasional offers of work writing JavaScript because I did not like the technology (mostly because of browser compatibility issues) and did not want to spend the time to become an expert.

Well, browser compatibility issues still exist, but I am looking at great light-weight JavaScript applications (like GMail) and utilities (like xTree, and JSpell as used by blogger.com), and I am starting to appreciate JavaScript as a platform tool. For most of my work, I still really enjoy using server side Java, but I am keeping a more open mind to also using more JavaScript to cut down the communication requirements between browser and server.

Economy: short term view is mandated by politics

Regardless of which political party occupies the White House and/or controls Congress, everyone runs up huge deficits by both drastically devaluing the real value of currency and failing to collect sufficient tax revenues.

Politics has a lot to do with it: better to fake-it and make the economy appear to be OK right now, and screw the future.

Real, physical value of U.S. assets has declined sharply in the last few decades, and the downward trend is accelerating. Couple this with a huge increase in the money supply that is starting to look too much like Germany in the 1930s - printing money like crazy is the Federal Reserves short term fix for keeping the foreign debt imbalance and consumer credit bubbles from popping (for now, at least).

A few weeks ago, my friend Tom criticized me for referring to "bubbles" because simply using that term is negative thinking - I have to agree with him that negative thinking collectively has a bad effect. (I am spiritually oriented, if not religious, and I believe in the positive global effect of meditation and prayer.) I have to agree that very-short-term, consumer credit madness does prop up the U.S. economy, and another friend James has correctly criticized me for advising people to not spend much money on consumer goods. James' observation would be even more accurate if many people read my opinions, but, I am happy when a few hundred people a day read my blog - so, I don't have to worry personally about crashing our economy by recommending frugality - not a large number of people listen to me! (Regardless, it feels great to express myself.)

Setting aside criticisms for negative thinking, I think that a very real problem is that too many people refuse to acknowledge reality: the harsh reality that even a quick look at a plot versus time of: consumer credit, balance of trade figures, percentage of U.S. debt that now has to be serviced by foreign central banks because individual foreign investors are getting wary of our economic problems, decreasing amount of savings, decreasing amount of real factory equipment, decreasing amount of real productivity, etc.

This is just my opinion: I believe that one of the primary reasons why we invaded Iraq was to simply take America's attention away from the economy.

OK, here is something positive: I believe that as individuals we have a lot of control over our own economic destiny. I would advise my friends and family to avoid new debt, try hard to reduce current debt, invest in education, keep driving your old car, consider paying down your home mortgage instead of buying a larger house on more credit, learn more useful skills, etc. Do what you can to protect your family financially, then sit back and watch the show... It is likely to be a wild ride for a while...

Something else positive: as people, we should enjoy our individuality and uniqueness. Sure, it is fun to follow the crowd when the stock market is on an upwards cycle, but my gut instinct is that people are almost always better off simply following their own intuitions.

Thursday, May 27, 2004

Paper on extensible languages

Slashdot linked this article Extensible Programming for the 21st Century this morning. As the author Greg Wilson points out, Lisp languages have provided features for many years that exceed those of new XML based languages.

There is an old saying: People who do not know Lisp are doomed to reimplement it.

I do use Common Lisp (e.g., my commercial KBtextmaster product).

I would use Lisp for most of my projects, but my customers almost always ask for Java (which is OK, because of the wealth of free class libraries and infrastructure code for Java).

Wednesday, May 26, 2004

UPI: Amnesty International Report: really sad

I love my country, and reading UPI's take on the just released Amnesty International report really makes me sad.

The report blasts both the Bush administration and international terrorist groups.

I voted for Bush (but I will not make that mistake again!) and unfortunately I must agree with this United Press International viewpoint/editorial.

Really a sad day (I should have stuck with happily working on my Java project and skipped reading the news today).

I am at heart an optimist. Although I believe that the Bush administration has hurt our country a great deal, I still hope that as a country we can pull together, un-elect the worst president ever in the U.S. and once again act responsibly in the international community.

Writing custom JSP tag libraries: yeah, like cleaning out the garage

Because of circumstances not totally in my control (*), I have been hurrying a lot the last 3 weeks writing lots of JSPs for a web application. Except for the struts and struts-menus tag libraries, I have been embedding a lot of Java code in my JSP pages (yeah, I know... not the best).

Anyway, I have allocated about a half day today to start factoring out working embedded Java script code in some of the JSP pages into new custom tag libraries. This is really simple to do, and has lots of advantages, including:

  • Makes the JSPs much tidier and easier to maintain

  • Segregates the Java code and enables unit testing

Anyway, I got the same good feeling that I get after cleaning out the garage :-)

(*) I have had ideas of writing an open source knowledge management for about a year. About 6 weeks ago, an old customer approached me to do this as a GPL project - the deal was that I would only charge for about half my development time, but that the project would be GPLed (a good deal for everyone!). My customer then developed an urgent need, and a 4 to 5 month development schedule got compressed into a "hurry up and get a beta ready" to be followed by a cleanup period later.

New Springer-Verlag catalog: 9 new books on the Semantic Web

I received a new Springer-Verlag catalog in the mail a few days ago - I just noticed that there were at least 9 books on Semantic Web technologies.

I am interested in the Semantic Web for many reasons:

  • I have been interested in AI for 25 years (I have written a couple of Springer-Verlag AI books, BTW). I think that the Semantic Web is a good application area for AI technologies.

  • I am a Java developer - most of the free Semantic Web software tools are written in Java (with few very useful exceptions).

  • I have always found that working on bleeding edge technologies to be a lot of fun - and in today's IT economy, I think that it pays to be a specialist.

For Java developers, a good place to start is the HP's Java Jena toolkit.

MSNBC: "General is said to have urged use of dogs"

I have always thought that the Bush administration was trying hard to make scapegoats of a few low-level soldiers.

To me, it seems like the problem starts at the top: having the president and high ranking officers dehumanizing people in Iraq ("the evil doers", "the bad guys" - sure there are some evil people in Iraq, but why put the entire population at risk by making dehumanizing comments).

This article spells this out fairly clearly.

The Bush administration should remember the historical lessons from Watergate - do not try to cover things up!

Also: the decision of the Bush administration to not abide by articles of the Geneva Convention, in my opinion, puts our own soldiers at a much higher risk. Again, I believe that these decisions come from the top. I doubt that anyone in the Bush administration will ever admit any wrongdoing or poor decision making - I just don't think that they have the moral character to admit to mistakes.

Tuesday, May 25, 2004

Still loving the Prevayler Java object persistence framework

I have now been using the Prevayler object persistence framework for Java for about a month on my GPLed knowledge management project.

Using a relational database via plain old JDBC or a object relational mapping tool like Hibernate seems really heavy weight in comparison.

I became interested in Prevalence because for my application, I have frequent "object reads" and it made sense to keep data in memory for fast access. The Java Prevalence implementation Prevayler allows you to trivially write changes to objects to disk so if your JVM process crashes, all application data is restored when your program is restarted.

Prevayler maintains hash maps to access any objects through a unique key.

Anyway, Prevayler is great for high performance systems where it makes sense to store objects in memory but requires a persistence mechanism.

Microsoft's Office and web services plan; risks of proprietary formats

This InfoWorld article discusses Microsoft's plan for using Office components as front ends for business systems using web services as the communications glue.

Not a bad idea, but I would like to see an open source solution: OpenOffice.org with support for XML-RPC, SOAP, and an asynchronous messaging system like Java's JMS.

As an author, I use Microsoft Office (usually just Word) because that is what publishers want. However, I wrote 2 of my last 3 books using OpenOffice.org for the actual writing and then used Word just to insure that the file formats were what my publishers wanted.

My problem with Office is the proprietary file formats - I believe that companies, government organizations, and individuals all put themselves at risk by storing important information in files with proprietary formats.

When I use Linux or Windows, I find that OpenOffice.org is every bit as good (for my work process) as Office. Unfortunately, under Mac OS X, I find myself using Office more and OpenOffice.org less because of the overhead of running under X Windows.

Monday, May 24, 2004

New version of Protégé Ontology editor, and other semantic web tools

Worth a download: a good an ontology editor and a knowledge-base editor. Written in Java, with an easy to use plugin architecture (just follow the tutorial).

Other semantic web software that I recommend:

HP's Java semantic web toolkit

Swi-Prolog Semantic Web Library

Sesame RDF store and query system

PBS news: perfect response to Bush's B.S. speech

First of all: Bush is going to give 6 speeches (one every week) on prime time T.V., with no Democratic response? So much for fairness in political campaigns! The Bush team re-writes the rules in their favor, be it in mega giveaways to the energy industry, or re-writing the rules that the U.S. has always before played (fair) by: Geneva convention to protect our own troops, etc.

PBS news played most of Bush's speech (in my opinion, it was very full of factual errors - I guess that if you bull-shit enough, people start to believe it).

Anyway, PBS, right after Bush's free campaign speech on prime time T.V., had a live interview with a liberal reporter in Iraq who simply (and it sounded truthful to me) discussed how much average Iraqis dislike the U.S. now and view Bush extremely negatively.

I voted for Bush in the last election (yeah, I know - a brain fart on my part!) but I truly believe that he will go down in history as the worst president in U.S. history. I hope and pray that America will wake up and *not* elect him for a second term.

Why not use SnipSnap on my own server?

I run a server out of my home and use it for Java server side demos (knowledgebooks.com).

Unfortunately, since I live in the mountains of Northern Arizona, my broadband service is sometimes intermittent - so, I am going to try blogspot.com for a while.

I have been very happy with SnipSnap and I might go back to using it later.