<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Thomas Koch - english</title>
    <link>http://koch.ro/blog/</link>
    <description>Dubio Sapientiae Initium.</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1-1 - http://www.s9y.org/</generator>
    <pubDate>Wed, 24 Jun 2009 07:15:02 GMT</pubDate>

    <image>
        <url>http://koch.ro/blog/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Thomas Koch - english - Dubio Sapientiae Initium.</title>
        <link>http://koch.ro/blog/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>eZ Components: The Good The Bad and the Ugly</title>
    <link>http://koch.ro/blog/index.php?/archives/125-eZ-Components-The-Good-The-Bad-and-the-Ugly.html</link>
            <category>english</category>
            <category>eZ Publish</category>
            <category>PHP</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/125-eZ-Components-The-Good-The-Bad-and-the-Ugly.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=125</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=125</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    I&#039;ve been nominated &lt;a href=&quot;http://ez.no/company/news/nominees_for_ez_awards_2007&quot;&gt;again&lt;/a&gt; for the &lt;a href=&quot;http://ez.no/company/ez_conference_awards/ez_awards&quot;&gt;eZ Components Award&lt;/a&gt;. Thanks to &lt;a href=&quot;http://ez.no&quot;&gt;eZ Systems&lt;/a&gt; for honour and to me employer &lt;a href=&quot;http://www.ymc.ch&quot;&gt;YMC&lt;/a&gt; for the food!&lt;br /&gt;
So this is a good occasion to assemble a list I&#039;ve had in mind for a longer time. In a big project like &lt;a href=&quot;http://ezcomponents.org&quot;&gt;eZ Components&lt;/a&gt;, which has been programmed by many contributors over a long time it is natural, that there are some better and some worse parts. So which components are the good, the bad and the ugly? Maybe this kind of overview could also be done by other users of other libraries too. Then we could assemble a big comparison table of framework or library components and one could pick the best parts of each.&lt;br /&gt;
You&#039;ll notice that even if I consider myself a power user of eZ Components, I won&#039;t give a rating for every component, because there are still a few, I&#039;ve not intensively used by now. So let&#039;s complete this table in a wiki somewhere together!&lt;br /&gt;
&lt;br /&gt;
So IMHO: &lt;table style=&quot;border:1px solid gray;&quot; rules=&quot;all&quot;&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Component&lt;/th&gt;&lt;th&gt;rating&lt;/th&gt;&lt;th&gt;justification&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Authentication&lt;/td&gt;   &lt;td&gt;works       &lt;/td&gt;&lt;td&gt;the component should better not handle $_SESSION itself      &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Cache&lt;/td&gt;            &lt;td&gt;not used yet&lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Configuration&lt;/td&gt;    &lt;td&gt;not used yet&lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;ConsoleTools&lt;/td&gt;     &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Database&lt;/td&gt;         &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;DatabaseSchema&lt;/td&gt;   &lt;td&gt;bad         &lt;/td&gt;&lt;td&gt;You want to have more control over your database schema.&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Document&lt;/td&gt;         &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;first ReST parser in PHP? Also many other formats!&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;EventLog&lt;/td&gt;         &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Feed&lt;/td&gt;             &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Graph&lt;/td&gt;            &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;ImageAnalysis&lt;/td&gt;    &lt;td&gt;not used yet&lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;ImageConversion&lt;/td&gt;  &lt;td&gt;not used yet&lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Mail&lt;/td&gt;             &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;MvcTools&lt;/td&gt;         &lt;td&gt;works       &lt;/td&gt;&lt;td&gt;too few documentation of best practices&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;PersistentObject&lt;/td&gt; &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Search&lt;/td&gt;           &lt;td&gt;ugly        &lt;/td&gt;&lt;td&gt;sorry, but it&#039;s not flexible enough for more then the most basic needs&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;SignalSlot&lt;/td&gt;       &lt;td&gt;bad         &lt;/td&gt;&lt;td&gt;haven&#039;t seen any use case that convinces me&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;SystemInformation&lt;/td&gt;&lt;td&gt;bad         &lt;/td&gt;&lt;td&gt;doesn&#039;t comply to ezc coding guidelines&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Template&lt;/td&gt;         &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;stable, fast, easily extensible&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Translation&lt;/td&gt;      &lt;td&gt;works       &lt;/td&gt;&lt;td&gt;Misses the important XLIFF format, but can be extended&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Tree&lt;/td&gt;             &lt;td&gt;not used yet&lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Url&lt;/td&gt;              &lt;td&gt;bad         &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;UserInput&lt;/td&gt;        &lt;td&gt;ugly        &lt;/td&gt;&lt;td&gt;see my attempt for a new &lt;a href=&quot;http://github.com/thkoch2001/ymc-htmlform/tree/master&quot;&gt;form component&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Webdav&lt;/td&gt;           &lt;td&gt;not used yet&lt;/td&gt;&lt;td&gt;but looks very promissing!&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;Workflow&lt;/td&gt;         &lt;td&gt;great       &lt;/td&gt;&lt;td&gt;           &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; The numbers: &lt;ul&gt; &lt;li&gt;not used yet: 6/25&lt;/li&gt; &lt;li&gt;works: 3/25&lt;/li&gt; &lt;li&gt;great: 10/25&lt;/li&gt; &lt;li&gt;bad: 4/25&lt;/li&gt; &lt;li&gt;ugly: 2/25&lt;/li&gt; &lt;/ul&gt; 
    </content:encoded>

    <pubDate>Wed, 17 Jun 2009 11:07:21 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/125-guid.html</guid>
    
</item>
<item>
    <title>Found my desktop for live</title>
    <link>http://koch.ro/blog/index.php?/archives/115-Found-my-desktop-for-live.html</link>
            <category>english</category>
            <category>information technologie</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/115-Found-my-desktop-for-live.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=115</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=115</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    After some experiments I finally found a desktop configuration I can life with. My first experiment with a somewhat stranger window manager was with &lt;a href=&quot;http://en.wikipedia.org/wiki/Ratpoison&quot;&gt;Ratpoison&lt;/a&gt;. The nicest properties of it are:&lt;br /&gt;
