April 2003 Archives

Steve Anglin

AddThis Social Bookmark Button

Related link: http://java.oreilly.com

The following are new and upcoming Java books from O’Reilly & Associates.

Java Data Objects (April)

Java Data Objects written by the JDO Specification Lead and one of the key contributors to the JDO Specification, is the definitive work on the JDO API. It gives you a thorough introduction to JDO, starting with a simple application that demonstrates many of JDO’s capabilities. It shows you how to make classes persistent, how JDO maps persistent classes to the database, how to configure JDO at runtime, how to perform transactions, and how to make queries. More advanced chapters cover optional features such as nontransactional access and optimistic transactions. The book concludes by discussing the use of JDO in web applications and J2EE environments. Whether you only want to read up on an interesting new technology, or are seriously considering an alternative to JDBC or EJB CMP, you’ll find that this book is essential.

Mac OS X for Java Geeks (April)

Mac OS X for Java Geeks delivers a complete and detailed look at the Mac OS X platform, geared specifically at Java developers. Programmers using the 10.2 (Jaguar) release of Mac OS X, and the new JDK 1.4, have unprecedented new functionality available to them. Whether you are a Java newbie, working your way through Java Swing and classpath issues, or you are a Java guru, comfortable with digital media, reflection, and J2EE, this book will teach you how to get around on Mac OS X.

Java Database Best Practices (May)

Unlike other books on this topic, which focus on a single way to do things, Java Database Best Practices takes you through a wide variety of different ways to store and access data, enabling you to learn which “persistence model” is most appropriate for each type of application. This unique book covers Enterprise JavaBeans, Java Data Objects, the Java Database Connectivity API (JDBC) and other, lesser-known options.

Head First Java (May)

The latest research in cognitive science, neurobiology, and educational psychology shows that learning at the deeper levels takes a lot more than text on a page. Actively combining words and pictures not only helps in understanding the subject, but in remembering it. Head First Java puts these theories into practice using mind stretching exercises, memorable analogies, and stories, which are used to drive home key points and make ideas come alive.

Jakarta Struts Pocket Reference (June)

The Jakarta Struts Pocket Reference gives you an inside track on getting Struts installed, configured, and running smoothly in your enterprise. This book, an essential companion to O’Reilly’s Programming Jakarta Struts, provides detailed coverage of every Struts JSP tag, the Struts configuration files and directives, built-in actions, and a wealth of other resources.

What do you think about this selection of books for 2nd quarter; and what would you like to see in the coming months from O’Reilly?

Steve Anglin

AddThis Social Bookmark Button

Related link: http://conferences.oreillynet.com/pub/w/22/presentations.html

Here are some 2003 O’Reilly Emerging Technology Conference sessions with downloadable presentation files, with more on the way at the URL above.

William Grosso

AddThis Social Bookmark Button

Related link: http://susanmernit.blogspot.com/


I love the web. And I love weblogs. You meet interesting people through them. You can learn a lot. And you can “meet” people that you would never have been able to meet 10 years ago.


Case in point: I’m running an expo
on convergence
. All about what happens when homes have dozens of high-powered devices (for example: a tivo, a playstation, an
pc,
and a refridgerator)
all networked together. And what happens when it’s on the net,
via broadband. And how do the enterprise-software-focused people in
my neck of Silicon Valley learn about this new world.


The expo pretty much happened by accident when I realized convergence is happening, that I know very little about it, and that it might be important for me to know more. I was puzzled: how do you learn about an entire industry segment, starting from very little knowledge.


After scratching my head for a while, I put together an outline of an expo that I’d like to attend, and then started recruiting speakers for it. Basically, using three criteria: smart, knows the space, and local.


I found Susan Mernit by googling. She spoke at the CSPA
annual conference a couple of years ago; I remembered the talk and it was interesting and she definitely knows the broadband and interactive content spaces. So I sent her an e-mail, asking if she’s interested in being a part of the expo.


It turned out that she’s no longer local. But she was interested anyway and, 17 billion e-mails later, she’s now moderating the future of broadband panel, we’re talking to a reporter from Home and Garden TV about a piece on the connected home, and I’m wondering how such an obviously bright and capable person could like such a bad movie.


And we still haven’t ‘met’ in the physical sense.


I sometimes wonder if, in the rush to abandon HTTP and HTML for XML, Flash, Curl, RDF, RSS, yadda yadda yadda all that fancy jazz, we aren’t overlooking, or are taking for granted, the truly amazing things the basic web makes possible.

William Grosso

AddThis Social Bookmark Button

Related link: http://www.tivo.com/developer/


One of the things I find amazing about the recent technologies for the home market is how customizable they are, and how programmer friendly they are. Tivo runs linux and has a developer’s kit.


This ain’t your parent’s VCR, blinking ‘12:00′ for all eternity.


Don Dornblaser, the Software Engineering Manager for TiVo will be talking about TiVo’s developer kit, and product strategy, at SDForum’s Connected Home Expo on April 29.

William Grosso

AddThis Social Bookmark Button

Related link: http://www.wgrosso.com/Articles/Presentations/PresentationonCORBA.html


