free web site hit counter

The Sun BabelFish Blog

Don't panic !

Friday Aug 29, 2008

excel and rdf

Scott McNeally never had much nice to say about spreadsheet software. And indeed there are huge numbers of problems with them. Some of them I can think of off the top of my head are:

  • Hidden formula that nobody looks at and that get tweaked without alerting people
  • Data that is never synchronized, with parts of it that is out of date
  • Data that cannot be merged
  • Some products even had virus problems...

And yet they are immensely popular, especially with the people who never see the problems that they lead to.

As it happens these are problems within the scope of the semantic web. Every spread sheet is like a mini SQL database. As long as you query the information inside of one database owned by one administrator all is fine. But what when you want to merge information from different databases? Ouch! That's really tough, because there is usually no clear understanding of which pieces should fit together. Do the columns in each database mean the same thing? Well if you have just a few big databases you can link them tediously together, but what if you have thousands of such databases? And each person wielding it is a complete novice to this problem? What if someone just renames a column in one spread sheet? What does that mean?

The topic of spreadsheets and the semantic web came to be one of the highlights of the confernces I went to in May. Dean Allemang in his talk at JavaOne ( now online ), used this problem in one of his examples. Eric Miller, talked about a solution that involved using the momentum behind spreadsheets to help build ontologies (I think, it's a while back now).

And one of the most interesting short demos I saw at the Semantic Tech Conference in May, was one given by Lee Feigenbaum of Cambridge Semantics just before leaving. Lee, who had been working on semantic web tools at IBM before going to start his own company, gave me a quick summary of the benefits of his middleware. Essentially by adding URLs somehow into the spreadsheet you can tie their meaning down a lot more carefully. By writing a plugin for Microsoft Excel ( they had a prototype working for openoffice before deciding to focus on M$ tools) that works together with the middleware, users can keep on behaving as they are used to, whilst helping link all the information together. Instead of working against each other, people in a company can build a web of information together. I had missed Lee's talk entitled Getting to Web Semantics for Spreadsheets in the U.S. Government a few days before, so I can't summarize this so well now. But the abstract of his talk is online.

Spreadsheets may yet be back again, but for the good.

PS. Please send me further links on this so I can flesh out this story better.

Thursday Aug 28, 2008

picture of my blog

picture from wordle.net

Wordle is a fun little Java applet that analyses your blog and builds any number of beautiful word clouds from the content. It has started a movement I think.

Just a pity that one cannot embed the applet in one's own web page. That would make it dynamic and a lot more interesting. Perhaps that will come. At present it seems the author is not sure what the IBM lawyers have decided.

This is somewhat similar to the graphic app I mentioned previously though with somewhat more content, clearly. Long term readers of my blog may find the picture of my blog to not be such a good reflection of my interests though. Statistic analysis of words does not get you that far.

Wednesday Aug 27, 2008

my blog is worth $49,114.98

According to Dan Carlson's program my blog is worth 49thousand dollars. That's nothing next to Tim Bray's who's coming up for 700thousand dollars. Of course Dan Carlson is a big winner in all this, because everybody is linking to his site, so his just keeps growing. He is now at 2 million by his own estimate which has something to do with with some AOL deal a few years ago.


My blog is worth $49,114.98.
How much is your blog worth?

Now would I sell my blog for a new car?

As with a new car you'd have to be a bit careful how you sell your site. Tim Brays http://tbray.org/ongoing is worth $693,819.66 . But http://tbray.org/ongoing/ [notice the trailing slash] is worth $375,983.64 . So is Tim's site worth the sum of both, 1 million?

Tuesday Aug 26, 2008

Sun Intranet Foaf Experiment

image of Address Book displaying internal sun foaf

Building a foaf server from an ldap directory is pretty easy. Rinaldo Di Giorgio put a prototype server together for Sun in less than a week. As a result everyone in Sun now has a experimental temporary foaf id, that we can use to try out some things.

So what can one do with foaf that one could not so easily do with ldap? Well the semantic web is all about linking and meshing information. So one really simple thing to do is to link an external foaf file with the internal one. I did this by adding an owl:sameAs statement to my public foaf file that links my public and my sun id. (It would be better to link the internal foaf file to the external one, but that would have required a bit more work internally). As a result by dragging and dropping my foaf iconfoaf file onto today's release of the AddressBook someone who is inside the Sun firewall, can follow both my internal and my external connections. Someone outside the firewall will not be able to follow the internal link.

By extending the internal foaf server a little more one could easily give people inside of Sun a place to link to their external business connection, wherever they might be in the world. To allow other companies to do this too it would of course help if everyone in Sun had a minimally public foaf ID, which would return only minimal information, or whatever the employee was comfortable revealing about themselves. This would allow Sun to present a yet more human face to the world.

Well that's just a thought, and this is just an experiment. Hopefully it will make the semantic web more real for us here, and allow people's to dream up some great way of bringing all the open source world together, ever closer.

PS. For people inside of Sun it may be easier to just drag my foaf iconinternal foaf file directly on the the AddressBook (started via jnlp). Otherwise to get the internal foaf file to download you need to click the "fetch" button next to the "same As" combo box when viewing my info. Then you need to switch to "Last Imported" and back to allow "Bernard Traversat" to appear in the second column. He appears as someone I foaf:know after the merger of the internal and the external foaf. I know this is clumsy, and I'll try thinking up a way to make this more user friendly very soon. You are welcome to participate on the Address Book Project.

PPS. Sun internal users can get more info on the project home page.

PPPS. We of course use the Firefox Tabulator plugin too for tests. It gives a different interface to my AddressBook. It is more flexible, but less specialised... The Tabulator web application does not work currently because we only produce Turtle output. This is to avoid developers trying to use DOM tools to process these pages, as we don't want to put work into an RDF crystalisation. ( Note: If at some later time you find that the plugin is not compatible with the latest version of Firefox, you can manually disabling compatibility checks. )

Monday Aug 25, 2008

The interpretation of fairy tails

Over the holidays I accidentally picked up a book by Marie-Louise von Franz, "The interpretation of fairy tails", and could not put it down until I reached the last page. I then ordered five other book of hers. If you have ever found fairy tails interesting but puzzling, you don't know how much you have missed. Seen from Marie-Louise's perspective, one of the closest students of Carl Gustav Jung, each of these are nuggets of deep knowledge of the human soul. Here is my translation of the first paragraph of my French translation of "The feminine in Fairy tails":

At the origin, and until approximately the XVIIth century, fairy tails were not so much meant for children as for the adult population. This situation was kept alive in the rural areas where until a relatively recently, story tellers would animate traditional vigils. Progressively though the development of the rational current and its refusal of the irrational, led these tails to be seen as just absurd old woman's stories, just good enough to amuse the children.

My guess is that a lot of this still holds true today, though a lot of her thoughts must have been integrated in one way or another by now. Once one starts learning to read fairy tails like this - though I keep being surprised at how deep her reading goes, and it will not be an easy task to get even close to it - one can start seeing how this can be applied to other arts such as film. I recently saw Jim Jarmush's "Dead Man" which is full of such interesting symbolism for example.

Thursday Aug 14, 2008

the semantic web is somebody else's problem

It is odd how few people notice the Semantic Web, even though it is being developed in the most open manner possible by the W3C and being deployed around the world. That is because it is Somebody Else's problem. Here is a section from the Book 3 of the Hitch Hiker's Guide to the Galaxy on this very strange phenomena. Arthur and Ford are watching a very well attended cricket match at Lord's cricket Ground in England, when Arthur notices something about Ford Perfect, who has a lot of experience traveling in the galaxy.

"Something's on your mind, isn't it?" said Arthur.

"I think," said Ford in a tone of voice which Arthur by now recognized as one which presaged something utterly unintelligible, "that there's an SEP over there."

He pointed. Curiously enough, the direction he pointed in was not the one in which he was looking. Arthur looked in the one direction, which was towards the sight-screens, and in the other which was at the field of play. He nodded, he shrugged. He shrugged again.

"A what?" he said.

"An SEP."

"An S ...?"

"... EP."

"And what's that?"

"Somebody Else's Problem."

"Ah, good," said Arthur and relaxed. He had no idea what all that was about, but at least it seemed to be over. It wasn't.

"Over there," said Ford, again pointing at the sight-screens and looking at the pitch.

"Where?" said Arthur.

"There!" said Ford.

"I see," said Arthur, who didn't.

"You do?" said Ford.

"What?" said Arthur.

"Can you see," said Ford patiently, "the SEP?"

"I thought you said that was somebody else's problem."

"That's right."

Arthur nodded slowly, carefully and with an air of immense stupidity.

"And I want to know," said Ford, "if you can see it."

"You do?"

"Yes."

"What," said Arthur, "does it look like?"

"Well, how should I know, you fool?" shouted Ford. "If you can see it, you tell me."

Arthur experienced that dull throbbing sensation just behind the temples which was a hallmark of so many of his conversations with Ford. His brain lurked like a frightened puppy in its kennel. Ford took him by the arm.

"An SEP," he said, "is something that we can't see, or don't see, or our brain doesn't let us see, because we think that it's somebody else's problem. That's what SEP means. Somebody Else's Problem. The brain just edits it out, it's like a blind spot. If you look at it directly you won't see it unless you know precisely what it is. Your only hope is to catch it by surprise out of the corner of your eye."

"Ah," said Arthur, "then that's why ..."

"Yes," said Ford, who knew what Arthur was going to say.

"... you've been jumping up and ..."

"Yes."

"... down, and blinking ..."

"Yes."

"... and ..."

"I think you've got the message."

"I can see it," said Arthur, "it's a spaceship."

A little further it is revealed that the spaceship uses some very clever technology to make this work:

The second strangest thing about the ship was watching the Somebody Else's Problem field at work. They could now clearly see the ship for what it was simply because they knew it was there. It was quite apparent, however, that nobody else could. This wasn't because it was actually invisible or anything hyper-impossible like that. The technology involved in making anything invisible is so infinitely complex that nine hundred and ninety-nine thousand million, nine hundred and ninety-nine million, nine hundred and ninety-nine thousand, nine hundred and ninety-nine times out of a billion it is much simpler and more effective just to take the thing away and do without it.

[snip]

The Somebody Else's Problem field is much simpler and more effective, and what's more can be run for over a hundred years on a single torch battery. This is because it relies on people's natural disposition not to see anything they don't want to, weren't expecting, or can't explain. If Effrafax had painted the mountain pink and erected a cheap and simple Somebody Else's Problem field on it, then people would have walked past the mountain, round it, even over it, and simply never have noticed that the thing was there.

And this is precisely what was happening with Slartibartfast's ship. It wasn't pink, but if it had been, that would have been the least of its visual problems and people were simply ignoring it like anything.

The most extraordinary thing about it was that it looked only partly like a spaceship with guidance fins, rocket engines and escape hatches and so on, and a great deal like a small upended Italian bistro.

So there.

You have to believe it to see it. And of course when it does become visible, it will seem so very like other things that have existed before.

Monday Aug 11, 2008

No iPhone for me

image of the netshare app

It is five years now that I have not had a cell phone. I was hoping the iPhone would change that soon. But I just find the limitations imposed on these devices unacceptable. The latest such restriction: "thou shalt not use the iPhone as a modem to connect your computer to the internet". (see Christian Fauré's article in French). As a result Apple pulled the Netshare app, described by a recent WIRED article, from its iStore. I hear rumors that one can get this to work by hacking (illegally) one's iPhone, but why should I break the law? That would just be a way for me to pour energy into a system that I don't own. I have not become a Linux hacker to give up my rights that easily.

Why do they have this rule? In France for €50 a month, you only get half a gigabyte per month of download bandwidth. Using your laptop to connect to a 3G phone would, unless you are very careful to close all applications that consume bandwidth, probably use up that limited space very quickly anyway. It can take an hour for Skype to use up 50MB of bandwidth I noticed. Perhaps that is why this rule is there. But that just indicates to me that 3G really is not ready for prime time yet.

Oops. I lied. I did get a cell phone I remember now, when I was in the US in May. For $15 I got a throwaway cell phone from Virgin Mobile. The price was right, and it saved me money making phone calls, and saved me wasting time looking for coin operated phones. Plus of course there were no roaming charges, as it was a US phone. And with Skype, I could just forward my calls to that phone, so I did not even have to give anyone a new phone number that would soon be out of date. Some people from Europe showing off their iPhones had some hefty roaming bills later when returning home. I even discovered that to change your SIM card in the US for such a phone could cost you $50! A sim card was more expensive than a cell phone!! Sound like Europe in the Middle Ages to me. Wherever you go you would have to pay some baron a fee for crossing his land. Security not guaranteed.

Sunday Aug 10, 2008

A Simple Sommer Project

Are you dreaming of the coasts of Java? Need some real sunshine? Have you had enough of hibernation? Here is a simple project to help you wake up and open up some new horizons :-)

A couple of weeks ago, Stephanie Stroka asked me how to make use of the so(m)mer library. So(m)mer is designed to plays a similar role for the semantic web that Hibernate plays for relational databases. So when relational databases feel too constraining, and you need an open database that spans the world, the semantic web is for you. And if you are a Java programmer, then so(m)mer is a good open source project you can participate in.
Anyway, I had not had time to write out a HOWTO, so I directed Stephanie over instant messenger on how to get going. It turns out this was a little more complicated that I had imagined, for someone completely new to the project. So Stephanie wrote out a really simple, indeed the simplest possible project, documented it, and added it to the so(m)mer repository.

As a result there is now a really simple example to follow to get out of hibernation mode, and into the blooming summer. Just follow the instructions.

Tuesday Aug 05, 2008

Outlines of Love in a Functional Garden

My mother's sculptures have always been about movement, dance, love and life. Life in the sense of the pleasure one can have being alive, the passing fleeting moments that can be given no exchange value, because they cannot be exchanged.
Her latest work, a series of human sized wire sculptures exhibited recently in the gardens of the INSEAD business school, express close to 40 years of research of this artistic space. The formal backdrop of the school, designed in a functionalist lego like architectural style of the 1970ies, reflects at every turn these transparent outlines of movement. When the wind blows across the campus, the leaves rattle in the sunshine, and their light reflected in the mirrory surface of the glass construct shines through a couple embracing on the grass, ever changing with the surrounding environment, yet timelessly there holding together the growing hope.

Flight

Walk around the garden and you will find the outline of a person playing hide and seek.

dancing

Or you may find a couple dancing on the grass.

playing in the garden

My pictures of these sculptures does not really do them justice, not just because photography is an art whose complexity lies hidden deeply behind the simplicity of the mechanical click, but especially in this case because it hides the third dimension for which these sculptures are built and freezes the movement which these works are vibrating and pulsating through and through. This tension between movement and permanence, captured in a few metallic lines, is what shines through these constructions that took a lifetime of experience to build.

Still the exhibition at INSEAD is now at an end, and so the following slide show (click here) may have some role to play in bringing it back to life somewhere else.

Thursday Jul 24, 2008

My Semantic Web BlogRoll

I have not had time to automate my blog roll publication yet. Here is the first step down that path. The following are the semantic web blogs I follow closely. I am sure I must be missing many others that are interesting. Though I already am way past the point of information overload. (For those in the same position here are some tips (via Danny))

AI3:::Adaptive Information - Atom
Mike Bergman on the semantic Web and structured Web
About the social semantic web - RSS
Web 2.0 - what's next?
Bnode - atom
bobdc.blog - RSS
Bob DuCharme's weblog, mostly on technology for representing and linking information.
Bill de hOra - atom
Bill de HOra's blog
captsolo weblog - RSS 1.0
CaptSolo weblog
connolly's blog - RSS
Dan Connolly's blog
Cloudlands - RSS
John Breslin's Blog
Daniel Lewis - RSS
A technological, personal, spiritual, and academic blog.
Dave Beckett - Journalblog - RSS 1.0
RDF and free software hacking
David Seth - RSS
Semantic Web & my backyard
dowhatimean.net - RSS
Richard Cyganiak's Weblog
Elastic Grid Blog - RSS
The ultimate blog about the Elastic Grid solution...
Elias Torres - RSS
I'm working on a tagline. I promise.
Inchoate Curmudgeon - RSS
I'm getting there. What's the rush? It's about the journey, right?
Internet Alchemy - RSS
Seeing the world through RDF goggles since 2007
Kashori - RSS
Kingsley Idehen's Blog Data Space - RSS atom
Data Space Endpoint for - Knowledge, Information, and Raw Data
Les petites cases - Fourre-tout personnel virtuel de Got - RSS
Lost Boy - RSS 1.0
A journal of no fixed aims or direction by Leigh Dodds. If you see him wandering, point him in the direction of home.
Mark Wahl, CISA - RSS
Discussions on organizing principles for identity systems
Michael Levin's Weblog and Swampcast! - RSS
Software development, technobuzz, and everything else.
Minding the Planet - RSS
Nova Spivack's Journal of Unusual News & Ideas
More News - RSS
Nodalities - RSS
From Semantic Web to Web of Data
opencontentlawyer.com - RSS
copyright, content, and you
Perspectives - RSS
Interfaces, web sémantique, hypermédia
Planet Kiwi - RSS
... where all the KiwiKnows is!
Planet RDF - RSS
It's triples all the way down
Planete Web Semantique - RSS
French Semantic Web planet
Raw - RSS 1.0
Danny's linkiness
Rinke Hoekstra - RSS
"Time is nature's way to keep everything from happening at once." - John Wheeler
S is for Semantics - Atom
Dean Allemang's Blog - Check out our new book on the Semantic Web!
Semantic Focus - RSS
On the Semantic Web, Semantic Web technology and computational semantics
Semantic Wave - RSS
News feeds and commentary maintained by semantic web developer Jamie Pitts.
Semantic Web Interest Group Scratchpad - RSS
Semantic Web Interest Group IRC scratchpad where items mentioned and commented on in IRC get collected.
Semantic Web Wire - RSS
Comprehensive News Feed for Semantic Web.
semantic weltbild 2.0 (Building the Semantic Web is easier together) - RSS 1.0
Building the Semantic Web is easier together
SemanticMetadata.net - Atom
Speaking my mind - RSS
The whole is more than the sum
TagCommons - RSS
toward a basis for sharing tag data
TechBrew - RSS
Informative geekery on software and technology
Technical Ramblings - RSS
Ramblings of a GIS Hacker
Thinking Clearly - RSS
Make lots of money through stealth in shadows
W3C Semantic Web Activity News - RSS

I automated the creation of this blogroll by transforming the opml of my blog reader with the following xquery

declare namespace loc = "http://test.org/";

declare function loc:string($t as xs:string) {
             $t
};


<html>
<body>
<dl>
{
   for $outline in //outline
   order by $outline/@title
   return 
     <span>
          <dt><a href="{ $outline/@htmlUrl}">{ loc:string($outline/@text) }</a> - <a href="{ $outline/@xmlUrl}">{ loc:string($outline/@version)}</a> </dt>
          <dd>{ loc:string($outline/@description) }</dd>
     </span>
}
</dl>
</body>
</html>

I then had to edit a bit of the generated html by hand to make it presentable.

Thanks to the Oxygen editor for making this really easy to do.

Wednesday Jun 25, 2008

NetBeans and Semantic Wikis

The Kiwi team is meeting at the Prague Sun offices for the next few days to discuss the roadmap of this cutest of all semantic wikis. I completely empathize with Jana Herwig, when she writes:

An IT project is like herding cats, they say - in our case, we’ll be herding kiwis, and if we can enjoy it only half as much as these guys, I’ll be fine:-)