&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://koch.ro/blog/uploads/free_software/kde_awesome3.png&#039;&gt;&lt;!-- s9ymdb:50 --&gt;&lt;img width=&#039;110&#039; height=&#039;69&#039; style=&quot;float: right; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://koch.ro/blog/uploads/free_software/kde_awesome3.serendipityThumb.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;It is controlable only with the keyboard without the need to reach to the mouse&lt;/li&gt;&lt;li&gt;It automatically arranges the windows&lt;/li&gt;&lt;li&gt;It  doesn&#039;t waste screen space with useless window decorations like titlebars and borders&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Ratpoison is somewhat undermaintained and complicate, but there is &lt;a href=&quot;http://awesome.naquadah.org/&quot;&gt;awesome&lt;/a&gt;. This window manager is new, has a big community and all the good properties mentioned above.&lt;br /&gt;
But awesome is only a window manager, not a full blown desktop environment like KDE or GNOME. It lacks features like auto mounting, application autostart, session management, etc. So I was very enthusiastic, when I found out about the KDEWM environment variable. This variable tells KDE to use an alternative window manager instead of the standard &quot;kde window manager&quot;. The result is here:&lt;br /&gt;
&lt;a  href=&#039;http://koch.ro/blog/uploads/free_software/kde_awesome1.png&#039;&gt;&lt;!-- s9ymdb:48 --&gt;&lt;img style=&quot;float:left;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://koch.ro/blog/uploads/free_software/kde_awesome1.serendipityThumb.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
The KDE symbol in the lower right is not part of the background image, but a KDE widget that gives me the start menu with all applications and session management features (logout, switch user, suspend...):&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://koch.ro/blog/uploads/free_software/kde_awesome2.png&#039;&gt;&lt;!-- s9ymdb:49 --&gt;&lt;img width=&#039;50&#039; height=&#039;110&#039; style=&quot;float: right; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://koch.ro/blog/uploads/free_software/kde_awesome2.serendipityThumb.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
And while working I see only the applications I need, nothing more.  
    </content:encoded>

    <pubDate>Wed, 15 Apr 2009 20:53:24 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/115-guid.html</guid>
    
</item>
<item>
    <title>Google Tech Talk: &quot;The Palestinian Perspective&quot;</title>
    <link>http://koch.ro/blog/index.php?/archives/114-Google-Tech-Talk-The-Palestinian-Perspective.html</link>
            <category>english</category>
            <category>world views</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/114-Google-Tech-Talk-The-Palestinian-Perspective.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=114</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=114</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    I&#039;m very happy, that google hosts not only tech talks, but covers many important topics. This one was hold by &lt;a href=&quot;http://pamolson.org/&quot;&gt;Pamela J. Olson&lt;/a&gt; about &quot;&lt;a href=&quot;&quot;http://www.youtube.com/watch?v=oSkevV-CoO4&gt;The Palestinian Perspective: What the world looks like from the West Bank&lt;/a&gt;&quot;.&lt;br /&gt;
Since there&#039;s no other place, I put my questions here:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;What&#039;s the role of &lt;a href=&quot;http://www.koch.ro/blog/index.php?/archives/102-Definition-Religion.html&quot;&gt;religion&lt;/a&gt; in this conflict? Is &lt;a href=&quot;http://en.wikipedia.org/wiki/Age_of_Enlightenment&quot;&gt;enlightenment&lt;/a&gt; a building brick of peace? Not only in the near east, but also in america?&lt;/li&gt;
&lt;li&gt;Does the internet help to balance the world&#039;s information on the conflict?&lt;/li&gt;
&lt;li&gt;What&#039;s the current positon of the new american administration?&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Related links to this talk&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Veranstaltung auf dem &lt;a href=&quot;http://kirchentag.mixxt.de&quot;&gt;Kirchentag&lt;/a&gt; über die gesellschaftliche Rolle des Internets&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.reddit.com/r/worldnews/comments/822yt/after_the_gaza_assault_google_decided_to_host_a/.mobile&quot;&gt;The talk on reddit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.virtualchaos.co.uk/blog/2009/02/22/the-palestinian-perspective-what-the-world-looks-like-from-the-west-bank/&quot;&gt;VirtualChaos - Nadeem’s blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://globalmindshift.blogspot.com/2009/01/global-mindshift-google-now-on-youtube.html&quot;&gt;Global Mindshift&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;  
    </content:encoded>

    <pubDate>Sun, 05 Apr 2009 10:57:54 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/114-guid.html</guid>
    
</item>
<item>
    <title>Definition Religion</title>
    <link>http://koch.ro/blog/index.php?/archives/102-Definition-Religion.html</link>
            <category>english</category>
            <category>world views</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/102-Definition-Religion.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=102</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=102</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    There is no general accepted definition of the term &quot;religion&quot;.[1] When I write my personal definition here, then I do not intend in any way to claim this definition to be scientifical correct or general acceptable. It&#039;s only what I am thinking of, when using the term.&lt;br /&gt;
&lt;br /&gt;
So my Definition:&lt;br /&gt;
&lt;quote&gt;Religion is the sensation of a human to be dependent of an external power that controls his life. This way the human neglects responsibility for those parts of his life that he believes to be controlled by this external power and delegates this responsability. Examples for religions are:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;believe in dependency of cars (western world)&lt;/li&gt;&lt;li&gt;believe in dependency of a coming messias (judaism)&lt;/li&gt;&lt;li&gt;believe in dependency of a destiny (islam)&lt;/li&gt;&lt;li&gt;many aspects of christian culture&lt;/li&gt;&lt;/ul&gt;A counter example of religion is the statement &quot;God became human&quot;, which I believe to be the basis messages of a human called Jesus Christ.&lt;/quote&gt;&lt;br /&gt;
&lt;br /&gt;
[1] &lt;a href=&quot;http://en.wikipedia.org/wiki/Religion#Definitions_of_religion&quot;&gt;http://en.wikipedia.org/wiki/Religion#Definitions_of_religion&lt;/a&gt;  
    </content:encoded>

    <pubDate>Tue, 23 Dec 2008 13:07:39 +0100</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/102-guid.html</guid>
    
</item>
<item>
    <title>VIM an a PHP IDE</title>
    <link>http://koch.ro/blog/index.php?/archives/63-VIM-an-a-PHP-IDE.html</link>
            <category>english</category>
            <category>PHP</category>
            <category>VIM</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/63-VIM-an-a-PHP-IDE.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=63</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=63</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    Today I read an article from Matthew Weier O&#039;Phinney on Planet-PHP about &lt;a href=&quot;http://weierophinney.net/matthew/archives/164-Vim-Productivity-Tips-for-PHP-Developers.html#extended&quot;&gt;Programming PHP with VIM&lt;/a&gt;. Since he want&#039;s to continue his series and I wrote a similiar text these days, I thought to post the text I wrote so far.&lt;br /&gt;
