316cfa3cceb0a2eae18da77798ebc1f74b9ad922
[horde.git] /
1 <?xml version="1.0" encoding="utf-8" ?>
2
3 <rss version="2.0" 
4    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
5    xmlns:admin="http://webns.net/mvcb/"
6    xmlns:dc="http://purl.org/dc/elements/1.1/"
7    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
8    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
9    xmlns:content="http://purl.org/rss/1.0/modules/content/"
10    xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
11 <channel>
12     <title>Tobias Schlitt - a passion for php</title>
13     <link>http://schlitt.info/applications/blog/</link>
14     <description>About PHP, eZ components, PEAR and other geeky stuff...</description>
15     <dc:language>en</dc:language>
16     <generator>Serendipity 1.3 - http://www.s9y.org/</generator>
17     <managingEditor>tobias@schlitt.info</managingEditor>
18 <webMaster>tobias@schlitt.info</webMaster>
19 <ttl>120</ttl>
20 <pubDate>Tue, 08 Jul 2008 20:09:22 GMT</pubDate>
21
22     <image>
23         <url>http://schlitt.info/applications/blog/uploads/bewerbungsphot_2_small.serendipityThumb.jpg</url>
24         <title>RSS: Tobias Schlitt - a passion for php - About PHP, eZ components, PEAR and other geeky stuff...</title>
25         <link>http://schlitt.info/applications/blog/</link>
26         <width>110</width>
27         <height>152</height>
28     </image>
29
30 <item>
31     <title>Really helpful open source guys</title>
32     <link>http://schlitt.info/applications/blog/index.php?/archives/608-Really-helpful-open-source-guys.html</link>
33     
34     <comments>http://schlitt.info/applications/blog/index.php?/archives/608-Really-helpful-open-source-guys.html#comments</comments>
35     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=608</wfw:comment>
36
37     <slash:comments>0</slash:comments>
38     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=608</wfw:commentRss>
39     
40
41     <author>nospam@example.com (Tobias Schlitt)</author>
42     <content:encoded>
43     &lt;p&gt;While writing tests for the &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4626&amp;amp;entry_id=608&quot; title=&quot;http://ezcomponents.org&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;eZ Components&lt;/a&gt; &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4627&amp;amp;entry_id=608&quot; title=&quot;http://ezcomponents.org/s/Webdav&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org/s/Webdav&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Webdav&lt;/a&gt; component I stumbled over an &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4632&amp;amp;entry_id=608&quot; title=&quot;http://issues.ez.no/IssueView.php?Id=13324&amp;amp;amp;activeItem=1&quot;  onmouseover=&quot;window.status=&#039;http://issues.ez.no/IssueView.php?Id=13324&amp;amp;amp;activeItem=1&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;issue&lt;/a&gt; with &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4628&amp;amp;entry_id=608&quot; title=&quot;http://www.konqueror.org/&quot;  onmouseover=&quot;window.status=&#039;http://www.konqueror.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Konqueror&lt;/a&gt; 3.5.9. While we have working tests for the PUT request (uploading files) for version 3.5.7, this request type did not work with my recent Konqueror installation. Some debugging and request dumping in &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4629&amp;amp;entry_id=608&quot; title=&quot;http://www.lighttpd.net/&quot;  onmouseover=&quot;window.status=&#039;http://www.lighttpd.net/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Lighttpd&lt;/a&gt; later I was quite sure that Konqueror was the issue.&lt;/p&gt;
44
45 &lt;p&gt;I&#039;m neither a C(++) guy, nor do I use &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4630&amp;amp;entry_id=608&quot; title=&quot;http://www.kde.org&quot;  onmouseover=&quot;window.status=&#039;http://www.kde.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;KDE&lt;/a&gt;. Therefore I joined #kde-devel on Freenode to see, if anyone there would be willing to support me in my bug tracking. After a rough description I instandly got feedback on the essential points I needed: Where in the code to look for the issue (it&#039;s kdelibs/kioslave/http), what the correct SVN revisions for the 3.5.7 and 3.5.9 tags are and how I can easily try if the issue resides in the supposed code area.&lt;/p&gt;
46
47 &lt;p&gt;Some kdelibs compile later I could verify that the issue came from the kioslave http module. While I could not really see the issue in the diff from 3.5.7 to 3.5.9 myself, again some people in the IRC channel instantly helped me and we found the problem together within minutes. A patch was created within minutes and I hope my &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4631&amp;amp;entry_id=608&quot; title=&quot;http://bugs.kde.org/show_bug.cgi?id=166081&quot;  onmouseover=&quot;window.status=&#039;http://bugs.kde.org/show_bug.cgi?id=166081&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;bug report&lt;/a&gt; for Konqueror will be closed soonish.&lt;/p&gt;
48
49 &lt;p&gt;In this sense: &lt;b&gt;Thanks KDE people!&lt;/b&gt; That was really good support! :)&lt;/p&gt;
50
51  
52     </content:encoded>
53
54     <pubDate>Tue, 08 Jul 2008 22:07:00 +0200</pubDate>
55     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/608-guid.html</guid>
56     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>bug</category>
57 <category>ez components</category>
58 <category>konqueror</category>
59 <category>php</category>
60 <category>webdav</category>
61
62 </item>
63 <item>
64     <title>iRefuseToUse aNamingScheme</title>
65     <link>http://schlitt.info/applications/blog/index.php?/archives/607-iRefuseToUse-aNamingScheme.html</link>
66     
67     <comments>http://schlitt.info/applications/blog/index.php?/archives/607-iRefuseToUse-aNamingScheme.html#comments</comments>
68     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=607</wfw:comment>
69
70     <slash:comments>0</slash:comments>
71     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=607</wfw:commentRss>
72     
73
74     <author>nospam@example.com (Tobias Schlitt)</author>
75     <content:encoded>
76     &lt;p&gt;I find the recent discussion about good naming schemes quite funny. Namespaces are potentially coming in PHP 5.3 (does anyone believe?) and people start discussion about how they can even shorten their names from &lt;i&gt;Abstract&lt;/i&gt; to &lt;i&gt;aSomething&lt;/i&gt; and from &lt;i&gt;Interface&lt;/i&gt; to &lt;i&gt;iAnotherthing&lt;/i&gt;. I&#039;m a fan of short names. As &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4625&amp;amp;entry_id=607&quot; title=&quot;http://usrportage.de/archives/893-Over-abbreviated.html&quot;  onmouseover=&quot;window.status=&#039;http://usrportage.de/archives/893-Over-abbreviated.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Lars pointed out&lt;/a&gt;:&lt;/p&gt;
77
78 &lt;blockquote&gt;&lt;p&gt;as short as possible, as verbose as needed&lt;/p&gt;
79
80 &lt;/blockquote&gt;
81 &lt;p&gt;and&lt;/p&gt;
82
83 &lt;blockquote&gt;&lt;p&gt;you must understand the name without studying specific rules before&lt;/p&gt;
84
85 &lt;/blockquote&gt;
86 &lt;p&gt;I agree with these rules and am of the opinion that class names must all above anything contain a &lt;b&gt;semantic&lt;/b&gt;. Interfaces indicate what you can do with an object, while abstract classes model that different classes have a common base and can be used in the same mannor. And indeed you can add these semantics to names without using the terms.&lt;/p&gt;
87
88 &lt;p&gt;Good examples are &lt;i&gt;Persistable&lt;/i&gt; which indicates that an object implementing this interface can be persisted, &lt;i&gt;Configurable&lt;/i&gt; or &lt;i&gt;Connectable&lt;/i&gt;. Abstract classes usually model a common base for other classes and define how these are being used &lt;i&gt;Reflector&lt;/i&gt; and &lt;i&gt;Configurator&lt;/i&gt; are good examples for such semantics. If this does not indicate their abstractness good enough to you, you can still indicate that this is a basis for other classes to be extended before being used: &lt;i&gt;BaseReflector&lt;/i&gt; or &lt;i&gt;BaseConfigurator&lt;/i&gt;.&lt;/p&gt;
89
90 &lt;p&gt;In fact for me, the abstractness of a class does not really matter that much. Most commonly you also provide descendants of this class and it is commonly clear that one should not use &lt;i&gt;DatabaseHandler&lt;/i&gt; but either of &lt;i&gt;OracleHandler&lt;/i&gt; or &lt;i&gt;MysqlHandler&lt;/i&gt;.&lt;/p&gt;
91
92 &lt;p&gt;Just my .02.&lt;/p&gt;
93
94  
95     </content:encoded>
96
97     <pubDate>Mon, 30 Jun 2008 19:49:00 +0200</pubDate>
98     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/607-guid.html</guid>
99     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>php api design</category>
100
101 </item>
102 <item>
103     <title>Sending HEAD requests with ext/curl</title>
104     <link>http://schlitt.info/applications/blog/index.php?/archives/606-Sending-HEAD-requests-with-extcurl.html</link>
105     
106     <comments>http://schlitt.info/applications/blog/index.php?/archives/606-Sending-HEAD-requests-with-extcurl.html#comments</comments>
107     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=606</wfw:comment>
108
109     <slash:comments>9</slash:comments>
110     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=606</wfw:commentRss>
111     
112
113     <author>nospam@example.com (Tobias Schlitt)</author>
114     <content:encoded>
115     &lt;p&gt;&lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4621&amp;amp;entry_id=606&quot; title=&quot;http://php.net/curl&quot;  onmouseover=&quot;window.status=&#039;http://php.net/curl&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;ext/curl&lt;/a&gt; is the common tool of choice, if one needs to perform more advanced HTTP requests from a PHP script (for simple ones, use a &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4624&amp;amp;entry_id=606&quot; title=&quot;http://php.net/stream&quot;  onmouseover=&quot;window.status=&#039;http://php.net/stream&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;stream&lt;/a&gt;!). I recently wanted to perform a HEAD request to a file, after which I wanted to perform some more advanced HTTP interaction, so &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4623&amp;amp;entry_id=606&quot; title=&quot;http://curl.haxx.se/&quot;  onmouseover=&quot;window.status=&#039;http://curl.haxx.se/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;CURL&lt;/a&gt; was also the tool of choice here.&lt;/p&gt;
116
117 &lt;p&gt;Trying it out on the shell with a local web server, CURL was operating quite slow, in contrast to a GET request. The &lt;i&gt;-i&lt;/i&gt; command line switch makes curl include the headers in the printed output, &lt;i&gt;-X&lt;/i&gt; lets you define a custom HTTP request.&lt;/p&gt;
118
119
120 &lt;pre&gt;&lt;code&gt;dotxp@tango ~ $ time curl -i -X HEAD http://localhost/admin/
121 HTTP/1.1 200 OK
122 X-Powered-By: PHP/5.2.7-dev
123
124 &amp;lt;snip type=&amp;quot;more http headers&amp;quot; /&amp;gt;
125
126 Content-Type: text/html; charset=utf-8
127 Date: Mon, 23 Jun 2008 09:10:59 GMT
128 Server: lighttpd/1.4.19
129
130 real    0m6.079s
131 user    0m0.004s
132 sys    0m0.000s&lt;/code&gt;&lt;/pre&gt;
133
134
135 &lt;pre&gt;&lt;code&gt;dotxp@tango ~ $ time curl -i -X GET http://localhost/admin/
136 HTTP/1.1 200 OK
137 Transfer-Encoding: chunked
138 X-Powered-By: PHP/5.2.7-dev
139
140 &amp;lt;snip type=&amp;quot;more http headers&amp;quot; /&amp;gt;
141
142 Content-Type: text/html; charset=utf-8
143 Date: Mon, 23 Jun 2008 09:12:27 GMT
144 Server: lighttpd/1.4.19
145
146 &amp;lt;snip content=&amp;quot;html source&amp;quot; /&amp;gt;
147
148 real    0m0.180s
149 user    0m0.004s
150 sys    0m0.000s&lt;/code&gt;&lt;/pre&gt;
151
152 &lt;p&gt;A difference of 6 seconds runtime of a HEAD in contrast to 0.2 seconds for a GET is quite contrary to the original idea of a HEAD request. HEAD is used to just receive the headers of an URI instead of receiving the whole contents, to save bandwidth, memory and execution time.&lt;/p&gt;
153
154 &lt;p&gt;ext/curl showed the exact same problem. Fiddling a bit with the command line switches, I found to replace &lt;i&gt;-i&lt;/i&gt; with &lt;i&gt;-I&lt;/i&gt; which makes curl print only the headers, but not the body of the response.&lt;/p&gt;
155
156
157 &lt;pre&gt;&lt;code&gt;dotxp@tango ~ $ time curl -I -X HEAD http://localhost/admin/
158 HTTP/1.1 200 OK
159 X-Powered-By: PHP/5.2.7-dev
160
161 &amp;lt;snip type=&amp;quot;more http headers&amp;quot; /&amp;gt;
162
163 Content-Type: text/html; charset=utf-8
164 Date: Mon, 23 Jun 2008 09:19:05 GMT
165 Server: lighttpd/1.4.19
166
167 real    0m0.044s
168 user    0m0.004s
169 sys    0m0.000s&lt;/code&gt;&lt;/pre&gt;
170
171 &lt;p&gt;0.04 seconds is now even faster than the corresponding GET request, with the -I switch, which took me 0.09 seconds. Now I just needed to transfer the command line options to the corresponding ext/curl ones:&lt;/p&gt;
172
173
174 &lt;pre&gt;&lt;code&gt;$c = curl_init();
175 curl_setopt( $c, CURLOPT_RETURNTRANSFER, true ); 
176 curl_setopt( $c, CURLOPT_CUSTOMREQUEST, &#039;HEAD&#039; ); 
177 curl_setopt( $c, CURLOPT_HEADER, 1 ); 
178 curl_setopt( $c, CURLOPT_NOBODY, true ); 
179 curl_setopt( $c, CURLOPT_URL, &#039;http://localhost/admin/&#039; ); 
180
181 $res = curl_exec( $c ); &lt;/code&gt;&lt;/pre&gt;
182
183 &lt;p&gt;The &lt;i&gt;RETURNTRANSFER&lt;/i&gt; makes ext/curl return the HTTP response instead of printing it. Using the &lt;i&gt;CUSTOMREQUEST&lt;/i&gt; option you define to send a HEAD request instead of a standard GET or POST request. The &lt;i&gt;HEADER&lt;/i&gt; option makes ext/curl include the response headers in the return value of &lt;i&gt;curl_exec()&lt;/i&gt; call and NOBODY avoids the inclusion of the body content here. The &lt;i&gt;URL&lt;/i&gt; option as usually sets the URL to request and &lt;i&gt;curl_exec()&lt;/i&gt; makes ext/curl execute the request.&lt;/p&gt;
184
185 &lt;p&gt;The runtime was even a fraction of a second faster here, compared to the command line version, but that can be subjectively. However, the HEAD request works as expected now. Maybe it&#039;s useful for someone to know this.&lt;/p&gt;
186
187  
188     </content:encoded>
189
190     <pubDate>Mon, 23 Jun 2008 11:25:00 +0200</pubDate>
191     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/606-guid.html</guid>
192     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>curl</category>
193 <category>howto</category>
194 <category>php</category>
195
196 </item>
197 <item>
198     <title>Hierarchical caching</title>
199     <link>http://schlitt.info/applications/blog/index.php?/archives/605-Hierarchical-caching.html</link>
200     
201     <comments>http://schlitt.info/applications/blog/index.php?/archives/605-Hierarchical-caching.html#comments</comments>
202     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=605</wfw:comment>
203
204     <slash:comments>2</slash:comments>
205     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=605</wfw:commentRss>
206     
207
208     <author>nospam@example.com (Tobias Schlitt)</author>
209     <content:encoded>
210     &lt;p&gt;One of the cool new features in the new &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4612&amp;amp;entry_id=605&quot; title=&quot;http://ezcomponents.org/resources/news/news-2008-06-16&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org/resources/news/news-2008-06-16&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;2008.1&lt;/a&gt; release of the &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4613&amp;amp;entry_id=605&quot; title=&quot;http://ezcomponents.org/&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;eZ Components&lt;/a&gt; library is hierarchical caching.&lt;/p&gt;
211
212 &lt;p&gt;Until now, we supported several types of cache storages. Some of these utilize the file system to store data, others can use APC or Memcache. While file based caches are usually large, since disk space is getting cheaper and cheaper, they are also much slower than memory based caches. RAM caches in contrast are blazingly fast, but memory is still much more limited than disk space. Therefore it is sensible, that the most important data for a website is stored in memory while less important stuff gets cached on the disk.&lt;/p&gt;
213
214 &lt;p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4614&amp;amp;entry_id=605&quot; title=&quot;http://ezcomponents.org/docs/tutorials/Cache#hierarchical-caching&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org/docs/tutorials/Cache#hierarchical-caching&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;img src=&quot;http://schlitt.info/ez/stack_complete.png&quot; border=&quot;0&quot; width=&quot;253&quot; height=&quot;255&quot; alt=&quot;stack_complete.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
215
216 &lt;p&gt;The new &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4615&amp;amp;entry_id=605&quot; title=&quot;http://ezcomponents.org/docs/api/trunk/Cache/ezcCacheStack.html&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org/docs/api/trunk/Cache/ezcCacheStack.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;ezcCacheStack&lt;/a&gt; class in the eZ Cache component provides an automatic way of realizing this. You simply stack together an arbitrary number of storages. The stack will store every item into all of the stacked caches. You can configure how many items may reside in a storage. A replacement strategy class takes care about purging a certain number items in case a storage runs full. On restore, the stack will fetch the desired item from the topmost cache it is still stored in.&lt;/p&gt;
217
218 &lt;p&gt;Replacement strategies shipped with the eZ Cache component provide you with 2 well-known &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4616&amp;amp;entry_id=605&quot; title=&quot;http://en.wikipedia.org/wiki/Cache_algorithms&quot;  onmouseover=&quot;window.status=&#039;http://en.wikipedia.org/wiki/Cache_algorithms&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;cache algorithms&lt;/a&gt;: Least Recently Used (LRU) and Least Frequently Used (LFU). The first one keeps track on when a cache item was last used and discards items that have not been used for the longest time, in case a storage runs full. LFU, in contrast to that, purges items that have been used least frequently. If none of these strategies fits your needs, you can always implement your own strategy, quite easily.&lt;/p&gt;
219
220 &lt;p&gt;Using the cache stack with an appropriate replacement strategy allows you to simply ignore which items are stored where and simply use the stack as your only cache storage.&lt;/p&gt;
221
222 &lt;p&gt;There are lots of other cool things in the 2008.1 package, which was released last Monday. We have 3 new components: &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4617&amp;amp;entry_id=605&quot; title=&quot;http://ezcomponents.org/docs/api/trunk/classtrees_Document.html&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org/docs/api/trunk/classtrees_Document.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Document&lt;/a&gt;, to parse and render different document formats, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4618&amp;amp;entry_id=605&quot; title=&quot;http://ezcomponents.org/docs/api/trunk/classtrees_Feed.html&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org/docs/api/trunk/classtrees_Feed.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Feed&lt;/a&gt;, for creation and aggregation of XML feeds, and &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4619&amp;amp;entry_id=605&quot; title=&quot;http://ezcomponents.org/docs/api/trunk/classtrees_Search.html&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org/docs/api/trunk/classtrees_Search.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Search&lt;/a&gt;, which is a search engine abstraction layer, modelled after the PersistentObject component. Beside that, some other components got major new features. Feedback as usually highly appreciated. Enjoy!&lt;/p&gt;
223
224  
225     </content:encoded>
226
227     <pubDate>Sun, 22 Jun 2008 11:50:00 +0200</pubDate>
228     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/605-guid.html</guid>
229     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>cache</category>
230 <category>ez components</category>
231 <category>feature</category>
232 <category>php</category>
233 <category>release</category>
234
235 </item>
236 <item>
237     <title>eZ Conference: A technical view on eZ Components slides</title>
238     <link>http://schlitt.info/applications/blog/index.php?/archives/604-eZ-Conference-A-technical-view-on-eZ-Components-slides.html</link>
239     
240     <comments>http://schlitt.info/applications/blog/index.php?/archives/604-eZ-Conference-A-technical-view-on-eZ-Components-slides.html#comments</comments>
241     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=604</wfw:comment>
242
243     <slash:comments>1</slash:comments>
244     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=604</wfw:commentRss>
245     
246
247     <author>nospam@example.com (Tobias Schlitt)</author>
248     <content:encoded>
249     &lt;p&gt;I&#039;ll be giving a session on the technical aspects of &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4607&amp;amp;entry_id=604&quot; title=&quot;http://ezcomponents.org&quot;  onmouseover=&quot;window.status=&#039;http://ezcomponents.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;eZ Components&lt;/a&gt; in about 20 minutes at the annual &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4608&amp;amp;entry_id=604&quot; title=&quot;http://conference.ez.no&quot;  onmouseover=&quot;window.status=&#039;http://conference.ez.no&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;eZ Conference&lt;/a&gt; here in Skien, Norway. Here are my &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4610&amp;amp;entry_id=604&quot; title=&quot;http://schlitt.info/download/ezconf2k8_ezc_state_tobias_schlitt.zip&quot;  onmouseover=&quot;window.status=&#039;http://schlitt.info/download/ezconf2k8_ezc_state_tobias_schlitt.zip&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;slides&lt;/a&gt; of this presentation for download. It also includes code examples for many new features in our most recent release 2008.1 (hot, just fron Tuesday). I&#039;ll write some more about that later.&lt;/p&gt;
250
251 &lt;p&gt;&lt;b&gt;Update&lt;/b&gt; (2008-06-20, 15:13): I messed up with the download link, which is fixed now.&lt;/p&gt;
252
253  
254     </content:encoded>
255
256     <pubDate>Fri, 20 Jun 2008 13:32:00 +0200</pubDate>
257     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/604-guid.html</guid>
258     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>conference</category>
259 <category>ez components</category>
260 <category>ez conference</category>
261 <category>php</category>
262
263 </item>
264 <item>
265     <title>Firefox 3 out now</title>
266     <link>http://schlitt.info/applications/blog/index.php?/archives/603-Firefox-3-out-now.html</link>
267     
268     <comments>http://schlitt.info/applications/blog/index.php?/archives/603-Firefox-3-out-now.html#comments</comments>
269     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=603</wfw:comment>
270
271     <slash:comments>8</slash:comments>
272     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=603</wfw:commentRss>
273     
274
275     <author>nospam@example.com (Tobias Schlitt)</author>
276     <content:encoded>
277     &lt;p&gt;Last night the Mozilla developers released &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4589&amp;amp;entry_id=603&quot; title=&quot;http://www.spreadfirefox.com/en-US/worldrecord/&quot;  onmouseover=&quot;window.status=&#039;http://www.spreadfirefox.com/en-US/worldrecord/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Firefox 3.0&lt;/a&gt; to the wild. Congratulations for the new major version!&lt;/p&gt;
278
279 &lt;p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4589&amp;amp;entry_id=603&quot; title=&quot;http://www.spreadfirefox.com/en-US/worldrecord/&quot;  onmouseover=&quot;window.status=&#039;http://www.spreadfirefox.com/en-US/worldrecord/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;img src=&quot;http://sfx-images.mozilla.org/affiliates/Buttons/firefox3/468x60.png&quot; border=&quot;0&quot; width=&quot;468&quot; height=&quot;60&quot; alt=&quot;468x60.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
280
281 &lt;p&gt;I&#039;ve been using the RCs since some weeks to see what the new version can. My impressions are a bit mixed. On the one hand, I love the new rendering, which seems much faster and smooth. The new bookmark management is quite cool and after some fiddling I also got my foreward/backward button back, which is 1 button instead of 2 now. Luckily, most of my favorid extensions already have adopted Firefox 3 and run smoothly. &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4590&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/en-US/firefox/addon/60&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/en-US/firefox/addon/60&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Web developer toolbar&lt;/a&gt;, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4591&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/en-US/firefox/addon/220&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/en-US/firefox/addon/220&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Flashgot&lt;/a&gt;, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4592&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/en-US/firefox/addon/1865&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/en-US/firefox/addon/1865&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Adblock plus&lt;/a&gt;, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4593&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/en-US/firefox/addon/433&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/en-US/firefox/addon/433&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Flashblock&lt;/a&gt;, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4594&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/en-US/firefox/addon/189&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/en-US/firefox/addon/189&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Google preview&lt;/a&gt;, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4595&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/firefox/addon/26&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/firefox/addon/26&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Download Statusbar&lt;/a&gt;, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4596&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/firefox/addon/748&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/firefox/addon/748&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Greasemonkey&lt;/a&gt; and the &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4597&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/en-US/firefox/addon/138&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/en-US/firefox/addon/138&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;StumbleUpon&lt;/a&gt; work nicely. &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4598&amp;amp;entry_id=603&quot; title=&quot;http://getfirebug.com/releases/allReleases.html&quot;  onmouseover=&quot;window.status=&#039;http://getfirebug.com/releases/allReleases.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Firebug&lt;/a&gt; ist still in beta state for 3.0, but also works fine so far.&lt;/p&gt;
282
283 &lt;p&gt;However, there are still some, which did not see new releases for ages and therefore do not seem to be even near to a Firefox 3 version. I needed to switch from &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4599&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/firefox/addon/12&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/firefox/addon/12&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;All-In-One-Gestures&lt;/a&gt; to &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4600&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/en-US/firefox/addon/6366&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/en-US/firefox/addon/6366&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Firegestures&lt;/a&gt;, which was fine, since I mostly use the &amp;quot;back&amp;quot; functionality which works the same in both. &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4602&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/en-US/firefox/addon/1122&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/en-US/firefox/addon/1122&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Tab Mix Plus&lt;/a&gt; does not work at all, but is essential for me. Started from the undo close tab history, which gives you a list of recently closed tabs instead of just restoring the last, over the duplicate tab function to the central close button, I&#039;m missing a good part of my used Firefox functionality.&lt;/p&gt;
284
285 &lt;p&gt;I&#039;m a bit sad, that I neither have the time nor the possibility to dig deeper into XUL stuff to fix the issues myself, which would be the open source way to do it. However, I still hope that someone else out there will have or that other people will come up with a different extension which brings the same nice features. So long, I can live quite good with Firefox 3 for now. It still hangs in certain conditions on my system, but that should be fixed in one of the next bug fix releases. I know very well, that X.0 versions are never absolutly stable. Amazing, how stable Firefox 3 already is!&lt;/p&gt;
286
287 &lt;p&gt;&lt;b&gt;In that sense, great work, Firefox hackers!&lt;/b&gt;&lt;/p&gt;
288
289 &lt;p&gt;Everyone out there should download and try out Firefox 3.0 today, to help with building the desired &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4589&amp;amp;entry_id=603&quot; title=&quot;http://www.spreadfirefox.com/en-US/worldrecord/&quot;  onmouseover=&quot;window.status=&#039;http://www.spreadfirefox.com/en-US/worldrecord/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;world record&lt;/a&gt;. There have already been more than 250,000 downloads from Germany, as I write this article. So, let&#039;s see where this leads. :)&lt;/p&gt;
290
291 &lt;p&gt;&lt;b&gt;Update&lt;/b&gt; (2008-06-18, 19:08): The &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4601&amp;amp;entry_id=603&quot; title=&quot;https://addons.mozilla.org/firefox/addon/321&quot;  onmouseover=&quot;window.status=&#039;https://addons.mozilla.org/firefox/addon/321&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Search Status&lt;/a&gt; extension works, seems I had disactivated it for some reason.&lt;/p&gt;
292
293 &lt;p&gt;&lt;b&gt;Update&lt;/b&gt; (2008-06-23, 10:36): Thanks to a comment here, I got aware of a recent &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4620&amp;amp;entry_id=603&quot; title=&quot;http://tmp.garyr.net/tab_mix_plus-dev-build.xpi&quot;  onmouseover=&quot;window.status=&#039;http://tmp.garyr.net/tab_mix_plus-dev-build.xpi&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;dev build&lt;/a&gt; of Tab Mix Plus. Luckily it seems to work quite fine, so my FF3 is near to be complete now. :)&lt;/p&gt;
294
295  
296     </content:encoded>
297
298     <pubDate>Wed, 18 Jun 2008 10:38:00 +0200</pubDate>
299     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/603-guid.html</guid>
300     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>firefox</category>
301 <category>open source</category>
302 <category>release</category>
303 <category>review</category>
304
305 </item>
306 <item>
307     <title>6 essential PHP development tools slides from IPC/DLW</title>
308     <link>http://schlitt.info/applications/blog/index.php?/archives/602-6-essential-PHP-development-tools-slides-from-IPCDLW.html</link>
309     
310     <comments>http://schlitt.info/applications/blog/index.php?/archives/602-6-essential-PHP-development-tools-slides-from-IPCDLW.html#comments</comments>
311     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=602</wfw:comment>
312
313     <slash:comments>1</slash:comments>
314     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=602</wfw:commentRss>
315     
316
317     <author>nospam@example.com (Tobias Schlitt)</author>
318     <content:encoded>
319     &lt;p&gt;A little bit belated, but as promised during the session, I just uploaded my slides from the talk &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4561&amp;amp;entry_id=602&quot; title=&quot;http://schlitt.info/misc/ipc2k6s_6_essential_php_tools_tobias_schlitt.zip&quot;  onmouseover=&quot;window.status=&#039;http://schlitt.info/misc/ipc2k6s_6_essential_php_tools_tobias_schlitt.zip&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;6 essential PHP development tools in 60 minutes&lt;/a&gt;. Since there is so much to say I actually managed to get 4,5 tools through and for all of these it felt to be too few time. I think I should provide a workshop for the next conference&lt;/p&gt;
320
321 &lt;p&gt;Hope to see you there! &#039;till next time.&lt;/p&gt;
322
323  
324     </content:encoded>
325
326     <pubDate>Thu, 29 May 2008 10:41:07 +0200</pubDate>
327     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/602-guid.html</guid>
328     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>dlw</category>
329 <category>dlw2k8</category>
330 <category>ipc2k8s</category>
331 <category>pear</category>
332 <category>php</category>
333 <category>php conference</category>
334 <category>php manual</category>
335 <category>phpdoc</category>
336 <category>phpunit</category>
337 <category>svn</category>
338 <category>xdebug</category>
339
340 </item>
341 <item>
342     <title>eZ Components status slides from IPC/DLW</title>
343     <link>http://schlitt.info/applications/blog/index.php?/archives/601-eZ-Components-status-slides-from-IPCDLW.html</link>
344     
345     <comments>http://schlitt.info/applications/blog/index.php?/archives/601-eZ-Components-status-slides-from-IPCDLW.html#comments</comments>
346     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=601</wfw:comment>
347
348     <slash:comments>0</slash:comments>
349     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=601</wfw:commentRss>
350     
351
352     <author>nospam@example.com (Tobias Schlitt)</author>
353     <content:encoded>
354     &lt;p&gt;You can find my slides from &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4560&amp;amp;entry_id=601&quot; title=&quot;http://schlitt.info/misc/ipc2k8s_ezc_state_tobias_schlitt.zip&quot;  onmouseover=&quot;window.status=&#039;http://schlitt.info/misc/ipc2k8s_ezc_state_tobias_schlitt.zip&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;The state of eZ Components&lt;/a&gt; online now. The talk was quite crowded and I hope to also have attract some new contributors.&lt;/p&gt;
355
356  
357     </content:encoded>
358
359     <pubDate>Wed, 28 May 2008 12:34:31 +0200</pubDate>
360     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/601-guid.html</guid>
361     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>dlw</category>
362 <category>dlw2k8</category>
363 <category>ez components</category>
364 <category>ipc2k8s</category>
365 <category>php</category>
366 <category>php conference</category>
367
368 </item>
369 <item>
370     <title>Database abstraction slides from IPC</title>
371     <link>http://schlitt.info/applications/blog/index.php?/archives/600-Database-abstraction-slides-from-IPC.html</link>
372     
373     <comments>http://schlitt.info/applications/blog/index.php?/archives/600-Database-abstraction-slides-from-IPC.html#comments</comments>
374     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=600</wfw:comment>
375
376     <slash:comments>2</slash:comments>
377     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=600</wfw:commentRss>
378     
379
380     <author>nospam@example.com (Tobias Schlitt)</author>
381     <content:encoded>
382     &lt;p&gt;I just uploaded my slides from the talk &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4559&amp;amp;entry_id=600&quot; title=&quot;http://schlitt.info/misc/ipc2k8s_ezc_db_abstraction_tobias_schlitt.zip&quot;  onmouseover=&quot;window.status=&#039;http://schlitt.info/misc/ipc2k8s_ezc_db_abstraction_tobias_schlitt.zip&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Database abstraction with eZ Components&lt;/a&gt;. Thanks to the attendees for being so active and even borrowing me a notebook and an USB stick, since the beamer disliked my Thinkpad! :) The slides are CC by (see last slide for details).&lt;/p&gt;
383
384  
385     </content:encoded>
386
387     <pubDate>Tue, 27 May 2008 17:14:29 +0200</pubDate>
388     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/600-guid.html</guid>
389     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>dlw</category>
390 <category>dlw2k8</category>
391 <category>ez components</category>
392 <category>ipc2k8s</category>
393 <category>php</category>
394 <category>php conference</category>
395
396 </item>
397 <item>
398     <title>Girl Geek Dinner right before IPC/DLW next week</title>
399     <link>http://schlitt.info/applications/blog/index.php?/archives/599-Girl-Geek-Dinner-right-before-IPCDLW-next-week.html</link>
400     
401     <comments>http://schlitt.info/applications/blog/index.php?/archives/599-Girl-Geek-Dinner-right-before-IPCDLW-next-week.html#comments</comments>
402     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=599</wfw:comment>
403
404     <slash:comments>1</slash:comments>
405     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=599</wfw:commentRss>
406     
407
408     <author>nospam@example.com (Tobias Schlitt)</author>
409     <content:encoded>
410     &lt;p&gt;Next week the &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4554&amp;amp;entry_id=599&quot; title=&quot;http://it-republik.de/conferences/dlw-europe/&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/conferences/dlw-europe/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Dynamic Languages World&lt;/a&gt; conference (aka &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4555&amp;amp;entry_id=599&quot; title=&quot;http://it-republik.de/php/phpconference/&quot;  onmouseover=&quot;window.status=&#039;http://it-republik.de/php/phpconference/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;International PHP Conference&lt;/a&gt; Spring Edition) will be held in Karlsruhe, Germany. &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4557&amp;amp;entry_id=599&quot; title=&quot;http://girlgeekdinner.de/entry/12/girl_geek_dinner_karlsruhe_260&quot;  onmouseover=&quot;window.status=&#039;http://girlgeekdinner.de/entry/12/girl_geek_dinner_karlsruhe_260&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Nicole organized a Girl Geek Dinner&lt;/a&gt; right before the main events start (that means Monday evening). I really like the idea of Girl Geek Dinner, since it&#039;s a good attempt to raise the women rate on geek events, which is usually (sadly) extremly low. On the other hand I like to hang around, have some good meal, enjoy a beer and a good technical discussion. Therefore: +1 from my side for &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4557&amp;amp;entry_id=599&quot; title=&quot;http://girlgeekdinner.de/entry/12/girl_geek_dinner_karlsruhe_260&quot;  onmouseover=&quot;window.status=&#039;http://girlgeekdinner.de/entry/12/girl_geek_dinner_karlsruhe_260&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Girl Geek Dinner&lt;/a&gt;. :)&lt;/p&gt;
411
412  
413     </content:encoded>
414
415     <pubDate>Tue, 20 May 2008 22:43:54 +0200</pubDate>
416     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/599-guid.html</guid>
417     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>dlw</category>
418 <category>dlw2k8</category>
419 <category>ggd</category>
420 <category>ipc</category>
421 <category>ipc2k8s</category>
422 <category>php</category>
423 <category>php conference</category>
424
425 </item>
426 <item>
427     <title>Removed 1100 photos from Flickr</title>
428     <link>http://schlitt.info/applications/blog/index.php?/archives/598-Removed-1100-photos-from-Flickr.html</link>
429     
430     <comments>http://schlitt.info/applications/blog/index.php?/archives/598-Removed-1100-photos-from-Flickr.html#comments</comments>
431     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=598</wfw:comment>
432
433     <slash:comments>12</slash:comments>
434     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=598</wfw:commentRss>
435     
436
437     <author>nospam@example.com (Tobias Schlitt)</author>
438     <content:encoded>
439     &lt;p&gt;After some heavy discussions with &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4550&amp;amp;entry_id=598&quot; title=&quot;http://kore-nordmann.de&quot;  onmouseover=&quot;window.status=&#039;http://kore-nordmann.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Kore&lt;/a&gt; and others I researched about German law in respect to individual rights on photos yesterday. Thanks to &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4551&amp;amp;entry_id=598&quot; title=&quot;http://arne-nordmann.de&quot;  onmouseover=&quot;window.status=&#039;http://arne-nordmann.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Arne&lt;/a&gt;, who gave me a good &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4552&amp;amp;entry_id=598&quot; title=&quot;http://de.wikipedia.org/wiki/Recht_am_eigenen_Bild&quot;  onmouseover=&quot;window.status=&#039;http://de.wikipedia.org/wiki/Recht_am_eigenen_Bild&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;starting point&lt;/a&gt; (German) for my research. In the end, Kore was mostly right with his interpretation, what made me remove about 1100 photos from my &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4553&amp;amp;entry_id=598&quot; title=&quot;http://www.flickr.com/photos/tobiasschlitt/&quot;  onmouseover=&quot;window.status=&#039;http://www.flickr.com/photos/tobiasschlitt/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Flickr gallery&lt;/a&gt;. All of those showing people dedicatedly where I do not feel to have the explicit permission to publish their pictures. I&#039;ll try to explain the reasons, my personal issues and possibly solutions in this article.&lt;/p&gt;
440
441  &lt;br /&gt;&lt;a href=&quot;http://schlitt.info/applications/blog/index.php?/archives/598-Removed-1100-photos-from-Flickr.html#extended&quot;&gt;Continue reading &quot;Removed 1100 photos from Flickr&quot;&lt;/a&gt;
442     </content:encoded>
443
444     <pubDate>Sat, 03 May 2008 12:01:00 +0200</pubDate>
445     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/598-guid.html</guid>
446     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>community related</category>
447 <category>law</category>
448 <category>legal issues</category>
449 <category>photography</category>
450 <category>photos</category>
451 <category>php conference</category>
452 <category>privacy</category>
453
454 </item>
455 <item>
456     <title>RoR does not scale?</title>
457     <link>http://schlitt.info/applications/blog/index.php?/archives/597-RoR-does-not-scale.html</link>
458     
459     <comments>http://schlitt.info/applications/blog/index.php?/archives/597-RoR-does-not-scale.html#comments</comments>
460     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=597</wfw:comment>
461
462     <slash:comments>2</slash:comments>
463     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=597</wfw:commentRss>
464     
465
466     <author>nospam@example.com (Tobias Schlitt)</author>
467     <content:encoded>
468     &lt;p&gt;It&#039;s interessting to see &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4549&amp;amp;entry_id=597&quot; title=&quot;http://www.techcrunch.com/2008/05/01/twitter-said-to-be-abandoning-ruby-on-rails/&quot;  onmouseover=&quot;window.status=&#039;http://www.techcrunch.com/2008/05/01/twitter-said-to-be-abandoning-ruby-on-rails/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;more people abandoning Ruby on Rails&lt;/a&gt;. Not that I have something against Ruby itself, but it really seems to me that RoR does not scale. Hope Twitter tries with PHP. ;)&lt;/p&gt;
469
470  
471     </content:encoded>
472
473     <pubDate>Fri, 02 May 2008 00:26:40 +0200</pubDate>
474     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/597-guid.html</guid>
475     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>php</category>
476 <category>ruby on rails</category>
477 <category>scalability</category>
478
479 </item>
480 <item>
481     <title>Human support and feature requests at Xing</title>
482     <link>http://schlitt.info/applications/blog/index.php?/archives/596-Human-support-and-feature-requests-at-Xing.html</link>
483     
484     <comments>http://schlitt.info/applications/blog/index.php?/archives/596-Human-support-and-feature-requests-at-Xing.html#comments</comments>
485     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=596</wfw:comment>
486
487     <slash:comments>0</slash:comments>
488     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=596</wfw:commentRss>
489     
490
491     <author>nospam@example.com (Tobias Schlitt)</author>
492     <content:encoded>
493     &lt;p&gt;I like &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4545&amp;amp;entry_id=596&quot; title=&quot;http://xing.com&quot;  onmouseover=&quot;window.status=&#039;http://xing.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Xing&lt;/a&gt;. I actually like some of the social networks, although I think there are far to many of them. However, Xing is useful to me for keeping my address book updated by my business contacts themselves and to be up2date about who is doing what. Nice! I&#039;m also a &amp;quot;premium&amp;quot; (in the sense of paying) user in Xing. On the one hand because that gives me some nice additional features and safes me from advertisement. On the other one because I think paying for a good online service is a good idea.&lt;/p&gt;
494
495 &lt;p&gt;What I really wonder is: What happens to the feature requests and support questions I address to Xing? I don&#039;t really have the impression anyone takes care in anyway. Therefore I&#039;d like to tell you the story of 2 tiny feature requests I addressed to Xing some months ago and several times since then. I think, I did not request features that are too difficult to realize. Now, I don&#039;t have any clue about web applications, so I might be wrong in this impression. ;) I&#039;m also quite sure that many more people out there would love to see the same stuff realized, so it&#039;s not even that they consider my questions too useless for a qualified response.&lt;/p&gt;
496
497 &lt;p&gt;However, whenever I send them a message via their contact form, I receive an autogenerated message ala &amp;quot;Thanks for your request, we take our users requests serious&amp;quot; a few hours later. Good to hear, that their system at least received my message. Another one, probably also auto-generated, that says &amp;quot;We forwarded your message to the development department.&amp;quot; flies to my inbox usually a few days or weeks. Good to see, you take care over there at Xing! Although this is the final message I received about every such request.&lt;/p&gt;
498
499 &lt;p&gt;No, to stay seriously and keep sarcasm away, is anyone taking  care? I can&#039;t believe. I requested one and the same feature 3 times now and another one 2 times already. Without any response that seemed to be written  by anything else than a computer. I&#039;m not even sure that any human being ever read my mails. Maybe they have some fancy text recognition tool that generates standard replies automatically? Is it so hard to send a reply like &amp;quot;Sorry, we are not able to realize this, because...&amp;quot; or &amp;quot;Sorry, we don&#039;t think that feature Foo Bar is useful to our users, because...&amp;quot;? Is it so hard to give a use the feeling that anyone really takes care? Possibly I just asked the wrong question. If it is that way, please let me know.&lt;/p&gt;
500
501 &lt;p&gt;To let you finally know what I want: Xing offers an RSS feeds for a lot of stuff. From the latest visitors of my profile to any &lt;del&gt;pointless&lt;/del&gt;&lt;ins&gt;important&lt;/ins&gt; status messages, I can see everything right away in my feed reader. Why the hell not the next birthdays of my contacts? Why can I see &amp;quot;Foo Bar likes Xing status messages&amp;quot; in my &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4546&amp;amp;entry_id=596&quot; title=&quot;http://torii.org&quot;  onmouseover=&quot;window.status=&#039;http://torii.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Torii&lt;/a&gt;, but not who has his birthday today? The second &lt;del&gt;tiny&lt;/del&gt;&lt;ins&gt;huge&lt;/ins&gt; feature I requested could even be more difficult to realize: Xing let&#039;s you link additional information about you from your profile. Beside your website you can share links to other social networks there, like Flickr or LastFM and a whole load of others I did not even hear of. Why is &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4547&amp;amp;entry_id=596&quot; title=&quot;http://ohloh.com&quot;  onmouseover=&quot;window.status=&#039;http://ohloh.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Ohloh&lt;/a&gt; still missing? Guys, I&#039;m paying for your stuff, did you realize?&lt;/p&gt;
502
503 &lt;p&gt;Would be interessting to know if anyone ever had success with a feature request at Xing, or if they just implement what the think is useful for their users?&lt;/p&gt;
504
505  
506     </content:encoded>
507
508     <pubDate>Tue, 15 Apr 2008 20:01:00 +0200</pubDate>
509     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/596-guid.html</guid>
510     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>annoyance</category>
511 <category>feature</category>
512 <category>support</category>
513 <category>xing</category>
514
515 </item>
516 <item>
517     <title>Fighting &quot;personal spam&quot;?</title>
518     <link>http://schlitt.info/applications/blog/index.php?/archives/595-Fighting-personal-spam.html</link>
519     
520     <comments>http://schlitt.info/applications/blog/index.php?/archives/595-Fighting-personal-spam.html#comments</comments>
521     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=595</wfw:comment>
522
523     <slash:comments>0</slash:comments>
524     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=595</wfw:commentRss>
525     
526
527     <author>nospam@example.com (Tobias Schlitt)</author>
528     <content:encoded>
529     &lt;p&gt;I&#039;ve been to the Dortmund post office quite often lately, mostly because I&#039;m never at home when the postman wants to deliver my packages. The largest German post service provider &amp;quot;Deutsche Post AG&amp;quot; also owns a bank, the &amp;quot;Postbank&amp;quot;. While they did not bother me with any of that stuff earlier, their advertisement for non-postal and postal products starts getting more and more annoying. But let me start at the beginning...&lt;/p&gt;
530
531 &lt;p&gt;While queuing inside the office to get to a counter, you need to stand between shelves that contain other stuff they sell at the post office: Stationery, cellphones, home phones and much more. Since you usually queue between 10 and 30 minutes you get enough time to read all those nice advertisement slogans. Right before you get to a counter, there is a large LCD screen that constantly shows a mixture of recent news and more and more advertisement: Banking stuff, cellphones, postal services and so on. When you finally make it to the counter, the staffer is usually unfriendly and not the fastest one. However, we are used to this for ages now and it&#039;s not the point of this article. When you are finally done hand happy to hold the latest DVD from Amazon in your hands, the staffer suddenly gets friendly: &amp;quot;Do you already have an account at Postbank?&amp;quot;. A friendly &amp;quot;No thanks&amp;quot; does not work: &amp;quot;A just wanted to make sure you noticed...&amp;quot;. &amp;quot;No, thank you!&amp;quot;. &amp;quot;But it&#039;s about your future! Do you know you can save...&amp;quot;. &amp;quot;I am sorry, but I already have a bank account and I do not want to change!&amp;quot;.&lt;/p&gt;
532
533 &lt;p&gt;After I had this situation for the 3rd time within a week now, I tend to simply lie to those people: I now tell them I&#039;d still work for my old employer which also was a bank. This seems to work perfectly fine and they even reply with &amp;quot;Oh, sorry for disturbing you&amp;quot; and let you go. However, I wonder if there isn&#039;t any legal remedy I have against such spam? It is illegal to send me emails about drugs I&#039;m not interessted in, but to spam me personally about banking services I don&#039;t want?&lt;/p&gt;
534
535  
536     </content:encoded>
537
538     <pubDate>Thu, 03 Apr 2008 18:54:21 +0200</pubDate>
539     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/595-guid.html</guid>
540     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>advertisement</category>
541 <category>annoyance</category>
542 <category>personal</category>
543 <category>spam</category>
544
545 </item>
546 <item>
547     <title>My new hobby</title>
548     <link>http://schlitt.info/applications/blog/index.php?/archives/594-My-new-hobby.html</link>
549     
550     <comments>http://schlitt.info/applications/blog/index.php?/archives/594-My-new-hobby.html#comments</comments>
551     <wfw:comment>http://schlitt.info/applications/blog/wfwcomment.php?cid=594</wfw:comment>
552
553     <slash:comments>2</slash:comments>
554     <wfw:commentRss>http://schlitt.info/applications/blog/rss.php?version=2.0&amp;type=comments&amp;cid=594</wfw:commentRss>
555     
556
557     <author>nospam@example.com (Tobias Schlitt)</author>
558     <content:encoded>
559     &lt;p&gt;As I already &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4528&amp;amp;entry_id=594&quot; title=&quot;http://schlitt.info/applications/blog/index.php?/archives/593-Berlin-trip-Dance-of-the-Vampires.html&quot;  onmouseover=&quot;window.status=&#039;http://schlitt.info/applications/blog/index.php?/archives/593-Berlin-trip-Dance-of-the-Vampires.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;mentioned earlier&lt;/a&gt;, I recently bought a brand new &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4529&amp;amp;entry_id=594&quot; title=&quot;http://imaging.nikon.com/products/imaging/lineup/digitalcamera/slr/d80/index.htm&quot;  onmouseover=&quot;window.status=&#039;http://imaging.nikon.com/products/imaging/lineup/digitalcamera/slr/d80/index.htm&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Nikon D80&lt;/a&gt; and started with a new hobby: &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4530&amp;amp;entry_id=594&quot; title=&quot;http://www.flickr.com/photos/tobiasschlitt/&quot;  onmouseover=&quot;window.status=&#039;http://www.flickr.com/photos/tobiasschlitt/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Photography&lt;/a&gt;. :) With this entry I&#039;d like to share some first experiences in this direction. The D80 seems to be a very good camera, I&#039;m really amazed about its poissibillities. It is the best non-professional Nikon camera, AFAIK, and might be even a bit oversized for a photo beginner like me. Until now I only had experiences with compact cams and the D80 is my first DSLR (digital single lens reflex) camera. However, I&#039;m very interessted in photography so I&#039;m sure I will grow with this camery quite fast. The source of my interest are inspiring photographers in my surrounding: &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4531&amp;amp;entry_id=594&quot; title=&quot;http://flickr.com/photos/derickrethans/&quot;  onmouseover=&quot;window.status=&#039;http://flickr.com/photos/derickrethans/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Derick&lt;/a&gt;, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4532&amp;amp;entry_id=594&quot; title=&quot;http://flickr.com/photos/sebastian_bergmann/&quot;  onmouseover=&quot;window.status=&#039;http://flickr.com/photos/sebastian_bergmann/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Sebastian&lt;/a&gt;, &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4533&amp;amp;entry_id=594&quot; title=&quot;http://flickr.com/photos/helly25/&quot;  onmouseover=&quot;window.status=&#039;http://flickr.com/photos/helly25/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Marcus&lt;/a&gt; and most recently also &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4534&amp;amp;entry_id=594&quot; title=&quot;http://kore-nordmann.de/photos/index.html&quot;  onmouseover=&quot;window.status=&#039;http://kore-nordmann.de/photos/index.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Kore&lt;/a&gt; and &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4535&amp;amp;entry_id=594&quot; title=&quot;http://westhoffswelt.de/photos/light_games.html&quot;  onmouseover=&quot;window.status=&#039;http://westhoffswelt.de/photos/light_games.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Jakob&lt;/a&gt;. In addition, I love great photos and always wanted to be able to take those on my own. The final clincher was the &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4528&amp;amp;entry_id=594&quot; title=&quot;http://schlitt.info/applications/blog/index.php?/archives/593-Berlin-trip-Dance-of-the-Vampires.html&quot;  onmouseover=&quot;window.status=&#039;http://schlitt.info/applications/blog/index.php?/archives/593-Berlin-trip-Dance-of-the-Vampires.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;experience with Kores D70s in Berlin&lt;/a&gt;.&lt;/p&gt;
560
561 &lt;p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4537&amp;amp;entry_id=594&quot; title=&quot;http://www.flickr.com/photos/tobiasschlitt/2382602257/in/set-72157604344263840/&quot;  onmouseover=&quot;window.status=&#039;http://www.flickr.com/photos/tobiasschlitt/2382602257/in/set-72157604344263840/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2111/2382602257_20e9b660a0_m.jpg&quot; border=&quot;0&quot; width=&quot;240&quot; height=&quot;161&quot; alt=&quot;2382602257_20e9b660a0_m.jpg&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4538&amp;amp;entry_id=594&quot; title=&quot;http://www.flickr.com/photos/tobiasschlitt/2382616989/in/set-72157604344263840/&quot;  onmouseover=&quot;window.status=&#039;http://www.flickr.com/photos/tobiasschlitt/2382616989/in/set-72157604344263840/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3071/2382616989_c92a559875_m.jpg&quot; border=&quot;0&quot; width=&quot;240&quot; height=&quot;161&quot; alt=&quot;2382616989_c92a559875_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
562
563 &lt;p&gt;To get started with started with the subject, Jakob recommended &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4539&amp;amp;entry_id=594&quot; title=&quot;http://www.amazon.de/Nikon-D80-Das-Buch-Kamera/dp/3925334807/&quot;  onmouseover=&quot;window.status=&#039;http://www.amazon.de/Nikon-D80-Das-Buch-Kamera/dp/3925334807/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;a great book&lt;/a&gt; to me, which I want to recommend to you now. The book is only available in German, AFAIK, so sorry to you English only readers. &amp;quot;&lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4539&amp;amp;entry_id=594&quot; title=&quot;http://www.amazon.de/Nikon-D80-Das-Buch-Kamera/dp/3925334807/&quot;  onmouseover=&quot;window.status=&#039;http://www.amazon.de/Nikon-D80-Das-Buch-Kamera/dp/3925334807/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Nikon D80 - Das Buch zu Kamera&lt;/a&gt;&amp;quot; does not only give a much more valuable overview on the D80 than the instructions manual does. It also gave me some good hints on what to pay attention for in photography and some technical background. Combined with practical use cases and helpful suggestions for custom settings and equipment, I&#039;m still getting started with a great now hobby. If you like to get more info on this book, please take a look at my recension on &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4541&amp;amp;entry_id=594&quot; title=&quot;http://amazon.de&quot;  onmouseover=&quot;window.status=&#039;http://amazon.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Amazon&lt;/a&gt; (as soon as it is online).&lt;/p&gt;
564
565 &lt;p&gt;You can be sure to read some more about my photography progress and to see some more of my pictures here in future. If you want to stay completly tuned, please &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4542&amp;amp;entry_id=594&quot; title=&quot;http://api.flickr.com/services/feeds/photos_public.gne?id=51884245@N00&amp;amp;amp;lang=en-us&amp;amp;amp;format=atom&quot;  onmouseover=&quot;window.status=&#039;http://api.flickr.com/services/feeds/photos_public.gne?id=51884245@N00&amp;amp;amp;lang=en-us&amp;amp;amp;format=atom&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;subscribe&lt;/a&gt; to my &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4530&amp;amp;entry_id=594&quot; title=&quot;http://www.flickr.com/photos/tobiasschlitt/&quot;  onmouseover=&quot;window.status=&#039;http://www.flickr.com/photos/tobiasschlitt/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;photo stream&lt;/a&gt; on &lt;a href=&quot;http://schlitt.info/applications/blog/exit.php?url_id=4544&amp;amp;entry_id=594&quot; title=&quot;http://www.flickr.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.flickr.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Flickr&lt;/a&gt;.&lt;/p&gt;
566
567  
568     </content:encoded>
569
570     <pubDate>Wed, 02 Apr 2008 23:07:00 +0200</pubDate>
571     <guid isPermaLink="false">http://schlitt.info/applications/blog/index.php?/archives/594-guid.html</guid>
572     <creativeCommons:license>http://creativecommons.org/licenses/by-nd/2.5/</creativeCommons:license><category>amazon</category>
573 <category>book</category>
574 <category>d80</category>
575 <category>flickr</category>
576 <category>gallery</category>
577 <category>german</category>
578 <category>image</category>
579 <category>nikon</category>
580 <category>photography</category>
581 <category>photos</category>
582 <category>private</category>
583 <category>recommendation</category>
584
585 </item>
586
587 </channel>
588 </rss>