Posts

Showing posts from June, 2004

Trying the NetBeans 4.0 developer build

Public previews are not supposed to be released for a month or so, but I downloaded a developer's snapshot build during my lunch break today. Understandably, there are some rough edges (I was unable to get a new J2EE 1.4 web app project running), but overall, I am enthusiastic: the UI looked very good, "regular Java projects" worked well (super fast build and run time for small projects). NetBeans 4.0 will have refactoring and full web application development support. I look forward to trying version 4 again in the near future. From a few dialog boxes, etc., I got the idea that Sun's Java Studio Creator (which I have also been playing with - looks good, but the Mac OS X beta is a little rough) definitely uses the new NetBeans codebase -- fair game: support an open source project, and also customize a proprietary version. With IntelliJ, Eclipse, NetBeans, etc., it seems like Java developers have an embarrassment of riches.

Java and Mono

I am a "Java guy": search for "Java consultant" on any major search engine, I am the first non-paid-for link. I think this is because of my writing, but I am not sure. While I think that server side Java is the greatest thing going (for server side development), I also find many other programming languages to be very productive: Common Lisp (and Scheme) and Smalltalk for research on new algorithms, etc., Python for small tasks (I have never used Python for large system development, although using Zope/Plone as a proof of concept, Python obviously is good for large projects), Prolog for search and NLP, etc. I tried the Mono 9.x beta framework on Mac OS X a few weeks ago, and thought it looked OK. As we "speak", I am downloading the 1.0 DMG for the Mac - maybe I will kick the tires tonight if I have some time. I think that the "Microsoft patent issue" with Mono is worrisome, but technically I think that the Mono project is very worthwhil...

Sun's Java Studio Creator, other web app development tools

While I still do most of my Java development using a year old version of IntelliJ, I invest a fair amount of time in checking out other tools. Last night and this morning, I have spent some time with Sun's Java Studio Creator. First, a few things that might make Java Studio Creator not the right tool for me: Most of my JSP based web applications are not "run of the mill" forms connected to a database applications. I tend to combine JSPs with Java classes that generate HTML, work with Javascript, etc. The solution to this mis-match would be for me to develop more reusable components as custom tag libraries, etc. Java Studio Creator is tailored as a web application development system - I have not tried using it for non-UI, non-web app development. I tend to write and test most of the back end code for a web application before starting on the web based UI. If I end up using Java Studio Creator a lot, I will still probably use other IDEs like IntelliJ or Eclipse to write...

U.S. cronyism in Iraq

The British charity organization Christian Aid issued a scathing report on corruption and cronyism in Iraq. As Americans, I think that it is time for us to collectively admit that we have screwed up. (Hey, I screwed up and voted for Bush in the last election.) While I am ranting about the corrupt and ineffectual reconstruction efforts of the Bush administration in Iraq, I would also like to point you to an excellent Paul Krugman editorial in the New York Times . A lot of Americans have a difficult time criticizing our country, and that is understandable. I would argue however that the best chance we have for keeping our country a great place is to objectively analyze past mistakes and try to correct them. The Bush administration has been running for re-election since the day Bush took office. My question to you is: do you really want Karl Rove running our country for another 4 years?

Sun's Java Studio Creator for Mac OS X

I just downloaded it - looks good. I have intended to experiment with Java Faces, and Java Studio Creator supports this and other web app components. A GUI-builder for web apps? Worth a good try.

OpenOffice batch Microsoft Office document converter

There is a lot of momentum behind the open XML document standards used in OpenOffice.org: OASIS, many governments around the world who want to protect the long term accessibility of their information, and just about anyone who has enough clue to not want to paint themselves into a corner with proprietary, patented, and changing-like-the-shifting-sands Microsoft document formats. OpenOffice includes a batch mode document converter - I just used it today to convert 169 Word documents on my Mac to the open OOo file formats - easy! The best solution is to refuse to use Microsoft products until they do the right thing by their customers: either declare free license use forever for WordML (a proprietary XML format with strange binary attachments), or adopt the technically superior (even without user extensibility) OOo XML formats. The second best solution: if you must use Microsoft office, at least periodically auto-create OOo formated files, and back up these OOo files as part of y...

Eric Clapton: a good guy!

