Now blogging at diego's weblog. See you over there!

java for wireless

Finally a standard (more or less) for cellphones:

Sun Microsystems released its first-ever guidelines for the use of Java in cell phones, an effort to shape up the chaotic way in which the programming language has been developed thus far for application in the world of wireless.
Truly, looking at Java devkits for cellphones is not a good experience; each maker has its own kit, and sometimes they have different kits for different phones. Hopefully this new standard will pull them all together, at least on the basics.

Categories: technology
Posted by diego on January 31, 2003 at 3:28 PM

weblogs, development, and feedback

News.com has an interesting article on how weblogs help developers create better products.

Categories: technology
Posted by diego on January 31, 2003 at 3:25 PM

want security? use a different product

[via Karlin]: Sneaky Toolbar Hijacks Browsers. That's trustworthy computing for you. Instead of having to worry about getting anti-spyware tools, and wondering when the next of these things is going to strike, I would recommend a simpler solution: use Mozilla. It rocks.

Categories: technology
Posted by diego on January 30, 2003 at 8:06 PM

more on the power of the mind thingy

Lance commented to my previous entry on PEAR. He said:

[...] I'd like to know if The Sceptic (I forget the correct name of the magazine devoted to debunking the paranormal) ever looked at this. They are a fairly respected bunch (well, by other skeptics ;-) ), whose number included Isaac Asimov.
I'm not aware of The Skeptic assessing these claims. But there are several things that make me doubt that this is a massive gag of some sort. First, PEAR is a group that has been based at Princeton for almost 30 years now. I'd like to think that after such a long time Princeton would have taken measures to kick them out if they had been engaging in some massive lie. Second, they have never sought publicity. Fakers love publicity (remember cold fusion at the end of the 80's?). Third, and more important, not only anyone can go to their lab and request a demonstration (true, if the apparattus is rigged, that wouldn't prove much) but also they have many publications, not in Tabloids, but for example in the Proceedings of the IEEE. Now, I agree that this doesn't prove anything. But it certainly makes it harder to maintain a lie if it existed.

The problem in part in accepting PEAR's findings is that we have for decades relegated "paranormal" phenomena to the level of science fiction at best and tabloid-garbage at worst. About 200 years ago this was not the case, great scientists and philosophers were interested in weird, unprovable stuff as much as they were interested in more 'concrete' things (as much as, say, a differential equation is 'concrete'). In fact, Newton is a good example.

PEAR has made experiments that sound even more ridiculous than the ones I described in my previous entry. For example, they have made hundreds of experiments of ... err ... "mind travel"... were a person is asked to describe or draw the place where another person is. In many cases subjects described with detail places they had never been to. I can see you rolling your eyes... well, I find it hard to believe too.

Now, since we are on X-Files and Twilight Zone mode, here's another Princeton project that is truly strange: The Global Consciousness Project. This project grew out of the PEAR research (see the About section in their website, regarding Random Event Generators, or REGs). This project has "nodes" deployed all over the globe measuring "global-consciousness effects". I don't want to continue giving cursory descriptions, the website has good info on what they do.

In particular, note this article they wrote regarding the September 11 attacks. It's very strange.

Obviously, nobody in their right mind would accept these things at face value. But I think it's fairly common for people to have experienced strange things that can't really be explained by science as we know it today. At a minimum, these studies might take us to a level of understanding that we don't have today.

The fact that we can't say that this is absolutely positively impossible within what we know tells us (IMO at least) that there is too much yet that we don't know about the mind, and reality itself. A sort of proof by the negative. Even what we know is confusing for our 'standard' view of reality; for example it's impossible not to feel amazed every time when reading texts or papers on quantum mechanics (or general relativity for that matter, although relativity seems to match our worldview a little better better). And we always resist to new views: I think that if a hundred years ago someone had explained Schrodinger's Cat paradox to a meeting of "learned men of the age" they would have been kicked out of the room. :-)

Anyway, as Eminem says in Lose Yourself: "Snap back to reality, Oh there goes gravity". :-)

Categories: technology
Posted by diego on January 30, 2003 at 7:00 PM

the company-employee relationship

I've been wanting to post on this for a couple of days now but my thoughts on it hadn't jelled.

I saw an entry on codeintensity pointing to another entry by Chris Winters on a a short article by Tom Yager (phew! So many links). Yager's article has to do with how a the new "workplace realities" of the day (e.g., 24/7 availability, working from home, etc) not only affect how companies view employees, but also how employees view companies (both entries referencing it contain good comments as well).

The key here is that companies usually don't take into account that employees see their increased sacrifice as something extraordinary; many take the dreary view of "if you don't like it you can always leave". Others are more subtle, giving employees bullshit performance reviews to cajole the employee into doing what they want.

At the core of all this is the apparent ignorance (widely dispersed throughout the business world) of the fact that employees are people as well. People with lives, dreams, hopes, fears. When the companies inherit their view of what an employee is from the 'Ford paradigm" of assembly-line management (ie, employees as tools) this kind of mismatches happen constantly. In these companies, the "concept" that an employee has aspirations or even (god forbid) a life outside work, is used against them in situations appropriate to management. When an employee complains, there is a problem with them, when the company is dissatisfied, the problem lies with the employee as well.

A Dilbert cartoon comes to mind, one of the colorful Sunday cartoons, entitled "Seven habits of highly defective people. One of them (under the headline 'Treat all complaints as the complainer's fault' I think) has Dilbert talking to the pointy-haired boss:

Dilbert: You don't motivate me.
Boss: Maybe you should see a therapist.

Funny, yes. But because it is true.

This world view is eroding, mainly under the push of management of technology companies, which are usually people that have built the companies themselves and so still remember how to value good work. But these mismatches still happen.

On a related note, the book Peopleware: Productive Projects and Teams, by Tom DeMarco and Timothy Lister, is a classic on this subject. If you haven't read it, go read it. If you have read it, then read it again :-)

Categories: technology
Posted by diego on January 30, 2003 at 6:25 PM

version control

Was looking at alternatives to CVS in terms of version control (not that I have anything against CVS, but I thought it would be interesting to see if anything truly new had recently come up in the area.) I kept reading good things about subversion, which looks interesting. The other product I checked out was BitKeeper, which I remembered reading a while back was now managing the Linux kernel sources. Both products are interesting in the new capabilities they offer, specially BitKeeper.

Categories: technology
Posted by diego on January 30, 2003 at 1:22 PM

HTML Parsing/View/Editing in the JDK

Anthony has posted an entry with a plea to sun requesting appropriate surpport in the JDK for HTML:

There is [...] one thing missing from the Java APIs, one thing that in my opinion is holding back Java from becoming a truly powerful client-side platform: there is no free, HTML 4.x/XHTML, CSS, JavaScript compliant web component in the Java toolkit.
[...]

So what can Sun do to remedy this situation? I suggest that Sun should either a.) license a browser component from a commercial vendor with a license that would allow them to distribute it with the Java Runtime, b.) purchase a commercial vendor which develops a pure Java web browser (IceSoft would be a prime candidate) or c.) work much closer with the Mozilla/Java developers to write a wrapper for accessing Mozilla through Java APIs.

Sun, you must do something at this point. Microsoft is looming and I am sure that more than a few projects have been written in Microsoft-friendly languages because of the lack of a browser component in the Java APIs.

Amen to that.

Categories: technology
Posted by diego on January 30, 2003 at 11:46 AM

defining 'the right to know'

The New York times has an article on how organizations make public the information regarding attacks on their networks. I guess the same could extend to 'real world' facilities. In principle, it seems that the idea of 'full disclosure' is the right one, but then if we think that crackers (let's lay off the honorable term 'hacker' for a moment, shall we?) thrive on publicity, it becomes more difficult to know if that is productive or counterproductive. What is worse? Never making public that they attacked you, thus inciting them to do it until you do make it public, or always making it public, setting off some sort of race to see who can show up next on the 'recent cracks' list? Hard to know.

And speaking of 'the right to know' in a different context: here is a Salon article on the threats posed by the Pentagon's TIA program.

Categories: technology
Posted by diego on January 30, 2003 at 11:39 AM

on speakers and speeches

An interesting Salon article that compares Bush to other 'great speakers' of the 20th century, and Bush's state of the union on Tuesday to some great speeches of the past. Along the way, he gives a few interesting tidbits of what makes a good speech.

Categories: personal
Posted by diego on January 30, 2003 at 11:34 AM

the rise of analog

News.com: Goodbye to ones and zeros.

Categories: technology
Posted by diego on January 29, 2003 at 11:57 PM

the EFF in Ireland

I had forgotten to mention this: Karlin has been putting people in touch to start a local branch of the EFF here in Ireland. Here is the pointer to join the mailing list where we are looking at how to set it up.

Categories: technology
Posted by diego on January 29, 2003 at 8:26 PM

sun fights Microsoft's appeal

From News.com:

A court order forcing Microsoft to distribute Sun Microsystems' Java software is necessary to preserve competition, Sun told a federal appeals court in a legal brief.

Categories: technology
Posted by diego on January 29, 2003 at 8:24 PM

the power of the mind

I was sending an email to a friend and suddenly (for no apparent reason) I remembered PEAR.

The first time I heard of PEAR was about four years ago when Robert Jahn came to the Watson Research Center to give a talk. At TJ Watson there is this wonderful tradition of invinting cool speakers for talks every Friday. The lab has a pretty big theater --hundreds of seats-- inside where the talks happen. They tend to invite people of some weight, and the lab being the worldwide headquarters of IBM Research they usually say yes. :) While there, for example, I saw talks by Marvin Minsky and Oliver Sacks (of 'Awakenings' fame) among others. Anyway, beside the point.

