WebService specifications and overviews
April 17th, 2007Overviews
* WS specs: www.oio.de/public/xml/web-service-specifications.htm
* reliable messaging: www.ibm.com/developerworks/library/specification/ws-rm/
* WS security: www-128.ibm.com/developerworks/library/specification/ws-secure/
* which WSDL style should I use? www-128.ibm.com/developerworks/webservices/library/ws-whichwsdl/
* WS transactions: www-128.ibm.com/developerworks/library/specification/ws-tx/
Specifications
* WSDL 1.1: www.w3.org/TR/wsdl
* reliable messaging: www.ibm.com/developerworks/library/specification/ws-rm/
* WS-I basic profile: www.ws-i.org/deliverables/Default.aspx
* SOAP
Critical Voices
* www.tbray.org/ongoing/When/200x/2004/09/18/WS-Oppo
* www.tbray.org/ongoing/When/200x/2006/04/17/SOA-or-not
Resource Identifiers and GUIDs
April 17th, 2007I recently came across some pretty good documents about URIs that adress pretty much all of the commonly asked for needs, i.e. persistence and resolvability of identifiers. They all seem to prefer plain HTTP to new protocol schemes and URNs like LSIDs.
(1) http://www.dfki.uni-kl.de/dfkidok/publications/TM/07/01/tm-07-01.pdf
“Cool URIs for the Semantic Web” by Leo Sauermann DFKI GmbH, Richard Cyganiak Freie Universität Berlin (D2R author), Max Völkel FZI Karlsruhe The authors of this document come from the semantic web community and discuss what kind of URIs should be used for RDF resources.
(2) http://www.w3.org/2001/tag/doc/URNsAndRegistries-50
This one here is written by the W3C and addresses the questions “When should URNs or URIs with novel URI schemes be used to name information resources for the Web?” The answers given are “Rarely if ever” and “Probably not”. Common arguments in favor of such novel naming schemas are examined, and their properties compared with those of the existing http: URI scheme.
(3) http://wiki.neurocommons.org/CommonNaming
Which is being proposed by:
(4) http://sciencecommons.org/resources/faq/sciencecommons.html
Using BitTorrent as a persistent storage space?
November 27th, 2006This is an old idea of mine, but I never took time to think about in detail. Persistence of documents on the web. For many applications it is desirable to reference external data, but not store it locally. Publications in journal are a frequent candidate for example. But what are the best mechanisms to provide persistence over large time periods?
Starting with simple URLs we all have experienced the opposite: 404, dead links. This is something very common even after short periods of time. Even though I am a big fan of URLs and I don’t think they need to be so fragile (see e.g Tim Berner Lee or PURLs), URNs like DOIs or LSIDs seem to provide more flexibility in staying alive over long time periods.
Something completely different I had in mind is trying to use peer to peer a infrastructure to ensure there is always a minimum number of copies around in the net. Can’t the bittorrent network for example be used as a gigantic decentralised storage space? The only thing that needs to be done is to ensure there is always at least 1 seed (=full copy) for every file. It wouldnt be hard to write a BT client that scans the number of seeds per file and once it detects a file which has less seeds than a certain minimum, lets say 10 seeds, it downloads this file and shares it too. So even if you take out some BT nodes completely, others will take over and the “BT persistence” software will balance out the seeders to guarantee a file never gets lost. This actually sounds a lot like GRID to me - maybe they have implemented something like this already?
The system should not only be failsafe in case some servers go down forever, but it also distributes load and directs clients to nearby copies, even if they are not full copies.
I have been stumbling over a bibliographic reference manager tool that had build in P2P capabilities. But P2P was used as a means to share ones personal reference collection, not to store filkes “eternally”. I cant remember its name anymore. I will update this post later.
Well, what are potential downsides? Maybe this idea causes too much traffic and essentially we would still need commitments from institutions to run those specialised BT client machines. But it would be very little management involved in this nicely decentralised architecture. If the average seed number per file drops over time, all you need to do is buy some more servers and plug them into the network. No need to create and maintain index databases, URL translations, DOIs or any large central facility.
If organisations, publishers, companies or individuals would still like to keep a full copy of all files of, for example their own journal, this works seemlessly with a P2P system too. They just wouldnt run the special “balancing” P2P client, but a regular one.
The other big issue would probably be copyright and security. The system would be great for open access. But if access should be restricted, one can still encrypt the file and any user would need the password/key to decrypt it. Even files with lost passwords could continue to be shared until there comes a time in the future when there is a way to break that cipher.
There must be a way to limit the shared documents to certain types and origin though. Otherwise the servers meant to ensure persistence would be immediately used to share mp3s, movies or whatever else. I am not sure if this can be done with a (managed=central?) specialised BT tracker?
Anyway, this post is nothing more than an inspiration or sketch yet.
Any comments very welcome though!
Markus
PyWrapper 3.0 released
November 27th, 2006The first full TAPIR 1.0 PyWrapper is finally released with BioMoby support and a graphical configuration web-interface: www.pywrapper.org
switch iTunes library
November 24th, 2006For all notebook owners comes the time when their iTunes library needs to live on a separate external drive. But when travelling you would still like to have some of your music with you when your external drive is not around. So I started to manage 2 separate libraries, a small local one and the real big thing.
There is shareware around that lets you switch your libraries, but I found the easiest way to do this is to create 2 symbolic links called iTunes-internal and iTunes-external in your home Music folder that point to the 2 respective libraries. Then all I need to do to switch between the two is to create a new symbolic link called iTunes (thats what iTunes reads) and point it to the internal or external link.
After doing this manually for a while I grew tired and wrote a little shell script that switches from one to the other. It was done pretty fast, so I am sure there are million ways of doing it more elegant, but this script works nicely. Everyone who likes to give it a try, here it is:
#!/bin/sh
LIB="`ls -l ~/Music | grep -i '\->.*Music/iTunes' | sed 's/^.*iTunes-//g'`"
if [ "$LIB" == "internal" ]
then
rm ~/Music/iTunes
ln -s ~/Music/iTunes-external ~/Music/iTunes
echo "External lib is being used"
else
rm ~/Music/iTunes
ln -s ~/Music/iTunes-internal ~/Music/iTunes
echo "Internal lib is being used"
fi
If you give the script the .command suffix (for example swapItunesLib.command) you can execute it from your desktop straight away.
Rod Page going Lessig style
November 21st, 2006When reading Rod Page’s iSpecies blog I stumbled across his well done Lessig style presentation:
ispecies.blogspot.com/2006/01/google-yahoo-and-death-of-taxonomy.html
Interesting thoughts on doing peer-reviews via google style page-ranking and on experts vs community efforts.
kid installation help
September 3rd, 2006kid is a nice simple XML/HTML templating system for python. The version 0.9.3 has some problems and doesnt install out of the box. Here’s the trick to make it work. Ill be using kid 0.9.3 on Mac OS X, but it should be the same for all operating systems.
Download the latest kid archive, at the time of writing 0.9.3.
Now lets extract the kid archive, cd into it and do the standard python installation. You should see this:
cd kid-0.9.3
sudo python setup.py install
...
urllib2.HTTPError: HTTP Error 404: Not Found
Kid 0.9.3 still uses an old version of the setuptools bootstrap script ‘’ez_setup.py'’. This script tries to download some python eggs from URLs that dont exist anymore. To get around this simply replace the ez_setup.py script in the kid folder with the new version of it. Then do the standard installation again:
rm ez_setup.py
curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python setup.py install
This should be all there is to do. In case ElementTree was not existing on your system yet, it will be installed as a python egg as well.
libxml2 libxslt on Mac OS X Tiger
August 27th, 2006libxml2 and libxslt is part of Mac OS X Tiger. Its a bit outdated, but working alright. The easiest way of getting libxml2 to work with python therefore is to just use the existing libxml2 software and add python bindings to it. For details see this link or the copied paragraph at the end of this post:
www.vandervossen.net/2005/11/adding_the_libxml2_and_libxslt_python_bindings_to_tiger
The home of the python xslt bindings:
xmlsoft.org/XSLT/python.html
If you want to install the latest version of libxml2 including the python bindings there is a guideline here:
jamesclarke.info/notes/libxml2
HOWTO INSTALL PYTHON LIBXML2 BINDINGS ON OS X
—
Mac OS X 10.4 Tiger comes with Python, libxml2 and libxslt installed by default, but there are no bindings for using libxml2 and libxslt from Python. If you have the developer tools installed, it’s not that hard to add these.
Compile and install the python module of libxml version 2.6.16 using:
curl -O ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/libxml2-2.6.16.tar.gz
tar xvfz libxml2-2.6.16.tar.gz
cd libxml2-2.6.16/python
python setup.py build
python setup.py install
cd ../../
Compile and install the python module of libxslt version 1.1.11 using:
curl -O ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1/libxslt-1.1.11.tar.gz
tar xvfz libxslt-1.1.11.tar.gz
cd libxslt-1.1.11/
./configure --with-python=/System/Library/Frameworks/Python.framework/Versions/2.3/
make
cd python
cp libx*.py /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/
cp .libs/libxsltmod.so /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/
cd ../../
python in firefox?
July 31st, 2006www.microshare.net/weblog/?p=26
Lessig Style Presentations
July 31st, 2006After watching the beautiful and entertaining presentations from Dick Hardt about Identity2.0 I had to find out more about the origins of this style. Its based on Lawrence Lessig, lawprofessor at Stanford. Lessig’s presentation style, sometimes called the “Lessig Method”, often contains just a single word, short quote, or a photo.
Dick Hardt:
Lawrence Lessig:
- L.Lessigs Blog & Bio
- Presentation Zen, Blog on Lessigs “method”
- Free Culture, an example presentation for Lessig Style