And illustrates it with this video:


VIDEO CLIP -- this should only display if shockwave does not work. Why does it not do the right thing in Firefox 3? If no video appears try it directly on youtube.

I like to think of us developers as being the cats, and the kiwis as the things we want to herd. Tasty :-) That would indeed also explain why I am still in France - herding cats ain't easy.

Why am I still in France and not tasting free beer in Prague? Well, last month's conferences in California has given me a conference overdose, from which I am still recovering. Also I have been speaking so much about the Address Book, that I really need to sit down, roll up my sleeves, and just work on it. I did try to write something on topic yesterday, relating the semantic web and NetBeans - since Prague is the center of NetBeans development. I hope that excuses me somewhat.

A list of on the spot updates to this meeting can be found on kiwi planet.

Tuesday Jun 24, 2008

Webifying Integrated Development Environments

IDEs should be browsers of code on a Read Write Web. A whole revolution in how to build code editors is I believe hidden in those words. So let's imagine it. Fiction anticipates reality.

Imagine your favorite IDE, a future version of NetBeans perhaps or IntelliJ, which would make downloading a new project as easy as dragging and dropping a project url onto your IDE. The project home page would point to a description of the location of the code, the dependencies of this project on other projects, described themselves via URL references, which themselves would be set up in a similar manner. Let's imagine further: instead of downloading all the code from CVS, think of every source code document as having a URL on the web. ( Subversion is in fact designed like this, so this is not so far fetched at all.) And let's imagine that NetBeans thinks about each software component primarily via this URL.
Since every piece of code and every library has a URL, the IDE would be able to use RESTful architectural principles of the web. A few key advantages of this are

  • Caching: web architecture is the ability to cache information on the network or locally without ambiguity. This is how your web browser works ( though it could work better ). To illustrate: once a day Google changes its banner image. Your browser and every browser on earth only fetches that picture once a day, even if you do 100 searches. Does Google serve one image to each browser? No! numerous caches (company, country, or other) cache that picture and send it to the browser without sending the request all the way to the search engine, reducing the load on their servers very significantly.
  • Universal names: since every resource has a URL, any resource can relate in one way or another to any other resource wherever it is located. This is what enables hypertext and what is enabling hyperdata.