PEAR (Princeton Engineering Anomalies Research) is a research program at Princeton University that originally got started to try to debunk the idea that the mind could have effect on reality. I was told (so don't treat this as more than hearsay) that originally the program got started because Jack Northrop (founder of Northrop Aircraft and the original designer of the "flying wing" aircraft that eventually became the B-2 Spirit strategic bomber) went to Jahn with the concern that, if so-called "paranormal" activities really did exist it would mean that a pilot, under the incredible stress of air combat, could affect a $35 million machine and maybe even bring it down, depending on this mood. Northrop gave Jahn a grant and Jahn created a research group that set out to prove otherwise.

Problem is, they didn't.

Their basic mechanism to test the hypothesis that mind-control of reality was possible was a random number generator. The mechanism was basically composed of a black-box that used the quantum properties of matter to create a random stream of bits. Later they expanded to other random-phenomena based on physical devices which made the results even more visible.

The experiment was essentially like this: take a device that, according to the laws of physics, creates a normal distribution of resulting values. Then sit a person next to it and tell that person to think that the result will not adjust to a normal distribution, that is, for example, tell the person to think that the random stream of bits coming out of the device will return more ones than zeros. If the mind is modifying the process in any way, then the deviation from the norm in the values received should be provable by simple statistics.

And guess what. The numbers turned consistently in the direction desired by the person concentrating on changing the values. Yes, some people had more effect on the result than others, but the researchers performed literally thousands of experiments that proved the same thing over and over again: people were affecting the outcome of the distribution of values every time in, in ways that made it statistically impossible for it to be a coincidence.

Even more, the person didn't even have to be in the presence of the machine. This seeming influence on reality existed regardless of place or even time.

The underlying implication of all this (aside from the disturbing idea that reality is subjective in more ways than we think) is that one of the most basic truths that we accept, the principle of causality, is flawed. If the the results of a certain operation that is random (or more generally, subject to the laws of physics) can be changed regardless of the position of the viewer in the space-time continuum, then there is something deeper that we still haven't figured out about the nature of reality.

All of this should be taken with a healthy dose of skepticism, sure, but the numbers don't lie. Something is happening here. At a minimum, there is an anomaly that is not explain by the laws of physics as we know them today, or by our typical view of the world either.

Anyway, I just realized that I've babbled on this for a while. Final note: Jahn eventually wrote a book titled Margins of Reality that details some of their findings up to the early 1990's. Highly recommended.

One thing is for sure, if Microsoft knew about this, they would start to include a new warning message in all their products: "If you want this product to stop crashing, think happy thoughts." :)

Categories: technology
Posted by diego on January 29, 2003 at 6:55 PM

apple and opera

News.com reports on the growing problems between Opera's strategic directions and Apple, which has come up with a web browser of its own.

Categories: technology
Posted by diego on January 28, 2003 at 5:50 PM

so patches didn't work for them either

Regarding the new worm making the rounds on the internet, it seems that not even Microsoft had the proper patches installed and as a result their internal network went down partially. Disgraceful. This other article (mildly interesting) documents the beginnings of the effort to find who set the worm loose.

Categories: technology
Posted by diego on January 28, 2003 at 4:55 PM

in their sights

Declan McCullagh has an article in News.com where he describes a piece of little known legislation called NET:

If you've ever used a peer-to-peer network and swapped copyrighted files, chances are pretty good you're guilty of a federal felony.

Categories: technology
Posted by diego on January 27, 2003 at 11:15 PM

invalid dns queries

Dylan has commented on a Slashdot story about the amount of invalid DNS queries. Interesting, (both the article and his comments!)

Categories: technology
Posted by diego on January 27, 2003 at 9:23 PM

more on swing v SWT

Chris Adams posted a comment to my previous entry that pointed to a comparison between Swing and SWT. He said (reproduced in full):

For the sake of argument, I'm willing to accept the assertion that Swing has improved significantly, but I wonder why there don't seem to be any Java applications which use a Java GUI toolkit which don't feel slow. Rendering is noticeably slower, control interaction is perceptibly slower, and even simple text entry can seem slow.

I've been interested in Spaces because I think the field is overdue for some innovation but each time I try it, I give up because its GUI is unusably slow. Fair enough, Spaces is still in beta but . . . every Java app I have used exhibits this to one degree or another. Very simple apps and ones where the developer has spend a great deal of time tuning the display code are usable but they're never snappy, even by OS X standards.

(Based on experiences using a the 1.4 OS X JVM on an 800Mhz iMac, or Sun's latest for W2k on a 1.2Ghz Athlon and 1.8Ghz P4, all with a boatload of memory and decent video cards)

The one exception to this is the native code: Apple's Cocoa-Java bridge is indistinguishable from native code except that small Java apps take slightly longer to load than small native apps (the difference is in the noise with larger apps). Having come from a server-side Java background, Cocoa-Java was the first thing that made me consider Java applications plausible for GUI applications, with the major caveat about portability (fortunately, portable logic + platform-specific GUI isn't a major loss and you do end up with an app which truly indistinguishable from a native program, unlike Swing's emulation).

The point of this rant is simply that I think the article demonstrates the sort of tunnel-vision which has held Java back. Sure, Swing may be faster than it's ever been but it's nowhere near native speed - forget SWT, Swing needs to be compared to native widgets using more realistic tests. The 10,000 row table is too artificial - most people work with hundreds of records, not thousands, and most programmers working with large datasets have learned to do paging so they only process data which is actually visible. I'd be more interested in real-world things like menu responsiveness, window resizing or scrolling speed in a paged list-box / table implementation - areas where a few extra milliseconds can give your application a lasting reputation for sluggishness.

My server-side work & experience with Cocoa-Java makes me want to defend Java but I simply cannot when it comes to anything GUI-related. Java's going to keep its second-class reputation until it's indistinguishable from native code and the widgets behave like native widgets in every aspect. I'm worried that Sun's developers are reacting defensively to SWT and losing sight of the real goal. With .Net around, I don't think they want to keep a system which requires a good deal of developer time to reach the "slow but usable" stage.

I can't really agree with Chris with the assertion that Java is not at the level of native application. Certainly this comes from my own experience. I run spaces every day on a P3-800 (IBM Thinkpad T21) with 384 MB of RAM under WinXP Professional. For me the performance of spaces is as good as any other native application, and its L&F is almost the same. It's as simple as this: if this wasn't the case, I simply couldn't use the app. And I certainly wouldn't have released it.

That said, I think that the main point here is that there is a certain disparity on speed. Obviously Chris says it's slow because he can see it. And I have had/heard of several reports of the JVM silently crashing when certain hardware (driver-level I mean) speed optimizations are activated in the graphics subsystem of a machine (all of these on Windows).

What I think is happening here is that the speed improvements that Java exhibits on some machines (take, for example, its performance on my system, undistinguishable from native apps) are heavily dependent on Java2D optimizations (and ties to underlying hardware optimizations) that were added in recent JDKs. So if those hardware optimizations are not present on the system, or they are less marked, then Java/Swing performs poorly.

So IMO the main thing that is missing is not more focus on speed, but rather focus on uniform support within platforms (particularly Windows) of the improvements that make Java work properly in some systems.

This is, truly, a big difference that still exists between Java and native apps (again, particularly on Windows): lack of uniform user experience. And I don't mean just in terms of performance, I mean also in terms of installation, conflicts that appear when using different JVMs, and so on. I think that when this problem is solved in its entirety we'll get to the stage that Chris is looking for.

Categories: technology
Posted by diego on January 27, 2003 at 4:54 PM

plan b is back (again)

It's been almost two months since I posted the last episode of Plan B. The last few days I've been thinking more frequently that I should go back and finish it. So there we go.

Categories: technology
Posted by diego on January 27, 2003 at 4:27 PM

Swing and SWT: a comparison

This entry by a Sun engineer is pretty good at comparing Swing and SWT, the pros and cons of each, and in particular in debunking the myths around Swing. Good reading.

Categories: technology
Posted by diego on January 27, 2003 at 8:47 AM

and speaking of network theory

A lot of network theroy deals with network effects. This excellent article on the Guardian online talks about them in the context of the VHS v. Betamax argument.

Categories: technology
Posted by diego on January 26, 2003 at 6:53 PM

network theory

The New York times had an article yesterday on Network Theory. The latest fad to grip the world of science (similar to, say, Chaos theory in the mid-80s). As I have been doing some network theory research as part of my PhD, I know that it's more than just a fad. But the hype is simply disgusting. It banalizes the topic, pretends it's a solution to all problems, and people that are not involved in it end up getting completely the wrong idea. I just wish we could get over this human trait of pretending that we have found the final answer to whatever. There are no final answers, there is no destination.

There is only the journey.

Categories: technology
Posted by diego on January 26, 2003 at 4:47 PM

no hiding place

The Economist has an online survey of our "internet society". Not surprisingly, one of the main topics is privacy. Anyway, a good read.

Later: another article in the same survey tries to imagine the life of a person in 2033. Interesting as well.

Categories: technology
Posted by diego on January 26, 2003 at 3:08 PM

mcfrankenstein

So, it seems the judge threw out the case in which a man was suing McDonald's for making him fat. Reasonable? Partially. The judge also left an open door giving a possible strategy that might work. Ridiculous. Not that McDonald's is a nice corporation or anything, but a lawsuit like that seems crazy, but it's certainly part of the US trend of lawsuits of personal injury. I've always found it weird and contradictory that in a country that prides itself on individuality and self-reliance some people can get away with spending so much time and energy trying to blame others for problems that in many cases they themselves caused. These people say: if it's good, I did it. If it's bad, someone else must have! And lawyers are happy to oblige since they make tons of money...

Categories: personal
Posted by diego on January 26, 2003 at 12:15 PM

a comment on spaces

epesh has tried out spaces 1.8 and he likes it. He says: "[...] a really neat Evolution/Outlook replacement in Java." Thanks!

Categories: technology
Posted by diego on January 26, 2003 at 1:54 AM

the creeping worm

I wonder if this new worm is the reason why my server was out yesterday morning. It sounds plausible. A whole section of my ISP seemed to be down. Zero reachability. Dave has a bunch of links/reports on it. It seemed to hit everyone pretty hard. And guess what: it exploits a bug in SQL Server. 'Trustworthy computing' indeed (Charles has a funny entry on the topic). The one thing we can trust is that they'll keep finding these kinds of holes in the millions of lines of code that Microsoft has piled up in the last couple of years. I remember Bill Joy in a speech at JavaOne 99 saying that he believed that it was impossible to truly debug the 35,000,000 lines of code in what is now Windows XP. He was right, as usual. The next version of XP will include the SQL Server engine in the flle system, We should get ready for more of this I suppose.

Later: an Associated Press story on the worm, published in the New York Times.

Categories: technology
Posted by diego on January 26, 2003 at 1:41 AM

if the technology is bad, just change its name

Apparently Microsoft has changed the name of its "Palladium" technology (of which I previously wrote some stuff here, back at the end of July) into the "next-generation secure computing base". Sheesh. Generic and non-descriptive enough so that people don't feel threatened. Is it just me, or is Microsoft relying more and more in marketing messages, instead of actually trying to at least copy other successful products? Sell a brand, rather than something of value...

Categories: technology
Posted by diego on January 25, 2003 at 4:24 PM

bush and reagan

An interesting analysis from the New York Times comparing George W. Bush and Ronald Reagan.

Categories: personal
Posted by diego on January 25, 2003 at 3:15 PM

back online

My server had an outage today for at least 5 hours. It just came back. I have absolutely no idea of what went wrong; I am assuming something at the ISP level (internal gateway, switch, whatever) since the machine appears to be intact and it continued running statistics, etc, through the outage. Hopefully I'll get some answers from the support people and we'll be able to figure out what happened.

At times all of this infrastructure seems amazingly fragile (specially when you don't have an IT department with mirrored servers to back you up) :-)

Categories: technology
Posted by diego on January 25, 2003 at 2:01 PM

spaces alpha 1.8 released

So, spaces 1.8 is finally out!

Originally this version was going to be 1.7.1, since it was supposed only to fix some issues rather than add new features, but in the end there were too many improvements to leave it at just 1.7.1.

The people on the dev mailing list have been incredibly helpful, reproting problems and making suggestions, both immediately necessary or longer-term. Many thanks!

Now for alpha 2 (the last alpha before the first beta close to the end of february) there will be a couple of surprises, which should take spaces close to a first "feature complete" release...

Categories: technology
Posted by diego on January 24, 2003 at 6:02 PM

man v computer

For some reason this keeps fascinating people: Kasparov will play with Deep Junior (link from Wired news). Personally, I've never been impressed with these "human-machine" matches. Chess is simply a game of branching. Creativity in chess only counts if you can't calculate moves far ahead enough. Even if the computer doesn't win now, it is (quite literally) a mathematical certainty that it will beat every human player in the next few years. So what's the interest?

Now, if a computer could defeat a Go master, that would be interesting... Go is similar to Chess in that you need good "branching" skills, but the game at the beginning is completely unstructured, and very structured at the end--totally the opposite of chess. Additionally, while the number of possible moves in Chess is 2^64 and the number of possible games is 10^450, the number of possible "moves" (between quotes since Go doesn't really have "moves" per se) in Go is more than 2-to-the-260 and the number of possible games more than 10^750 (here is an article from the SPEC benchmark group that discusses these numbers and has more information). We'll probably get to the point where, like in Chess, machines will invariably win, but with Go humans are for the moment the indisputed masters. Good for us! Computers one, Primates one.

Categories: technology
Posted by diego on January 23, 2003 at 10:32 PM

microsoft and linux

Article:

When Linux first appeared on Microsoft's radar a few years ago, senior company executives regularly disparaged the upstart operating system as everything from being a "cancer" to "Pac-Man-like."

And that was when they were in a kind mood.

But Microsoft's rhetorical offensive boomeranged, drawing even more attention to the open-source movement--exemplified by the Linux operating system and the General Public License (GPL) that governs it.

Categories: technology
Posted by diego on January 22, 2003 at 7:54 PM

X11 on OS X

Sounds like a riddle doesn't it?

News.com covers the recent beta of X11 for Mac OS X, which would clearly make UNIX/X11 apps easier to port. Interesting.

Categories: technology
Posted by diego on January 22, 2003 at 5:13 PM

norman mailer

A NY times interview with Norman Mailer. Executioner's song is rising on my "to read" pile... hopefully I'll get to it soon. :)

Categories: personal
Posted by diego on January 22, 2003 at 5:05 PM

Salon gets pessimistic (or realistic?)

A series of articles of Worst case scenarios:

The economy is crumbling, the planet is heating up, war with Iraq looms. What if something REALLY goes wrong? Six nightmares for George Bush -- and everyone else.
Good (if a bit depressing) reading.

Categories: personal
Posted by diego on January 22, 2003 at 1:14 PM

on using each input method properly

This is a tidbit from one of the spaces mailing lists that I thought was interesting. James has started a conversation thread in the spaces-dev mailing list regarding proper support of keyboard navigation in spaces. His suggestions were excellent. When I said so, he said:

Yay! The last time I asked someone they said, more or less, 'Why?'

My reply was:
I'm not surprised. I think that kind of response is based on the idea that whatever "new" user interface exists is best. Look at the pattern: when Voice recognition became relatively usable, *everyone* wanted to build a voice-only UI, (dreams of Star Trek...), which is ludicrous since machine don't have enough context to make that usable (maybe in a few years...). It was actually Steve Jobs (visionary as usual) that started this trend when, as the Macintosh was being designed, he pushed for a keyboard *without cursor keys* (Why would you need the cursor keys anyway? You have a MOUSE!). Luckily cooler heads prevailed and the cursor keys were later added to the final design. :))

