April 09, 2004

Microsoft Doesn't Want to Educate Me

Here's a question for Robert Scoble, let's see if he's able to pick it up: I have Microsoft Internet Explorer and Windows Media Player installed. I also run Microsoft Office. Sadly, that doesn't seem to suffice to be able to watch the presentations from the .NET architecture overview series. How do you expect to evangelize people using other platforms when they can't view content - even if they're on a supported platform? The same goes for things like this:

To view the demo only as a standalone .wmv file, choose the file 20040408VisualCKGDemo.exe

Why hide a wmv inside an executable? What's wrong with plain old Zip file format?

Seriously, if anybody can send me the URI of the media stream for the Technology Roadmap presentation that has got to be hidden somewhere inside that JavaScript/DHTML mess, that would be just great.

April 08, 2004

Google Platform

A fascinating post with some information and some speculation about Google's infrastructure:

While competitors are targeting the individual applications Google has deployed, Google is building a massive, general purpose computing platform for web-scale programming.

April 04, 2004

Programming languages and productivity

Bill de hÓra has written a very nice essay on programming languages and productivity. While I'm really getting awfully tired of having MDA put into the camp of clueless let's-do-pictures-instead-of-programming advocates, I basically agree that general acceptance of a language with Lisp's meta-features would have made MDA obsolete.

If the Lisp community were a little less academic, and actually interested in getting more people to use that excellent language, they would have created a working, well-supported, complete implementation based on the JVM or CLR. That would have taken care of the library problem, and maybe got more people to give it a try.

XSD vs. RELAX NG

Elliotte Rusty Harold writes:

I think the future is clear, and it ain't spelled "XSD". Major recent RELAX NG wins include DocBook, OpenOffice, XHTML, and SVG; all of which are planning to move to RELAX NG in their next versions. I have yet to encounter a group that seriously explored RELAX NG and still chose to use the W3C XML Schema Language

I have only taken a casual look at RELAX NG, but I clearly like it a lot better than XSD. Now if it would only be acknowledged in the Web services world ...

April 02, 2004

How we got rid of spam (mostly, that is)

At innoQ, we use Lotus Domino/Notes for our email and collaboration needs. Notes does not have any real built-in anti-spam features, and most of the stuff you can get product-wise is based on either POP3 or IMAP (which we don't use) or works only with specific clients (most notably, Outlook). So we have lived with the occasional 50 to 100 spam mails per person per day for quite some time - until I couldn't stand it anymore.

After having used it for two months now, I can definitely recommend AppRiver's service as a solution. This is a company that provides anti-spam (and anti-virus) features as a service, without requiring any local installation. The way it does this is that your domain's DNS MX records are changed so that all the email flows through their servers, gets filtered there, and is then forwarded to the company mail server. Mail identified as spam (or containing a virus) is "held" at AppRiver's servers, and you can use a Web UI to check every other day to see if there are any false positives.

In the last 60 days, we had one such false positive (i.e. a non-spam email that got caught in the spam filter), and usually around 2-3 spam mails per day make it through (false negatives). Other than that, there are one or two minor issues:

Other than that, I'm very satisfied with AppRiver's services; if you're looking for a hassle-free, server-side anti-spam solution that works with any mail setup, I can highly recommend it.

Microsoft and Sun collaborate, settle litigation

Fat chance anybody will read about the Microsoft/Sun announcement here first, but I still feel obliged to link to it. Totally unbelievable.

John Gruber on Usability

A great rant by the Daring Fireball on UI design and usability:


UI development is the hard part. And it's not the last step, it's the first step. In my estimation, the difference between:
  • software that performs function X; and
  • software that performs function X, with an intuitive well-designed user interface

isn't just a little bit of extra work. It's not even twice the work. It's an entire order of magnitude more work. Developing software with a good UI requires both aptitude and a lot of hard work.

Amen to that.

April 01, 2004

Why Do Java Developers Like to Make Things So Hard?

I can relate to this this point of view. What I find outrageously funny, though, is that this comes from a Jakarta Struts committer ;-)

March 18, 2004

Groovy: A Threat to Java?

Bill de hÓra, Cedric Beust, and various more or less clueless folks on TSS add their comments to the Groovy JSR debate.

