<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>ananasblau.com - Home</title>
  <id>tag:ananasblau.com,2008:mephisto/</id>
  <generator version="0.8.0" uri="http://mephistoblog.com">Mephisto Drax</generator>
  <link href="http://ananasblau.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://ananasblau.com/" rel="alternate" type="text/html"/>
  <updated>2008-08-23T19:51:30Z</updated>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-08-23:2815</id>
    <published>2008-08-23T19:40:00Z</published>
    <updated>2008-08-23T19:51:30Z</updated>
    <category term="Optimization"/>
    <category term="ajax"/>
    <category term="javascript"/>
    <category term="slideshow"/>
    <link href="http://ananasblau.com/speeding-up-slideshows" rel="alternate" type="text/html"/>
    <title>Speeding up slideshows</title>
<content type="html">
            &lt;p&gt;This is article is about improving javascript slideshows on both client and server side. I will discuss a few problems with slideshows of which we fixed some at Lomo&#8217;s beta website. The problems are independent from what framework you use server-side or if your javascript library is &lt;span class=&quot;caps&quot;&gt;YUI&lt;/span&gt;, prototype, jQuery or MooTools. If you have only very small slideshows then my tipps might be overkill for your app.&lt;/p&gt;


	&lt;h2&gt;Problem 1: Not everyone views the slideshow&lt;/h2&gt;


	&lt;p&gt;Many slideshows are never being started, not to mention all the bots that don&#8217;t do JS anyways. So, this is a great chance to avoid a lot of database queries and &lt;span class=&quot;caps&quot;&gt;HTML&lt;/span&gt; output. So, &lt;strong&gt;use &lt;span class=&quot;caps&quot;&gt;AJAX&lt;/span&gt; calls to load the elements of your slideshow when the user requests them&lt;/strong&gt;. In most cases you won&#8217;t need the actual ids or your items, just increase the offset in your sql queries.&lt;/p&gt;


	&lt;h2&gt;Problem 2: Delays&lt;/h2&gt;


	&lt;p&gt;So, you&#8217;re using &lt;span class=&quot;caps&quot;&gt;AJAX&lt;/span&gt; to request the images or whatever, and after deploying you realize that either some content is skipped. The reason for interleaves are bad asynchronous requests, they must be &lt;strong&gt;synchronous unless you update the page through evaluating the request&#8217;s response&lt;/strong&gt;.&lt;/p&gt;


	&lt;h2&gt;Problem 3: Too many requests&lt;/h2&gt;


	&lt;p&gt;Still, it takes a bit longer until the content displays, an example for this is &lt;a href=&quot;http://flickr.com/photos/tomk32/show&quot;&gt;flickr&#8217;s slideshow&lt;/a&gt;, it always feels a bit slow to me. Also, you receive one request for every item the users looks at. To improve both, your server performance and user experience you must &lt;strong&gt;load more than one element&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;E.g. you show the first item right away, the user starts the slideshow and you load the next ten items. When the user reaches the seventh or eight item you could start loading the next ten items asynchronous for a even more seamless user experience. Of course you need some kind of caching on the user side.&lt;/p&gt;


	&lt;h2&gt;Summary&lt;/h2&gt;


	&lt;ul&gt;
	&lt;li&gt;Use &lt;span class=&quot;caps&quot;&gt;AJAX&lt;/span&gt; requests to retrieve data only when it&#8217;s needed&lt;/li&gt;
		&lt;li&gt;Do synchronous requests to prevent interleaves&lt;/li&gt;
		&lt;li&gt;Cache content on user-side (double linked lists or simple arrays)&lt;/li&gt;
		&lt;li&gt;Load more than one item&lt;/li&gt;
		&lt;li&gt;Load them early (this time asynchronous!)&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Oh, if you need such a thing for &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt;, here&#8217;s one: http://billwscott.com/carousel/&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-07-09:2226</id>
    <published>2008-07-09T09:46:00Z</published>
    <updated>2008-07-17T09:41:43Z</updated>
    <category term="Ruby on Rails"/>
    <category term="adva_cms"/>
    <category term="cms"/>
    <link href="http://ananasblau.com/adva_cms" rel="alternate" type="text/html"/>
    <title>adva_cms</title>