Clapton raised about 2 1/2 million dollars for charity by auctioning 3 of his classic guitars. I had a classic Fender Telecaster that I bought about 38 years ago - I stopped playing it a long while ago, so I found a good home for it and got a nice Martin acoustic guitar a few years ago. Anyway, I have been a huge fan of Clapton's since he played with John Mayall, and have had the pleasure of hearing him perform many times.

Computers: low power better than faster?

Slashdot has a discussion on new VIA low power technology. I bought a Chinese PC for $199 about a year ago that uses VIA chips. This PC runs on very little power, and the single fan is small and quiet. I bought it to use as a web server. For most computer users, I question how much processing speed is really required. Because I am now using an old Mac G4 tower (with OS X) for running my Java based web demos my Chinese PC has just been a spare computer until recently when my wife grabbed it - she likes how quiet and cool running (important when you live in Arizona!) it is. At least for $199, if I need another Linux box, I can buy a replacement instead of "negotiating" to get it back. Anyway, even when developing Java code using IntelliJ or Eclipse, a 800 MHz $199 Chinese Linux based PC is fine. (I am using dual G4 Mac for development, because someone gave it to me as a gift - but I would trade some of that processing power for less noise and much less power consumpti...

The bad effects of the news business

My friend Tom Munnecke often writes about the positive effect of good news, and the ill effect of constantly bombarding people with negative news media. While hiking this morning, my friend Craig Johnson was talking about how his family just rented Michael Moore's "Bowling for Columbine", and the message in the film: news in Canada does not stress violence (does not give creepy people their 15 minutes of fame), and while Canadians own a comparable number of guns as Americans, the number of deaths by gun murder is extremely small in Canada compared with the US. I think that we can all agree that the mega-corporations who own the US news media have the legal right to broadcast violent, sensational material in order to maximize their corporate profits. After all, except for a wink and a nod, the FCC and the government basically let these huge media companies do whatever they can bribe (in my opinion - sometimes people also call this "soft money" campaign co...

Sometimes you just need commercial software development tools

As a Java developer, I use the usual 'free' (in one sense or another) tools like Tomcat, ant, Joram JMS, etc. However, sometimes you just need commercial tools. This morning I spent an hour profiling a medium-large scale web application with JProbe . A little set up time, then banging on the web app for 30 minutes, then generating the reports: beautiful, now I know where the "hot spots" are in the system. As a professional programmer, the other commercial tools that I use are LispWorks Common Lisp and IntelliJ Java IDE .

Squeak Smalltalk: almost as good as Lisp for experimental programming

I am not that good at programming Smalltalk (off and on since 1986 - mostly off). That said, I find that Squeak Smalltalk (free and open source) is a great environment for algorithm development and generally for experimentation. In the last few years, I have used Squeak (and for a year when I was a Cincom VAR, VisualWorks Smalltalk) for natural language processing. Smalltalk is an image based system - when you start up Squeak, your working environment, including data in memory, code changes, etc. is exactly the way you left it the last time you ran the Squeak system (assuming that you save your working image). Smalltalk is not for everyone, but it is worth a try. There are enough Squeak tutorials on the web, so at least initially, spending a few evenings with Squeak will not cost you any money.

Using Java applets for UIs for Lisp applications, and web apps in general

I re-read Paul Graham's paper on using Lisp for server side applications last night. It got me thinking: since it is almost 20 years since I did a lot of UIs on a hardware Lisp machine, most of my Lisp programming is what I would call "algorithm development programming". That is, I am trying to figure out how to do something, and Lisp is very good for experimental programming. Most of my Common Lisp programming is done in Lispworks (I own licenses for all platforms that I use) and GUI support with CAPI and CLIM GUI libraries is very good - so, doing straight off GUI applications is easy. However, since socket connections on a single computer (or even a LAN) are light weight and fast, I am thinking that a more versatile GUI development technique would be to write the user interface as a combined Java applet and Java standalone program (easy to do) that keeps a socket connection open with the application itself. This is more versatile because, assuming a mult...

The death of an Open Source Project

Kind of sad: my web based knowledge management system will not be released under a GPL license. My customer who has been giving me a generous GPL development grant decided that they really wanted to own all of the rights to the project and made me a deal that I could not refuse. They are also buying non-GPL licenses from authors of a few GPLed components that I am using. I am disappointed, but I felt that I had to make the deal for financial reasons. Anyway, I am really enjoying the project, and I will still get to work on it for a long time (and under a better financial arrangement).

Web apps, Microsoft, Mozilla/Firefox

I really like writing web apps: for straight forward things, I almost always use Java, but I love the freedom to also use Common Lisp, Scheme, and Smalltalk. I love having control of required data, being able to use huge databases without installing anything on the client, etc. I used to love coding GUIs: in the early 1980s on my Xerox Lisp Machine, then the Mac, Windows... - lots of fun. But as I get older, I care more for solving real problems, and care less for flashiness in software. I just installed the latest Firefox 0.9 on two of my Macs - very nice, but most exciting because I look at Mozilla/Firefox as becoming a standard web application platform, Microsoft be damned. I have not tried it, but I believe that Mozilla/Firefox runs very well under Windows :-) Trouble with Microsoft (I am being inspired here by a thread over on Slashdot - especially a post by GPLDAN ): we need a standards (XHTML, Javascript) based platform for the client side of web apps - Mozilla/Firefo...