&lt;br /&gt;
Maybe we can continue together to write a nice teaser to for PHP with VIM. It would be fine, to have one place (vim.org, php.net/docs ?) to collect all those nice helper scripts and plugins. The main benefit could be, that all the scripts can be installed together without overlapping key mappings.&lt;br /&gt;
&lt;br /&gt;
So much for now, since I&#039;m with my family to celebrate easter. Happy Easter to everybody celebrating it today!&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;vim-as-an-ide-for-php&quot;&gt;
&lt;h1 &gt;VIM as an IDE for PHP&lt;/h1&gt;
&lt;div &gt;
&lt;p &gt;&lt;a id=&quot;contents&quot; name=&quot;contents&quot;&gt;Contents&lt;/a&gt;&lt;/p&gt;
&lt;ul &gt;
&lt;li&gt;&lt;a  href=&quot;#templates&quot; id=&quot;id1&quot; name=&quot;id1&quot;&gt;Templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a  href=&quot;#codesniffer-integration&quot; id=&quot;id2&quot; name=&quot;id2&quot;&gt;Codesniffer integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a  href=&quot;#including-manuals&quot; id=&quot;id3&quot; name=&quot;id3&quot;&gt;Including Manuals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a  href=&quot;#autocompletition&quot; id=&quot;id4&quot; name=&quot;id4&quot;&gt;Autocompletition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a  href=&quot;#pdv-phpdocumentor-for-vim&quot; id=&quot;id5&quot; name=&quot;id5&quot;&gt;PDV (phpDocumentor for Vim)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a  href=&quot;#tag-browsing-with-cscope-identifier-lookup&quot; id=&quot;id6&quot; name=&quot;id6&quot;&gt;Tag Browsing with cscope (Identifier lookup)&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a  href=&quot;#build-the-taglist&quot; id=&quot;id7&quot; name=&quot;id7&quot;&gt;Build the taglist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a  href=&quot;#taglist-window&quot; id=&quot;id8&quot; name=&quot;id8&quot;&gt;Taglist Window&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a  href=&quot;#note&quot; id=&quot;id9&quot; name=&quot;id9&quot;&gt;Note&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a  href=&quot;#debug-with-xdebug&quot; id=&quot;id10&quot; name=&quot;id10&quot;&gt;Debug with xdebug&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div &gt;
&lt;h1&gt;&lt;a  href=&quot;#id1&quot; id=&quot;templates&quot; name=&quot;templates&quot;&gt;Templates&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;TODO&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div &gt;
&lt;h1&gt;&lt;a  href=&quot;#id2&quot; id=&quot;codesniffer-integration&quot; name=&quot;codesniffer-integration&quot;&gt;Codesniffer integration&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a  href=&quot;http://pear.php.net/package/PHP_CodeSniffer&quot;&gt;Codesniffer&lt;/a&gt; is a tool to check PHP code against a Coding standard. By integrating it into
vim you can get the list of violations in a separate error window. The errow window allows
jumping to each error in the source code, even if the line numbers have changed.&lt;/p&gt;
&lt;p&gt;See &lt;em&gt;help quickfix&lt;/em&gt; in the vim help.&lt;/p&gt;
&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://koch.ro/blog/uploads/free_software/vim/phpcs.png&#039;&gt;&lt;img alt=&quot;phpcs.png&quot; src=&quot;http://koch.ro/blog/uploads/free_software/vim/phpcs.png&quot; style=&quot;width: 840.0px; height: 498.0px;&quot; /&gt;&lt;/a&gt;
&lt;p&gt;Put the following code in $VIMHOME/plugin/phpcs.vim:&lt;/p&gt;
&lt;pre &gt;
function! RunPhpcs()
    let l:filename=&amp;#64;%
    let l:phpcs_output=system(&#039;phpcs --report=csv --standard=YMC &#039;.l:filename)
&amp;quot;    echo l:phpcs_output
    let l:phpcs_list=split(l:phpcs_output, &amp;quot;\n&amp;quot;)
    unlet l:phpcs_list[0]
    cexpr l:phpcs_list
    cwindow
endfunction

set errorformat+=\&amp;quot;%f\&amp;quot;\\,%l\\,%c\\,%t%*[a-zA-Z]\\,\&amp;quot;%m\&amp;quot;
command! Phpcs execute RunPhpcs()
&lt;/pre&gt;
&lt;p&gt;Now you can run a Codesniff for the current file via&lt;/p&gt;
&lt;p&gt;:Phpcs&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div &gt;
&lt;h1&gt;&lt;a  href=&quot;#id3&quot; id=&quot;including-manuals&quot; name=&quot;including-manuals&quot;&gt;Including Manuals&lt;/a&gt;&lt;/h1&gt;
&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://koch.ro/blog/uploads/free_software/vim/manpageview.png&#039;&gt;&lt;img alt=&quot;manpageview.png&quot; src=&quot;http://koch.ro/blog/uploads/free_software/vim/manpageview.png&quot; style=&quot;width: 840.0px; height: 525.0px;&quot; /&gt;&lt;/a&gt;
&lt;p&gt;Install the &lt;a  href=&quot;http://www.vim.org/scripts/script.php?script_id=489&quot;&gt;ManPageView&lt;/a&gt; script from Charles Campbell. It gives you access to
the PHP manual, Perl manual and to man and info pages. The script could also be
extended and I&#039;d love to use it for Javascript and HTML, too. Make sure to take
the most recent version, eventually from Campbell&#039;s &lt;a  href=&quot;http://mysite.verizon.net/astronaut/vim/index.html#MANPAGEVIEW&quot;&gt;homepage&lt;/a&gt;, since it may
include bugfixes not yet uploaded to vimscripts.org.&lt;/p&gt;
&lt;p&gt;You also need to install the links text browser, which is used to grap the
online PHP manual:&lt;/p&gt;
&lt;p&gt;apt-get install links&lt;/p&gt;
&lt;p&gt;I took links, but elinks or links2 may work too.&lt;/p&gt;
&lt;p&gt;After installation you simply press C-K on top of a keyword and the
corresponding manual page will be opened in a separate window.&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div &gt;
&lt;h1&gt;&lt;a  href=&quot;#id4&quot; id=&quot;autocompletition&quot; name=&quot;autocompletition&quot;&gt;Autocompletition&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Vim helps you to complete identifiers:&lt;/p&gt;
&lt;img alt=&quot;autocomplete.png&quot; src=&quot;http://koch.ro/blog/uploads/free_software/vim/autocomplete.png&quot; /&gt;
&lt;p&gt;The first proposed item beginning with &lt;em&gt;auto&lt;/em&gt; is an PHP function. Vim can
autocomplete with different language dictionaries depending on the filetype.
Thus it won&#039;t propose you any PYTHON function while you&#039;re editing a PHP file.&lt;/p&gt;
&lt;p&gt;The second item is a word from another file I&#039;m editing in the same Vim
session. Thus you can easily complete Variablenames or Functionnames from
other opened files.&lt;/p&gt;
&lt;p&gt;Vim tells you also where it got the term from. Since the last item is from the
same file, there&#039;s no filename written after the word.&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div &gt;
&lt;h1&gt;&lt;a  href=&quot;#id5&quot; id=&quot;pdv-phpdocumentor-for-vim&quot; name=&quot;pdv-phpdocumentor-for-vim&quot;&gt;PDV (phpDocumentor for Vim)&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;You do document your code with proper inline comments, do you? To make this
task easier, Tobias Schlitt wrote a VIM plugin which automatically lookup some
characteristics of the item you want to document and creates a Docblock
sceleton for you:&lt;/p&gt;
&lt;img alt=&quot;pdv.png&quot; src=&quot;http://koch.ro/blog/uploads/free_software/vim/pdv.png&quot; style=&quot;width: 840.0px; height: 525.0px;&quot; /&gt;
&lt;p&gt;&amp;#64;todo&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div &gt;
&lt;h1&gt;&lt;a  href=&quot;#id6&quot; id=&quot;tag-browsing-with-cscope-identifier-lookup&quot; name=&quot;tag-browsing-with-cscope-identifier-lookup&quot;&gt;Tag Browsing with cscope (Identifier lookup)&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Just like in a big IDE like eclipse, you can easily jump to the definitions of functions
and classes. Vim integrates cscope for the job (&lt;em&gt;apt-get install cscope&lt;/em&gt;).&lt;/p&gt;
&lt;img alt=&quot;cscope.png&quot; src=&quot;http://koch.ro/blog/uploads/free_software/vim/cscope.png&quot; style=&quot;width: 840.0px; height: 525.0px;&quot; /&gt;
&lt;div &gt;
&lt;h2&gt;&lt;a  href=&quot;#id7&quot; id=&quot;build-the-taglist&quot; name=&quot;build-the-taglist&quot;&gt;Build the taglist&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Vim needs an index file for all identifiers. This file is build with
cscope. First we create the file cscope.files which tells cscope which file to
scan. In our case this are all files called &lt;tt &gt;&lt;span class=&quot;pre&quot;&gt;*.php&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;The -b option tells cscope to use the list from cscope.files:&lt;/p&gt;
&lt;pre &gt;
cd project_dir
find . -name &#039;*.php&#039; &amp;gt; ./cscope.files
cscope -b
rm ./cscope.files
&lt;/pre&gt;
&lt;p&gt;The shell commands from above left a file cscope.out in project_dir.
Now we tell vim to use the generated tagfile:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;cscope add project_dir/cscope.out project_dir&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Note that you have to add the project_dir as the second argument to &lt;em&gt;cscope add&lt;/em&gt;!&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div &gt;
&lt;h1&gt;&lt;a  href=&quot;#id8&quot; id=&quot;taglist-window&quot; name=&quot;taglist-window&quot;&gt;Taglist Window&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Every IDE gives you an overview of all functions in a class, right?&lt;/p&gt;
&lt;img alt=&quot;taglist.png&quot; src=&quot;http://koch.ro/blog/uploads/free_software/vim/taglist.png&quot; style=&quot;width: 840.0px; height: 525.0px;&quot; /&gt;
&lt;p&gt;Install exuberant-ctags ( &amp;gt;= Version 5.7 ) and the taglist vim plugin. On debian you go
with:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;apt-get install exuberant-ctags&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;vim-addons install taglist&lt;/em&gt;&lt;/p&gt;
&lt;div &gt;
&lt;h2&gt;&lt;a  href=&quot;#id9&quot; id=&quot;note&quot; name=&quot;note&quot;&gt;Note&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The 5.7 version of exuberant-ctags still has &lt;a  href=&quot;http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1795926&amp;amp;group_id=6556&amp;amp;atid=106556&quot;&gt;problems&lt;/a&gt; to parse PHP properly. It can not
distinguis between the word &amp;quot;function&amp;quot; in a comment and a real function decleration.
Therefore I still use a patched version of exuberant-ctags version 5.6.&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div &gt;
&lt;h1&gt;&lt;a  href=&quot;#id10&quot; id=&quot;debug-with-xdebug&quot; name=&quot;debug-with-xdebug&quot;&gt;Debug with xdebug&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;What&#039;s an IDE without a Debugger?&lt;/p&gt;
&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://koch.ro/blog/uploads/free_software/vim/xdebug.png&#039;&gt;&lt;img alt=&quot;xdebug.png&quot; src=&quot;http://koch.ro/blog/uploads/free_software/vim/xdebug.png&quot; style=&quot;width: 840.0px; height: 498.0px;&quot; /&gt;&lt;/a&gt;
&lt;p&gt;You can find the most up to date link to the vim-xdebug plugin at the &lt;a  href=&quot;http://www.xdebug.org/docs/remote&quot;&gt;remote section&lt;/a&gt;
of  xdebug.org.&lt;/p&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Sun, 23 Mar 2008 09:58:49 +0100</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/63-guid.html</guid>
    
</item>
<item>
    <title>backup of mysql databases with rsnapshot</title>
    <link>http://koch.ro/blog/index.php?/archives/56-backup-of-mysql-databases-with-rsnapshot.html</link>
            <category>english</category>
            <category>PHP</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/56-backup-of-mysql-databases-with-rsnapshot.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=56</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=56</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    I&#039;m working on the backup scripts for my virtual server. The backup should be done with &lt;a href=&quot;http://www.rsnapshot.org/&quot;&gt;rsnapshot&lt;/a&gt;, later more about this tool and why I choose it. &lt;br /&gt;
&lt;br /&gt;
One disadvantage of rsnapshot is, that it does not save diffs for changes on files, but will save a new copy of a file even if only one line changed. Therefore you should not use rsnapshot for backups of large files which change often (as database dumps).&lt;br /&gt;
&lt;br /&gt;
To use rsnapshot nevertheless on my database dumps, I wrote a little script to break up the dumps in one file per table. This way I can save at least space and bandwidth for those tables with static data.&lt;br /&gt;
&lt;br /&gt;
Thanks to &lt;a href=&quot;http://friederschueler.de/rootserver/einfache-und-schnelle-mysql-datenbank-sicherung-per-konsole-shell/&quot;&gt;friederschueler.de&lt;/a&gt; for his initial script, which served me as a template.&lt;br /&gt;
 You must provide a target directory as parameter to the script.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bb-code-title&quot;&gt;CODE:&lt;/div&gt;&lt;div class=&quot;bb-code&quot;&gt;#!/usr/bin/env&amp;#160;bash

BACKUP_ROOT=$1
MYBACKDIR=$1/mysql_backup
MYUSER=backup
MYPASS=your_password_here
IGNORE=&quot;ttrss
flyspray
sitebar
mysql
information_schema&quot;

rm&amp;#160;-rf&amp;#160;$MYBACKDIR
mkdir&amp;#160;$MYBACKDIR
cd&amp;#160;$MYBACKDIR

#&amp;#160;Get&amp;#160;list&amp;#160;of&amp;#160;all&amp;#160;databases

DB_LIST=`mysql&amp;#160;-u$MYUSER&amp;#160;-p$MYPASS&amp;#160;-Bse&amp;#160;&#039;show&amp;#160;databases&#039;`

for&amp;#160;db&amp;#160;in&amp;#160;$DB_LIST;&amp;#160;do

&amp;#160;&amp;#160;&amp;#160;&amp;#160;skip=0

&amp;#160;&amp;#160;&amp;#160;&amp;#160;if&amp;#160;&amp;#91;&amp;#160;&quot;$IGNORE&quot;&amp;#160;!=&amp;#160;&quot;&quot;&amp;#160;&amp;#93;;&amp;#160;then

&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;for&amp;#160;i&amp;#160;in&amp;#160;$IGNORE;&amp;#160;do
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#91;&amp;#160;&quot;$db&quot;&amp;#160;==&amp;#160;&quot;$i&quot;&amp;#160;&amp;#93;&amp;#160;&amp;amp;&amp;amp;&amp;#160;skip=1&amp;#160;||&amp;#160;&amp;#58;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;done
&amp;#160;&amp;#160;&amp;#160;&amp;#160;fi

&amp;#160;&amp;#160;&amp;#160;&amp;#160;if&amp;#160;&amp;#91;&amp;#160;&quot;$skip&quot;&amp;#160;==&amp;#160;&quot;0&quot;&amp;#160;&amp;#93;;&amp;#160;then

&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;#&amp;#160;Skip&amp;#160;comments&amp;#160;is&amp;#160;needed&amp;#160;to&amp;#160;not&amp;#160;have&amp;#160;the&amp;#160;date&amp;#160;in&amp;#160;the&amp;#160;file.
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;mysqldump&amp;#160;-u$MYUSER&amp;#160;-p$MYPASS&amp;#160;--no-data&amp;#160;--skip-comments&amp;#160;$db&amp;#160;\
|&amp;#160;gzip&amp;#160;-9&amp;#160;&amp;#62;db_create_${db}.sql.gz

&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;TABLE_LIST=`mysql&amp;#160;-u$MYUSER&amp;#160;-p$MYPASS&amp;#160;-Bse&amp;#160;&quot;show&amp;#160;tables&amp;#160;from&amp;#160;$db&quot;`

&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;for&amp;#160;table&amp;#160;in&amp;#160;$TABLE_LIST;&amp;#160;do
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;mysqldump&amp;#160;-u$MYUSER&amp;#160;-p$MYPASS&amp;#160;--skip-comments&amp;#160;$db&amp;#160;$table&amp;#160;\
|&amp;#160;gzip&amp;#160;-9&amp;#160;&amp;#62;db_table_${db}_${table}.sql.gz
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;done
&amp;#160;&amp;#160;&amp;#160;&amp;#160;fi
done&lt;/div&gt; 
    </content:encoded>

    <pubDate>Sun, 21 Oct 2007 10:28:59 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/56-guid.html</guid>
    
</item>
<item>
    <title>Serializing circular references in PHP</title>
    <link>http://koch.ro/blog/index.php?/archives/54-Serializing-circular-references-in-PHP.html</link>
            <category>english</category>
            <category>PHP</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/54-Serializing-circular-references-in-PHP.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=54</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=54</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    Until today I believed, that serializing an object structure containing circular references would result in an error or at least in strange behaviour. Or that unserializing would make any problems. But it seems to work without problems: &lt;code&gt;
class TestPhpSerializationCircular extends PHPUnit_Framework_TestCase
{
    public function testSerializeCircular()
    {
        $a = new SerializableObject;
        $b = new SerializableObject;
        $a-&gt;ref = $b;
        $b-&gt;ref = $a;
        $serial = serialize( $a );
        $this-&gt;assertType( &#039;string&#039;, $serial );
        $this-&gt;assertTrue( strlen( $serial ) &gt; 10 );
    }

    public function testSerializeCircularPreservesIdentity()
    {
        $a = new SerializableObject;
        $b = new SerializableObject;
        $a-&gt;ref = $b;
        $b-&gt;ref = $a;
        $serial = serialize( $a );
        $after = unserialize( $serial );

        $after-&gt;ref-&gt;ref-&gt;property = &#039;test&#039;;
        $this-&gt;assertSame( $after-&gt;property, $after-&gt;ref-&gt;ref-&gt;property );
    }
}
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Does anybody knows, if there has been a previous version of PHP which had problems of this kind? &lt;br /&gt;
So can I use circular references without further worrying?  
    </content:encoded>

    <pubDate>Fri, 12 Oct 2007 16:23:29 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/54-guid.html</guid>
    
</item>
<item>
    <title>On Linux memory consumtion</title>
    <link>http://koch.ro/blog/index.php?/archives/53-On-Linux-memory-consumtion.html</link>
            <category>english</category>
            <category>information technologie</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/53-On-Linux-memory-consumtion.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=53</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=53</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    I installed a desktop Debian system on an old computer for my wife to get her away from her virus contamined Windows 2000 system. The system&#039;s characteristics are:&lt;br /&gt;
&lt;br /&gt;
CPU: Celeron Coppermine (Pentium III), 768 MHz&lt;br /&gt;
Memory : 320 MB&lt;br /&gt;
&lt;br /&gt;
I wanted to test, if the system still works fast, when it has to use swap space, &lt;strong&gt;but I don&#039;t know, how to consume all the RAM...&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The system consumes only sth. about 60 MB after startup and several instances of OpenOffice, Konqueror, aptitude, Kontact or Kopete also didn&#039;t help much to increase the memory.&lt;br /&gt;
&lt;br /&gt;
So my next thought was to install and start iceweasel (aka Firefox), known as the big memory eater. That helped at least to go beyond 100 MB.&lt;br /&gt;
&lt;br /&gt;
So there&#039;s a question to all those Windows (Vista) Users around: Do you have any idea, how I could easily consume 300 MB of RAM to test my swap space?&lt;br /&gt;
&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Wed, 03 Oct 2007 13:18:24 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/53-guid.html</guid>
    
</item>
<item>
    <title>PHPUnit Testrunner for Lazy folks</title>
    <link>http://koch.ro/blog/index.php?/archives/51-PHPUnit-Testrunner-for-Lazy-folks.html</link>
            <category>english</category>
            <category>PHP</category>
            <category>PHPUnit</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/51-PHPUnit-Testrunner-for-Lazy-folks.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=51</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=51</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    My &lt;a href=&quot;http://www.phpunit.de&quot;&gt;PHPUnit&lt;/a&gt; Testrunner must meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
- add Class Repositories to the eZ Components autoloader&lt;br /&gt;
- instantiate a Database connection&lt;br /&gt;
- make my living easier&lt;br /&gt;
&lt;br /&gt;
I took the &lt;a href=&quot;http://svn.ez.no/svn/ezcomponents/trunk/UnitTest/&quot;&gt;testrunner&lt;/a&gt; from the &lt;a href=&quot;http://ez.no/ezcomponents&quot;&gt;eZ Components&lt;/a&gt; SVN and added another option for&lt;br /&gt;
autoloads that are directly passed to ezcBase::addClassRepository. The instantiation of a db connection is already implemented in the original&lt;br /&gt;
code.&lt;br /&gt;
&lt;br /&gt;
Making my living easier works as follows:&lt;br /&gt;
&lt;br /&gt;
I&#039;m to lazy to write a monotonously suite.php for every suite which contains&lt;br /&gt;
only the information about the suite name.&lt;br /&gt;
&lt;br /&gt;
Instead of that I put the suite name in the directory:&lt;br /&gt;
&lt;br /&gt;
&quot;tests_search_cars&quot; - Every directory starting with &quot;tests_&quot; is a suite and&lt;br /&gt;
the following substring is the suite name. Suites can be nested.&lt;br /&gt;
&lt;br /&gt;
All files ending on &quot;_test.php&quot; are added either to the global test suite or&lt;br /&gt;
to the suite represented by the directory they are in.&lt;br /&gt;
&lt;br /&gt;
While working with the tool, I discovered that the ezc testrunner doesn&#039;t pass&lt;br /&gt;
the filter option to run only tests which match a pattern. This is added in my&lt;br /&gt;
runner too.&lt;br /&gt;
&lt;br /&gt;
Some small todos:&lt;br /&gt;
&lt;br /&gt;
- handle wildcards &lt;br /&gt;
- add ezc classes and testrunner classes to the filter for code coverage&lt;br /&gt;
- support also other locations for autoload files instead of autoload/&lt;br /&gt;
- add comments and licence infos... &lt;img src=&quot;http://koch.ro/blog/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
download: &lt;a href=&quot;http://koch.ro/blog/uploads/misc/phpunit_testrunner.tar.gz&quot; title=&quot;phpunit_testrunner.tar.gz&quot; target=&quot;_blank&quot;&gt;phpunit_testrunner.tar.gz&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 28 Sep 2007 11:59:33 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/51-guid.html</guid>
    
</item>
<item>
    <title>eLiberatica summary</title>
    <link>http://koch.ro/blog/index.php?/archives/37-eLiberatica-summary.html</link>
            <category>english</category>
            <category>information technologie</category>
            <category>romania</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/37-eLiberatica-summary.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=37</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    The real work starts after the conference: staying in contact, starting new projects. So here are my notes about eliberatica and what I&#039;ve to do.&lt;br /&gt;
&lt;br /&gt;
Thanks to Zak, Lucian and Agora for accepting me in the conference and giving me the opportunity of being part of this event!&lt;br /&gt;
&lt;br /&gt;
The Company &lt;a href=&quot;http://www.ibs.ro&quot;&gt;Intelligent Building Solutions&lt;/a&gt; wrote an interesting extension for XUL and they promissed to make it open source. I&#039;ll look forward to it!&lt;br /&gt;
&lt;br /&gt;
I met Flavian Gradeanu, a law graduate who doesn&#039;t know programming, but is very interested in the ideas of open source. I promissed him to send some links about law and free software, which could be interesting for his career. frasinet_frate bei yahoo in com&lt;br /&gt;
&lt;br /&gt;
Zitec seems to be a very experiences PHP company and I had some nice chats with them. The biggest problem for them is, to find enough programmers to serve all the requests. They have to reject many requests because of that. &lt;br /&gt;
&lt;br /&gt;
Zoli, a Microsoft employee blogged about eliberatica (&lt;a href=&quot;http://itboard.ro/blogs/zolis_tool/archive/2007/05/18/eliberatica-prima-zi.aspx&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;http://itboard.ro/blogs/zolis_tool/archive/2007/05/20/eliberatica-ziua-a-doua.aspx&quot;&gt;2&lt;/a&gt;) and also mentioned my presentation. He&#039;s definitely right, that my presentation was not good enough, as it was the second presentation about IT in my life and the first one in a foreign language. But as he writes also some strange comments about the other speakers, I&#039;m not that concerned anymore about his opinion.&lt;br /&gt;
&lt;br /&gt;
Thx to &lt;a href=&quot;http://andreimaxim.ro/&quot;&gt;Andrei Maxim&lt;/a&gt;: You made a nice &lt;a href=&quot;http://www.flickr.com/photos/andreimaxim/505521217/in/set-72157600232172106/&quot;&gt;picture&lt;/a&gt; of me. Normally I hate, how I look on pictures, but I think I&#039;ll use this one.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.flickr.com/photos/andreimaxim/504828306/&quot;&gt;Mihai Dumitrescu&lt;/a&gt; from &lt;a href=&quot;http://www.rosoftlab.net/&quot;&gt;RoSoftLab&lt;/a&gt; showed me his &lt;a href=&quot;http://www2.informatik.uni-erlangen.de/Lehre/SA-DA/old/SA-abgeschlossen/dumitrescu.html&quot;&gt;Code Generator&lt;/a&gt; and his ideas about a Document Management System. Hope to meet you again soon! &lt;br /&gt;
&lt;br /&gt;
Mr. &lt;a href=&quot;http://stiinte.ulbsibiu.ro/info/neamtu.htm&quot;&gt;Mircea-Iosif Neamtu&lt;/a&gt; (&lt;a href=&quot;http://www.flickr.com/photos/andreimaxim/504858901/&quot;&gt;photo&lt;/a&gt;) from the Lucian Blaga University, Sibiu invited me to hold a seminar with him about application development with PHP. Would be a pleasure!&lt;br /&gt;
&lt;br /&gt;
Blogs until now: Alex Brie &lt;a href=&quot;http://alexbrie.net/myblog/blog/projects/rosi/1571/live-blogging-de-la-eliberatica/&quot;&gt;blogged live&lt;/a&gt; from eliberatica. &lt;a href=&quot;http://www.cianblog.com/2007/05/20/conferinta-eliberatica-despre-rosi-si-eliberatica-trecut-prezent-si-viitor/&quot;&gt;Lucian Savluc&lt;/a&gt;, &lt;a href=&quot;http://www.fsfe.org/en/fellows/greve/freedom_bits/back_from_transylvania_unbitten&quot;&gt;Georg Greve&lt;/a&gt;, &lt;a href=&quot;http://liviudm.wordpress.com/2007/05/22/eliberatica-2007-very-short-review&quot;&gt;Liviu Damian&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Photos from &lt;a href=&quot;http://www.flickr.com/photos/stefanbucur/tags/eliberatica/&quot;&gt;Stefan Bucur&lt;/a&gt;, &lt;a href=&quot;http://www.flickr.com/photos/aurelian/tags/eliberatica/&quot;&gt;Aurelian&lt;/a&gt;&lt;br /&gt;
 &lt;br /&gt;
The Company Aplix works on making their ERP solution open source and we want to stay in contact for this issue.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://students.info.uaic.ro/~alina.mierlus/Site/Welcome.html&quot;&gt;Alina Mierlus&lt;/a&gt; (&lt;a href=&quot;http://alina.bloghost.ro/2007/05/15/eliberatica-pe-ultima-100-de-metrii/&quot;&gt;Blog&lt;/a&gt;) presented the &lt;a href=&quot;http://oscar.info.uaic.ro/&quot;&gt;Open Source Challenge for Romanians&lt;/a&gt;. I want to post a project proposal today for a user preferences management system that would be part of a groupware based on the eZ Components. With 21 years, Alina is the main organizer of OSCAR!&lt;br /&gt;
&lt;br /&gt;
Nicolaie Constantinescu gave me his card and asked me to look at &lt;a href=&quot;http://kosson.lx.ro/&quot;&gt;kosson.lx.ro&lt;/a&gt;. Will do that soon.&lt;br /&gt;
&lt;br /&gt;
If you blog about eliberatica, please be so kind to make a trackback to this post so that I know about your post!&lt;br /&gt;
&lt;br /&gt;
Did I forget anybody or anything? Then I beg your pardon and please remind me!&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update&lt;/strong&gt; More reactions:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.filipcte.ro/18-05-2007/eliberatica-live/&quot;&gt;Filip Cherecheş-Toşa&lt;/a&gt;, &lt;a href=&quot;http://legi-internet.ro/blogs/index.php?title=open_source_si_legi_despre_eliberatica_2007&quot;&gt;Bogdan Manolea&lt;/a&gt;, &lt;a href=&quot;http://politic.ngo.ro/?cmd[222]=i-223-28702&quot;&gt; Mihaly Bako&lt;/a&gt;, &lt;a href=&quot;http://www.willisbros.net/blog/?p=1723&quot;&gt;Jim Willis&lt;/a&gt;, &lt;a href=&quot;http://blog.anarhism.ro/2007/05/eliberatica&quot;&gt;Bogdan Bezuz&lt;/a&gt;. &lt;a href=&quot;http://tech.2mconsult.net/eliberatica-2007-take-1/&quot;&gt;Marius Rugan&lt;/a&gt;, &lt;a href=&quot;http://acegentile.blogspot.com/2007/05/eliberatica-conference-2007.html&quot;&gt;Simionica Ovidiu&lt;/a&gt;, &lt;a href=&quot;http://www.locknet.ro/article/eliberatica-day-after&quot;&gt;Aurelian Oancea&lt;/a&gt;, &lt;a href=&quot;http://mihaigheza.wordpress.com/2007/05/20/just-back-from-eliberatica/&quot;&gt;Mihai Gheza&lt;/a&gt;, &lt;a href=&quot;http://ionutpopa.blogspot.com/2007/05/eliberatica-2007-pe-scurt.html&quot;&gt;Ionut Popa&lt;/a&gt;&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Mon, 21 May 2007 11:32:53 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/37-guid.html</guid>
    
</item>
<item>
    <title>Cebit talk online</title>
    <link>http://koch.ro/blog/index.php?/archives/33-Cebit-talk-online.html</link>
            <category>english</category>
            <category>ERP</category>
            <category>PHP</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/33-Cebit-talk-online.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=33</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=33</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    I&#039;ve been invited to give a talk at the LinuxPark at Cebit 2007 about &quot;ERP in the post microsoft era&quot;. The slides and the video are &lt;a href=&quot;http://www.linux-magazin.de/videos/kaufmaennische_unternehmens_it_in_der_zeit_nach_microsoft&quot;&gt;online&lt;/a&gt; now. As I had problems seeing the video with the embedded realplayer, you may want to use the direct &lt;a href=&quot;http://streaming.linux-magazin.de/events/cebit2007/tkoch/stream.ram&quot;&gt;link&lt;/a&gt; to the stream.&lt;br /&gt;
&lt;br /&gt;
I&#039;ve proposed the same &lt;a href=&quot;http://eliberatica.ro/2007/eliberatica-sessions-and-workshops&quot;&gt;topic&lt;/a&gt; for the &lt;a href=&quot;http://www.eliberatica.ro&quot;&gt;eliberatica&lt;/a&gt; conference in Brasov/Romania next month and have been accepted. I&#039;m really excited to be listed below &lt;a href=&quot;http://eliberatica.ro/2007/eliberatica-speakers-and-events#Rasmus_Lerdorf&quot;&gt;Rasmus Lerdorf&lt;/a&gt; or &lt;a href=&quot;http://eliberatica.ro/2007/eliberatica-speakers-and-events#Aleksander_Farstad&quot;&gt;Aleksander Farstad&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The reason for my invitation isn&#039;t my novice knowledge of PHP or Open Source, but the combination with intensive experience with and in Romania.&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Thu, 19 Apr 2007 13:12:28 +0200</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/33-guid.html</guid>
    
</item>
<item>
    <title>PHP and Java, Part II</title>
    <link>http://koch.ro/blog/index.php?/archives/28-PHP-and-Java,-Part-II.html</link>
            <category>english</category>
            <category>PHP</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/28-PHP-and-Java,-Part-II.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=28</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=28</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    So some other goodies, why I like PHP over Java:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Constructors&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;m so glad, that in PHP5 you don&#039;t need to call your constructors like the classes anymore. In Java you still need to! Calling the constructor &quot;__construct&quot; has at least two advantages:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; You may change your classname later.&lt;br /&gt;
&lt;/strong&gt; You see direct that the method is a constructor and not a regular method. Do you always know the name of the class you&#039;re inspecting, or do you need to look somewhere, to get the classname?&lt;br /&gt;
&lt;br /&gt;
What happens, if a subclass doesn&#039;t come with it&#039;s own constructor? The parent constructor will not be executed instead. In the end it&#039;s only convention, but it seems more logical (and useable) to me, that also a constructor can be inherited.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Overloading&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;m curious to learn about the advantages of overloading. For now I see only the disadvantage, that you wounder yourself, why this crappy Java doesn&#039;t like to find your main method: Because you&#039;ve not put &quot;String[] args&quot; in the method&#039;s header even if you don&#039;t want to get any argument from the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;No required this&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
What will Java do, if I have a constructor with&lt;br /&gt;
Angestellter( string name, int einstellungsdatum, int gehalt)&lt;br /&gt;
and want to store the values to the object&#039;s attributes?&lt;br /&gt;
&lt;br /&gt;
this.name = name?&lt;br /&gt;
But I can also access the attribute with &quot;name&quot; only. So how does Java know, when I want to talk about the methods parameter or the object&#039;s attribute?&lt;br /&gt;
&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Sat, 17 Mar 2007 19:04:43 +0100</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/28-guid.html</guid>
    
</item>
<item>
    <title>PHP and Java, part I</title>
    <link>http://koch.ro/blog/index.php?/archives/27-PHP-and-Java,-part-I.html</link>
            <category>english</category>
            <category>PHP</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/27-PHP-and-Java,-part-I.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=27</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=27</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    &amp;ltnot serious&amp;gt&lt;br /&gt;
The new semester has started and with it a course in object oriented programming. Unfortunately the course dosn&#039;t teach PHP5, but Java even it has been updated for this semester and could have been ported to a more recent programming language. But I&#039;ve also studied Pascal last semester as a learning language for procedural programming instead of C. So let&#039;s keep on with Java as a theoretical teaching language and PHP for doing work. &lt;br /&gt;
&amp;lt/not serious&amp;gt&lt;br /&gt;
&lt;br /&gt;
The first exercise approved my dislike of java: When debugging in PHP without a debugger, I can put some var_dump in the code and see what&#039;s going on. In Java it&#039;s always a two stepper: compiling, running. So I thought to run it in eclipse, but didn&#039;t even manage to run a simple Javaclass in it in less then ten minutes. In the end I did debugging with the method my physics prof teached us: proofen by thorough inspection. (&quot;Beweisen durch scharfes hingucken.&quot;)&lt;br /&gt;
(Yes, I&#039;m writing Java in VIM and am curious how long I can get by with it. Using a mouse is only time consuming if you know all keystrokes by heart.)&lt;br /&gt;
&lt;br /&gt;
The second exercise showed me something nice about Java:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
javac NUeberK.java
----------
1. WARNING in NUeberK.java (at line 3)
        private int k;
                    ^
The field NUeberK.k is never read locally
----------
2. WARNING in NUeberK.java (at line 7)
        private double fakultaet (int n) {
                       ^^^^^^^^^^^^^^^^^
The method fakultaet(int) from the type NUeberK is never used locally
----------
3. ERROR in NUeberK.java (at line 13)
        f = f * i;
            ^
The local variable f may not have been initialized
----------
4. ERROR in NUeberK.java (at line 15)
        return f;
               ^
The local variable f may not have been initialized
----------
5. ERROR in NUeberK.java (at line 17)
        public double berechnungNueberKohneRekursion (int n) {
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This method must return a result of type double
----------
5 problems (3 errors, 2 warnings)
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
I think it wouldn&#039;t be that bad to have such warnings as an optional style checker in PHP, maybe implemented like PEAR::Codesniffer. You shouldn&#039;t be forced of course to initialize any little i, but initializing important variables at the top of a function is a good habbit.&lt;br /&gt;
&lt;br /&gt;
UPDATE: Well, this one is not nice:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
        test1 = (double)1278945280*(double)5040;
        test2 = 1278945280*5040;
        System.out.println(test1);
        System.out.println(test2);
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
results in:&lt;br /&gt;
6.4458842112E12&lt;br /&gt;
-8.61700096E8&lt;br /&gt;
&lt;br /&gt;
Let&#039;s have a look at PHP:&lt;br /&gt;
&lt;code&gt;
&amp;lt?php
$test1 = (double)1278945280*(double)5040;
$test2 = 1278945280*5040;
echo &quot;$test1\n&quot;;
echo &quot;$test2\n&quot;;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
gives:&lt;br /&gt;
6.4458842112E+12&lt;br /&gt;
6.4458842112E+12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Tue, 13 Mar 2007 20:41:48 +0100</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/27-guid.html</guid>
    
</item>
<item>
    <title>Open Source/PHP Conference in Romania</title>
    <link>http://koch.ro/blog/index.php?/archives/26-Open-SourcePHP-Conference-in-Romania.html</link>
            <category>english</category>
            <category>PHP</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/26-Open-SourcePHP-Conference-in-Romania.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=26</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=26</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    This morning I read a &lt;a href=&quot;http://pooteeweet.org/blog/636&quot;&gt;blog entry&lt;/a&gt; from Lukas Kahwe Smith, in which he mentions the &lt;a href=&quot;http://eliberatica.ro/2007/&quot;&gt;first open source conference in Romania&lt;/a&gt; from may 18th to 19th. I&#039;m totaly enthusiastic and have to go there to see what&#039;s going on about open source in Romania.&lt;br /&gt;
&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Tue, 13 Mar 2007 15:14:40 +0100</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/26-guid.html</guid>
    
</item>
<item>
    <title>Multiple inheritance in PHP</title>
    <link>http://koch.ro/blog/index.php?/archives/25-Multiple-inheritance-in-PHP.html</link>
            <category>english</category>
            <category>PHP</category>
    
    <comments>http://koch.ro/blog/index.php?/archives/25-Multiple-inheritance-in-PHP.html#comments</comments>
    <wfw:comment>http://koch.ro/blog/wfwcomment.php?cid=25</wfw:comment>

    <wfw:commentRss>http://koch.ro/blog/rss.php?version=2.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Koch)</author>
    <content:encoded>
    Ones in every PHP programmer&#039;s live, you wish to have multiple inheritance and asks yourself (and maybe some others on IRC) why it isn&#039;t in PHP.&lt;br /&gt;
&lt;br /&gt;
A simple search after &quot;multiple inheritance php&quot; gives you quite a few answeres and tells you, that this question has been discussed also by your ancestors, which in this time decided it by doing a &quot;pissing contest&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; &lt;a href=&quot;http://web.archive.org/web/20020126135128/http://www.elj.com/eiffel/feature/inheritance/mi/review/&quot;&gt;Multiple Inheritance in Class Based Languages&lt;/a&gt;&lt;br /&gt;
&lt;/strong&gt; &lt;a href=&quot;http://www.devshed.com/c/a/PHP/Inheritance-and-Polymorphism-in-PHP-Building-a-Form-Generator-Part-I/&quot;&gt;Inheritance and Polymorphism in PHP&lt;/a&gt;  
    </content:encoded>

    <pubDate>Wed, 28 Feb 2007 11:51:59 +0100</pubDate>
    <guid isPermaLink="false">http://koch.ro/blog/index.php?/archives/25-guid.html</guid>
    
</item>

</channel>
</rss>