Monthly Archives: May 2008

Master of Data and Web Engineering

It’s official now: From the next term on, Chemnitz University of Technology offers a Master of Data and Web Engineering. Interested in it? Get the English flyer. There is also a verbose German description available. Why this is cool? Because you can study and learn with one of the founders of the Web Engineering community. If you are interested in this topic read the first paper in the first issue of the Journal of Web Engineering from 2002. Definitely a step forward for this research area.

Master of Data and Web Engineering

RSS for CRUD Events

With the last update on the WebComposition/DGS, we now provide RSS feeds for CRUD events. Therefore, the Meta-URI /meta is extended by the additional path segments /meta/crud, /meta/crud and /meta/crud/rss. The Meta-URI /meta/crud can be extended to /meta/crud/create, /meta/crud/read, /meta/crud/update and /meta/crud/delete. Each URI points to a certain set of events. The event URIs in form of http://www.example.org/meta/crud/abab1c07-9262-4e6a-9f52-3dc497ef92f1 point directly to the RDF of the corresponding event.

CRUD Event RSS Feed

Following this HTTP-URI will lead directly to corresponding description of the events as seen below. Therefore, we take care of our carefully chosen URI concept within the WebComposition/DGS approach.

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:meta="http://www.webcomposition.net/2008/02/dgs/meta/"
         xmlns:ns="http://purl.org/dc/elements/1.1/"
         xmlns:crud="http://www.webcomposition.net/2008/02/dgs/crud#">
    <rdf:Description rdf:about="http://www.foo.bar/DataGridService">
        <meta:event>
            <rdf:Description rdf:about="http://www.foo.bar/DataGridService/meta/crud/abab1c07-9262-4e6a-9f52-3dc497ef92f1">
                <ns:date>2008-05-15T19:20:13.7+02:00</ns:date>
                <ns:creator />
                <crud:read rdf:resource="http://www.foo.bar/DataGridService/foobar" />
            </rdf:Description>
        </meta:event>
    </rdf:Description>
</rdf:RDF>

A more visual depiction of the event can looks like below. Following the RDF data you are pointed to the resource that was affected by the event.

CRUD Events

<pre>

&lt;rdf:RDF xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot;
xmlns:meta=&quot;http://www.webcomposition.net/2008/02/dgs/meta/&quot;
xmlns:ns=&quot;http://purl.org/dc/elements/1.1/&quot;
xmlns:crud=&quot;http://www.webcomposition.net/2008/02/dgs/crud#&quot;&gt;
&lt;rdf:Description rdf:about=&quot;http://www.foo.bar/DataGridService&quot;&gt;
&lt;meta:event&gt;
&lt;rdf:Description rdf:about=&quot;http://www.foo.bar/DataGridService/meta/crud/abab1c07-9262-4e6a-9f52-3dc497ef92f1&quot;&gt;
&lt;ns:date&gt;2008-05-15T19:20:13.7+02:00&lt;/ns:date&gt;
&lt;ns:creator /&gt;
&lt;crud:read rdf:resource=&quot;http://www.foo.bar/DataGridService/foobar&quot; /&gt;
&lt;/rdf:Description&gt;
&lt;/meta:event&gt;
&lt;/rdf:Description&gt;
&lt;/rdf:RDF&gt;

</pre>

Twhirling

The careful observer realized that I am using Twitter for microblogging for a while. I tried a couple of tools such as Twadget for the Vista sidebar. I created also some Jabber account to post using the IM feature of Twitter. Jabber doesn’t work for me since I can’t connect to the server from within corporate network. The tool I finally ended up with is Twhirl. I haven’t found any time to play with all the features. It is based on Adobe’s ARI runs quite smooth and makes it a lot more fun to twitter. Only fact I am disappointed about is the footprint of almost 30 MB. Anyway, the tool is worth a look if you are using Twitter especially since it is also available for Mac OSX. Go and try it and follow me.

Twihrl Screenshot