I hope that the JCP executive committee will accept it — in my opinion, Groovy would be simply a great addition to the JVM platform. Having a powerful dynamic language with access to all of the platform libs, sanctioned by a (semi-)official standard, would propel the concepts from Ruby, {P|J}ython and LISP to the mainstream, something that would really be great for the industry.

Groovy JSR

There is now a JSR for Groovy - great news!

Some people disagree midly ;-)

March 11, 2004

Java Generics

Back in May, I was disappointed by C#'s generics. Now Bruce Eckel writes about Java Generics, and they have the same problem.
Update: Dare Obasanjo goes into more detail. I fail to agree with his claim that C++ doesn't really achieve the effect Bruce is looking for, though.

Offline Wiki

I was looking for a way to ease our company-internal collaboration, and decided to give the Wiki concept a try again. We did this a couple of years ago, using a slightly modified version of Ward Cunningham's original Wiki code. Then we introduced Lotus Domino, and our Wiki died.

While I like Notes/Domino a lot, its support for building a web of crosslinked documents is very limited. One of its major strengths, though, is replication — a feature that is critical to us, since many of us spend a lot of their time traveling, and being able to create a document that gets replicated later is a very cool thing. So I search around for offline-capable Wiki implementations. Ed Taekema was looking for something similar, Don Park has written about Distributed Wikis, and Bertrand Delacrétaz suggests using a Wiki with CVS backend and synchronize this way.

I finally decided to try out a project called BeeWiki which is hosted on OpenNTF. This is a pretty straight-forward Wiki clone, but it uses Domino as its backend. With this solution, it's possible to use a Web browser or the Notes client to work with the Wiki contents.

Installation was dead simple, and this looks very promising. Chances are we'll discover something that will prevent us from sticking with it (a strong tendency here), but we'll definitely give it a try ...

March 10, 2004

Whitehorse - Microsoft's Modeling Tool

Microsoft's Keith Short has some information, including screenshots, about Microsoft's new modeling tool, Whitehorse (some more information here, here and here). Very interesting, although the comments about keeping code and model in sync remind me of other flawed efforts.

March 09, 2004

Canvas: Groovy Templating

Cedric Beust has created a prototype of a templating engine based on Groovy. Very cool.

March 08, 2004

Real Player Sucks

I have always hated RealPlayer, and I even thought about writing about it some day. It turns out that there's no need because Tomas Jogin has written everything that needs to be written already.

March 05, 2004

Doom & company

Virus writers begin to compete with each other, and I don't give a damn. Windows users, your life could be so easy ...

March 01, 2004

A Panel at Berkeley

If you like to spend your time on something more interesting than TV, this discussion with Jim Gray, Bill Joy, Niklaus Wirth, Ken Thompson and Butler Lampson is well worth the 75 minutes you spend on it (found via LtU).

Communication for Distributed Workgroups

Stefano Mazzochi has an interesting post about communication paradigms with different levels of synchronicity.

February 29, 2004

Offshoring

One of the most intelligent discussions about offshoring I have seen in a long time.

Quicklinks

A bunch of quicklinks I'm too tired to blog about in detail:

The Mythical Man-Month

I read Frederick P. Brooks's classic when the second addition came out; in the unlikely case that you are reading this entry, are involved with software development in any way, and have not read this book — make sure to change this ASAP. (The fascinating thing about the book is that it's now about 30 years old, describes a project from the late 1960s (the design of the IBM/360 OS, IIRC), and still has so many truths in it that it's simply unbelievable we make the same mistakes today.)
I just linked to it now because I came across an essay from 1986 that was included in the anniversary edition, and saw that it's available online. I haven't checked, but I believe this essay coined the term "No Silver Bullet" — and like the book, it's well worth a read even after almost 20 years:

The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later. [...] For the truth is, the client does not know what he wants. The client usually does not know what questions must be answered, and he has almost never thought of the problem in the detail necessary for specification. [...] I would go a step further and assert that it is really impossible for a client, even working with a software engineer, to specify completely, precisely, and correctly the exact requirements of a modern software product before trying some versions of the product.

UML or XML Schema for Common Types?

Mark Ericson commented on a blog entry from Adam Blum regarding the usage of XML, or to be more specific, XML Schema, to describe common business types:

XML schema is one of many concrete ways of representing the types, there are certainly many others including our programming languages and database schema. [...] I haven’t thought of myself as a UML evangelist, but perhaps UML can provide a richer type modeling environment that promotes type reuse and can be mapped to both XSD and the ‘layered standard’ when needed.