If you only read one news article for the rest of this year

It should be this article. I would take it as a personal favor if you take the 90 seconds required to read this article, then pass this link to friends and family. I feel that the safety and well being of our country is at stake.

No Evidence Connecting Iraq to Al Qaeda, 9/11 Panel Says

This Washington Post article has a great quote: There is "no credible evidence" that Saddam Hussein's government in Iraq collaborated with the al Qaeda terrorist network on any attacks on the United States, according to a new staff report released this morning by the commission investigating the Sept. 11, 2001, attacks. Followed by: The findings come in the wake of statements Monday by Vice President Cheney that Iraq had "long-established ties" with al Qaeda, and comments by President Bush yesterday backing up that assertion. In my opinion, the Bush administration has a history of getting away with playing loose with the truth - hopefully this will change by election day. (As another example: comments about the "Clean Air Act" - in my opinion, the worst case of "non truth telling" besides issues dealing with Iraq.)

My flat screen monitor: the parrot perch

In that last few months, our young parrot Brady (officially my wife's pet) has taken more and more to spending a large part of his day perched on top of my flat screen monitor. A word of warning: don't encourage me! I might start posting pictures of him :-) Brady is a Meyer's Parrot, a small breed. Sometimes his tail feathers cover a very small area of my screen display, but I can always move windows around a little. Brady is a fairly small bird, but it is amazing how much apparent intelligence he has packed into that little brain! During cocktail time, we sometimes set up puzzles for him: situations in which it takes him a lot of time to analyze new situations to solve problems. My dog, an Italian Greyhound (great breed!!!), spends much of his time sleeping under my desk, so my office has a zoo-like quality. My wife also works out of our home in her own office, but it seems like I tend to get the animals. Anyway we have two great pets - it is especially importa...

High value of informal code inspections, even for single developers

When I work on site for customers, if they are not already performing routine informal code inspections, I encourage them to start. Although I have participated in more heavy-weight code walkthroughs on projects developing "mission critical" software, I believe that usually the much more light weight code inspection process gives more value per cost. Here is simple form that I use. If a few people are going to perform a code inspection on a code module, each person receives a line-numbered listing (I use a little Python script to generate these) with an inspection form stapled to the front. Everyone spends sufficient time to go through the listing, noting any potential defects on the form. The group then has a very short meeting to quickly go over the findings. The person who wrote the code module takes all of the forms away for her own use in correcting any defects. I know that this process sounds light weight, but very little time is spent, and usually to very go...

Google News, 'real paper' newspapers

OK, I usually start my day with Google News . Just reading the large media U.S. news sources does not cut it if you want an unbiased view of the world (Google News is unbiased in the sense that it provides a larger statistical sampling of news from around the world). In the U.S., a few mega corporations own most of the news outlets that people are exposed to. This does have an affect on news coverage. For example, not to pick on General Electric, but: GE owns NBC so it would seem natural for NBC news to selectively de-emphasize news that was not in GE's interests. Nothing sinister, just business... Both my wife and I are so much into getting our news on the web, that we actually cancelled our 'real paper' newspaper. Now, newspapers are funded by advertising so they are effectively available almost for free (I think that we only paid $2/week: essentially free, except for the guilt when I would haul 50 pounds of newspapers down to our local recyclers). One U.S. new...