Back to the IDE. So now that all code, all libraries, can be served up RESTfully in a Resource Oriented Architecture what does this mean to the IDE? Well a lot. Each may seem small, but together they pack a huge punch:
  • No need to download libraries twice: if you have been working on open source projects at all frequently you must have noticed how often the same libraries are found in each of the projects you have downloaded. Apache logging is a good example.
  • No need to download source code: it's on the web! You don't therefore need a local cache of code you have never looked at. Download what you need when you need it (and then cache it!): the Just in Time principle.
  • Describe things globally: Since you have universal identifiers you can now describe how source code relates to documentation, to people working on the code, or anything else in a global way, that will be valid for all. Just describe the resources. There's a framework around just for that, that is very easy to use with the right introduction.

The above advantages may seem rather insignificant. After all, real developers are tough. They use vi. (And I do). So why should they change? Well notice that they also use Adobe Air or Microsoft Silverlight. So productivity considerations do in fact play a very important factor in the software ecosystem.
Don't normal developers just work on a few pieces of code? Well speaking for myself here, I have 62 different projects in my /Users/hjs/Programming directory, and in each of these I often have a handful of project branches. As more and more code is open source, and owned and tested by different organizations, the number of projects available on the web will continue to explode, and due to the laziness principle the number of projects using code from other projects will grow further. Already whole operating systems consisting of many tens of thousands of different modules can be downloaded and compiled. The ones I have downloaded are just the ones I have had the patience to get. Usually this means jumping through a lot of hoops:

  1. I have to finding the web site of the code. And I may only have a jar name to go by. So Google helps. But that is a whole procedure in itself that should be unecessary. If you have an image in your browser you know where it is located by right-clicking over it and selecting the URL. Why not so with code?
  2. Then I have to browse a web page, which may not be written in my language, and find the repository of the source code
  3. Then I have to find the command line to download the source code, or the command in the IDE and also somehow guess which version number produced the jar I am using.
  4. Once downloaded, and this can take some time, I may have to find the build procedure. There are a few out there. Luckily ant and maven are catching on. But some of these files can be very complicated to understand.
  5. Then I have to link the source code on my local file system to the jar on my local file system my project is using. In NetBeans this is exceedingly tedious - sometimes I have found it to be close to impossible even. IntelliJ has a few little tricks to automate some of this, but it can be pretty nasty too, requiring jumping around different forms. Especially if a project has created a large number of little jar files.
  6. And then all that work is only valid for me. Because all references are to files on my local file system, they cannot be published. NetBeans is a huge pain here in that it often creates absolute file URLs in its properties files. By replacing them with relative urls one can get publish some of the results, but at the cost of copying every dependency into the local repository. And working out what is local and what is remote can take up a lot of time. It will work on my system, but not on someone else's.
  7. Once that project downloaded one may discover that it depends on yet another project, and so we have to go back to step 1.