About a month ago, I was invited to give a presentation on Web Services to a software engineering class at the University of San Francisco. I demurred, pointing out that I’m not really an expert on Web Services, and definitely not a fan of them.


Some e-mail was exchanged and I wound up giving a historical talk on CORBA. For those who don’t know, CORBA is an object-distribution framework defined by the Object Management Group. It was a nice framework, which accomplished most of its main goals (letting programmers write new programs access legacy programs and data), was heavily promoted during the mid 1990’s, and has subsequently all but disappeared from the computing landscape.


The goal of the talk was to try and figure out why. I took some old slides from my Enterprise Java Course, wrote some new ones centered around the evolution of modern computing, and ran the resulting slides past a dozen or so of my closest friends who also know CORBA. The result is an admittedly idiosyncratic history of a technology that never quite lived up to its hype. I managed to present a pretty good overview of CORBA, discuss the reasons it never achieved widespread adoption, and shoehorn in a fairly nice discussion of RMI at the end. Maybe I’ll get around to that in a future talk.


The original abstract was:

CORBA, the Common Object Request Broker Architecture, is a specification for distributed objects that has been around since the late 1980’s. The goal of CORBA was to provide a language independent standard for middleware (both the basic protocols and for standard pieces of infrastructure). After an initial wave of hype, CORBA never really lived up to the expectations that were set for it, and it has since been mostly displaced by other technologies. In this talk, we’ll present an overview of CORBA and discuss whether or not it succeeded, and what lessons can be drawn for future distribution mechanisms.

Tell me what I got wrong about CORBA. Alternatively, tell me why web services are better.

Steve Anglin

AddThis Social Bookmark Button

Related link: http://www.ftc.gov/bcp/conline/pubs/credit/idtheft.htm

Here’s a complete, online guide for fixing identity theft, in the instance that you or someone you know becomes a victim. It includes an Affidavit as well as template letters to use for clearing your name.

Also, I throw out 10 points for preventing identity theft.

1. Require employers, IRS and other institutions to mail out payroll and tax information without the use of social security numbers.

2. Require financial institutions to eliminate the use of a customer’s social security number in billings OR at least block or dash out most of the social security number if used.

3. Require financial institutions to eliminate the use of a social security number as part of customer’s account number.

4. Require financial institutions to block out part of their account numbers (i.e., Visa 4114 XXXX XXXX X127).

5. Require credit card companies to issue and use pin numbers for use in all credit card transactions, similar to how ATM cards are already used.

6. Prevent the emerging trend of companies who essentially mandate online transactions; otherwise, consumers face a $ 1 or $ 2 extra billing charge for paper billing.

7. Require information sharing safeguards on marketing materials between companies. For example, one business may sell information on its customers to another business.

8. Find ways to help companies dispose of deleted databases and hardrives that may contain sensitive information.

9. Require the U.S. Post Office to encourage the use of secure mailboxes for all residents. Much of the theft that takes place occurs because mail is stolen.

10. Develop a central identity theft agency with 800 phone number hotline, which would tie together the major credit reporting agencies; so, victims can easily report any case of fraud or suspected fraud.

What do you think of these 10 points for preventing identity theft? If you have others, please share. Thanks.

William Grosso

AddThis Social Bookmark Button

Related link: http://www.sdforum.org/p/calEvent.asp?CID=1056


If you’re a technologist (a vague word, I know), you might be interested in what’s coming down the pike. I certainly am, to the extent that I occasionally help SDForum organize events centered around emerging technologies.


This next one, on April 29, is a big one. We’ve got lots of speakers, all talking about “The Connected Home” (e.g. what happens when you’ve got a broadband connection to a house full of semi-smart devices). From Apple (talking about Rendezvous) to a panel on the platforms that emerged from television to a closing discussion on broadband, this is going to be one heck of a show.


Come on down and help make it happen!

William Grosso

AddThis Social Bookmark Button

Related link: http://www.paulgraham.com/hundred.html

In addition to my previous blog entry,
I’d like to add a couple of additional thoughts about
Paul Graham’s latest.


The first is this: Ken Arnold had

a very good point
when he wrote
I first started to think about this when writing a paper on C++.
In the first (and only) draft, I declared that a programming language
is a user interface to the language’s abstract programming model
.


Does this point surface in Graham’s paper? I don’t think so.
Or, at least, it surfaces obliquely. And when it does bubble to
the surface, it bubbles up strangely.


Another thought that comes bubbling up is: What would
Todd Proebsting
think of this?
. In particular, consider the powerpoint
presentation entitled “Disruptive Programming Language Technologies.”
What are the points of intersection between Proebsting and
Graham? Do they have any?


Just some things to think about….

What other good articles on programming language design have you read lately?

William Grosso

AddThis Social Bookmark Button

Related link: http://www.paulgraham.com/hundred.html


People who read my slides on why Java is actually a pretty good language might have noticed that I pay a lot of attention to Paul Graham. It’s because he has a lot of interesting things to say about programming languages and about programming language design.


His new essay is pretty interesting. There are some interesting insights, and some very questionable assertions.
An example of both is the following quote:

“Semantically, strings are more or less a subset of list in which the elements are characters. So why do you need a separate data type? You don’t, really. Strings only exist for efficiency. But it’s lame to clutter up the semantics of the language with hacks to make programs run faster.”


This is simultaneously an interesting insight, and a very questionable set of assertions. The first sentence raises a red flag for me– the operations I want to do on strings are not the operations I want to do on lists (most of the time), and thinking of strings as lists feels weird because they are so much more complicated. But if you replace “subset” by “subclass” (which is, I think, the intended meaning), it’s not horribly unreasonable. On the other hand, “Strings only exist for efficiency” is flat out wrong. Wrong wrong wrong. The idea of a string class, and of syntactic sugar for the String class, makes a lot of sense even if you remove the efficiency reason entirely, It makes the code more readable than would be the case if you used a general purpose list notation. I still want a string class, and I still want to be able to use “foo” to represent the list foo consisting of three characters because, hey, it’s more readable that way.


On the other hand, “object-oriented programming offers a sustainable way to write spaghetti code” seems bang on the money to me (and it’s about time someone said so out loud).


Anyway. Go read the essay. It’s a fun read.

Seen any recent articles on programming language design that you’d like to pass along?

William Grosso

AddThis Social Bookmark Button

Related link: http://www.artima.com/index.jsp


Wow. Artima has changed over the past year and I just noticed. It used to be a staid little website, mainly a place to find articles written by Bill Venners.


Now? Well, Ward Cunnigham, Jim Waldo, Ken Arnold, and Guido Van Rossum are all writing weblogs, and they’re all publishing on Artima.


Definitely someplace to visit frequently.

William Grosso

AddThis Social Bookmark Button

Related link: http://www.pegasus3d.com/total_share.html


I’m writing up some lecture notes on CORBA and I needed to find out some data from the 1980s.


Jeremy Reimer’s done a great job of compiling sales figures. Was 1985 really only 18 years ago?

Eric M. Burke

AddThis Social Bookmark Button

The other day I helped a fellow developer track down a problem in some server-side code. He probably spent a few hours working on the problem, and I helped him for at least 30 additional minutes before we finally figured it out. The basic problem was that we were attempting to insert a record into a database and one of our fields was too large for the column. We got some obscure database error…I don’t remember the specifics, but it was something like:

ERROR: Data exceeds column size.

Of course the root problem was trivial, but these things can be quite tedious to track down when you have complex SQL statements hitting multiple tables with lots of columns. We resorted to lots of logging statements along with a laborious process of manually validating that each column was big enough to hold its data. We eventually determined that our username column was only defined as a 3-character field, which caused problems for anyone using a username longer than 3 characters. (we were using a dummy user called ’sys’ for testing so we didn’t see the problem until a real user signed on).

Here’s my beef. Why didn’t the original programmer spend a few minutes improving the error message? For example:

ERROR: Data for 'username' column exceeds column size of 3 characters.

????

This would have taken the original programmer a few seconds, and would have saved us several hours of debugging time. I’m sure thousands of other programmers have encountered this exact same problem due to this specific error message.

While I’m using this particular database error message for an example, I can state from experience that JNDI and CLASSPATH problems are two other particularly difficult technologies when it comes to diagnosing problems. Wouldn’t it be great if whenever you got a NoClassDefFoundError, the class loader dumped a list of places it looked for your class?

Anyway, the point is simple. People who write framework software should spend more time on useful error messages that show people why the error occurred and give a clue as to how to fix it. This would save millions of dollars in wasted productivity each year. (OK, I’m just making up that number, but it wouldn’t surprise me)

William Grosso

AddThis Social Bookmark Button

Related link: http://www.wgrosso.com/Articles/Presentations/PresentationonJavaasaProg.html

A few months ago, I was invited to give a Colloquium presentation at Sonoma State University. It’s a nice university; located about 50 miles north of San Francisco, where the sky is blue, the air is clean, and the cows don’t block the roads all that often. I wound up giving the talk on March 20 to about 45 people.

I decided to talk about why I think Java is a great programming language. It’s more of a summary presentation, with lots of links and references to various things on the web than it is a presentation of any original thinking. But it was a fun talk to give, and it helped me clarify why I like Java so much.

You can now download the presentation from my website (which I’ll update more frequently in the future– I promise).

What do you think? Are the arguments valid? What other criteria would you propose when evaluating a programming language?

William Grosso

AddThis Social Bookmark Button

Related link: http://www-106.ibm.com/developerworks/offers/techbriefings/?S_TACT=103AMW01&S_CM…

I went yesterday to IBM’s Technical Briefing on Web Services. It’s a day long presentation, about half general knowledge on web services and about half websphere-specific.

They’re embarking on an extended tour. If you’re at all curious about IBM’s webservices story, it’s a great event.

Dion Almaer

AddThis Social Bookmark Button

Related link: http://www.theserverside.com/home/thread.jsp?thread_id=18635

One good thing about developers is that they know how to have a laugh. TSS decided to do a goofy April Fools post saying that they got bought by MS. The funniest part is when you see people who really believe it! Are there any other funny april fools sites this year?