<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="http://www.matsblog.com/rss2html.xsl" type="text/xsl"?>
<rdf:RDF 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/"
> 

  <channel rdf:about="http://www.matsblog.com/">
    <title>Mat&apos;s Blog : topic:Twoday Dev</title>
    <link>http://www.matsblog.com/</link>
    <description></description>
    <dc:publisher>matthias</dc:publisher>
    <dc:creator>matthias</dc:creator>
    <dc:date>2007-05-18T21:16:33Z</dc:date>
    <dc:language>en</dc:language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T00:00:00Z</sy:updateBase>
    <cc:license rdf:resource="http://creativecommons.org/licenses/by/2.0/" />

    <image rdf:resource="http://static.twoday.net/matsblog/images/icon.jpg" />
    <items>
      <rdf:Seq>
            <rdf:li rdf:resource="http://www.matsblog.com/stories/1819071/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/1407576/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/1401312/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/1273454/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/1267394/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/875274/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/652687/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/632824/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/544172/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/524216/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/506367/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/502929/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/496455/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/496349/" />
            <rdf:li rdf:resource="http://www.matsblog.com/stories/493006/" />

      </rdf:Seq>
    </items>
  </channel>

  <image rdf:about="http://static.twoday.net/matsblog/images/icon.jpg">
    <title>Mat&apos;s Blog</title>
    <url>http://static.twoday.net/matsblog/images/icon.jpg</url>
    <link>http://www.matsblog.com/</link>
  </image>

  <item rdf:about="http://www.matsblog.com/stories/1819071/">
    <title>We are back</title>
    <link>http://www.matsblog.com/stories/1819071/</link>
    <description>Gerade einer twoday Userin versucht zu erklären, was wir in den letzten Tagen versucht haben um &lt;a href=&quot;http://info.twoday.net/stories/1817712/&quot;&gt;die Probleme&lt;/a&gt; zu beheben. Also so wars:&lt;br /&gt;