Free/Busy Times via Office Online

To keep updated, I am just starting publishing my free/busy times to Office Online. First of all, register with Office Online, this shouldn’t take that long if you have already a Windows Live account.

Select Calendar

Open Outlook and chose the calendar you want to publish by right-clicking it in the task pane.

Publish to Office Online

Now select ‘Publish to Internet’ and then ‘Publish to Office Online…’. After doing some registration you can finally choose the options for publishing the calendar.

Publishing Calendar Options

We are going to choose the granularity of details we want to publish. In my case I choose the  ‘Availability only’ option.

Availability Option

Then I am going to allow everybody to see these availability times. If you are going to publish more details, you might want to consider to share your calendar only with invited users.

Permissions Options

At the end I am going to check the ‘Advanced Options’.

Advanced Options

In this case, I am fine with the automatic uploads. After confirming, the initial upload is performed. In the task pane you’ll now find another icon for your calendar indicating that it is shared.

New Icon for Calendar

Finally, my free/busy times are now available.

WebComposition/DGS Update

After some discussion about the WebComposition/DGS configuration this week, we changed the usage of schema validation with the Web.config file. The validation scope is now not bound anymore to data adapters directly. Rather we introduced a default validation defined in the Web.config such as

 <webComposition> <dataGridService> <defaultValidationscope="None"/> ...

Valid values are ‘None’, ‘List’ and ‘Element’.This schema scope represents the default schema validation scope whenever an information store is created and data is added. If set to ‘None’ no validation is performed at all. Using ‘Element’ the added XML is validated against the schema (a-priori validation) before the element is added to the information store while the usage of ‘List’ causes the data to be validated against the schema after being added to the information store (a posteriori validation).

The settings can be easily overwritten by using RDF meta data e.g. when using the N3 filter on a information store http://www.foo.bar/myStore:

<http://www.foo.bar/myStore>
http://www.webcomposition.net/2008/02/dgs/meta/validation
"Element".

That way, the default value can be always adapted to the specific need for a single information store.

GPL as a Business Model

How stupid I was: while dealing with licenses for years, Dirk Riehle finally gave me a reality check. In an interview with Software Engineering Radio he told about his recent work at SAP and his experience and research with open source business models. Exaggerating I say: GPL is great, because GPL is the most capitalistic license you can think of.

As Dirk explained in the podcast the whole dual licensing model is build up on GPL. You sell your product but you also want to be pseudo open source. Then you open source using the GPL. All your competitors can read your code, extend the code, but then have to release everything under the GPL again. So there is no no benefit for your competitor. If customer’s or competitors want to extend your code they have to purchase the second license you have.

Personally, I prefer either closed source or quite permissive licenses (FreeBSD, MsPL etc). If yo are going to give your code away, do it right. If you want to build a business on your code base – keep it closed. So I always was quite careful about not reading GPL code or even worse, copying code snippets into your code base that might be under GPL.

Since yesterday however, I really have a different view on the whole topic: If you are open sourcing  a commercial open source project and you perform dual licensing, GPL is used as a pure instrument for your business methods. If you open source  a community project under GPL you probably have not understood the concepts at all.

Also interesting in this podcast was the facts about shifting revenues. So, licensing is a tool used for shifting revenues among various business areas. If you are selling a database you are probably interested, that all operating systems are free of charge, so the customer has more money left to pay your product and your service. If you are some company similar to SAP, you are probably interested in all operating systems and databases are being for free: Consequently, the customer has more money left to spend on your product and services. If you selling your operating system you are for sure interested in having all programs running on top of your system are for free. That way, the customer has more money left to spend on your operating system and the services.

The next time you read about some company switching from Windows to Linux the question is not about saving money on licenses. At the end, I personally don’t thing that the corresponding IT budget will be cut down due to the saved licensing fees. I rather think the budget is shifted to some other area.

I just realized I was focused on the GPL from the view of a developer for too long. If you feel the same, I highly recommend the interview with Dirk.