So doing the above is currently causing me huge headaches even for very simple projects. As a result I do it a lot less often than I could, missing valuable opportunities as a result. Each time I download a project in order to access the sources to walk through my code and find a bug, or to test out a new component I have to do all that download rigmarole described above. If you have a deadline, this can be a killer.

So why do we have to tie together all the components on our local file system? This is because the IDE's are not referring to the resources with global identifiers. The owner of the junit project should say somewhere, in his doap file perhaps that:

 
   @prefix java: <http://java.net/ont/java#> . #made this up
   @prefix code: <http://todo.eg/#> .

   <http://project.eg/svn/lib/junit-4.0.jar> a java:Jar;
         code:builtFrom <http://junit.sourceforge.net/> .

   #what would be needed here needs to be worked out more carefully. The point is that we don't
   #at any point refer to any local file.

Because this future IDE we are imagining together will then know that it has stored a local copy of the jar somewhere on the local file system, and because it will know where it placed the local copy of the source code, it will know how the cached jar relates to the cached source code, as illustrated in the diagram above. So just as when you click on a link on your web browser you don't have to do any maintenance to find out where the images and html files are cached on your hard drive, and how one resource (you local copy of an image) relates to the web page, so we should not have to do any of this type of work in our Development Environment either.

From here many other things follow. A couple of years ago I showed how this could be used link source code to bugs, to create a distributed bug database. Recently I showed how one could use this to improve build scripts. Why even download a whole project if you are stepping through code? Why not just fetch the code that you need when you need it from the web? One HTTP GET at a time. The list of functional improvements is endless. I welcome you to list some that you come up with in the comments section below.