&lt;br /&gt;
Alles begann damit, dass &lt;a href=&quot;http://www.twoday.net&quot;&gt;der Patient&lt;/a&gt; den langen Winter nicht so gut vertragen hat und über eine ständig rinnende Nase und zeitweise Hustenanfälle klagte. Wir habe es einmal mit schwachen Mitteln, Vitaminen und Homäopathie versucht. Konkret wurde die Datenbank optimiert.&lt;br /&gt;
&lt;br /&gt;
In der letzten Woche lag unser Patient dann jedoch endgültig darnieder, und konnte nicht zur Arbeit kommen. Die Bettruhe war jedoch wie immer zu kurz und schon am nächsten Tag ging es ein bisschen besser ohne die Krankheit jedoch wirklich geheilt zu haben. So ist das nun mal wenn man krank ist, aber nicht krank sein will.&lt;br /&gt;
&lt;br /&gt;
Am Wochenende, obwohl der Arbeitsstress eigentlich nachgelassen hatte, wurde es immer schlimmer. Kopfweh, Hustenanfälle bis zum Totalverlust der Stimme. Hilft nichts - am Montag am Abend gings zum Doktor. Vitamine waren zu wenig, also wurden alle möglichen anderen Medikamente hinterhergeschoben. Diesmal die richtigen Hämmer, alles was man halt so bei Grippe bekommt. Wie das mit Medikamenten jedoch so ist, muß man immer erst ein bisschen warten bis die Wirkung eintritt und man feststellt obs was geholfen hat. Also mit dem Patienten ab ins Bett und hoffen, dass es besser wird.&lt;br /&gt;
&lt;br /&gt;
Am nächsten Morgen aufgewacht. Die Stimme war wieder da, der Pateient fühlte sich schon viel besser drei mal im Zimmer im Kreis gedreht, in die Küche einen Tee kochen - ach vor dem Fernseher ist es doch viel netter als im Bett. Autsch - war wohl doch nichts - die Schmerzen werden wieder schlimmer und unser Patient musste zurück ins Bett. Mehr Medikamente hinterher und weiter hoffen.&lt;br /&gt;
&lt;br /&gt;
Nachdem auch nach der zweiten Nacht (&lt;a href=&quot;http://www.kinderarzt-moedling.at/Artikel/Fieber.htm&quot;&gt;Essigpatscherln&lt;/a&gt; inklusive) sich die Lage nicht besserte gabs nur noch eine Möglichkeit: &lt;b&gt;Ab ins Spital&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Dort wurden die &lt;a href=&quot;http://www.knallgrau.at/team&quot;&gt;besten Ärzte&lt;/a&gt; versammelt die aufzubieten waren und die Krankengeschichte wurde noch mals detailliert analysiert. Hierbei kam heraus, dass die Probleme nicht erst letzte Woche begannen, sondern sich langsam aufgeschaukelt haben. Der viele Stress und das kalte Wetter waren einfach zu viel. Der Entschluß stand fest: Antibiotika und morgen den OP reservieren. Mehr RAM muß her.&lt;br /&gt;
&lt;br /&gt;
Also da liegt er nun unser Patient. Vom Antibitotika am Leben erhalten auf die endgültige Heilung wartend. Die Spender RAM sind schon aus &lt;a href=&quot;http://www.thomas-krenn.de&quot;&gt;Deutschland&lt;/a&gt; unterwegs und dem Patienten wurde Ruhe verordnet. Suchen darf er in der Zwischenzeit nicht - will er auch gar nicht - hauptsache wieder gesund werden.&lt;br /&gt;
&lt;br /&gt;
Und &lt;a href=&quot;http://michi.knallgrau.at/blog&quot;&gt;der Arzt&lt;/a&gt; denkt sich: &quot;Ich geh&apos; mich jetzt ansaufen&quot; - und in meinem nächsten Leben werde ich Lokomotivführer bei der &lt;a href=&quot;http://www.oebb.at&quot;&gt;ÖBB&lt;/a&gt;, so wie man sich das als Kind gewünscht hat.</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2006 matthias</dc:rights>
    <dc:date>2006-04-12T10:05:00Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/1407576/">
    <title>Browser Share on Twoday.net (Jan 06)</title>
    <link>http://www.matsblog.com/stories/1407576/</link>
    <description>&lt;pre&gt;&lt;code&gt;MSIE      58.8 %
Firefox   26.8 %
Safari     3.2 %
Opera      2.7 %
Mozilla    2.5 %
Netscape   1.9 %
Unknown  3.1 %
&lt;/code&gt;&lt;/pre&gt;

compared to &lt;a href=&quot;http://www.matsblog.com/stories/875274/&quot;&gt;twoday July 2005&lt;/a&gt;
&lt;pre&gt;&lt;code&gt;MSIE -2,9%
Firefox +3.3%
Unknown +1.2%
Safari -0.2%
&lt;/code&gt;&lt;/pre&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2006 matthias</dc:rights>
    <dc:date>2006-01-13T12:47:06Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/1401312/">
    <title>Where is twoday going?</title>
    <link>http://www.matsblog.com/stories/1401312/</link>
    <description>&lt;p&gt;
With this posting i want to response to some discussions at &lt;a href=&quot;http://helma.org/pipermail/antville-dev/&quot;&gt;antville-dev&lt;/a&gt; concerning some thoughts from &lt;a href=&quot;http://blog.p3k.org/stories/4054/&quot;&gt;tobi&lt;/a&gt; and our announcment from &lt;a href=&quot;http://michi.knallgrau.at/blog/stories/1315871/&quot;&gt;michi&lt;/a&gt; and bring in my thoughts about the future development of twoday.
&lt;/p&gt;
&lt;p&gt;
The current &lt;a href=&quot;http://www.twoday.org&quot;&gt;release of twoday&lt;/a&gt; is based on the state of the twoday software as we use it on &lt;a href=&quot;http://www.twoday.net&quot;&gt;twoday.net&lt;/a&gt; and some &lt;a href=&quot;http://twoday.tuwien.ac.at&quot;&gt;other&lt;/a&gt; &lt;a href=&quot;http://preview.blick.ch/sonntagsblick/weblogs&quot;&gt;projects&lt;/a&gt;. This is stable and proofen software, and for everybody the right choice for intranets, small commuities and everything where there is more than 1 blogger involved. But the world doesn&apos;t stand still and the discussion what blogging software is about is ongoing.
&lt;/p&gt;
&lt;p&gt;
In the past we tried to be as close to the antville codebase as possible - just to make it possible to merge our development back to antville &lt;sup&gt;[&lt;a href=&quot;#1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;. And so we just had the same problems and needs as Tobi lists them in his &lt;a href=&quot;http://blog.p3k.org/stories/4054/&quot;&gt;posting&lt;/a&gt;. I want to give a quick glimpse on where the current development state of twoday is and where we will go in the next months. The software i&apos;m talking about here is not released yet but already in &lt;a href=&quot;http://www.weblife.at&quot;&gt;use&lt;/a&gt;. I always like to reference to it as twoday 2.0, but that is not common sense.
&lt;/p&gt;
&lt;p&gt;
Here is Tobis list and my comments:
&lt;/p&gt;
&lt;p style=&quot;font-style: italic;&quot;&gt;* unify text, files and images to one hybrid content structure. this way, any new item can be added without patching the database.&lt;/p&gt;
&lt;div style=&quot;padding-left: 1em;&quot;&gt;
&lt;p&gt;That was also our first thought, but we decided to keep Text and Media seperated. Why? They are just too different to unify them. Or the price of unifiying them is higher than the convinience of having them in the same table.&lt;/p&gt;
&lt;pre&gt;Text
  Story
  Comment
Content
  Media
    Audio
	Video
	File
	Image&lt;/pre&gt;
&lt;/div&gt;
&lt;p style=&quot;font-style: italic;&quot;&gt;* simplify access control by providing convenience methods that sort out a user by verifying the necessary permissions with the actual role privileges. a developer should be able to do this with one or at most two function calls from an arbitrary action.&lt;/p&gt;
&lt;div style=&quot;padding-left: 1em;&quot;&gt;
&lt;p&gt;We still have seperated security functions from actions. That should provide the possibility for a sub-implementation to override the security check without altering the action. But we dropped the have all checks for a prototype within a single checkAccess function.&lt;/p&gt;
&lt;i&gt;Site/actions.js:&lt;/i&gt;
&lt;pre&gt;&lt;code&gt;function main_action() {
  ...
}&lt;/code&gt;&lt;/pre&gt;
&lt;i&gt;Site/securityFunctions.js:&lt;/i&gt;
&lt;pre&gt;&lt;code&gt;function checkAccessMain(usr) {
   if (this.blocked) {
      throw new DenyException(&quot;siteBlocked&quot;);
   }
   if (!this.online) {
      if (this.hasRole(usr, &quot;VIEWER&quot;) == false) {
         throw new DenyException(&quot;siteView&quot;);
      }
   }
   return;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pretty simple and readable. Isn&apos;t it! And as an addition you have to implement a corresponding checkAccessFoo function for every action you provide. This forces the developer not to forget about securing actions.&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;font-style: italic;&quot;&gt;* rework the whole internationalisation engine. here too, a developer should only need to call a simple message funktion. and user&apos;s probably should be able to edit message files from within their site environment.&lt;/p&gt;
&lt;div style=&quot;padding-left: 1em;&quot;&gt;
&lt;p&gt;Finally we kicked out translated skins again, and just provide translated strings. A modTranslator takes care about translating, so the translator doesn&apos;t need to take care about .property files. All a developer has to do is:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[% message key=&quot;Story.edit.publishButton&quot; 
en=&quot;Publish&quot; 
de=&quot;Veröffentlichen&quot; %];&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The modTranslator will collect all &quot;not yet translated&quot; messages in code and skins as good as poosible and will add them too to the property files. The result would be:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[% message key=&quot;Story.edit.publishButton&quot; %];
app/locale/en/messages.properties: Story.edit.publishButton = Publish
app/locale/de/messages.properties: Story.edit.publishButton = Veröffentlichen&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p style=&quot;font-style: italic;&quot;&gt;* improve skin handling and editing. as gobi already shows there are ways to shift the input (i.e. editable forms) and output skins towards each other. wouldn&apos;t it be amazing to only edit one skin once and both, your text editor masks and the user front-end appear just right and in sync?&lt;/p&gt;
&lt;div style=&quot;padding-left: 1em;&quot;&gt;
&lt;p&gt;We didn&apos;t touch that part yet. And i&apos;m not convinced that it&apos;s a good idea to merge editing and publishing skins. But i hope that Helma 2.0 skins will bring up the need to refactor all of this and make it a lot easier to provide layouts for blogs.&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;font-style: italic;&quot;&gt;* delegate the user interface to the client again. client-side javascript has become mature enough to use it for simple tasks like paging and sorting; and as all the web 2.0 hubris and ajax cleansing promise, it even could be used for fancier actions...&lt;/p&gt;
&lt;div style=&quot;padding-left: 1em;&quot;&gt;
&lt;p&gt;Step by Step Ajax and Effects are floating into the application. Commenting is such an example but also various other places. Paggination is not yet.&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;font-style: italic;&quot;&gt;* while we are at it: of course, antville could do with an appropriate dose of (not so) recent hot web features. well, i did not say &quot;trackbacks&quot; or &quot;tags&quot;, but let&apos;s see what makes sense, here, anyway. (tags for sure!)&lt;/p&gt;
&lt;div style=&quot;padding-left: 1em;&quot;&gt;
&lt;p&gt;YES: Tags for sure. We implemted tags for everything. Sites, Users, Text, Content. And the good news: they are typed. So an application can use system:tags, person:tags, location:tags or whatever it needs to organize the new world.&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;font-style: italic;&quot;&gt;* yes, and all the rest (e.g. polls or blogger apis) goes into modules. in fact, in modules every enthusiastic javascript developer should be able to write.&lt;/p&gt;
&lt;div style=&quot;padding-left: 1em;&quot;&gt;
&lt;p&gt;twoday, as published already has more than 20 modules. and we moved even more stuff to modules (apis, rss, polls, etc..). I admit that the current twoday module framework could need some improvement and clean up - that&apos;s not done yet.&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;font-style: italic;&quot;&gt;* while rewriting the code helma 2.0 will evolve and hopefully new accomplishments can be reflected in antville just in time.&lt;/p&gt;
&lt;div style=&quot;padding-left: 1em;&quot;&gt;
&lt;p&gt;We don&apos;t wait till Helma 2.0, but we will follow as soon as possible. What we miss the absolutly most: BETTER TEMPLATING ENGINE!!!! PLEASE!!!&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
But we even have more on our fingertips:
&lt;ul&gt;  
&lt;li&gt;Text to Content links, which we just call: Enclosure&lt;br /&gt;Podcasting, Videocasting, Photocasting - just a tiny step away.&lt;/li&gt;  
&lt;li&gt;Native support for Audio, Video, Images, etc... in a way flickr does it. You may call these media-streams.&lt;/li&gt;  
&lt;li&gt;RSS 2.0 and Atom 1.0 feeds&lt;/li&gt;  
&lt;li&gt;Better and easier to use admin interface for users. No front end editing, accept with AJAX.&lt;/li&gt;  
&lt;li&gt;notification framework&lt;/li&gt;  
&lt;li&gt;.... (ask michi :)&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;So why is all that not public?&lt;/b&gt;&lt;br /&gt;
Just because the code needs a major clean up - and we are not done yet.
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;But will it be public? And when will that be?&lt;/b&gt;&lt;br /&gt;
I don&apos;t want to promisse here anything, don&apos;t expect anything earlier than march, and don&apos;t even bet on that. But from my point of view the things described here (the core) should get published - sooner than later. So as an antville or twoday user (i mean the guys installing the software, not the bloggers at twoday.net or antville.org) or somebody willing to get his hands dirty with code it may be worth waiting over implementing all this on his own based on currently published code (no matter if it&apos;s antville or twoday)
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;And for all those who want a next generation blogging software&lt;/b&gt;&lt;br /&gt;
as the base of their projects without getting their hands dirty with code. Contact us. We do this for money. And i think we do it good.
&lt;/p&gt;

&lt;p style=&quot;color: #999999; font-size: 80%;&quot;&gt;
[&lt;a name=&quot;1&quot;&gt;1&lt;/a&gt;] The antville project (anybody interessted in it, or using the software) is very welcomed to incorporate whatever we have improved and we will be as supportive as possible. But we wont send patches, write long explanations, start a discussion to finally recive a &quot;let all that think in and wait&quot;. It&apos;s just true that robert and tobi are not able to provide more extra time for antville, and to be clear that is nothing i&apos;m complaining about - it&apos;s just the reason why we split the twoday development from antville.
&lt;/p&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2006 matthias</dc:rights>
    <dc:date>2006-01-12T12:26:56Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/1273454/">
    <title>Self referencing</title>
    <link>http://www.matsblog.com/stories/1273454/</link>
    <description>a few links about what &lt;a href=&quot;http://www.knallgrau.at/company/team/socialsoftware&quot;&gt;all those people at knallgrau&lt;/a&gt; do:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://philomenon.blogspot.com/2005/12/neuer-webloganbieter-entsprungen.html#links&quot;&gt;philomenon: neuer-webloganbieter-entsprungen&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.schockwellenreiter.de/2005/12/14.html#derSchockwellenreiterDasWerbeblog&quot;&gt;schockwellenreiter&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://lumma.de/eintrag.php?id=2344&quot;&gt;nico lumma: Telekom Austria bloggt mit Knallgrau&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.basicthinking.de/blog/2005/12/12/knallgrau-twoday-und-aon-eroeffnen-blogplattform&quot;&gt;basicthinking: aon eröffnet blogplattform&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.webmasterfind.de/blog/2005/12/12/aon-bietet-blogs-an/&quot;&gt;webmasterfind:aon-bietet-blogs-an &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.neun12.de/2005/12/13/ohr-an-ohr/&quot;&gt;Tom&apos;s Diner&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.blick.ch/sonntagsblick/weblogs/&quot;&gt;Sonntagsblick mit Weblogs&lt;/a&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-12-14T12:22:16Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/1267394/">
    <title>A Thousand Stories a Day</title>
    <link>http://www.matsblog.com/stories/1267394/</link>
    <description>zu lesen im &lt;a href=&quot;http://www.knallgrau.at/company/weblog/stories/1267383/&quot;&gt;Knallgrau Weblog&lt;/a&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-12-13T10:30:42Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/875274/">
    <title>Browser Share on Twoday.net (Juli 2005)</title>
    <link>http://www.matsblog.com/stories/875274/</link>
    <description>&lt;pre&gt;&lt;code&gt;MSIE      61.7 %
Firefox   23.5 %
Safari     3.4 %
Mozilla    3.1 %
Opera      3.0 %
Netscape   1.9 %
Unbekannt  1.9 %
Sonstige   0.9 %
&lt;/code&gt;&lt;/pre&gt;

compared to &lt;a href=&quot;http://www.matsblog.com/stories/506367/&quot;&gt;twoday Jan 2005&lt;/a&gt;
&lt;pre&gt;&lt;code&gt;MSIE -2,9%
Firefox +5,7%
Moz/Netscape -1,3%
Safari +0,5%
&lt;/code&gt;&lt;/pre&gt;
also see:&lt;br /&gt;
&lt;a href=&quot;http://derstandard.at/?id=2131789&quot;&gt;derStandard.at&lt;/a&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-08-03T07:42:04Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/652687/">
    <title>Talented People</title>
    <link>http://www.matsblog.com/stories/652687/</link>
    <description>need to get mentioned. so i&apos;m proud to link to &lt;a href=&quot;http://www.kollermedia.at/&quot;&gt;Jürgen Koller&lt;/a&gt; who will script some new cool layouts for twoday.</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-04-26T12:39:37Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/632824/">
    <title>Atom API</title>
    <link>http://www.matsblog.com/stories/632824/</link>
    <description>&lt;a href=&quot;http://code.blogspot.com/archives/atom-docs.html&quot;&gt;new version of Atom API by blogger.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.ietf.org/internet-drafts/draft-sayre-atompub-protocol-basic-00.txt&quot;&gt;IETF Draft for Atom 0.9&lt;/a&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-04-17T16:02:34Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/544172/">
    <title>Opera 8 with some important improvements</title>
    <link>http://www.matsblog.com/stories/544172/</link>
    <description>&lt;cite&gt;Display and scripting:    &lt;br /&gt;
&lt;br /&gt;
* Added support for document.selection and document.getSelection in form input fields.    &lt;br /&gt;
* Added support for TextRange with methods collapse, move, moveStart, and moveEnd, required by Google Suggest.    &lt;br /&gt;
* Solved issues with XMLHttpRequest. Google Suggest is now fully supported.&lt;br /&gt;
&lt;/cite&gt;&lt;br /&gt;
&lt;br /&gt;
[via &lt;a href=&quot;http://www.opera.com/windows/changelogs/800b2/&quot;&gt;Opera 8 Changelog&lt;/a&gt;]</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-02-28T08:06:09Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/524216/">
    <title>Helma Macros 2.0</title>
    <link>http://www.matsblog.com/stories/524216/</link>
    <description>This is a proposal by Hannes, as a result of many discussions in the last year(s):&lt;br /&gt;
&lt;br /&gt;
&lt;cite&gt;&lt;pre&gt;&lt;code&gt;
We use plain HTML/XML syntax and don&apos;t introduce
any Helma-specific tags, just three attributes:

* h:macro is used to mark a tag as macro. Any tag containing a h:macro
attribute will be replaced by the output of that macro, with the
contents of the tag passed to the macro function as second argument.

* h:name is used as identifier of subskins within a skin. Any names
can be used, but &quot;prefix&quot;, &quot;suffix&quot; and &quot;default&quot; are handled in the
way Helma currently does.

* h:msg is used for automatic translation as proposed 
by Robert and Matthias. Everything within those tags 
would be replaced by a localized message 
(details to be determined).

Put into practice, a simple macro that loops through 
stories in a site object could look like this:

&lt;div h:macro=&quot;site.loop&quot;&gt;
   &lt;h3 h:name=&quot;prefix&quot; h:msg=&quot;storylistHeader&quot;&gt;Story Listing&lt;/h3&gt;
   &lt;ul&gt;
     &lt;li h:name=&quot;listitem&quot; h:macro=&quot;story.title&quot;&gt;Story Title&lt;/li&gt;
   &lt;/ul&gt;
   &lt;p h:name=&quot;default&quot; h:msg=&quot;storylistEmpty&quot;&gt;No stories&lt;/p&gt;
&lt;/ul&gt;

All the macro had to do here is get the &quot;listitem&quot; 
subskin and call it on each story it wants to render. 
prefix and default are handled by Helma. The only 
unsolved piece here is how to render the &lt;ul&gt;&lt;/ul&gt;,
but I think Helma could do automatic parent element
rendering by using a &quot;skin stack&quot; to know when it
enters/leaves a skin fragment.

So far this looks pretty good to me, but I haven&apos;t had
coffee yet today. What do you think?
&lt;/code&gt;&lt;/pre&gt;&lt;/cite&gt;&lt;br /&gt;
&lt;br /&gt;
I AM EXCITED !!! - that&apos;s what i think :)&lt;br /&gt;
&lt;br /&gt;
originally i prefered a syntax that goes like this:
&lt;pre&gt;&lt;code&gt;
&lt;hop:macro name=&quot;Page.someMacro&quot;&gt;
pass this part as the second parameter (e.g. as a skin)
&lt;/hop:macro&gt;
&lt;/code&gt;&lt;/pre&gt;

but the more i think about this, sticking to (x)html, and just extend it by a view attributes is the much better way.

&lt;pre&gt;&lt;code&gt;
&lt;input h:macro=&quot;html&quot; name=&quot;foo&quot; type=&quot;text&quot; /&gt;
&lt;/code&gt;&lt;/pre&gt;

could result in:
&lt;pre&gt;&lt;code&gt;
function html_macro(param, tag, content) {
  case (tag) {
    switch &quot;input&quot;:
      if (param.type == &quot;text&quot;) {
        Html.input(param, ...)...
      }
  }
}
&lt;/code&gt;&lt;/pre&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-02-16T11:05:20Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/506367/">
    <title>Browser Share on Twoday.net (Update)</title>
    <link>http://www.matsblog.com/stories/506367/</link>
    <description>&lt;pre&gt;&lt;code&gt;
MS IE       64.6 %
FireFox     17.8 %
Mozilla     4.7 %
Opera       3.3 %
Safari      2.9 %
Netscape    1.6 %
Konqueror   0.2 %
&lt;/code&gt;&lt;/pre&gt;

&lt;a href=&quot;http://www.matsblog.com/stories/425414/&quot;&gt;zum Vergleich die Zahlen von Anfang Dezember&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
IE -8%&lt;br /&gt;
Mozilla +6%</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-02-05T22:35:30Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/502929/">
    <title>TinyMCE</title>
    <link>http://www.matsblog.com/stories/502929/</link>
    <description>I think that&apos;s the way to go. Good to know somebody picked up htmlarea and fixed the bugs.&lt;br /&gt;
&lt;br /&gt;
see: &lt;a href=&quot;http://tinymce.moxiecode.com/&quot;&gt;http://tinymce.moxiecode.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[via &lt;a href=&quot;http://weblogtoolscollection.com/archives/2005/02/03/updated-wysiwyg-plugin-for-wordpress&quot;&gt;Weblog Tools&lt;/a&gt;]</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-02-03T16:38:24Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/496455/">
    <title>link rel=nofollow</title>
    <link>http://www.matsblog.com/stories/496455/</link>
    <description>&lt;a href=&quot;http://www.sixapart.com/log/2005/01/support_for_nof.shtml&quot;&gt;Support for nofollow @ typepad&lt;/a&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-01-31T12:55:42Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/496349/">
    <title>Google-Group twoday-dev</title>
    <link>http://www.matsblog.com/stories/496349/</link>
    <description>Everybody is invited to join:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://groups-beta.google.com/group/twoday-dev&quot;&gt;http://groups-beta.google.com/group/twoday-dev&lt;/a&gt;</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-01-31T12:09:19Z</dc:date>
  </item>
  <item rdf:about="http://www.matsblog.com/stories/493006/">
    <title>Hypertext Transfer Protocol -- HTTP/1.1</title>
    <link>http://www.matsblog.com/stories/493006/</link>
    <description>&lt;cite&gt;&lt;br /&gt;
As you probably noticed by the flood of commit/bug notification&lt;br /&gt;
messages, I checked in various changes during the last days. One of&lt;br /&gt;
them is that Helma now handles all HTTP methods such as DELETE, PUT,&lt;br /&gt;
HEAD, TRACE, OPTIONS. You can read more on HTTP methods at&lt;br /&gt;
&lt;/cite&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html&quot;&gt;www.w3.org/Protocols/ rfc2616/rfc2616-sec9.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
[via &lt;a href=&quot;http://helma.org/pipermail/helma-dev/2005-January/001648.html&quot;&gt;Hannes @helma-dev&lt;/a&gt;]</description>
    <dc:creator>matthias</dc:creator>
    <dc:subject>&lt;a href=&quot;http://www.matsblog.com/topics/Twoday+Dev&quot;&gt;Twoday Dev&lt;/a&gt;</dc:subject>
    <dc:rights>Copyright &#169; 2005 matthias</dc:rights>
    <dc:date>2005-01-28T12:39:15Z</dc:date>
  </item>


<textinput rdf:about="http://www.matsblog.com/search">
   <title>find</title>
   <description>Search this site:</description>
   <name>q</name>
   <link>http://www.matsblog.com/search</link>
</textinput>
<cc:License rdf:about="http://creativecommons.org/licenses/by/2.0/">
   <permits rdf:resource="http://web.resource.org/cc/Reproduction" />
   <permits rdf:resource="http://web.resource.org/cc/Distribution" />
   <requires rdf:resource="http://web.resource.org/cc/Notice" />
   <requires rdf:resource="http://web.resource.org/cc/Attribution" />
   <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
</cc:License>

</rdf:RDF>