I totally agree with Mark. In his answer, Adam (who actually alerted me to this comment, claiming it could have come from me ;-)) suggests that UML should be used by shops that are doing it anyway, while using XSD seems to become the default way of doing this.
I disagree with Adam: I strongly believe that it's foolish to believe that common business types specified in XML Schema are a good idea if you are concerned about protecting your investments in the future. XSD just happens to be extraordinarily popular right now; and in time, it will be replaced by something else (RelaxNG? Schematron? Something totally different? Who knows.) In addition, XSD, even when combined with WSDL and the whole bunch of WS-* standards, is only a small part of your common business knowledge (the service interface layer), and captures zero information about your implementations.
Thus, I strongly believe that a common business knowledge repository should be on a meta-level, and be used to generate other representations — with XML Schema just being one of them, while others could be SQL DDL, Java, C#, or whatever your current technical environment requires.

February 28, 2004

LISP in the Real World

A very interesting comment in Joel Spolksy's discussion forum:

If I started up my very own major software project now, I would make my language decision based on the criteria above. Sure, I love Lisp, CLOS is awesome, real lexical scoping rocks, Lisp macros are way cool (when used as directed), and personally I really like Lisp syntax. [...] But it would take a lot, or require special circumstances, to persuade me to choose Lisp for a major software project, if I were in charge of making the choice.

It's interesting not only because of its content, but because it has been written by Dan Weinreb, whose LISP competency can't really be in doubt ;-)

Open Source Java

IBM's Rod Smith writes an open letter, Sam Ruby links to it, linux today has some stupid comments, all prompted by an open letter from Eric Raymond. The most sensible comments, IMO, come from the BileBlog.
Java Open Source or not? I couldn't care less, and I believe it's totally irrelevant to the market.

February 24, 2004

Duck Typing

An utterly brilliant article by Sean McGrath. Incidentally, I see this when I'm in the middle of a very interesting e-mail discussion regarding my own post regarding XML and typing.

February 23, 2004

Subversion 1.0 Released

Finally! Subversion 1.0 has been released. I wrote an article about it about a year ago, when the release seemed immediate ... very cool it's available now.

Nokia 9500

I thought my gadget-mania had been cured, but this announcement makes me wonder whether it's maybe only dormant:

This week, [Nokia] chief executive Jorma Ollila unveils a prototype of the Communicator 9500, a device that ties more neatly and swiftly into corporate IT systems than any gadget Nokia has offered to date. Among the 9500's selling points is wi-fi circuitry that allows users to connect to the Internet in wireless hot spots and securely link up with business networks.

That does not sound bad at all ...
[via Russel Beattie]


Update: Frank Koehntopp a.k.a. GadgetGuy has some more details.

February 22, 2004

ObjectSpaces in Whidbey

Only 10 to 15 years after the rest of the OO world, Microsoft introduces Object/Relational mapping tools to its own line of products. Amazing.

February 21, 2004

Architect Blog

Just a quick pointer to Michael Platt's weblog - I have forgotten how I found it, but I strongly recommend it.

Simonyi on Intentional Programming

Charles Simonyi, ex-Xerox PARC, ex-Microsoft guru, shares some information about his company, Intentional Software.

Why's (poignant) guide to Ruby

I wanted to postpone learning Ruby, but this book seems to be a good reason to change my mind. Have a look at it and see if you agree. [via Ben Hammersley]

February 20, 2004

Vinoski blogs

IONA's Steve Vinoski has a weblog, which is great news.

February 16, 2004

An Introduction to Groovy

Mark Volkmann has written a very nice and readable introduction to the Groovy language.

February 15, 2004

WinFS value proposition

Dare Obsanjo shares some thoughts on WinFS:

The main reasons applications don't talk to each other isn't a lack of technology [...] but for various social and business reasons.

He continues to point out that the main benefit in WinFS is, in his opinion, not the much-hyped enhanced search facilities, but the fact that applications that use WinFS to store their data would be interoperable.

REST and Atom

Russel Beattie, occasionally pretty informative, writes a post which is amazingly clueless. The only reason for mentioning it is that the comments to it are very entertaining. I hereby declare Sam Ruby my role model for blog conversations.

February 13, 2004

The Next Move in Programming