<content type="html">
            &lt;p&gt;A few days ago I stumbled over &lt;a href=&quot;http://www.artweb-design.de/&quot;&gt;Sven&#8217;s&lt;/a&gt; current project &lt;a href=&quot;http://github.com/svenfuchs/adva_cms/tree&quot;&gt;adva_cms&lt;/a&gt; which is a cms, mixed from &lt;a href=&quot;http://mephistoblog.com/&quot;&gt;mephisto&lt;/a&gt;, &lt;a href=&quot;http://beast.caboo.se/&quot;&gt;beast&lt;/a&gt; and &lt;a href=&quot;http://signalwiki.com/&quot;&gt;signalwiki&lt;/a&gt;. The basis is mephisto, with all the pro and cons (aka page caching), everything else is included as plugins with Engine.&lt;/p&gt;


	&lt;p&gt;I hope to use it for a small community site this month and will post updates here on the experiences with adva_cms.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-06-28:2136</id>
    <published>2008-06-28T09:42:00Z</published>
    <updated>2008-06-28T09:57:17Z</updated>
    <category term="My projects"/>
    <category term="investment"/>
    <category term="plasticpilots"/>
    <link href="http://ananasblau.com/plasticpilots-retrospective" rel="alternate" type="text/html"/>
    <title>plasticpilots retrospective</title>
<content type="html">
            &lt;p&gt;So it&#8217;s been like six weeks now since &lt;a href=&quot;http://plasticshore.com&quot;&gt;Alex&lt;/a&gt; and I got into talking about &#8220;plasticpilots&#8221;http://www.plasticpilots.com and I bought it from him. I can say, I&#8217;m very happy about the whole thing. The development of the new software (it&#8217;s open source btw) went smoothly and I&#8217;m still improving small bit to have a better look and quicker workflow. I&#8217;ve increased the activity a lot, sadly there are almost no new comments yet but I think as soon as I&#8217;m putting up the forum again that will improve a lot. Traffic increased only like 10% so far, but pageviews did by 40%. I don&#8217;t have any stats on item use from feedburner yet but I&#8217;m very curious about those.&lt;/p&gt;


	&lt;p&gt;Financially it was a big expense for me and it didn&#8217;t generate any revenue yet but my strategy was to increase traffic first, so I&#8217;m in my 12-month schedule for the return of investment. A nice side-effect is the ongoing cooperation with Alex. We launched &lt;a href=&quot;http://rollr.com&quot;&gt;rollr.com&lt;/a&gt; last week and it&#8217;s basically the same software like plasticpilots. And that&#8217;s only the beginning, the next project will bring in some money for us :-)&lt;/p&gt;


	&lt;p&gt;My conclusion, if you have some spare money and time, plus the necessary skills to program a modern website, then invest your money and time. It will take a year to return your investment and you might have to spent some work (unless you know how to improve the workflow), but it will pay out. Oh, and don&#8217;t forget, stick to your niche. There&#8217;s a lot possible with synergy-effects.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-06-24:2124</id>
    <published>2008-06-24T07:05:00Z</published>
    <updated>2008-06-24T07:08:51Z</updated>
    <category term="Gatherings"/>
    <category term="Tools"/>
    <category term="presentation"/>
    <category term="scrum"/>
    <link href="http://ananasblau.com/scrum-presentation" rel="alternate" type="text/html"/>
    <title>scrum presentation</title>