Why I love Java: somethings are so easy to do...

I am working on a GPLed web-based knowledge management system, and this morning I wanted to add an administrative task: downloading all data (about users, projects, etc., but not the actual content being managed: Word, OpenOffice, PDF, etc. documents) for backup purposes. I can't believe how easy it was to write (back to the user's PC) a zip output stream containing compressed XML files (one XML file per business class): 1. I used Brendan Macmillan's utility to write plain old Java objects to an XML stream. I wrapped this in class ArchiveToXml to save all business data objects 2. In a JSP page, I added 3 lines: response.setContentType("application/zip"); response.setHeader("Content-disposition", "attachment; filename=\"alldata.xml\""); new ArchiveToXml().saveData(response.getOutputStream()); Something that I thought might take a few hours, took 30 minutes - love it!

Very cool: Loom Knowledge Representation System is open sourced

LOOM has a new license. ISI has spent years developing LOOM (written in Common LISP) and the newer PowerLoom (runtime available in Java, Lisp, C++) as knowledge representation tools . Good stuff! For non-commercial (research) applications, the Java runtime of PowerLoom is probably the way to go. However, PowerLoom is (I think) very expensive for commercial applications. I use LispWorks, and I have been using LOOM for research, so it is good to know that if I need to, it can be freely used ( read the license) for any type of application. Cool!

Free J2EE 1.4 stack: JOnAS 4.1

I saw this link on another Java blog. The ObjectWeb software is high quality stuff: I frequently use their Joram JMS software for guaranteed asynchronous messaging. A little too bad that I have been moving away from using EJBs in the last year or so - most of my web app projects are small to medium sized projects where it usually makes sense to just use a JSP container, and use: JDO (Hibernate), hand written JDBC, or something like Prevayler. Still, for large projects, the full J2EE 1.4 stack rocks.

More on commodity hardware and software

Until a few days ago, I used a 5 year old 1024x778 pixel Samsung flat screen monitor. I just bought a new 1280x1024 Samsung flatscreen monitor for 1/3 the price as the old one - have to love commoditization of computer hardware! I have been running a Mac G4 tower headless as a server - I guess that my server will now have a display. For many organizations, the cost of software can be higher than the cost of hardware. While there is definitely a place for commercial software, I think that we are going to see much more free infrastructure software and end user software. I prefer using StarOffice or OpenOffice.org rather than Microsoft Word (I have written a few published books with OpenOffice.org), but the Microsoft file compatibility problem is HUGE. Microsoft certainly does a great disservice to their customers by both changing Word file formats between Word versions and by not making their file formats more open. The "fast save" mode format for Word files is very o...

My Slashdot posts on being interviewed at Google

The actual interview process at Google is covered under NDAs, but I posted a few messages to Slashdot today (subject "Google's Ph.D. Advantage") being careful to not discuss details of the interview process; here are my posts: To be honest, when Google flew me to California for an interview, I was luke warm about the idea of working for Google because I love my life style living in the mountains of Northern Arizona. However, after spending a day being interviewed by 6 extremely bright and creative people, I very much wanted the job (I did not get it, oh well). It is true that bright people want to work with other bright people. Anyway, it may sound strange, but I view the interview process as a very positive experience (also, after 30 years of working, it was the only job that I tried for that I did not get, so I was able to set most ego stuff aside). In addition to the interviews themselves, I got to have lunch with Peter Norvig and before I left the Google campus ...

Complexity of Java code for reading OpenOffice.org documents vs. Microsoft documents

I have spent more time than I would like to admit writing Java code to pull plain text from Microsoft Word, PowerPoint, etc. files. This morning, I added support for reading OpenOffice.org documents to my Knowledge Management system: easy! It took about 15 minutes of coding: used the ZipFile API to read the top level document file, and found the ZIP entry labeled "content.xml", got an input stream for this ZIP entry, fed it to a custom SAX parser class that simply aggregated character data inside <text:p> tags.

Open document formats: anyway to force Microsoft to use unencumbered formats?