On java.sun.com, there is a very interesting interview with Victoria Livschitz, a senior IT architect at Sun (and also a former chess master and the daughter of a famous mathematician).
There are some minor issues I have with her wording - there seems to be some confusion between functional and procedural languages, and I also believe that thing you use in XML all over is called pointy brackets, not square ones. But her thoughts on the inadequate abstractions we have in today's programming languages are very interesting, indeed. Maybe there is a spectrum — a language with pure mathematical elegance, like Lisp, for usage by the A-level geeks, and some sort of building block-based, high level programming language for the masses; quite possibly with one built upon the other. [via connections]

What's the point of Mono and dotGNU?

In an opinion piece on the register, the author questions the usefulness of a .NET/C# implementation on non-MS platforms. Slashdot has the predictable thread.
I totally agree — I have never seen the point, too. In fact, I already had my first couple of heated discussions about this. I have nothing against C# or .NET (or Qt or Motif or Cocoa or Carbon or whatever), but I fail to see the point of trying to extend an OS-/platform-dependent environment to another platform. If I want to do platform independent development, I'll use a platform-neutral environment like Java, or some scripting language like Python or Ruby.

Stefano Mazzocchi on RDF

Stefano Mazzochi has a nice posting on RDF:

Relations are tables, XML documents are trees, and, guess what, RDF models are graphs. Yep, you got it, RDF candescribe both.

A beautiful blog layout, BTW.

February 12, 2004

Visual Spoofing

Don Park has a sick idea: visual spoofing. Very clever. I wonder how long it takes before we see this used by real scam schemes ...

February 10, 2004

Eclipse FAQ

A quicklink specifically for one co-worker: Eclipse Meta FAQ.

February 08, 2004

Mark Dives Into XML 1.1

I wondered why Mark Pilgrim had changed his RSS feed to be XML 1.1, earning him the label "clueless user" from somebody who usually knows his stuff. Now I understand.

February 06, 2004

(Not) Using XML 1.1

Dare Obsanjo has some strong statements about XML 1.1:

XML is a lousy format for most of the things it is used for. The one benefit it has is that it is widely supported and a guaranteed way to interoperate in a cross-platform manner. By tampering with this the W3C is effectively diluting one of the few benefits of using XML. This is an regrettable occurence. Unfortunately it looks like things will get worse now that the W3C also wants to dabble in “binary XML”.

I wholeheartedly agree with the statement about binary XML, and strongly suspect he is right about the rest as well ...

eXist XML Database

Wolfgang Meier of the Darmstadt University of Technology has posted the first beta of eXist 1.0 (after several earlier pre-beta releases), an open source native XML database that supports fulltext search. [via Cafe con Leche XML News and Resources]

Pass by Reference in Web Services

Jeff Schneider continues his search for answers on how to do pass by reference in Web services.

I believe pass by reference is impossible when doing Web services.

Some time ago, I had a long and heated discussions with a customer and several colleagues about whether Java does pass by value or pass by reference, where we were evenly split among the views that there is only pass by value on the one hand, and only pass by reference on the other hand. (Incidentally, while looking for a normative definition, I came across an article that shares my point of view - Java does pass by value only. Really. Think about it.)

To me, pass by reference semantics only make sense in the case of programming languages - it's a syntactical issue that you put a variable in place of a formal parameter, and the language implementation (compiled or interpreted) passes a pointer to the variable instead of the value. I believe anytime you make a copy of some data - which is unavoidable if caller and callee don't reside in the same address space - you can't do pass by reference.

Of course I concede that a Web services-based language might offer some sort of syntax to pass pointers under the covers, but that would probably be a bad idea and only lead to subtle bugs. Better to pass references - and pass them by value.

Configuring Weblogic with Jython

Quicklink: Via Sean McGrath: Jython in BEA Weblogic. Very cool.

Java and the Wrong Turn

Quicklink: Java is taken too seriously [via 0xDECAFBAD]. I love the KPAX example, something to take a look at ...

February 04, 2004

Macintosh Folklore

Folklore.org is a collection of anecdotes from the time the original Macintosh was developed. Whether you're a Mac aficionado or not, it's definitely worth spending the time reading it. It even has an RSS feed.

February 02, 2004

XOM XML Object Model

Quicklink: XOM is an open source (LGPL), tree-based API for processing XML with Java that strives for correctness and simplicity.

January 30, 2004

Message Passing