If you want to make a big impact in the IDE space, that will be the way to go.

Wednesday Jun 18, 2008

My Mail.app is unstable

Mail.app is getting to be a real pain to work with. This is the 4th time in 2 months that I have to spend over 4 hours debugging it. As of writing this I can longer send or receive mail!
It used to just crash, which was useful because I could use dtrace to find all the files it had opened and just remove the directories in Library/Mail where it had last looked at. I could then re-import those folders later.
Since the 10.5.3 update it no longer crashes. A week ago it just either spent a huge amount of time thinking, using up over 100% of the cpu (there are two cores so it can use up to %200), and then finally recovered, but I had time to study a few chapters of "Semantic Web for the Working Ontologist before that happened. Today it just consumed so much cpu that all other applications became irresponsive. I reniced Mail with

$ sudo renice -20 -p 16410  #where 16410 was the process id of Mail.app at the time
which made it possible to use my shell at least. Then it crashed.

I am clearly not the only one with this problem. Searching the web I found that

Mail.app is really a key application of OSX. If Apple can't get this right, or don't have enough resources to dedicate to this, would it perhaps help to Open Source Mail.app? At least some of us could hunt down the problem and give them a fix. Currently I am not sure what they are doing about this. I will try once more to fix it, but I am really really close to switching to something else...

2 hours later - Solved: I had a mail folder for an internal Sun apple mailing list. I had suspected that there was a problem here as it would crash when I opened that folder. So I went to /Users/hjs/Library/Mail/IMAP-hsXXXXX@mail.sun.net and moved the apple.imapbox to a temporary folder. I then started Mail and it fetched all the threads from the server again. Having the mail on a remote server helps a lot. For one it should make moving to another client a lot easier...

