| d2r diego's weblog: January 2003 Archives |
java for wirelessFinally 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. weblogs, development, and feedbackNews.com has an interesting article on how weblogs help developers create better products. 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. more on the power of the mind thingyLance 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". :-) the company-employee relationshipI'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. 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 :-) version controlWas 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. HTML Parsing/View/Editing in the JDKAnthony 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.Amen to that. 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. on speakers and speechesAn 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. the EFF in IrelandI 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. sun fights Microsoft's appealFrom 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. the power of the mindI 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." :) apple and operaNews.com reports on the growing problems between Opera's strategic directions and Apple, which has come up with a web browser of its own. so patches didn't work for them eitherRegarding 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. in their sightsDeclan 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. invalid dns queriesDylan has commented on a Slashdot story about the amount of invalid DNS queries. Interesting, (both the article and his comments!) more on swing v SWTChris 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 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. 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. Swing and SWT: a comparisonThis 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. and speaking of network theoryA 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. network theoryThe 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. no hiding placeThe 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. mcfrankensteinSo, 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... a comment on spacesepesh has tried out spaces 1.8 and he likes it. He says: "[...] a really neat Evolution/Outlook replacement in Java." Thanks! the creeping wormI 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. if the technology is bad, just change its nameApparently 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... bush and reaganAn interesting analysis from the New York Times comparing George W. Bush and Ronald Reagan. back onlineMy 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) :-) spaces alpha 1.8 releasedSo, 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... man v computerFor 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. microsoft and linuxWhen 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." X11 on OS XSounds 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. norman mailerA NY times interview with Norman Mailer. Executioner's song is rising on my "to read" pile... hopefully I'll get to it soon. :) 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. on using each input method properlyThis 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. :))Which pretty much sums up how I feel about pretending to obliterate one input method, or user interface, with another that is supposedly "better"... improving Java apps on MacOS XA 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. dilbert does XPFor 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. on the sun/ms trialSalon 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. a spam archiveNews.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. the tech stupidity of some TV writersBasically 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
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! :-) world-changing techThe 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. no to war!Salon covers the marches in Washington and San Francisco against war with Iraq. I have this strong feeling of deja-vu... manywhere mobloggerRuss 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! :) games as weaponsNews.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. of hype and new featuresDylan 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. the recovery of silicon valleyNews.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. ... and so it beginsfrom 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. news.com's RSS feeds[via Dave]: News.com has a new page with pointers to their RSS feeds, and other useful related links. and speaking of gibson...The New York Times reviews Gibson's new book Pattern Recognition, which comes out this february. bladerunner and neuromancerWilliam 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... dublin != digitalA 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. on securityAn article by Sun's Chief Security Officer and the co-inventor of public-key cryptography. if microsoft had been in charge of the Apollo ProgramAfter 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:
Derivative? Certainly. Well, at least I vented a bit. Writing is good release, even if it's bad writing. :-) 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. looking for weaponsSo, 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... a simple performance test of java genericsNow 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:
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! syncing java to mobile phonesRelated 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?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.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. more on the cringely-wireless discussionRuss 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).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. a pim for mobilesWith 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. space tourismKarlin 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 :-) apple v. mozillaA 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. looking for wireless skepticismDylan 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. my mailbox under attackFor 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. IBM's xperanto[via News.com]: empireA New York times article about the challenges that faces the US, and a (partly) related Salon article on the "celebrity anti-war movement". spaces-alpha 1.7So, 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. URL geographical mapping part 2Howard 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. television & societyYesterday 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". a busy week in the US courts for techSeems 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. blogblockThese 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. william gibson's blogProfessor 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!) 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... 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... diasporasAn interesting article from The Economist on the effects of emigres on their countries of origin, even while still living away from them. macworld announcementsSomething 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. on spacesThe 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! doublethink is comingDeclan 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. the two towersSo, 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 :-). '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. 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? :-) 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. the sendo storyRuss 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... on googleBill 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. 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. 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. more on data structure evolutionRuss has commented on my entry yesterday about data structure evolution/migration. He said: 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. :-) outlook news aggregatorAn outlook news aggregator seems to be on the way. Good thing spaces already does it! :-) the lying gameFrom 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! migrating data structuresfrom 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. heavier than heavenIn 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. the responsibilities of writersAn 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. the fires of warFrom 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. AOL does blogsReportedly, AOL is working on adding a blogging feature to their applications. Interesting. literary criticismAn 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. ecommerce worksAn article from The Economist: Some firms are finding that there is money to be made online, after all. vaporware 2002Half 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. relativity 2.0A 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. 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. spaces alpha-1.6I'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... Copyright © Diego Doval 2002-2007.
|