I seems like Microsoft does bend a little when customers complain (sometimes). Microsoft's ever-changing document formats are a hazard to robust and safe information storage. If a critical mass of customers (including governments - try asking your Congress folks) complained, and complained loudly, it might help (or not). One brilliant solution to non-open file formats is to use OpenOffice.org and other office suites that use the free, open, and standard document format . The OpenOffice.org file formats are fairly easy to read in your own programs.

Google, GMail, Microsoft...

As a beta user of GMail, I have been pleased by how fast Google sneaks improvements into the system. A while back, I noticed that the JavaScript in GMail started to change the page title (and thus the tab title if you use a tabbed browser) to include the number of unread email messages - a small detail, but something that I was anticipating. Just now, I logged in with Apple's Safari browser and noticed that I no longer received an unsupported browser warning. Cool. Google is all about scalability (I have been either an architect or a technical lead on two very large scale network applications so I have a little appreciation for how amazing it is that the Google system never seems to slow down, let alone not be available). Enough praise of Google, now I feel like dumping on Microsoft: I finally have a pain-free Microsoft Windows experience: I own one Windows 2000 license and I use it on my Mac OS X system running under VirtualPC. I have one clean, already configured Virtu...

Best hack award: NeoOffice/J: using Java to get OpenOffice.org running without X11

NeoOffice/J is a really clever hack: Patrick Luby and friends have used Java on Mac OS X to remove the X11 dependencies from OpenOffice.org version 1.0x. No X11, native fonts, etc. I only used NeoOffice/J to edit some existing word processing and diagram documents - I saw no problems what so ever. Very cool. One huge advantage of NeoOffice/J and OpenOffice.org is the universally open and readable XML format . XML files for a document are conveniently stored in a single ZIP file.

Could be the best editorial of 2004 (so far)

Sometimes a writer just makes perfect sense and simply cuts through the bullshit. Pat M. Holt sets aside emotional rhetoric and simply speaks the truth. To our own selves be true...

Fed has increased money in circulation (M3) by levels usually only used in a dire crisis

In the last month, the Feds have printed an additional $155 billion in new currency (with nothing to back it up - it is just paper). Amazing! It looks like the Feds are doing everything in their power to make the economy look OK for the elections next fall. This is just my opinion, but it seems to be the height of recklessness to use extreme monetary measures, usually reserved to avoid a financial collapse, etc., just to make the economy look good for the upcoming presidential election. However, maybe I am being too optimistic: perhaps there is a looming economic collapse and the Fed is acting responsibly, performing a last ditch effort to prevent a historic crash. (Hopefully, this is just politics!) In any case, this is a little scary. You can search the web for "plot of U.S. money supply" if you would like to see this graphically. In 2000, the M3 was $6500B and now the M3 is pushing $9200B - a huge increase in just a few years. The important point is: this money ...

Optimistic Optimization

Peter G. Neuman, editor of ACM risks forum has written an article "Optimistic Optimization" in the latest Communications of the ACM that I could not agree more with. Peter starts out by talking about how business and government tends to optimize for short term gains vs. long term gains using examples of environmental issues, pandering to special interests rather than long term public good, etc. He then starts to talk about how the same short term view infects the software development process. While I started programming in the early 1960s as a kid, I did not start professionally programming until 1973. Since 1973, time and time again I have seen short term scrambles to make deliveries end up costing much more in the long run. However, nothing is black and white in this world - there are some times when quick hacks to get a job done quickly make the most sense. And, there are times when careful requirements analysis, quality design, copious unit testing, etc. pay off...

Sun's new pricing models

A disclaimer: I (unfortunately) own more than a small amount of Sun stock, so I take more interest in what Sun is doing business-wise than many other Java developers. I at least think that their new citizen-based pricing models are interesting. Country governments can buy Sun software licenses based on their population and their UN ranking as third world, developed, etc. As with their corporate "cost per employee" licensing, countries would get access to all Sun software. This may or may not work. It seems to me that another large company (large for credibility) could offer similar fixed cost per year based on organization size (or population size), but use free software (Linux, Apache, OpenOffice, etc.) and undercut Sun. I also think that Sun's managed file storage (e.g., $1.95 per month per gigabyte) sounds interesting. $1.95 per month (or about $24/year) for a gigabyte of storage sounds very expensive, but I assume that this would be managed, mirrored, bac...