Could it be that I have too many e-mails? The following seems to suggest that I have 273 thousand.

hjs@bblfish:0$ cd Library/Mail
hjs@bblfish:0$ find . -name "*.emlx" | wc
 273761  322242 17719867
I have one gmail account, my personal imap server and sun work imap server if that helps...

Updates

It is 27 August now, and I have not had any serious crashes anymore. It could be that the last time I really cleaned up those broken folders. It could be luck...

Firefox 3 is out

Firefox 3.0 is out. It looks really, really good! Get it here! and help set a world record :-)

Blue Rays

Sixteen years ago, as I was studying philosophy in London on an empty budget, very close to living on the streets - off Kings Road, it is true, as I had decided that if I had to live in extreme poverty I would do so with style - I had one of these weird conversations around a fire with an Irish unemployed actor, and a number of other fellow travelers of fate. Reminded of the great Edinborough theater festival I decided on the spot I was going to go there. For some reason the actor I was talking to decided that I was not going to go. This surprised me somewhat. So I restated my desire to go. He doubted the seriousness of it again. How could he tell me what I was going to do, I blurted out. I had decided to go, so I would. I might have no money to go there, but I had no money to be here, so what was the difference? I had no serious appointments here, so what would stop me? "You just won't", he stubbornly affirmed. Angered by sheer nerve of his remark, but keeping my cool, I decided to come to a compromise with him. I would go but would fail twice to get there, I affirmed. The third attempt would be successful. The compromise was strange enough, that everyone around the fire nodded, and he had to accept.

Months passed and towards end of July 1992 I was reminded of the start of the festival. This was lucky as at the time I did not have any seriously way of taking notes or reminding myself of a date. Pieces of paper could all too easily get lost. And I did not have enough appointments to justify having an agenda, and if I did I could easily have missed looking at it. This was before the World Wide Web. Before internet cafes. Before widely available email. Before I even could afford a computer. All we had were libraries at the time and newspapers for sources of information. TVs also existed of course, but you had to know when to look, which was a whole skill in itself. And of course the type of TV we had access to was probably a black and white 13 inch set with poor reception. As far as books were concerned, I was reading Gareth Evans' The Varieties of Reference, and it was not there that I was going to find purely accidental information I needed.
So reminded of the start of the theater season, I decided to immediately get on my way. Early next morning, I walked to the train station bought myself a ticket with the little money I had, stepped on the train and was on my way. 45 minutes later I discovered that this was not the train to Edinburgh I was on, but some other one. So I got off in a rush and took the next train back to London. This time I made absolutely sure I was on the right train. I asked a number of people, sat down, and prepared to enjoy the journey. The train started and ran for a while. I was on my way! Then the train stopped, and turned back. Some engineering problem it seems. We had to take another train. Life is weird like that.

So as I stepped onto the third train I was reminded of my compromise many months before. I knew in my heart then that I was going to get there now. And off the train went. I had a mini magnetic go set, and taught a girl this oldest of all games along the way.
Of course arriving in Edinburgh I had absolutely no place to stay. Organizing a trip with the minimal budget I had would have been impossible at the time, and I certainly could not have afforded to rent anything there. Prices during the theater season were sky high. Many locals rent out their flats for the season, and use it to finance their holidays in warmer climates. I can't remember at what time I arrived, and how I would have slept the first night there. Perhaps on a bench somewhere, as usual...

The next morning I walked passed the film festival section. I entered and watched a couple of very nice young creators shorts. There was a session on a new digital projection technique called High Definition, which I attended. The quality of the image we were told was equivalent to that of film, after a film had been projected a few times. New film might be better, but it soon accumulates scratches, which digital film does not. And indeed if the speaker had not told me that the film we had just seen had been projected digitally I would not have known better. Pointing to the huge projector in the room he then explained in more detail what technology it required in layman's terms. I had no money. But I was sold. My first TV would be High Definition or nothing. As an undergraduate I had agreed with my conversation buddy Mark Pitt, that watching films at anything less than the quality they were designed for was sacrilege. Films shown on TV clearly were just shadows of their real self.

So to finish the Edinburgh story, that afternoon I got to speak to an attendee of the festival. Having told him that I just arrived from London, and questioning him about the difficulty of finding lodgings - I had seen some flats where thirty or so people were staying together, reeking of the sweet smell of decomposing garbage and unwashed socks - he agreed with me. His wife had not at all liked the apartment they had found initially he told me, so they had moved to another one. And now they did not know what to do with the original one, which they could not give back. I suggested I could look after it for them. He accepted, gave me the keys, and that is how I spent a whole festival season in a clean apartment, with a nice view all to myself.

16 years later, after the explosion of the internet onto the global scene, after DVDs came and never really quite worked, after the world wide web frenzy, and the dot com bust, after web2, after a High definition formats war, finally High Definition Television and their television sets have come to be affordable and worth investing it - another proof that innovation happens slowly. So for father's day my parents bought a High definition 40 inch flat panel screen, and I convinced them to replace the broken DVD drive with a new Blu-ray reader. We brought it back home, installed it, and watched Planet Earth ("Un Jour sur terre" in French) an extraordinary documentary about life on earth, with gorgeous scenes such as that of the Polar Bear, which starts with a close up of him walking on ice, the camera zooming back slowly, revealing the beauty of all the shades of polar snow, revealing the blue water through the cracking sheets of ice, revealing the many sheets of cracked ice separating slowly, the polar bear now just a spot on one of them, in one stunning image of the melting polar cap under the blue rays of the fading summer sun.

Saturday May 17, 2008

3 weeks of conferences and workshops in the Bay Area

I am in the Bay Area about to start my third week of conference/workshops with the combined themes of Java, identity, semantic web, and data portability.