To me this approach of "one interface fits all" is wrong (to put it mildly). The key IMO is to build good *mixed-mode* interfaces, optimizing tasks for each input method. Additionally, each input method should be optimized as much as possible, as long as it doesn't interfere with the basic program design. For example, when I write documents, I barely touch the mouse. I am *typing*. I don't want to move my hand away from the keyboard every other second. Pressing Ctrl-Shift-Whatever is just fine, thank you. Of course, other people do prefer using the mouse, that's fine too. But one thing should not preclude the other.

Which pretty much sums up how I feel about pretending to obliterate one input method, or user interface, with another that is supposedly "better"...

Categories: technology
Posted by diego on January 22, 2003 at 12:09 AM

improving Java apps on MacOS X

A cool article on the JDC (first of a series): Bringing your Java Application to Mac OS X. Cool suggestions, mostly handled through properties, which means that portability is not broken (since the properties are ignored in other platforms) -- and no need to work with any MRJ-specific classes.

Categories: technology
Posted by diego on January 21, 2003 at 7:51 PM

dilbert does XP

For the record, I've used eXtreme Programming, and it works. It's not for everyone, no. And for when it doesn't work, there's Dilbert to show us what happens.

Categories: technology
Posted by diego on January 21, 2003 at 5:25 PM

on the sun/ms trial

Salon has an article today on the Sun/Microsoft Trial (and the recent decision by the judge that Microsoft will have to ship the JVM in every copy of Windows within 120 days): Is there Hope for Java?. As usual the title has little to do with the contents of the article (though Salon is usually more restrained in this sense than most). Choice quote:

[...] Java has made gains in non-Windows environments. The language is, according to some, the most widely used language for network servers and mobile devices. Sun estimates there are about 3 million Java developers, and Java has become a primary language taught in college computer science courses. There are no firm numbers, but Java could be the most popular programming language in the world. In other words, if Java -- a new, improved, fast version of Java -- finds itself on every copy of Windows, there won't be a shortage of developers to build Java-based Windows programs.

Categories: technology
Posted by diego on January 21, 2003 at 11:25 AM

a spam archive

News.com's coverage of last week's spam conference. The most important part (for me):

Last November, CipherTrust set up the SpamArchive, a public database of junk e-mail that developers can use to study and test solutions on.

Categories: technology
Posted by diego on January 20, 2003 at 10:45 PM

the tech stupidity of some TV writers

Basically about the only thing I watch on TV are series, namely, The West Wing, The Sopranos, The Shield, and 24, or a miniseries like Taken. It's a relatively short break in my otherwise ludicruous nightly schedules, and they are all good stories, with good acting, and good direction. Since currently only The West Wing and Taken are on TV here in Ireland, today I decided to check out CSI: Crime Scene Investigation.

Big mistake.

What a crappy show. The over-acting made me bleed through my eyes. The fashionable wardrobe of investigators was ridiculous (picture a woman walking around a crime scene in the middle of a forest, looking at the wound on a dead body, with an attire you could only see at a a fashion show). The over-explanation of every stupid little detail and the supposedly super-experienced forensic investigators walking each other through an idiotic 'mystery' as if it was a children's book was sickening. But what really nailed its Idiotic Show of the Year award (for me at least) was a tiny reference to email.

These two "investigators" are looking at emails on a "victim's" computer (the real victim here is the viewer). The dialogue goes something like this (You'll probably need only one brain cell to read this, so you can send the others to rest):

-Oh, Look at this
-What?
-You know all those weird numbers that you get at the bottom of every email?
-Yeah
-They are actually addresses of the computers that transmitted it and of the original computer that sent it... but this is strange. This email has seven originating computer addresses. Probably a computer network...


Then some kind of window magically pops up in the middle of what's arguably America Online, running on a PowerMac, with a Windows Interface (!). A bazillion numbers flash on the window, apparently IP addresses. Finally, the answer pops up. They have found the address! The number?

Something like this: 417.274.129.365

They press a single key, and from the IP number they get the exact address of the computer/network/whatever.

Sheesh. Numbers at the bottom of every email? (they must have meant the email headers, but I suppose that they thought, oh, header, footer, whatever). An email originating from seven IPs? Oh, "a computer network", that's right. Some kind of Connection Machine I suppose? Or maybe in this show's la-la-land many computers can actually send a single email. And then the program's UI, the ludicrous IP address... was it so hard to get someone that knew what the hell they were talking about to write this?

Anyway, if you are ever tempted of watching CSI, you've been warned! :-)

Categories: technology
Posted by diego on January 20, 2003 at 10:37 PM

world-changing tech

The MIT Review lists 10 Technologies that will change the world. Hm. I'm always skeptical of far-reaching predictions like these. I keep thinking back to really simple things, like email, which were never considered "revolutionary" (and even now it's not given it's proper due)... they just happened. Things like email changed the world, and no one noticed, but suddenly you can't go back to the way it was before. Some of the technologies listed in the article might reach that status, but some will simply sound cool and remain achievements available only for the few rich. IMO, a technology changes the world when it's accessible to everyone.

Categories: technology
Posted by diego on January 20, 2003 at 6:09 PM

no to war!

Salon covers the marches in Washington and San Francisco against war with Iraq.

I have this strong feeling of deja-vu...

Categories: personal
Posted by diego on January 20, 2003 at 2:09 PM

manywhere moblogger

Russ has been hinting he had something cool up his sleeve... Indeed! Early today (and on his birthday!) he announced Manywhere Moblogger. Go check it out! Congrats Russ, and happy birthday! :)