<content type="html">
            &lt;p&gt;For this year&#8217;s BarCamp Salzburg I prepared a presentation on scrum, this agile process I fell in love with while I was in London. Lessons learned after I held the presentation? Examples first.&lt;/p&gt;


	&lt;p&gt;See the presentation (done with Dr. Nic&#8217;s codex): &lt;a href=&quot;http://ananasblau.com/scrum&quot;&gt;http://ananasblau.com/scrum&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-06-21:2116</id>
    <published>2008-06-21T06:08:00Z</published>
    <updated>2008-06-21T06:18:25Z</updated>
    <category term="My projects"/>
    <category term="Ruby on Rails"/>
    <category term="plasticairships"/>
    <category term="plasticpilots.com"/>
    <category term="projects"/>
    <link href="http://ananasblau.com/everything-in-plastic" rel="alternate" type="text/html"/>
    <title>everything in plastic*</title>
<content type="html">
            &lt;p&gt;Last month I bought &lt;a href=&quot;http://www.plasticpilots.com&quot;&gt;plasticpilots.com&lt;/a&gt; from &lt;a href=&quot;http://plasticshore.com&quot;&gt;Alex&lt;/a&gt; (from plasticshore.com), trashed the expression engine it was running on and wrote a completely new software called &lt;a href=&quot;http://github.com/TomK32/plasticairships/tree/master&quot;&gt;plasticairships&lt;/a&gt;. The new software is running on plasticpilots for a week now, a few of bugs have been fixed since and improvements in the design been made.&lt;/p&gt;


	&lt;p&gt;I&#8217;m not sure if anyone else will ever find good use for it. Alex and I did a &lt;a href=&quot;http://github.com/kohlhofer/plasticairships&quot;&gt;redux&lt;/a&gt; version this week, for a workshop he does next month. The redux looks totally different of course, very minimalistic, and it has a few features from &lt;a href=&quot;http://github.com/TomK32/feedme&quot;&gt;feedme&lt;/a&gt; (which will get some loving soon).&lt;/p&gt;


	&lt;p&gt;Btw, plasticairships is running on rails 2.1, so it&#8217;s totally covered with named_scopes, the new eager loading and other stuff.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-06-01:2053</id>
    <published>2008-06-01T09:04:00Z</published>
    <updated>2008-06-01T09:30:46Z</updated>
    <category term="Ruby on Rails"/>
    <category term="inheritance"/>
    <category term="single"/>
    <category term="table"/>
    <link href="http://ananasblau.com/single-table-inheritance-in-rails-2-1" rel="alternate" type="text/html"/>
    <title>single table inheritance in rails 2.1</title>
<content type="html">
            &lt;p&gt;With the new &#8220;rails 2.1&#8221; there was a small but for me important change in the &lt;span class=&quot;caps&quot;&gt;STI&lt;/span&gt; that made my life easier. Thanks to &lt;a href=&quot;http://blog.divoxx.com/&quot;&gt;divoxx&lt;/a&gt; for his enhancement. It didn&#8217;t show up in the docs yet but I&#8217;ll give you an example where.&lt;/p&gt;


	&lt;p&gt;The documentation&#8217;s example consists of the models Company, Firm and Client, very simple. My real life example (it will be on the new plasticpilots website) consists of a model Comment that I use as an association for Post and Site. So Post and Site have many comments. To save duplication I use &lt;span class=&quot;caps&quot;&gt;STI&lt;/span&gt; of course and to keep the directories clean I have &lt;code&gt;Site::Comment &amp;lt;&amp;lt; Comment&lt;/code&gt; and &lt;code&gt;Post::Comment &amp;lt;&amp;lt; Comment&lt;/code&gt; (and maybe more in the far future of 2009). Old rails versions did a &lt;code&gt;demodulize&lt;/code&gt; the class names so I would have &lt;code&gt;Comment&lt;/code&gt; in my &lt;code&gt;type&lt;/code&gt; column and a lot of confusion. With rails 2.1 it&#8217;s the full class name in the &lt;code&gt;type&lt;/code&gt; column and I can kick all the work-arounds I had previously.&lt;/p&gt;


Btw, this behaviour is the new default, so I guess a few people will be pissed off, but can simply set:
&lt;code&gt;ActiveRecord::Base.store_full_sti_class = false&lt;/code&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-06-01:2052</id>
    <published>2008-06-01T07:46:00Z</published>
    <updated>2008-06-01T19:55:46Z</updated>
    <category term="Ruby on Rails"/>
    <category term="activerecord"/>
    <category term="bug"/>
    <category term="goldberg"/>
    <category term="patch"/>
    <category term="postgresql"/>
    <link href="http://ananasblau.com/rails-2-1-goldberg-but-no-postgres" rel="alternate" type="text/html"/>
    <title>rails 2.1, goldberg but no postgres</title>
<content type="html">
            &lt;p&gt;Sure it&#8217;s a strange combination but mysql is most people&#8217;s favourite and &lt;a href=&quot;http://goldberg.240gl.org/&quot;&gt;goldberg&lt;/a&gt; is my very personal favourite.&lt;/p&gt;


	&lt;p&gt;Anyways, today I was upgrading to rails 2.1.0 and guess what, it didn&#8217;t work anymore cause some &lt;code&gt;pg&lt;/code&gt; was being required which I don&#8217;t have. The problem has basically two causes. First the rails devs added a few lines to the postgresql connection adapter to enforce loading the pg or postgresql gem. Second, goldberg was a bit sloppy with its model monkeypatching. The fix is very simple, just a few changes to &lt;code&gt;lib/goldberg/model.rb&lt;/code&gt; basically adding the check that goldberg is using in it&#8217;s migration extensions anyways.&lt;/p&gt;


	&lt;p&gt;You can find my patch over at &lt;a href=&quot;http://rubyforge.org/tracker/index.php?func=detail&amp;amp;#38;aid=20465&amp;amp;#38;group_id=2072&amp;amp;#38;atid=8065&quot;&gt;goldberg&#8217;s rubyforge bugtracker&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; A few more issues came up, so you might just want to &lt;strong&gt;&lt;code&gt;git clone git://github.com/TomK32/goldberg.git&lt;/code&gt;&lt;/strong&gt; my github repository into &lt;code&gt;vendor/generators&lt;/code&gt; and use it like normal.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-05-26:1958</id>
    <published>2008-05-26T04:36:00Z</published>
    <updated>2008-05-26T04:49:25Z</updated>
    <category term="My projects"/>
    <category term="Ruby on Rails"/>
    <link href="http://ananasblau.com/recent-activities" rel="alternate" type="text/html"/>
    <title>recent activities</title>
<content type="html">
            &lt;p&gt;I&#8217;ve been doing a lot of open source in the last two months and you might want to check out the results so far. And besides all that there&#8217;s the githorde of course.&lt;/p&gt;


	&lt;h3&gt;FeedMe!&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://github.com/TomK32/feedme&quot;&gt;FeedMe!&lt;/a&gt; is a &lt;span class=&quot;caps&quot;&gt;RSS&lt;/span&gt; planet that was started by Daniel Lindsley and I improved it to match my needs for &lt;a href=&quot;http://salzburg-weblogs.net&quot;&gt;salzburg-weblogs.net&lt;/a&gt;. It&#8217;s still incomplete and I will put a few more days of work into.&lt;/p&gt;


	&lt;h3&gt;exabuch&lt;/h3&gt;


	&lt;p&gt;&lt;a href=&quot;http://exabuch.org&quot;&gt;exabuch&lt;/a&gt; is a german billing web-app and took over this one as well. I have quite big plans with it, also on a commercial level&lt;/p&gt;


	&lt;h3&gt;plastipilots&lt;/h3&gt;


	&lt;p&gt;My newest investment is this very old design website &lt;a href=&quot;http://plasticpilots.com&quot;&gt;plasticpilots&lt;/a&gt; that I&#8217;m about to buy from a guy living nearby (yeah, very big internet). It&#8217;s getting a completely new software as replacement for expression engine and the new software will be open source as well: &lt;a href=&quot;http://github.com/TomK32/plasticairships&quot;&gt;plasticairships&lt;/a&gt;. I think it will be very easy to customize for any kind of showcases or portfolio.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-05-17:1740</id>
    <published>2008-05-17T15:52:00Z</published>
    <updated>2008-05-17T16:03:08Z</updated>
    <category term="Gatherings"/>
    <category term="My projects"/>
    <category term="githorde"/>
    <category term="open source development"/>
    <link href="http://ananasblau.com/first-githorde-session" rel="alternate" type="text/html"/>
    <title>first githorde session</title>
<content type="html">
            &lt;p&gt;I didn&#8217;t mention &lt;a href=&quot;http://githorde.org&quot;&gt;githorde&lt;/a&gt; yet, it&#8217;s something we came up two weeks ago. The idea is pretty simple, a loosely group of developers picking up open source projects and developing new features. We want to jump from one project to the next every few weeks, just like every good barbarian horde would.&lt;/p&gt;


	&lt;p&gt;Today was the first session, only one and a half hour where &lt;a href=&quot;http://teabass.com/&quot;&gt;Andrew&lt;/a&gt; and I met in &lt;span class=&quot;caps&quot;&gt;IRC&lt;/span&gt; and did some work on &lt;a href=&quot;http://github.com/andrew/feeddit/tree/master&quot;&gt;feeddit&lt;/a&gt; which was released to open source just a few weeks ago. We achieved our targets (caching, new digg library and filtering by topics) and despite trouble with git (well, at least Andrew, me totally gits it!) we are very happy with our first session.&lt;/p&gt;


	&lt;p&gt;If you want to join the horde, register at the &lt;a href=&quot;http://githorde.org&quot;&gt;website&lt;/a&gt; and participate. You&#8217;ll get a message when the next session takes place.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-05-17:1738</id>
    <published>2008-05-17T10:04:00Z</published>
    <updated>2008-05-17T10:06:47Z</updated>
    <category term="My projects"/>
    <category term="exabuch"/>
    <category term="releases"/>
    <link href="http://ananasblau.com/exabuch-0-2" rel="alternate" type="text/html"/>
    <title>exabuch 0.2</title>
<content type="html">
            &lt;p&gt;Nur ein kleiner Hinweis darauf dass ich gerade &lt;a href=&quot;http://exabuch.org/2008/5/17/release-0-2&quot;&gt;version 0.2 von exabuch&lt;/a&gt; veröffentlicht habe. Exabuch ist eine open source software die ich von Ingo Terpelle übernommen hab und weiterentwickle. Im Grunde kann man es mit blinksale, fastbill, easybill oder billomat vergleichen. Aber es ist open source, großer Unterschied.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-04-15:1584</id>
    <published>2008-04-15T20:39:00Z</published>
    <updated>2008-04-15T20:45:35Z</updated>
    <category term="Gatherings"/>
    <category term="contest"/>
    <category term="django"/>
    <category term="django dash"/>
    <category term="python"/>
    <link href="http://ananasblau.com/django-dash" rel="alternate" type="text/html"/>
    <title>Django Dash</title>
<content type="html">
            &lt;p&gt;I didn&#8217;t yet look into &lt;a href=&quot;http://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt; as it&#8217;s written in Python and now my now-favourite Ruby. But there&#8217;s a weekend-contest coming up: &lt;a href=&quot;http://www.djangodash.com/&quot;&gt;Django Dash&lt;/a&gt;. I had a hell lotta fun at the &lt;a href=&quot;http://www.railsrumble.com/&quot;&gt;Railsrumble&lt;/a&gt; in September, despite a broken shoulder (still hurts every now and then). I guess I&#8217;ll take part in this dash, I still remember some Python from the old days and 48 hours is enough time to get into a new framework :-)&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-04-11:1556</id>
    <published>2008-04-11T08:42:00Z</published>
    <updated>2008-04-11T09:11:13Z</updated>
    <category term="My projects"/>
    <category term="linklift"/>
    <category term="mephisto"/>
    <category term="plugin"/>
    <link href="http://ananasblau.com/mephisto-plugin-linklift" rel="alternate" type="text/html"/>
    <title>mephisto plugin: linklift</title>
<content type="html">
            &lt;p&gt;&lt;a href=&quot;http://www.linklift.de/?ref=07eb3954588&quot;&gt;Linklift&lt;/a&gt; is like &lt;a href=&quot;http://www.text-link-ads.com/?ref=46515&quot;&gt;text-link-ads&lt;/a&gt; a marketplace to sell links on your website/blog. Put aside that Google doesn&#8217;t like it, just like China doesn&#8217;t like monks, it&#8217;s a nice extra-income from my small blogs and much better than AdSense.&lt;/p&gt;


	&lt;p&gt;A plugin for text-link-ads has been around for some time, but is not for multi-site installations of mephisto. There are a few posts on &lt;a href=&quot;http://blog.nanorails.com/search?q=text-link-ads&quot;&gt;nano rails about getting tla into rails&lt;/a&gt; but found them a bit too late.&lt;/p&gt;


	&lt;p&gt;My &lt;a href=&quot;http://rubyforge.org/projects/linklift-plugin/&quot;&gt;&lt;strong&gt;linklift-plugin&lt;/strong&gt;&lt;/a&gt; works perfect with &lt;a href=&quot;http://mephistoblog.com/&quot;&gt;mephisto&lt;/a&gt; and there are also helpers to use it in any erb-file thus any rails-application. It caches the xml-file from link-lift locally but to speed up processes when a link was sold you might want to delete the cached xml file and clear all caches of you blog.&lt;/p&gt;


To display the ads you put these lines into your &lt;em&gt;layout.liquid&lt;/em&gt;:
&lt;table class=&quot;CodeRay&quot;&gt;&lt;tr&gt;
  &lt;td title=&quot;click to toggle&quot; class=&quot;line_numbers&quot;&gt;&lt;pre&gt;1&lt;tt&gt;
&lt;/tt&gt;2&lt;tt&gt;
&lt;/tt&gt;3&lt;tt&gt;
&lt;/tt&gt;4&lt;tt&gt;
&lt;/tt&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;tt&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;/td&gt;
  &lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&amp;lt;ul&amp;gt;&lt;tt&gt;
&lt;/tt&gt;{% linklift website_key: your-key, plugin_secret: your-secret as link %}&lt;tt&gt;
&lt;/tt&gt;  &amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;{{ link.url }}&amp;quot;{% if link.nofollow %} rel=&amp;quot;nofollow&amp;quot;{% endif %}&amp;gt;{{link.text}}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;tt&gt;
&lt;/tt&gt;{% endlinklift %}&lt;tt&gt;
&lt;/tt&gt;&amp;lt;/ul&amp;gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;


	&lt;p&gt;Project website at rubyforge: &lt;a href=&quot;http://rubyforge.org/projects/linklift-plugin/&quot;&gt;&lt;strong&gt;http://rubyforge.org/projects/linklift-plugin/&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;Many thanks to Rayo at linklift who answered my questions quickly and was also so kind to fill my empty pockets :-)&lt;/em&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-04-08:1536</id>
    <published>2008-04-08T22:48:00Z</published>
    <updated>2008-04-11T08:57:40Z</updated>
    <category term="Security"/>
    <link href="http://ananasblau.com/enge-grenzen-fuer-erweiterungen" rel="alternate" type="text/html"/>
    <title>enge Grenzen f&#252;r Erweiterungen</title>
<content type="html">
            &lt;p&gt;Robert beschäftigt sich gerade mit Sicherheit bei &lt;a href=&quot;http://www.basicthinking.de/blog/2008/04/08/vorsicht-vor-freien-wordpress-templates/&quot;&gt;Themes&lt;/a&gt; und &lt;a href=&quot;http://www.basicthinking.de/blog/2008/04/08/wordpress-hacks-anti-edit/&quot;&gt;Plugins&lt;/a&gt; in Wordpress, ein paar Kommentare hab ich eh schon hinterlassen, aber ich will doch etwas ausführlicher werden.&lt;/p&gt;


	&lt;h3&gt;Themes&lt;/h3&gt;


	&lt;p&gt;Was ist eigentlich die Aufgabe eines Themes? Einfach nur einer Seite einen neuen Anstrich verpassen. Keine neuen Funktionen oder Features, nur die Farbe, Schrift und vielleicht noch ein cooles Badges oben links. Das ist die Minimal-Forderung und meiner Meinung nach auch schon alles was man dem User ermöglichen sollte. Das es möglich ist nur mit einem anderen &lt;span class=&quot;caps&quot;&gt;CSS&lt;/span&gt;-File und Bildern eine völlig neu wirkende Seite zu erstellen demonstriert der &lt;a href=&quot;http://csszengarden.com/&quot;&gt;css Zen Garden&lt;/a&gt; sehr eindrucksvoll.&lt;/p&gt;


	&lt;p&gt;Wordpress erlaubt es solche Themes zu erstellen und zu verwenden, aber es tut nur kaum jemand. Nicht mal meine eigenen Themes die ich letztes Jahr mal erstellt hab waren so gestrickt. Warum? Weil das Standard-Theme von Wordpress mies ist. Persönliche Meinung. Aber: Wer regelmäßig Themes veröffentlicht der sollte sich ruhig das Standard-Theme etwas anpassen und als Basis für alle anderen, eigenen Themes machen. Das hat nebenbei auch den enormen Vorteil dass man php-technisch nur ein einziges Theme zu verwalten halt. Und wer jetzt rufen will &#8220;uhh, meine sidebar&#8221;, den verweis ich nur auf die widgets.&lt;/p&gt;


	&lt;h3&gt;Plugins&lt;/h3&gt;


	&lt;p&gt;Hier wird&#8217;s etwas schwer, denn Plugins erweitern die Funktionalität, sind also Programmcode der auf dem Server ausgeführt wird und nicht im Browser wie das Theme. Programmcode auf dem Server ist immer eine Sache die von Vertrauen abhängt. Ich geb ja mein MacBook auch nur Leuten in die Hand die ich kenne oder von denen ich weiß dass sie wissen was sie tun. Was für den Programmcode also nötig ist wäre beim MacBook die Tasche, dann kommt es zumindest in den meisten Fällen heil an.&lt;/p&gt;


	&lt;p&gt;Beim Programmcode behilft man sich mit einer Schicht zwischen User (also Plugin) und dem System (hier also Wordpress). Es gibt hier etwas für Themes, zum Beispiel Smarty (welches nur so nebenbei in den frühen Versionen von WordpressMU die Theme-Engine war, erst später konnte man die normalen Themes verwenden), aber wenn es um den Programmcode (und die Interaktion mit Daten) geht dann muss man zu einer sogenannten &lt;a href=&quot;http://de.wikipedia.org/wiki/Domain_Specific_Language&quot;&gt;Domain Specific Language&lt;/a&gt; greifen. Man kann eine solche &lt;span class=&quot;caps&quot;&gt;DSL&lt;/span&gt; als einen Sandkasten sehen, oder noch besser als eine Fernsteuerung. Ich hab einen Haufen Knöpfe, aber das Gerät an das die Fernbedienung sendet hat die Möglichkeit diese Signale anders zu behandeln als wenn ich vom Sofa aufstehe und die Glotze direkt bediene. Der User hat viele Möglichkeiten aber nicht alle und meistens kann der User auch eine etwas einfachere Sprache verwenden. Beispiel gefällig? Gern.&lt;/p&gt;


	&lt;p&gt;Nehmen wir mal ein Plugin zur Darstellung ähnlicher Artikel: Es wird der abzuspeichernde Artikel gelesen, seine Inhalte mit anderen Artikeln verglichen und dann diese Relation in der Datenbank gespeichert. In einer &lt;span class=&quot;caps&quot;&gt;DSL&lt;/span&gt; hätte ich Lese-Zugriff auf die Artikel und wenn eine Tabelle in der Datenbank nur mir gehört dann darf ich dort reinschreiben ohne das der Mensch am Computer ein OK geben muss. Wenn ich aber in eine fremde Tabelle schreiben will, oder den Artikel ändern will dann kann die &lt;span class=&quot;caps&quot;&gt;DSL&lt;/span&gt; dies abfangen und dem Menschen am Computer die Änderungen anzeigen (andernfalls Wordpress Vista Reloaded ;-). Ich hätte in einer &lt;span class=&quot;caps&quot;&gt;DSL&lt;/span&gt; gar keinen oder nur eingeschränkten Zugriff auf die ganzen mysql-Funktionen, ich kann den Artikel nur noch über den offiziell genehmigten Weg verändern.&lt;/p&gt;


	&lt;p&gt;&lt;cite&gt;Falls noch jemand Fragen hat, nur her damit.&lt;/cite&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-03-29:66</id>
    <published>2008-03-29T11:28:00Z</published>
    <updated>2008-04-11T08:57:44Z</updated>
    <category term="Gatherings"/>
    <category term="Ruby"/>
    <category term="euruko"/>
    <link href="http://ananasblau.com/euruko-2008-day-one" rel="alternate" type="text/html"/>
    <title>Euruko 2008 - Day one</title>
<content type="html">
            the conference started smoothly, despite not enough power cords (lucky me with my iPod touch) and the Prague marathon right outside the university. The keynote was hold by Matz and reeally grew in the second half where it was about m17n and issues with that. Koichi showed some benchmarks and details from his YARV. 

Charles and Thomas from the JRuby announced the brandnew version 1.1 and outlined it's new features and optimisations. They'll second part was writing GUI apps, a five-liner for a swing-frame including a button and an event many LOC less than pure Java. The Rail part was kept short and featured a few references of production sites running JRuby. After a short break to their mac's problems and questions from the audience about testing the ruby-specs, the finished with demoing ruby-processing (this great graphics library) samples running them on JRuby.
          </content>  </entry>
  <entry xml:base="http://ananasblau.com/">
    <author>
      <name>TomK32</name>
    </author>
    <id>tag:ananasblau.com,2008-03-27:61</id>
    <published>2008-03-27T10:23:00Z</published>
    <updated>2008-04-11T08:57:52Z</updated>
    <category term="Gatherings"/>
    <category term="Ruby"/>
    <category term="conference"/>
    <category term="euruko"/>
    <link href="http://ananasblau.com/euruko-2008" rel="alternate" type="text/html"/>
    <title>Euruko 2008</title>
<content type="html">
            It's only a day and I'll be sitting in the trains (seven hours) to Prague for the &quot;Euruko 2008&quot;:http://www.euruko2008.org/ where Matz will hold the keynote and the continent's ruby hackers will gather for two days.

Things I'm really looking forward for:
* living without my Macbook for a whole weekend
* David A. Black on „Per-Object Behavior in Ruby“
* Nic Williams — „Meta-Meta-Programming with Ruby“
* Tim Becker — „Lessons Learned Writing Native Extensions“
* all those lightning talks
* and of course the parties on Friday and Saturday
          </content>  </entry>
</feed>