The first week at JavaOne went very well. The Semantic Web Panel attracted way over 500 people by my guesstimate (no official figure yet), and Dean Allemang's talk "Semantic Web for the working Ontologist", that took place on the last day attracted well over three hundred attendees. My BOF, happened late at night at the same time as a big party, and only attracted 30 or so attendees. But on the whole JavaOne proved a great success.

Speaking to members of the liberty group at Sun, I discovered the existence of the Internet Identity Workshop in Mountain View, and decided this would be a good opportunity to learn more about this space. This was a very good use of my time, as it helped me get more familiar with many of the problems and technologies in this space. I put forward some of the ideas I had been discussing here relating the semantic web and distributed web of trust ideas using OpenId and foaf+ssl, which seemed to hold up quite well under the close scrutiny of the community. A few fun conversations with Eve Maler (aka xmlgrrl) on the relations between the semantic web and XML nicely spiced up the evenings :-)

That workshop was closely followed by a one day Data Sharing Summit, addressing issues raised by the Data Portability group, which I have been following relatively closely. This one day session was very helpful for my understanding of the types of problems that need solving. An ontology for what can be done with information in a foaf file would indeed be very helpful. This would have to allow one to specify in simple terms what relations could be republished or which ones should not be.

So next on the list is the Semantic Technology Conference in San Jose, which will bring all these threads together. For more on that see see my post on the Semantic Tech highlights.

Social Networks and Data Portability at Semantic Tech conference in San Jose

The upcoming semantic conference in San Jose, is getting going tomorrow, with an excellent list of speakers and subjects. Here are some highlights of the sessions relating to topics on which I blog regularly.

Many more interesting talks will make sure I will spend another packed week. The full program is available online.

Wednesday May 07, 2008

Three Semantic Web talks at JavaOne 2008

Following on the success last year, JavaOne 2008 has lined up three talks on the Semantic Web, a 200% increase. The program should be an excellent way for Java enthusiasts to get a feel for how the Semantic Web is getting used in real application making money for real start ups, how to develop such apps in Java, how to build open social networks that bridge the social networking data silos, and with the help of Dean Allemang cover some theoretical grounds from a practical perspective .

Here is the timetable of the sessions at JavaOne. Highlighted in green are the three semantic web sessions. Highlighted in gray are 4 of the 5 sessions on Google's Open Social API, which reveals the importance social networks are taking in development. I don't think though that that API solves the real problem of current social networks: The Data silo problem. Only Semantic Web technologies can do that.

JavaOne Semantic Sessions Time Table

Below are the details of the sessions in tabular format. I believe they should complement each other very well.

Session Title: Developing Semantic Web Applications on the Java™ Platform
Session Time: Thursday - 05/08/2008 - 1:30 PM-2:30 PM
Session ID: PAN-5542
Session Description: The semantic web is nearing the point of widespread practical adoption:

• The core specifications have stabilized.
• Tools and frameworks implementing key features have been through several development cycles (for a listing see http://esw.w3.org/topic/SemanticWebTools).
• An increasing number of major software companies have developed semantically enabled products or are actively researching the space.

As companies start to translate theory into real Java™ technology-based applications, they are confronted with a host of practical software engineering issues:

• What is the standard or recommended functional architecture of a semantic application?
• How does that architecture relate to the semantic web standards?
• Which of those standards are stable, and which can be expected to evolve in ways that would significantly affect prior applications?
• What types of tools/frameworks exist that can be leveraged to help implement semantic applications on the Java platform?
• How mature are the various categories of semantic web tools/frameworks?
• Can API standardization be expected for certain tool/framework categories?
• What best practices exist for the design and implementation of Java technology-based semantic applications?
• What best practices exist for the deployment of Java technology-based semantic applications?
• What future trends in Java platform support for semantic application development can be expected?

This panel session gathers together semantics experts from the software industry to address these and other practical issues relating to the development of semantic applications on the Java platform.

Track: Next Generation Web
Session Type: Panel Session
Duration: 60 minutes
Speaker(s): Jans Aasman, Franz Inc; Dean Allemang, TopQuadrant Inc. ; Brian Sletten, Zepheira, LLC; Henry Story, Sun Microsystems, Inc.; Lew Tucker, Radar Networks

Session Title: Beatnik: Building an Open Social Network Browser
Session Time: Thursday - 05/08/2008 - 7:30 PM-8:20 PM
Session ID: BOF-5911
Session Description: The recent growth of social networking sites is revealing the limits of the current ad hoc data architecture used by Web 2.0 sites. A typical example is that you cannot link to a person in a Facebook account from a LinkedIn account. What is needed to solve these problems is hyperdata, the ability to link data universally.

Hyperdata is to data what hypertext is to text. Where hypertext enables text to link up to other text, hyperdata enables data to link up to other data globally. Where HTML enables open, distributed hypertext, the semantic web enables open, distributed hyperdata. Anybody can publish data that then becomes reachable by any tool crawling the web of relations.

To illustrate the power of hyperdata, this session presents Beatnik, a social network browser and editor written entirely in the Java™ programming language that consumes any of the millions of available friend-of-a-friend (FOAF) files already published on the web and enables users to publish information about themselves and their own social network. It shows how you can drag and drop a FOAF URL onto Beatnik and start exploring a web of relations and find up-to-date information about where your friends live, who their friends are, and where people are currently located. With a click of a button, Beatnik will publish all your own relations to your web server in a nonintrusive way to make you part of the first globally available open social network.

After a quick overview of the semantic web and FOAF, the presentation takes a detailed look at how the Beatnik client is built. This involves digging into one of the many Java technology-based semantic web frameworks, such as Sesame, and its APIs; a Java-platform-to-RDF mapper, such as so(m)mer or Elmo; and how this enables inferencing on the Java platform.

On the server side, the presentation looks at how you can easily publish the contents of an LDAP database into any of the numerous RDF formats using JSR 311, the Java API for RESTful Web Services. It also covers the use of the Atom Publishing Protocol as a publication mechanism and discusses various security techniques for limiting the view of a personal graph of information by using OpenID and distributed-web-of-trust techniques.

Track: Cool Stuff, Cool Desktop; Cool Stuff, Cool Next Gen Web; Open Source, Open Source Next Gen Web; Cool Stuff; Desktop; Next Generation Web; Open Source
Session Type: Birds-of-a-Feather Session (BOF)
Duration: 50 minutes
Speaker(s): Tim Boudreau, Sun Microsystems, Inc.; Henry Story, Sun Microsystems, Inc.

Session Title: Semantic Web for the Working Ontologist
Session Time: Friday 05/09/2008 - 1:30 PM-2:30 PM
Session ID: TS-5555
Session Description: This session presents the basics of practical semantic web deployment using standards-based tools on the Java™ platform. It covers the Resource Description Framework (RDF) as the fundamental mashup language of the web; SPARQL, the query language for RDF; and RDFS and OWL, which provide simple inferencing capabilities.

In the distributed world of the web, information is moving from a hypertext paradigm to a hyperdata paradigm--the web today is not just a web of documents but also a web of data. But that data is available on the web and in the enterprise in a wide variety of forms: HTML, XML, RSS, spreadsheets, databases, and so on. RDF provides a uniform way to identify information in a distributed setting to form a web of data.

The session demonstrates a Java technology-based platform (built on Eclipse) that uses RDF as an interlingua for merging information from multiple web sources. Java technology plays a key role in the success of the system in several ways. First, it uses the large variety of public domain semantic web software available on the Java platform as the basis of interoperability at the API level. Second, it uses the Eclipse framework as a visual editing environment for the ontologies. Finally, it uses the modularity of the Eclipse plug-in environment to enable a sort of plug-and-play architecture among semantic components.

One of the basic ideas of the semantic web is that semantic models, or “ontologies,” can be used to describe how data fits together. In the context of the web of hyperdata, an ontology can describe how data in one source relates to data from another, or even which sources of data should be merged to answer a particular question or support a particular application. The idea is that, armed with these tools, a working ontologist can describe hyperdata applications without resorting to a general-purpose programming language.

TopQuadrant has used these standards to construct a workbench for building semantic applications. Semantic mashups can be built by use of RDFS and OWL. TopQuadrant has also developed a visual flow editor for describing how distributed data can be merged in novel ways; it calls this editor SPARQLMotion, because it extends the standard query language SPARQL with intuitive information flow diagrams modeled in OWL. SPARQLMotion modules can be connected with a simple point-and-click interface to create novel arrangements.

Track: Next Generation Web
Session Type: Technical Session
Duration: 60 minutes
Speaker(s): Dean Allemang, TopQuadrant Inc.

BOF-5911: Building a Web 3.0 Address Book

To give everyone a chance to try out the So(m)mer Address Book, I have made it available via Java Web Start: just click on the picture to the right, and try it out.

The Address Book is currently demoware: it shows how one can build virally an open distributed social network client that solves the social network data silo problem (video). No need to have an account on every social networking site on which you have friends, and so maintain your data on each one. You can simply belong to one network and link to all your friends wherever they are. With one click of a button you can publish your social network to your own web server, using ftp, scp, WebDAV, or even Atom. You can then link to other people who have (or not in fact), a foaf file. By pressing the space bar when selecting a friend, the Address Book with then GET their file. So you can browse your social network.

To get going you can explore my social network by dragging my foaf file icon onto the first pane of the application.

In BOF-5911 which I will be presenting on Thursday at 7:30pm I will be presenting the social networking problem, demonstrating how the So(m)mer Address Book solves it, and showing in detail how it is build, what the problems are, and what work remains. I will also discuss how this can be used to create global single sign on based on a network of trust.

Tuesday Apr 22, 2008

history meme

For an hour or so I managed to forget that I had a lot of work to do. Catching up with my unread posts on my blogroll, I came across Tim Bray's History Meme post, and decided to try it out. So here are my results:

hjs@bblfish:0$ history | tr -s ' ' | cut -d ' ' -f 3 | sort | uniq -c | sort -rn | head -n 10
  115	ls 
   65	cd 
   60	ant
   42	vi 
   42	less 
   20	fg 
   17	cwm 
   15	svn 
   14	pwd 
    9	top 

ant is of course the build tool I use. I once laughed at the unintuitiveness of vi, but I later discovered it stands for virus - you just can't stop using it. cwm is the semantic web swiss army knife written in python: incredibly useful for every day semantic web hacking. And svn is the subversion command line client: I love subversion. When coding of course I spend a lot of time in either IntelliJ or NetBeans, depending on the day.

I have a number of other shells open, and the same commands tend to appear in them. Often the unix find command does. So I thought I'd try seeing what I get when I enlarge the list:

hjs@bblfish:0$ history | tr -s ' ' | cut -d ' ' -f 3 | sort | uniq -c | sort -rn | head -n 20
 113 ls
  55 vi
  54 cd
  36 less
  36 ant
  21 cwm
  20 fg
  16 pwd
  12 svn
   9 top
   9 find
   9 exit
   8 ping
   7 ssh
   7 killall
   7 defaults
   7 curl
   7 bc
   6 bzcat
   5 fink

Search

Flickr Diary

www.flickr.com
This is a Flickr badge showing public photos from bblfish. Make your own badge here.

Recent Entries