Categories: technology
Posted by diego on January 20, 2003 at 12:53 PM

games as weapons

News.com has an article on the risk created by massively multiplayer games on the internet, in terms of their potential to be used for denial-of-service attacks. This will surely begin to happen more and more often: the internet is opening up to dozens (if not hundreds) of new platforms: phones, game consoles, video-recording devices (like the TiVO) and other appliances. Many of these platforms are brand-new in terms of their infrastructure. The built-in security will consequently be pretty bad. Add that to the fact that some of these platforms will see hundreds of millions of deployments within a couple of years (e.g., internet-enabled cellphones) and the security risk becomes pretty big. Specially since even Microsoft has shown that they haven't yet learned their lesson. Until new "autonomic" defenses are in place, with systems protecting themselves from attack without human intervention (a sort of immune system for the internet) the whole infrastructure will be at great risk. It will surely be interesting anyway.

Categories: technology
Posted by diego on January 19, 2003 at 7:05 PM

of hype and new features

Dylan wrote a cool entry about an article by Joel Spolsky entitled Mouth Wide Shut, about the problems and advantages of publicly talking about features and new products way before they are released. The article is pretty good, but he fails to mention one of the main reasons behind announcements like this: FUD.

The spreading of Fear, Uncertainty and Doubt is something that Microsoft has become quite adept at, and that all big companies tend to use at times. When IBM was at the top of their game (between the mid-60s and the late 70s) they were the masters of FUD. Entire organizations would wait for their new product and smaller companies, with already-shipping products wouldn't be able to sell them, which suited IBM just fine, thank you very much. A very similar situation exists with Microsoft today. .Net is the extreme example: a technology-strategy-framework (or whatever the hell it is) that promises so much that even Microsoft itself can't define it. But if you promise something that then you don't deliver (and this is one of the points that Joel makes in his article) logic dictates is that your customers would be disappointed and potentially leave for greener pastures, right?

Right. Unless....

Unless you have a monopoly. Then your customers (by definition) can't leave. At least not as easily as they'd like.

Anyway, I personally agree with Joel on this: I think that one should talk mostly about what's been done, and a little about what you're planning to do, the latter in particular for things that a) are central to what you're doing, and therefore will be done no matter what and b) might not be central to the product but are expected of it (Example: Undo is rarely central to functionality, but always expected). This should be done not only to avoid disenchanted users when they don't get what they thought they would, but also because in software (more than in other fields) things change too fast. The cool feature of today is the dud of tomorrow. It's better to keep your options open.

Categories: technology
Posted by diego on January 19, 2003 at 1:33 AM

the recovery of silicon valley

News.com has an interesting article (from yesterday I think), Will Silicon Valley get its mojo back?, that is interesting. Having been a valley resident myself, I think that the Bay Area has everything it needs to "get its mojo back". It should only let go of a few things. First and foremost is the expectation of money. Sillicon Valley worked well for so long because people believed in what they were doing, not because they wanted to get rich (although that was a nice side effect :-)). Now it's all about who has the bigger house and the best car. Sort of sickening at times. So, IMO, when that phase of the "hangover" from the bubble passes, the Valley should be well on its way to spawning The Next Big Thing.

Categories: technology
Posted by diego on January 18, 2003 at 6:14 PM

... and so it begins

from the not-really-a-surprise dept: Microsoft due to release security fix for Phone OS. One would think that after screwing up so badly in security for desktop OSes Microsoft would have learned its lesson right? I guess that this proves that the flaw is inherent in the architecture imposed by Win32/COM and now .Net. Good thing most new phones run Symbian.

Categories: technology
Posted by diego on January 18, 2003 at 1:16 PM

news.com's RSS feeds

[via Dave]: News.com has a new page with pointers to their RSS feeds, and other useful related links.

Categories: technology
Posted by diego on January 18, 2003 at 10:42 AM

and speaking of gibson...

The New York Times reviews Gibson's new book Pattern Recognition, which comes out this february.

Categories: technology
Posted by diego on January 18, 2003 at 10:30 AM

bladerunner and neuromancer

William Gibson writes about some of his thoughts on Bladerunner and its relationship to Neuromancer. He writes:

BLADERUNNER came out while I was still writing Neuromancer. I was about a third of the way into the manuscript. When I saw (the first twenty minutes of) BLADERUNNER, I figured my unfinished first novel was sunk, done for. Everyone would assume Iíd copped my visual texture from this astonishingly fine-looking film. But that didnít happen. Mainly I think because BLADERUNNER seriously bombed in theatrical release, and films didnít pop right back out on DVD in those days. The general audience didnít seem to get it, relatively few people saw it, and it simply vanished, leaving nary a ripple. Where it went, though, was straight through the collective membrane to Memetown, where it silently went nova, irradiating everything from clothing-design to serious architecture.
The paralels in the vision of Bladerunner and Neuromancer are quite striking. What's interesting is that 'Do Androids Dream of Electric Sheep?', the Philip K. Dick book on which Bladerunner was based, doesn't really create the ambience that Neuromancer achieves so perfectly. Bladerunner's visuals (in large part the work of visual futurist Syd Mead, enhanced by Ridley Scott's direction) are, then, more than anything, a product of their age, of the ability to tap into the subconscious of imagined futures where Gibson's works live comfortably...

Categories: technology
Posted by diego on January 17, 2003 at 11:18 PM

dublin != digital

A couple of times I've written about the sorry state of broadband service (and dial-up for that matter) here in Dublin (the most recent entry is here). Karlin today has an entry with link to an Irish Times article she wrote that references the 'e-cities report' which places Dublin second-to-last. I'm not surprised. I surmise few others would be, either. Hopefully things will start to change soon. I think that wireless access, by being relatively ignored by the monopolies, might have enough time to grow under the radar and so start providing an alternative. The geography of the city works in favor of this (not many tall buildings, with low hills in it and higher around it), so that relatively few transmitters would have line-of-sight to most areas.

Now, wireless infrastructure is more flexible than wired for many reasons, starting with the fact that it doesn't entail a natural monopoly (the "last mile" of the telecoms). This can be seen in action in the greater innovation and competition that happens in the cellular telephony space.

What is paradoxical is that Dublin, by having missed the high-speed "wired" boom (DSL is too expensive ot not available, cable access doesn't exist in most areas, no flat phone charges, etc), it might be unwittingly setting itself up to simply skip it and go to wireless directly. Imagine, a bunch of upstart companies fighting over the space on service and prices. With PDAs using the appropriate network hardware people could even bypass the cellular companies (whose prices for everything are more expensive here than in most other countries/cities I've lived in) and place calls at much lower prices from them. These wireless service companies could eventually start to take control of phone services in the home through their wireless connections, much in the way some cable companies are doing in the US. Eircom and the other idiotic monopolies would, simply, be turned irrelevant. By the time they realize this and get their act together, it will be too late.

Utopia? Yeah, maybe. But here's hoping.

Categories: technology
Posted by diego on January 17, 2003 at 10:35 PM

on security

An article by Sun's Chief Security Officer and the co-inventor of public-key cryptography.

Categories: technology
Posted by diego on January 17, 2003 at 4:13 PM

a george orwell essay

[via Scott]: Politics and the Enligh Language. A must read.

Categories: personal
Posted by diego on January 17, 2003 at 4:07 PM

if microsoft had been in charge of the Apollo Program

After writing my previous entry on how Microsoft keeps comparing itself to the Apollo Program, I thought I'd write one of those extrapolations of "What if ...". So here goes:


  • At random intervals you get messages that say "Fuel is low. (Eject) (No) (Cancel)". You always press Cancel, and nothing seems to happen.
  • While typing in commands to run a check on the life support systems, a voice would suddenly interrupt you, saying: "It seems you want to write a letter to a man named O2. Would you like help? (Yes) (No) (Cancel)". Angry, you select Cancel. This cancels the offers but also shuts down one of the engines, which will never start again.
  • Nearing the completion of the first part of the trip, you get a message that says "A new flight plan is available for download, with many fixes. Would you like to install the new flight plan? (Yes) (No) (Cancel)" You select Yes. All systems on the spaceship shut down. You are cold and miserable for six hours. Finally, when they do start again, there's a new message that says "To use this flight plan the trip has to be restarted. Press Ok to return to earth (Ok)."
  • After restarting the trip and nine days of randomly roaming through space, movement stops. There is an announcement: "Destination Achieved: The Moon". You look out the window, and you see that you're stranded on a random asteroid.

  • On the asteroid, repairs are performed by a swarm of Microsoft lawyers, which are carried on the outside of the ship (hanging from leather-alloy briefcases) and can operate unprotected in the freezing vacuum of space, only requiring as sustenance large amounts of cash, preferably US Dollars, although they can also survive on Euro and Yen.

  • The journey wouldn't end with a landing. It would end with a crash.

Derivative? Certainly. Well, at least I vented a bit. Writing is good release, even if it's bad writing. :-)

Categories: technology
Posted by diego on January 17, 2003 at 1:43 PM

a year of 'trustworthy computing'

A News.com article that tries to take stock on where Microsoft's 'Trustworthy Computing' initiative actually is. Choice quote from the article:

"We said that Trustworthy Computing is a 10-year project, sort of like (President) Kennedy sending people to the moon," said Scott Charney, chief security strategist for Microsoft. "We're (only) a year into it. We want to get to a point where the end user says, I trust this technology, my privacy is protected, and it is reliable."
Sending people to the moon? Please. Do they really believe that plugging the leaks in Windows that allow buffer overflows and rogue code to take over machines can be compared to anything other than, say, fixing the wheel of the cart used to bring food to the astronauts?

Later: I remembered that back in August Gates had made a similar assertion about how building .Net was "more difficult than getting to the moon.", and here is my entry commenting on that. Sounds kind of like this one doesn't it? :-)

So now Microsoft (according to them at least) is handling not one but two projects that are as difficult as "going to the moon."

Wow.

With any luck, they will go past the moon and get lost in outer space.

Categories: technology
Posted by diego on January 17, 2003 at 12:29 AM

looking for weapons

So, it seems that the UN inspectors in Iraq have found something relatively incriminating. I was thinking, what a thankless job that must be. Can you imagine? You find something, it's evidence that there will be a massive war. In the normal case you find nothing and you avert a war, but in this case you find nothing, and the US also takes it as evidence.. that you haven't found what they expected and that is there anyway. Whatever you do, there is little that can change. Awful...

Categories: personal
Posted by diego on January 16, 2003 at 8:11 PM

a simple performance test of java generics

Now that Generics are coming to the Java Platform (in the next JDK), I was curious as to how they would perform, since everything depends in how efficiently they are managing the type management internally (yes, in theory there shouldn't be much difference, but you never know). So I downloaded the Early Access prototype to add generics to JDK 1.4.x, and did a couple of simple tests, with the idea of finding out two things: 1) whether there would be a noticeable performance hit and 2) whether it was necessary to modify JDK 1.4 to run generics-enabled classes.

So, I created two simple classes: TestGenerics.java and TestNoGenerics.java (Here is a ZIP file with both Java sources and the compiled classes).

Basically the classes do the same thing: they create first a LinkedList and add one million Integer objects to it, and then iterate through each, and then create a Vector and do basically the same. The program measures the time in milliseconds it takes to go from one step to the next, and prints it out. The only difference between the classes is that one uses generics (so that you avoid having to cast the object to an Integer when obtaining it) and the other uses standard Java.

First, using generics was as easy as switching javac to the shell file they provide in the kit (with a couple of modifications), and then compiling (there is also a way of using generics by simply using the standard javac with an additional JAR provided in the kit). What's really cool is that once the classes are compiled, it isn't necessary to have the new JAR in the classpath, classes that use generics compile to standard bytecode that can run under JDK 1.4 with no modifications.

Regarding the performance, these are the results:

Without Generics:

Linked List:


Time to add=4747 (msec)
Time to iterate=290 (msec)
Vector:
Time to add=5068 (msec)
Time to iterate=190 (msec)
With Generics:

Linked List:

Time to add=4787 (msec)
Time to iterate=301 (msec)
Vector:
Time to add=5067 (msec)
Time to iterate=180 (msec)
(These were run under the same machine load, on a P3-800 with 384 MB or RAM, with JDK 1.4.1_01 -- The Vector tests are slower because the methods in Vector are synchronized).

So there is basically no performance hit! This is excellent, specially considering this is an early access release. We get the advantages of static typing on data structures with no performance disadvantages, at least for these simple tests. I am tempted to begin using it right now for spaces... as Homer would say "mmmm.... generics..." :-)

Later: the file sizes of the two classes are different, but there's a surprise in store: the class that uses generics is smaller. TestGenerics.class is 1,403 bytes, and TestNoGenerics.class is 1500 bytes. Cool!

Categories: technology
Posted by diego on January 16, 2003 at 7:58 PM

syncing java to mobile phones

Related to my previous entry on a PIM for mobiles, Russ posted two comments packed with info that I reproduce here in full:

Don't worry about Java on the phones at all (j2me is low-powered and limited), just about SyncML and maybe Bluetooth. Check out this Sync4J homepage: http://sync4j.sourceforge.net/web/theproject.html could you incorporate something like that into your app?

If I understand the tech correctly, when you get Bluetooth installed, it just listens on a com port just like any other serial port connection. There's a Java API for Bluetooth already. Then your phone and your app talk via SyncML - just like the iApps do on the Mac.

The J2ME stuff is just for small Over The Air apps and aren't for daily app use (IMHO). The Symbian phones already have basic Email, To Do, Calendaring and Contacts as well as little extras like notes, photos and sound recordings. What I'm envisioning is that your app synch with these built-in features using the built-in SyncML support (which includes iCal and vCard among other specs).

OOh... You could have multiple devices, and each device could be contained in it's own Space. ooooh.

To this I say: Oh, yes. :-)

Then Russ added:

A little searching and I came up with this company who's doing something similar. They've even got a Java PIM client available via Web Start that syncs with their servers.

http://www.calmeno.de/html/demos.html

I signed up for the demo and synced with the servers via my phone and it worked perfectly. (And after I realized I had just given some random company all my personal contact info... doh!)

Anyways, they want a centralized model, but I was thinking of a localized one like the Palm Desktop. Heard of the "Missing Manuals" series of books? Spaces could be the "Missing PIM" for intelliphones. ;-)

I haven't heard of the Missing Manuals series, but Missing PIM sounds cool :-)). I did try out this Calmeno product... I have to say that I wasn't impressed. It took forever to load and to switch views. The interface is not nice at all, it looks as if it was written with AWT or with stone-age swing, and the Java-PIM functionality seems quite limited. The rest of the functionality is interesting, although with spaces you don't need their webaccess since you can run it yourself in your machine.

Thanks, Russ, for the information! All of this will be really useful. I'm planning to add sync support to spaces Real Soon Now.

Categories: technology
Posted by diego on January 16, 2003 at 2:03 PM

geographical URL mapping part 3

Rogers has a short entry on how to set up your site for GeoURL.

Categories: technology
Posted by diego on January 16, 2003 at 8:20 AM

more on the cringely-wireless discussion

Russ commented:

Isn't that around the time his child died from SIDS? It might explain his absense. He had an article about in April. Insanely tragic.
This is quite possible, and what happened with his child was horrible indeed. Whether this was the reason or not, Cringely clearly knows what he's talking about and his other comments on tech are usually on the mark, so I am more skeptical of the skepticism than anything else. Also, what he did has been replicated in other places, the first guy that did it in Egypt did it way earlier than him. Also my friend Chris said this in an email (btw, Chris, when are you getting a weblog? :-)):
Technically it is totally feasible. Actually we have set up a 2+km wireless link between two distant buildings belonging to the University. By using the appropriate high-gain directional antennas (say a 17dBi parabolic antenna) you can support links up to 3-5 km long. A University in Spain has set up a link which is even longer (something like 12km).

The only problem is that should a bird fly through the beam, it would probably drop dead! The radiation levels are way beyond those approved by FCC and the European regulatory authorities. Well, you might actually use it in a smaller scale to cook pop-corn (lying in a pan in your neighbors kitchen!)

Heh, I like the idea of using it to cook food. A sort of microwave oven for the masses!

Seriously, though, at Trinity, we've been setting up an experimental ad hoc network called DAWN throughout the campus, using basically the same technology but using less power (and so less range). Now that I think about it, there is also a broadband wireless service here in Ireland with a 2Km range. So I'm wondering if the people that objected to it were objecting to something specific about the technology, like using a certain type of transmitter... in any case the result is certainly feasible. So even if the specific technology might have seemed strange, the result is not.

Categories: technology
Posted by diego on January 16, 2003 at 7:46 AM

a pim for mobiles

With mobile phones becoming more feature-rich (for the first time really beginning to hold their own against PDAs), Russ suggested that spaces (for example) could find a good niche as the "palm desktop for phones." It's a cool idea. I've been looking at the Symbian developer/SDKs website again (The first time I looked at it was when I was at IBM Research). Sadly, the dev kits area is a mess, there seems to be a different SDK for each phone and the link provided for Nokia phones is broken. Oh well.

In case writing code for the device itself is needed (if the SDK is properly designed, synchronization shouldn't require that, right?), I own a symbian-based device (the excellent Psion Series 7, now discontinued), which might make it easy to try Java code on a Symbian OS. Going from the Series 7 to a Symbian-based phone might be easier than from the emulator. Lots of things to learn.

Later: here is the link for the Nokia J2ME toolkit, download, and here is the link to Sun's J2ME toolkit page, which may also come in handy.

Categories: technology
Posted by diego on January 15, 2003 at 11:48 PM

space tourism

Karlin has a cool new story out on wired: Space: Final Vacation Frontier.

While on the surface this might appear exciting, to me this is a slightly worrying development: while space exploration seems to have been relegated to sending out $100 million probes to mars or whatever while a few super-rich ooze through the heavens without a care in the world gaining even more of a celebrity status in the process (and make no mistake, we are increasingly moving into a world where super-rich will be defined by simply not thinking twice about getting food, considering that over a billion people have no access to clean water...). Tourism has a bad component: fast travel makes you dismiss the place you're arriving at and I'd bet that many of the cultural mismatches that have developed in the last century evolve from that. In history, whenever a massive influx of people has occured in a place there has always been conflict and eventually war. I'd hate to see this incipient space-tourist industry turn space into simply a posh destination for the david beckams of the world (such a bad pun... but I couldn't resist!). Anyway, I should stop now, maybe I'll continue the rant later :-)

Categories: technology
Posted by diego on January 15, 2003 at 6:32 PM

apple v. mozilla

A News.com article with a bit of the reasons for Apple going with KHTML instead of Gecko for their Safari browser. I think that of all of the reasons given, fear of AOL might have been the one with most weight. As the article says:

Though shared enmity with Microsoft has made Apple's relations with AOL Time Warner comparatively warm, the question remains whether Apple would want to trade in its browser reliance on the world's largest technology company for that of the world's largest media and technology company.

Categories: technology
Posted by diego on January 14, 2003 at 3:48 PM

looking for wireless skepticism

Dylan is looking for links to the discussions where it was disputed that Cringely had actually built the system he described in an article.

I found this article from O'Reilly Network that explains the basis for some of the skepticism. Apparently Cringely was making contradictory statements and refused to attend a meeting of the Nocat wireless community to describe his setup.

There are some more links on this page from Seattle Wireless.

Categories: technology
Posted by diego on January 14, 2003 at 11:36 AM

my mailbox under attack

For the past few days my mailbox has been under attack by the W32/Sobig virus, which apparently surfaced around Jan. 3. (Here is the News.com coverage). I've been receiving an average of 25 messages a day from the worm (and the number of messages have grown every day), all of them to public addresses in the dynamicobjects website. 90% of them seem to originate on Outlook Express clients.

The interesting thing is that since I use spaces the virus can't infect my machine. I have set up a rule so that the message (which always originates from the bogus address "big@boss.com") is automatically deleted. So it doesn't really affect me, since it can't infect my machine, and I don't even see it. But... the virus has such high volume that it's become a bandwidth nuisance, mainly because I am on a modem connection (I probably wouldn't care if I was on DSL).

A lot of attention on viruses has been given to the effects they have on machines, the threat to data, etc. But I think that in the near future the threat will change a bit from that to bandwidth/time. Just wait until some unscrupulous spammer figures out how to put his "marketing message" into one of these things. Sheesh. Luckily the chance of that happening is low, since they'd be opening themselves to legal charges far more serious than spamming.

In any case, I guess that if it doesn't let up in the next day or so I am going to have to change the bounce configuration in my mail server. What a pain.

Categories: technology
Posted by diego on January 14, 2003 at 11:02 AM

IBM's xperanto

[via News.com]:

IBM will announce later this month that it will ship by June the first product from Xperanto, an initiative aimed at helping companies fetch information from many data sources all at once, from sales records to documents stored in e-mail servers.Given that Oracle, BEA and Microsoft are going after competing schemes, wouldn't this technology change one incompatible layer for another (with less hooks)? Hopefully they a standard will eventually emerge, a SOAP or XML-RPC-based derivation for working across databases. If not, the same problem will eventually appear again.

Categories: technology
Posted by diego on January 13, 2003 at 3:08 PM

empire

A New York times article about the challenges that faces the US, and a (partly) related Salon article on the "celebrity anti-war movement".

Categories: personal
Posted by diego on January 13, 2003 at 1:02 PM

spaces-alpha 1.7

So, after about a week and a half of intense testing and debugging, Here is the list of changes. Quite a lot of things; I had a lot of help from the people in the mailing list have been a great help in testing and reporting problems, and trying out pre-releases. Anyway, now, onward! 1.8 awaits. :-) 2.0 should be almost-feature complete, and would then become 'beta' I guess. I prefer to consider alpha as software not-feature complete, beta as feature complete but with bugs outstanding (although I haven't seen people release software under the "alpha" moniker in a while, everything seems to be "beta" these days). This is related to version management, a topic I was thinking of writing a bit about soon, mainly as a way of organizing my thoughts. Another thing that everyone has to do but is hardly ever formalized.

Categories: technology
Posted by diego on January 12, 2003 at 8:30 PM

URL geographical mapping part 2

Howard clarified in a comment to my previous entry about URL geographical mapping. He said:

I mean associating URL(s) with specific geographic coordinates on earth: The corner of fifth and main in downtown Philadelphia; room 234 on the 16th floor of a building at a certain longitude and latitude; a tree located at a precise GPS-specified location, etc.
So I had misunderstood. The idea would then be that URLs would be attached to locations, so you can "point" at a URL/location and comment on it. But how about dynamically "attaching" people/devices to the location? Then you could query the location to know who is there (this would go beyond topic- or location-oriented weblog directories, for example, since the connections would happen dynamically and automatically). So as a person travels they establish links as they move, a sort of virtual "spiderman" navigation, shooting connections from one step to the next and handing off when appropriate (based on distance for example). This would imply some form of centralized system, which I don't like, but maybe the information can be distributed dynamically among more "permanent" dwellers in a certain area.

The distributed internet, coming soon to a tree near you.

Categories: technology
Posted by diego on January 12, 2003 at 2:22 PM

television & society

Yesterday we were talking with Dylan about how strange things seem these days. On one hand, the world seems to be going to hell in a handbasket: wars, rumors of wars, disease, poverty, you name it. There is a vast divide between poor and rich, and it's growing. Already, what Bono said in 'God Part II' is not just true, it's a given: "The rich stay healthy, and the sick stay poor".

Cue in television (and the media in general): There the world seems to be a landscape of celebrities and their amazing lives. The masses are enthralled by it. Celebrities are being created out of thin air, some people become celebrities appearing in shows designed to create celebrities (and then control their cash flow), other people were celebrities and now appear in shows that are appealing because you can see people that used to be celebrities in 'everyday life'... turning them into celebrities again (think: The Osbournes'). TV in particular seems to be obsessed with stupid, inconsequential bullshit.

Mmm, I feel a Fight Club moment coming...

Yesterday, for example, I turned on the TV for a moment during a break in work and there is Britney Spears in concert. I was watching it with no sound to try to understand the coreography (I couldn't) and then I noticed that the giant screen that is supposed to give people in the back of the stadium a better view was blasting images at high speed, zooming in and out every 1/2 a second and moving like crazy, which of course made it impossible to see anything. This is not new, there is a TV channel that has literally pioneering this kind of television: MTV. So now there the concerts for the "post-MTV generation" are done in a way so that they look like television. Reality becomes irrelevant, a live show is nothing more than a souped up video. Yikes.

But that's not all. The song ends. The image cuts from the concert arena to a sentence "The million dollar smile". I think "WTF?". I turn on the sound.

The sentence changes to an image of a building, and zooms in until you can see a plaque on the outside. It's a dentist's office.

Cut to the face of a woman, saying: "Yes, that's what I do. I design smiles. I designed Britney Spears smile, which is literally a million-dollar smile. But she's the most famous example of what we do here everyday."

Let's ignore the fact that a dentist is not "famous" because she can drill holes in your mouth or apply a whitening solution.

I mean design smiles??? That is just messed. And this is the kind of "entertainment" that is provided 24/7, along with other kinds of "entertainment" like news coverage on wars, famine, corruption....

What's the endgame for all this? Nuclear war? Nah. More likely, just further sinking into a pile of inconsequential garbage. Like TS Eliot said: "This is how the world ends, not with a bang, but a whimper".

Categories: personal
Posted by diego on January 12, 2003 at 2:08 PM

a busy week in the US courts for tech

Seems to be a busy week for US court-announcements. First, two claims denied in Sun v MS: coverage from the NYTimes. Also, the trial of Be and Burst.com against Microsoft still going forward, a resolution of a class-action lawsuit by Microsoft (paying up one billion dollars as if it was small change), and the announcement that Kazaa can be tried in the US, which probably means it will be closed down soon, given the previous success of the RIAA in litigating Napster, et.al. into extinction.

Categories: technology
Posted by diego on January 12, 2003 at 3:50 AM

blogblock

These past couple of days, whenever I am about to post something to any of my weblogs, something happens: block. Nothing comes out. I stare at the keyboard blankly and my hands don't move. The ideas in my head stay in my head.

I have never experienced writer's block, but this is what it must feel like (the context is different, true). In this case it is possible that programming is just draining the part of my brain that lets me blog, I'm thinking 24/7 about code and everything else sort of falls by the wayside.

I can't write, but I'm writing this... so I guess this entry is sort of therapeutic, no? We'll see.

Categories: technology
Posted by diego on January 11, 2003 at 11:07 PM

william gibson's blog

Professor Farnsworth (from Futurama) says: "Good news everyone!"

I just came across William Gibson's weblog. Gibson is, IMO, one of the best writers in history (science fiction or not). He seems to have started blogging about 5 days ago (Jan 6). Now that's a cool new year's present for all of his readers! :-) Incredibly interesting material, including discussions about themes in his books and such. (He doesn't seem to have an RSS feed yet, hopefully that's forthcoming!)

Categories: technology
Posted by diego on January 11, 2003 at 4:18 PM

innovation?

Vulcan ventures has announced a mininotebook. I wonder: why is this news? Why the pronouncement in the article that "vulcan wants to take the 'lap' out of laptop"? The Japanese have had mini-notebooks for years. Sony has a model that is about the size of this new machine. So much hype, so few new products...

Categories: technology
Posted by diego on January 9, 2003 at 2:31 PM

can software startups succeed?

An article from Forbes.com. "Most are doomed" says the article. But wasn't that always the case? Wasn't it that only 1 out of 10 startups lives on? I'm confused...

Categories: technology
Posted by diego on January 8, 2003 at 7:43 PM

diasporas

An interesting article from The Economist on the effects of emigres on their countries of origin, even while still living away from them.

Categories: personal
Posted by diego on January 8, 2003 at 11:06 AM

macworld announcements

Something that, even only a few hours after Steve Jobs' keynote at MacWorld, has already been blogged to death. But I'd like to keep a link here for my own use. :-). Here is the main pointer to the News.com coverage of the MacWorld announcements. A web browser called 'Safari' (Safari? And some people said I was crazy for calling my product 'spaces'), and the super-cool looking new PowerBook with a 17-inch display. The larger story seems to be the higher prevalence of software announcements, which is reasonable: soon, the biggest innovations will happen in the interconnection of devices, how they exchange data, and how PC programs leverage data received from multiple sources. That means software. Job's 'digital hub' idea might not be new, or terribly original, but it's probably the most clear description of these concepts that I've seen so far.

Categories: technology
Posted by diego on January 7, 2003 at 11:58 PM

on spaces

The last couple of days have been slightly crazy. A lot of feedback on the new version of spaces (specially from people on the mailing list that have been a great help) and one nasty bug resulting of the database change from 1.5.x to 1.6 have kept me quite busy. I also found two new weblog entries on spaces: one comment from Henning (whose weblog has mostly to do with Lotus Domino, and is quite interesting, at least for me :)) and one from Ray (Ray, by the way, has been thinking along similar lines with his concept of Workspace server, which is quite cool, as are many of the other musings on his weblog).

Back to spaces: I am trying to complete a new version (that would be 1.7) by the end of the week. There are a few bugs that, while they don't appear normally while alpha testing (mostly they have to do with doing operations on large amounts of data), they can be quite annoying. More soon on this. The beta is getting closer!

Categories: technology
Posted by diego on January 7, 2003 at 6:37 PM

doublethink is coming

Declan McCullagh has an interesting op-ed piece in News.com this week about the dangers posed by the newfound insterest of the US Government in spying everyone, and what technologies they could be using in the future.

Categories: technology
Posted by diego on January 7, 2003 at 3:44 PM

the two towers

So, I finally saw The Lord of the Rings: The Two Towers yesterday.

I have, very, very confusing feelings about it. On one hand many of the sequences were excellent, specially the battle sequences. The Ents were great. But... but... the overall 'product' left me disatisfied. At times I felt as if -gasp!- I was about to fall asleep!. It seemed soooooo looong. I think the story suffered from the chop-and-dice work they did on it to adapt it to film: the second book is actually divided in two, with the first part dealing with Aragorn, Legolas, Merry, Gandalf, etc, and the second part dealing with Frodo, Sam and Gollum/Smeagol. In the book, this keeps the action running along really fast, and you can't wait to turn to the next page. In the movie, the mixing of these two stories into one only makes everything muddled and slow: the pace is completely lost. There is no time to perceive the 'atmosphere' of each of the stories. Frodo's journey becomes incredibly dark close to the end of book 2. The movie doesn't do justice to that at all.

Finally, the end was cut off at a different point. I didn't like that either, but I think in movie terms it makes some sense at least. Not too great overall. We'll see how they end it. Everything depends on the next and final installment of the trilogy. In any case, we'll always have the books :-).

Categories: personal
Posted by diego on January 6, 2003 at 11:57 PM

'the shield' & 'Taken'

Just watched the last episode in the first series of The Shield. Absolutely, incredibly excellent television. I can't wait for season 2. To me, it seems like a TV version of Training Day which is probably the best movie I saw in all of last year. Meanwhile, the second season of '24' still hasn't started here in Ireland. Oh well.

I also saw (last saturday) the first episode of Taken, produced by Steven Spielberg. It was excellent. Finally a science fiction tv-show that is worth calling 'science fiction'. Between Taken and Band of Brothers Spielberg is really doing its part to revitalize TV.

Categories: personal
Posted by diego on January 6, 2003 at 11:42 PM

Why the 'Java Stigma' Part 4

(previous entries for the 'java stigmata series' :-) here: one, two and three).

Okay, the rant of the day is about expectations.

IMO, with software as with everything else, expectations are everything. Example: remember the hype around the segway? Weren't you a tiny bit disappointed when you read that it was just a glorified scooter? Sure, it looks cool, and it might even be useful (I have my doubts, I'd much rather see people walking more than riding around in things that will actually have a high change of hurting pedestrians, at least until "segway-enabled" cities appear. And let's not even talk about the price and what does it mean in terms of its user demographics). Another example of ultra-hype was Star Wars Episode I. Anyway, besides the point. What I'm trying to say is, once you hype something enough, there is nothing that can match the hype. Reality will always be more boring and mundane than our imagination.

Java, I think, suffered from way, way too much hype at the beginning. When you hype something too much (or when the hype takes a life on its own) it becomes impossible to deliver what people expect. If the reality doesn't even match the basic promises (as was the case withJava in the beginning, since until JDK 1.1 Java wasn't really adequate to build client applications that could create an effective alternative) then what you get is backlash. The hype turns around, and suddenly it's anti-hype, the perception is that whatever you were hyping will never work again.

Java has had to dig itself out of its own hype-created hole in the past few years. It's incredibly common to hear that Java is not useful to do client-side apps, that it's slow, and so on. This of course doesn't match reality, but the anti-hype persists. In the case of Java the anti-hype was so bad because the hype was incredible: it even got to the point where people were being told the future was a JavaStation and not a PC.

But... I for one think that this has actually been good overall. Java hasn't been killed by the anti-hype, since Sun has kept it going, and since it's automatically considered an underdog it has drawn the community around it much closer.

So I think that as long as we keep expectations in line with reality for the future, Java will actually become more than a little relevant. At some point, it won't matter whether something is written in Java or not. We are really close to that now. Morpheus, for example, is written in Java. So are many versions of Gnutella, such as Limewire. So is ThinkFree. And the only people who care about that are those that should: IT people that will see the benefits of being able to deploy the same app in any environment, of lower costs, etc, and of developers (both app- and custom-developers) that will see their lives made easier by the superior programming semantics and the qualities of Java.

As long as the expectations are kept in line this time, Java has a lot more things going for it. The day Java becomes invisible (and thus un-hyped), but irreplaceable, is the day Java will have won. But that's nothing new, is it? :-)

Categories: technology
Posted by diego on January 6, 2003 at 11:33 PM

URL geographical mapping

[via McGee's Musings]: Metatags for geographical locations. Interesting. But, we'll need a lot more tools and information to make geographical location of sites useful. For example, when we're talking about "geographical location of a URL", what are we referring to? The location of the server? Of the person that mantains it? Of the company that owns the server? The site? The person that posts? People move around a lot... and as soon as more advanced "cloud storage services" are available for internet sites, data will move a lot a round as well. We have to start somewhere, however, so I think this is a cool first step.

Categories: technology
Posted by diego on January 6, 2003 at 9:41 PM

quantum computing

An article from The Economist on recent advances in quantum computing.

Categories: technology
Posted by diego on January 6, 2003 at 6:52 PM

the sendo story

Russ has commented on a story on The Register UK about the Sendo/Microsoft fallout. Very interesting, it seems to be very, very similar to what they did with Go in the early 90's (a story told by Jerry Kaplan on his book Startup). Some things never change it seems...

Categories: technology
Posted by diego on January 6, 2003 at 12:52 AM

on google

Bill has an interesting entry on Google, where it's expanding, and its growing influence. Excerpt:

What perhaps bothers me is the casual attitude we have to Google - this is a private company that has effectively, no competition (the one other company that comes to mind that gets such an easy ride these days is IntelliJ, but at least it has Eclipse snapping at its heels). We see rants incessantly about Microsoft, yet Google has web search by the short and curlys and somehow we're all comfortable with that. But Google is just another company, and least we forget, one that is not afraid to bare its teeth (the publication of this email is the point when Google shark jumped for me). Google has also shown it will game its rankings under external pressure; what would it do in time under internal pressure? I say all this while being continually awestruck at their ability to innovate without serious competition and a card-carrying believer that their statistical approach to managing information on the web will continue to wipe the floor with ones driven by logic and knowledge representation, such as RDF and OWL. Google are a class act. [...]
In all, a good read.

Categories: technology
Posted by diego on January 5, 2003 at 11:13 PM

spam filters

[via Sanjay]: a list of various Bayesian and non-Bayesian spam-filters. Interesting.

Categories: technology
Posted by diego on January 5, 2003 at 5:14 PM

Why the 'Java Stigma' Part 3

(Continuing parts one and two of the 'java stigmata series' as Chris so aptly defined it :-)).

Okay, going on with my rants on why Java is considered inferior, and why in some cases the reality of how many applications are developed matches this misperception.

The topic of the day is User Interfaces, but more from a high-level, design perspective, rather than looking at them from the implementation point of view as the first entry did.

To begin with, I think there is a major lack of training on UIs on the part of software engineers, and it's not our fault: there is little in the "environment" to push us in that direction. UIs are messy, difficult to do. You need design abilities and training, which might not match with coding abilities. And in computer science/engineering, UIs have never been paid their due.

All of this starts (as with the data structure migration problem) at the universities and later at workplaces. User Interface design is widely considered to fall under other types of design, including industrial design, graphic design, etc. As such, there are few (or none) offerings in this area for computer scientists/engineers. On a CS/Eng degree, you will spend hundreds of hours working on data structures and databases and algorithms, while UIs will be, with luck, covered by at most a single course, a few dozen hours in total. The problem, of course, is that UIs are not deterministic, you can't pre-define how a good UI works or what does it look like. The only way to become a good UI designer is through training, trial and error, and the developing of an "instinct" for what is good and what is not. It takes time. And more time. There are no debugging tools for UIs, and that makes it incredibly hard to quantify whether something is "working" or not.

Typical design processes up to this point (excluding recent processes such as eXtreme Programming) have paid little attention to the UI part of the equation that is any software development project. This extends the lack of care for UIs from university into the work environment.

The end result of this procrastination is that the UI of a program is usually considered a function of the underlying data and algorithms, when it's actually the reverse. It's common to start designing a program by saying "I will use such and such a database or data format for this". This, IMO, is wrong. The application, if it's to be usable, should be designed from the top down, not the bottom up. After all, all the user will ever see is the UI. Who cares how the data is stored or what sorting algorithm are you using, if the application looks like crap? (True, the underlying code should be optimized, etc, but my point is that code can always be adapted to different UIs, while the reverse is not true). The only thing that matters is the user interface. It's what the user deals with every day, it's where performance problems are found, it's where imagined "bottlenecks" are proven to be non-existent. For example, in Java/Swing, tons of components are created on the fly as dialogs are created, etc. However, this doesn't impact on performance because they are isolated operations. They would only have impact if they were being performed massively. That is, if a menu takes 1/10 of a second to be created, no one will notice, since compared to the time required by the operation to launch it is not noticeable. But, if we looked at the menu creation time from an algorithmic point of view it would be completely outrageous (I mean, says the Java-skeptic, 1/10 of a second to create a menu item! Are you insane?!); in reality it is a non-issue.

This is why HTML can work at all. The time it takes to parse what is effectively a user interface (ie., the webpage) is irrelevant compared to the average time it takes to obtain the webpage from the server. How the web evolved also reinforces my point. From the beginning, web page designers were actually graphic designers which is why web pages have been "usable" pretty much from the beginning

So, how does this affect Java?

In my opinion, Java is affected by this because it's the first widely deployed platform/environment (besides the Web) in 2 decades that is truly new (note that I say widely deployed. There have been many other cool environments in the meantime, but they never really caught on). This means that the user interface of most programs has to be created from scratch, while the Windows crowd happily puts together components that already exist. Besides, Java has to deal with multi-platform issues, in Windows that problem is non-existent. Since Java implies so much UI development from scratch, whatever inadequacies exist as a whole in the CS/Eng profession appear to be multiplied many times, compounded by the fact that there are no really good UI design tools integrated into the major development environments (with JBuilder the only probable exception).

However, I think that there is light at the end of the tunnel. We are getting better at doing this stuff. We've had a difficult learning curve since the first public alpha of Java (way back when in 1995. Jeez. Almost eight years. Has it been that long?), but Java applications are now beggining to look as well as their native counterparts, in many cases improving on them. New tools are coming out, with better support, and, more importantly, new processes are being used that improve UIs because they involve the user from the start in the development process (like in eXtreme Programming).

As time passes, the perception that Java is not good for client apps will disappear, and the simplicity and inherent "cleanliness" of Java development will allow Java client apps to establish their foothold in the desktop, hopefully creating cool innovations along the way.

Categories: technology
Posted by diego on January 5, 2003 at 3:55 PM

You know you've been hacking too long when...

Charles has come up with a hilarious (for me at least :-)) way to know when you've been hacking for way too long.

Categories: technology
Posted by diego on January 5, 2003 at 1:27 PM

more on data structure evolution

Russ has commented on my entry yesterday about data structure evolution/migration. He said:


I admire your dedication, and think it's great, but I just wanted to point out that your code is plainly marked alpha. Don't waste time doing something that's not going to be useful later. If you make a huge switch in the DB, your users should know that's the price of being on the cutting edge.

:-)

-Russ

It's true. And in part I ended up doing the change because I saw that this could be a problem in the future. Specifically regarding spaces, I had to do this (even though I didn't realize it at the beginning) simply to understand better the issues I was talking about in the entry. Now I understand much better the tradeoffs involved and even though it might not mean that there won't be any problems at all through the rest of the alpha cycle, it will certainly mean that I'll be much better prepared for the beta/final release, when this behavior will be expected (at least by me). So this work will definitely be useful later.

Apart from that, it might be that I'm making things too hard on myself (nothing new there), but I really prefer to give a good experience even if it's an alpha version. It can fail, yes, but I'll try to do what everything I can to make it painless.

By the way, thanks, Russ, for the nice comment. Sometimes it's not so easy to keep going (specially when I think about the hundreds of millions of dollars and hundreds of people that MS puts into the development of outlook) and encouragement like this always helps. :-)

Categories: technology
Posted by diego on January 5, 2003 at 1:11 PM

outlook news aggregator

An outlook news aggregator seems to be on the way. Good thing spaces already does it! :-)

Categories: technology
Posted by diego on January 5, 2003 at 1:12 AM

the lying game

From an article in the New Yorker:

These days, if youíre looking for a bunch of New York writers, magazine editors and publishing types on a Friday night, track down Mr. Lethem, who has become a kind of mob boss among an ever-growing salon of poker-faced literati obsessed by the spiky parlor game they call Mafia. Thereís no money involved, everyone stays clothed, and the alcohol intake is surprisingly moderateóbut to witness Mr. Lethemís disciples in the throes of their favorite game is to know that the stakes run high.
Having played roleplaying games in the past, this sounds like a lot of fun!

Categories: personal
Posted by diego on January 4, 2003 at 4:34 PM

migrating data structures

from the why-do-we-have-so-many-problems-with-program-versions dept.

Ever upgraded from, say, version 95 to version 98 of a certain program, and found that you had to "convert the files". Ever felt the anguish of looking at that dreaded dialog window that says "Do you want to convert this file to the new version? Yes, No, Cancel" (whatever "Cancel" means). Don't you just hate that?

Yeah, me too.

Well, this past few weeks I found myself on the unenviable position of being on the other side of the fence, having to deal with a new database format for spaces and wondering what to do about it. Sure, one option was to just wipe out the old DB and start from scratch: spaces is in alpha, and people know that they shouldn't be using it as their only app yet. In fact, this is the first road I planned to take.

But.. but... as days passed and I got some feedback from users and I realized that my own data would have to be exported/imported somehow (since I am using spaces as my only PIM) I arrived at the conclusion that I had to write a migration tool.

Uh-Oh.

This is not as easy as it sounds. You need to ship a program with two incompatible formats that won't step on each other, detect the old one, and make a conversion if necessary. All without bothering users and destroying information.

As I struggled trying to find a good way to do this (which happened, eventually, and alpha 1.6 was released with an automatic conversion mechanism) so that users wouldn't have to deal with a problem I had created, I realized that this was being much harder than it should be. Then I realized why. I had never done it before.

I have years of experiences with databases in real world settings, in applications deployed to thousands of users, in client and in server settings. I've had to design DBs, install them, maintain them... and yes, sometimes migrated their contents, but in a painful "by-hand" process that involved converting tables, etc, and making sure that data was not lost.

Spaces, being a consumer app, was different: the conversion had to happen automatically, and fast. It might look like a small distinction, but it's not. It's a whole different ballgame.

And, I wondered, why did this seem so strange? The answer: I had never been exposed to it.

In abstract terms, a database is a persistent collection of data structures of one sort or another. Both in Computer Science courses (at college or wherever) and in the "real world" we are taught and learn how to design the best data structures, we discuss their efficiency, their tradeoffs (size, performance, etc), their APIs. But rarely, if ever, is the topic of migration discussed. The famous Object-Relational Mapping Problem is, largely, a problem of "impedance" between different paradigms, but I've become convinced that it's also been created in part by this rigid thinking of structures as creatures that never, ever change, so when change happens we don't know what to do.

The roots of this are, I think, in the idea (also taught and practiced widely) that data structures, like programs, should be designed once, and then implemented, and that's it. There is no concept of evolvability built in how data structure design is taught (and expected to be performed).

This, of course, is just plain wrong. And APIs are not enough. Well-designed APIs are an important element on any migration (and they were what finally got me out of my self-created hole). But there is more. The API itself reflects the underlying data structure in one way or another, so the data structure itself should be analyzed, at least a bit, to understand what will be involved in migrating to a possible future (different) structure.

That is, data structures should not be designed to apply to all cases, but to migrate gracefully. Similarly to the concept of test-oriented programming (one of the components of eXtreme Programming) where you write the test first and the code later, we should work on data migration first, making sure that one version is compatible with another in some automatic way (and the migration process is already in place), and then do the change.

Just like with test-oriented programming, this builds up confidence: since you know the data won't be lost, you are free to design better data structures as you realize what's needed for every particular case.

This doesn't change the data structure design process itself, it changes what comes before (the planning process) and what comes after (the implementation). The implementation in particular requires hooks that will allow you to perform the migration easily and automatically. Every database manager should include a version manager, with hooks to define when a particular object is of a given version, and, if necessary, how to convert it.

In all cases (and this is a UI problem more than anything) the user should barely notice that something has changed. If there is a long operation involved, yes, a progress bar of some sort will be necessary. But nothing more.

It's time for programs to be "responsible" and take care of things transparently instead of involving the user in decisions over things they don't want to know about. For all of us developing applications, having more practice with data structure migration (as opposed to simply data migration, since developers deal with the code) and how to automate it would go a long way towards that.

Categories: technology
Posted by diego on January 4, 2003 at 4:32 PM

heavier than heaven

In the last couple of days I re-read Heavier than Heaven, a biography of Kurt Cobain by Charles Cross (just as I wanted back at the end of September). Such a good book. It's one of the best books I've read in a while, and certainly one of the best biographies I've come across. Sometimes he drifts off into fictional territory (in particular, when describing Cobain's actions just before he shot himself, with details such as where he sat as he wrote the suicide note, or what song of REM's Automatic for the People was playing on the stereo as he finished writing it) but it doesn't matter: it feels true. And it doesn't change the essence of the Cobain's story.

Now I should go back to finishing Molloy and Dispatches but for some reason I am tempted by The Great Gatsby. We'll see.

Categories: personal
Posted by diego on January 4, 2003 at 12:44 PM

the responsibilities of writers

An article from The Guardian. I agree with some of the things he says, but I think he ignores the side of writing that is simply entertainment (and, in these days, "commercial events" such as the release of a book by, say, Michael Crichton). Entertainment-oriented writing will be not necessarily be art, and it might not necessarily have a message beyond "some people are bad." The portion of the article I like best is when he describes how the story carries the writer forward, rather than the other way around: it's definitely true.

Categories: personal
Posted by diego on January 4, 2003 at 12:36 PM

the fires of war

From CNN:

In Kuwait, the Persian Gulf War left behind heavy environmental damage. Day vanished into night, black rain fell from the sky, and a vast network of lakes was born ... lakes of oil as deep as six feet.

Categories: personal
Posted by diego on January 4, 2003 at 12:34 AM

AOL does blogs

Reportedly, AOL is working on adding a blogging feature to their applications. Interesting.

Categories: technology
Posted by diego on January 3, 2003 at 2:35 PM

literary criticism

An article from Salon:

The legendary American literary critic Leslie Fiedler talks about his encounters with Hemingway and Faulkner, his falling out with Bellow and which contemporary novelists will last.

Categories: personal
Posted by diego on January 3, 2003 at 2:34 PM

funny predictions

A funny set of predictions for tech in 2003, from Salon.

Categories: technology
Posted by diego on January 3, 2003 at 2:33 PM

ecommerce works

An article from The Economist:

Some firms are finding that there is money to be made online, after all.

Categories: technology
Posted by diego on January 3, 2003 at 2:31 PM

vaporware 2002

Half the blogverse has already blogged about this, but what the hell: Wired's Vaporware Top Ten for 2002. Half of those 10 are games, which I think should be subscribed to the fact that there are very, very few new applications being announced apart from new games. Hopefully 2003 will be better.

Categories: technology
Posted by diego on January 2, 2003 at 9:46 PM

relativity 2.0

A really interesting article from the New York Times about challenges (or refinements) to some of the principles of relativity:

Guided by ambiguous signals from the heavens, and by the beauty of their equations, a few brave ó or perhaps foolhardy ó physicists now say that relativity may have limits and will someday have to be revised.

Some suggest, for example, the rate of the passage of time could depend on a clock's orientation in space, an effect that physicists hope to test on the space station. Or the speed of a light wave could depend slightly on its color, an effect, astronomers say, that could be detected by future observations of gamma ray bursters, enormous explosions on the far side of the universe.

Categories: technology
Posted by diego on January 2, 2003 at 12:16 AM

and the future brings...

Higher temperatures, it seems, and almost certainly not entirely from natural sources:

Some of the warming could be the result of natural climate variation, but the experts say it is almost impossible to explain without including the heat-trapping properties of rising levels of carbon dioxide and other greenhouse gases emitted by smokestacks and tailpipes.

Categories: personal
Posted by diego on January 1, 2003 at 10:48 PM

spaces alpha-1.6

I've just released spaces alpha 1.6. Major changes for this version include spaces web access is now activated, support for proxies/firewalls (including SOCKS), sound notification, font size selection for email preview, a new database structure ... and many others.

Phew! Now on to alpha-2 with beta-1 not too far behind...

Categories: technology
Posted by diego on January 1, 2003 at 10:39 PM

dawnbreak

New Year's Day 2003, Dublin.

dawnbreak-small.jpg


(click on the image to see a larger version)

Categories: technology
Posted by diego on January 1, 2003 at 12:16 PM

Copyright © Diego Doval 2002-2011.