<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Makura no Soshi &#187; Projects</title>
	<atom:link href="http://mschuette.name/wp/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://mschuette.name/wp</link>
	<description>枕草子</description>
	<lastBuildDate>Mon, 06 Feb 2012 12:41:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System</title>
		<link>http://mschuette.name/wp/2011/10/design-and-implementation-of-an-ipv6-plugin-for-the-snort-intrusion-detection-system/</link>
		<comments>http://mschuette.name/wp/2011/10/design-and-implementation-of-an-ipv6-plugin-for-the-snort-intrusion-detection-system/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 08:08:52 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Uni]]></category>
		<category><![CDATA[diplom]]></category>
		<category><![CDATA[diplomarbeit]]></category>
		<category><![CDATA[ids]]></category>
		<category><![CDATA[idsv6]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[snort]]></category>

		<guid isPermaLink="false">https://mschuette.name/wp/?p=714</guid>
		<description><![CDATA[Nach einem Schreib-Endspurt im August und folgender Schreib-Faulheit im September soll es auch hier mal wieder weitergehen. Und bevor sich wirklich neue Themen finden, gibt&#8217;s noch ein paar übriggebliebene Notizen zu meiner Diplomarbeit: Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System. [Short english explanation:] I finished my diploma thesis: Design [...]]]></description>
			<content:encoded><![CDATA[<p>Nach einem Schreib-Endspurt im August und folgender Schreib-Faulheit im September soll es auch hier mal wieder weitergehen. Und bevor sich wirklich neue Themen finden, gibt&#8217;s noch ein paar übriggebliebene Notizen zu meiner <a href="/files/uni/110901-Diplomarbeit-SnortIPv6.pdf">Diplomarbeit: <em>Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System</em></a>.</p>
<p><em>[Short english explanation:]</em> I finished my <a href="/files/uni/110901-Diplomarbeit-SnortIPv6.pdf">diploma thesis: <em>Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System</em></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2011/10/design-and-implementation-of-an-ipv6-plugin-for-the-snort-intrusion-detection-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arbeitstitel</title>
		<link>http://mschuette.name/wp/2011/03/arbeitstitel/</link>
		<comments>http://mschuette.name/wp/2011/03/arbeitstitel/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 19:33:14 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Uni]]></category>

		<guid isPermaLink="false">https://mschuette.name/wp/?p=650</guid>
		<description><![CDATA[Jetzt habe ich mich nach langer Zeit wieder ins Prüfungsamt gewagt und den Papierkram in Angriff genommen, der einem so aufgebürdet wird. Und in Folge dessen hat meine Diplomarbeit jetzt endlich ein offizielles Thema bzw. ihren Titel bekommen: Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System.]]></description>
			<content:encoded><![CDATA[<p>Jetzt habe ich mich nach langer Zeit wieder ins Prüfungsamt gewagt und den Papierkram in Angriff genommen, der einem so aufgebürdet wird.</p>
<p>Und in Folge dessen hat meine Diplomarbeit jetzt endlich ein offizielles Thema bzw. ihren Titel bekommen: <strong>Design and Implementation of an IPv6 Plugin for the Snort Intrusion Detection System</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2011/03/arbeitstitel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bug-Tracker</title>
		<link>http://mschuette.name/wp/2011/01/bug-tracker/</link>
		<comments>http://mschuette.name/wp/2011/01/bug-tracker/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 22:17:08 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[debug]]></category>

		<guid isPermaLink="false">https://mschuette.name/wp/?p=644</guid>
		<description><![CDATA[Notiz: Bug-Tracker können viel Zeit sparen. Aber nur wenn man auch reinschaut bevor man obskure Fehler selbst untersucht bis man einen Workarround findet. :-/]]></description>
			<content:encoded><![CDATA[<p>Notiz: Bug-Tracker können viel Zeit sparen. Aber nur wenn man auch reinschaut bevor man <a href="https://rt.cpan.org/Public/Bug/Display.html?id=56913">obskure Fehler</a> selbst untersucht bis man einen Workarround findet. <code>:-/</code></p>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2011/01/bug-tracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl and Python under Windows</title>
		<link>http://mschuette.name/wp/2011/01/perl-and-python-under-windows/</link>
		<comments>http://mschuette.name/wp/2011/01/perl-and-python-under-windows/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 23:38:09 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Digital]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[cava]]></category>
		<category><![CDATA[dde]]></category>
		<category><![CDATA[package]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[py2exe]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[win32]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">https://mschuette.name/wp/?p=639</guid>
		<description><![CDATA[Perl and Python are not only useful for Unix programming. Both languages work on Windows, have modules for Win32 APIs and their programs can be packaged into .exe files. Once upon a time I had to extract some application data using the antiqe DDE API and send it to a webservice. Once I found the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.perl.org/">Perl</a> and <a href="http://python.org/">Python</a> are not only useful for Unix programming. Both languages work on Windows, have modules for Win32 APIs and their programs can be packaged into <code>.exe</code> files.</p>
<p>Once upon a time I had to extract some application data using the antiqe <a href="http://en.wikipedia.org/wiki/Dynamic_Data_Exchange">DDE</a> API and send it to a webservice. Once I found the <a href="http://www.bribes.org/perl/win32ddeclient.html">Win32::DDE::Client</a> it was quite easy to write 200 lines of Perl for the task. Because the script should not require a Perl installation on every machine it is used on, I used the <a href="http://www.cava.co.uk/">Cava Packager</a> to put everything into an <code>.exe</code> file. (Now I have to extend that old script and find that Cava is no longer free, but requires a subscription for commercial use.)</p>
<p>In order to know my alternatives I tried the <a href="http://starship.python.net/crew/mhammond/win32/">Python Win32 extensions</a> and <a href="http://www.py2exe.org/">py2exe</a> and these seem to be just as good (or in case of the undocumented DDE module: just as bad) as their Perl counterparts. (Py2exe is not as easy to use as Cava; but not too difficult either.)</p>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2011/01/perl-and-python-under-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BLIT2010 Programm online</title>
		<link>http://mschuette.name/wp/2010/10/blit2010-programm-online/</link>
		<comments>http://mschuette.name/wp/2010/10/blit2010-programm-online/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 19:16:26 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[BSD]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Uni]]></category>
		<category><![CDATA[blit]]></category>
		<category><![CDATA[blit10]]></category>

		<guid isPermaLink="false">https://mschuette.name/wp/?p=625</guid>
		<description><![CDATA[Das Programm des Brandenburger Linux-Infotag 2010 ist jetzt online.]]></description>
			<content:encoded><![CDATA[<p>Das Programm des <a href="http://blit.org">Brandenburger Linux-Infotag 2010</a> ist jetzt online.</p>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2010/10/blit2010-programm-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Measuring PHP code complexity</title>
		<link>http://mschuette.name/wp/2010/09/measuring-php-code-complexity/</link>
		<comments>http://mschuette.name/wp/2010/09/measuring-php-code-complexity/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 16:23:37 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[complexity]]></category>
		<category><![CDATA[measure]]></category>
		<category><![CDATA[metric]]></category>
		<category><![CDATA[pdepend]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpcs]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">https://mschuette.name/wp/?p=612</guid>
		<description><![CDATA[What makes good code and why is some code better than others? One quantitative approach to answer this is the use of software metrics. These metrics try to capture the size and complexity of code in numbers (e.g. &#8216;lines of code&#8216;, &#8216;cyclomatic complexity&#8216;) and can be useful indicators for maintainability and simplicity (or more often [...]]]></description>
			<content:encoded><![CDATA[<p>What makes good code and why is some code better than others? One quantitative approach to answer this is the use of <a href="http://en.wikipedia.org/wiki/Programming_Complexity">software metrics</a>. These metrics try to capture the size and complexity of code in numbers (e.g. &#8216;<a href="http://en.wikipedia.org/wiki/Lines_of_code">lines of code</a>&#8216;, &#8216;<a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity">cyclomatic complexity</a>&#8216;) and can be useful indicators for maintainability and simplicity (or more often the lack thereof).</p>
<p>I found three ways to get complexity measures for PHP code.</p>
<p>The most advanced technique is to use a continuous integration server. One good example is the server at <a href="http://test.pear.php.net:8080/cruisecontrol/">test.pear.php.net</a> which uses <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a> (a Java CI server) with <a href="http://phpundercontrol.org/">phpUnderControl</a> for the PHP specific parts. Certainly a nice solution for big projects, but nothing to use on your own laptop to improve a single package.</p>
<p>Often the easiest way is to use <a href="http://pear.php.net/package/PHP_CodeSniffer">PHP_CodeSniffer</a>, which includes checks for cyclomatic complexity and nesting level (causing warnings and errors above some thresholds). If you already use it to maintain a uniform coding style (e.g. PEAR, Zend) then you just have to add these checks to your standard definition. These commands add metrics to the PEAR standard:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">cd /usr/local/share/pear/PHP/CodeSniffer/Standards
sudo cp -R Generic/Sniffs/Metrics PEAR/Sniffs
sudo sed -I .bck -e 's/Squiz_/PEAR_/' PEAR/Sniffs/Metrics/*</pre></div></div>

<p>The program <a href="http://pdepend.org/">PDepend</a> creates a more detailed analysis of methods, classes, and projects (see this <a href="http://manuel-pichler.de/archives/28-PHP_Depend-0.8.0beta1-released.html">release note</a> for details). Because it is intended as a component within a CI server its primary output is in XML. So I wrote myself a small wrapper (<a href="/files/pdepend_summary.phps">pdepend_summary.php</a>) to format the data as an ASCII table. This allows for quick edit-check-cycles and now I run it along with phpcs and phpunit before I commit PEAR code.</p>
<p>Example output:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Package              Class                                  LoC %Comment Variables Methods Class_SiZe   WMC
-------              -----                                  --- -------- --------- ------- ----------   ---
Payment_DTA          DTA                                   1084     36.3         3      15        114   111
Payment_DTA          DTAZV                                  757     37.1         1      12         72    71
Payment_DTA          DTABase                                563     33.0         6      19         33    27
Payment_DTA          Payment_DTA_ChecksumException            3      0.0         0       0          0     0
Payment_DTA          Payment_DTA_FatalParseException          3      0.0         0       0          0     0
Payment_DTA          Payment_DTA_Exception                    3      0.0         0       0          0     0
Payment_DTA          Payment_DTA_ParseException               3      0.0         0       0          0     0
&nbsp;
Package/Class             Method                                   LoC %Comment    CCN    NPath
-------------             ------                                   --- --------    ---    -----
Payment_DTA/DTA           _generateCrecord                         158     25.9     13     1600
Payment_DTA/DTA           _parseCextension                          81     30.9     13       93
Payment_DTA/DTA           _processCextension                        47      2.1      8        8
Payment_DTA/DTA           parse                                     59     35.6      7       36
Payment_DTA/DTAZV         _exchangeFillSender                       33      0.0      7       64
Payment_DTA/DTAZV         parse                                     41     17.1      7       36
Payment_DTA/DTAZV         _exchangeFillReceiver                     26      7.7      6       24
Payment_DTA/DTA           _exchangeFillArrays                       31      0.0      6       32
Payment_DTA/DTA           _parseCrecord                            109     27.5      6       72
Payment_DTA/DTAZV         setAccountFileSender                      41      0.0      5       15
Payment_DTA/DTA           _parseErecord                             49     30.6      5       16
Payment_DTA/DTABase       getStr                                    18      0.0      4        8
Payment_DTA/DTAZV         __construct                               19     10.5      4        4
...</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2010/09/measuring-php-code-complexity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DTA-Leser</title>
		<link>http://mschuette.name/wp/2010/07/dta-leser/</link>
		<comments>http://mschuette.name/wp/2010/07/dta-leser/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 21:46:43 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[dta]]></category>
		<category><![CDATA[dtaus]]></category>
		<category><![CDATA[dtazv]]></category>
		<category><![CDATA[payment_dta]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">https://mschuette.name/wp/?p=583</guid>
		<description><![CDATA[Das PEAR-DTA-Paket bekommt zur Zeit eine Lese-Funktion, um DTA/DTAZV-Dateien auch einlesen zu können. Mit dem DTA-Leser stelle ich nun ein Beispielskript online um Dateien entgegenzunehmen und ihren Inhalt anzuzeigen. Ist in einigen Situationen recht nützlich&#8230;]]></description>
			<content:encoded><![CDATA[<p>Das <a href="http://pear.php.net/package/Payment_DTA">PEAR-DTA-Paket</a> bekommt zur Zeit eine Lese-Funktion, um DTA/DTAZV-Dateien auch einlesen zu können.</p>
<p>Mit dem <a href="https://www.stud.uni-potsdam.de/~schuette/dta/">DTA-Leser</a> stelle ich nun ein Beispielskript online um Dateien entgegenzunehmen und ihren  Inhalt anzuzeigen. Ist in einigen Situationen recht nützlich&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2010/07/dta-leser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mailing List Statistics</title>
		<link>http://mschuette.name/wp/2010/03/mailing-list-statistics/</link>
		<comments>http://mschuette.name/wp/2010/03/mailing-list-statistics/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 17:39:42 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[E-Mail]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[statistic]]></category>

		<guid isPermaLink="false">https://mschuette.name/wp/?p=481</guid>
		<description><![CDATA[Recently a friend showed me the tool MailListStat to generate mailing list statistics and I thought it would be much easier to implement this in Perl or Python instead of C. So I tried and the result is Py-MailListStat 1.0 (I am not very creative with names). Maybe someone finds it useful&#8230; Py-MailListStat 1.0 example [...]]]></description>
			<content:encoded><![CDATA[<p>Recently a friend showed me the tool <a href="http://www.marki-online.net/MLS/">MailListStat</a> to generate mailing list statistics and I thought it would be much easier to implement this in Perl or Python instead of C.<br />
So I tried and the result is Py-MailListStat 1.0 (I am not very creative with names). Maybe someone finds it useful&#8230;</p>
<ul>
<li><a href="http://mschuette.name/files/mls-1.0.py">Py-MailListStat 1.0</a></li>
<li><a href="http://mschuette.name/files/mls.amavisd.out.txt">example output for the amavis-user list</a></li>
<li>[<em>Update:</em>] <a href="http://www.gitorious.org/py-mailliststat">git repository</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2010/03/mailing-list-statistics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CRM114-Plugin News</title>
		<link>http://mschuette.name/wp/2009/04/crm114-plugin-news/</link>
		<comments>http://mschuette.name/wp/2009/04/crm114-plugin-news/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 11:39:05 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[CRM114]]></category>
		<category><![CDATA[english]]></category>

		<guid isPermaLink="false">http://mschuette.name/wp/?p=280</guid>
		<description><![CDATA[This week brought great news for my CRM114 plugin: The upcoming amavisd-new version 2.6.3 will completely support CRM114 (either standalone or as an SA plugin) so no more patches are required to include custom headers. In addition Mark made several improvements to my plugin itself, so I am happy to release a new plugin version [...]]]></description>
			<content:encoded><![CDATA[<p>This week brought great news for my <a href="/wp/crm114-spamassassin-plugin/">CRM114 plugin</a>: The upcoming <a href="http://www.ijs.si/software/amavisd/">amavisd-new</a> version 2.6.3 will completely support <a href="http://crm114.sourceforge.net/">CRM114</a> (either standalone or as an SA plugin) so no more patches are required to include custom headers.</p>
<p>In addition Mark made several improvements to my plugin itself, so I am happy to release a new plugin version 0.8 (see the <a href="/wp/crm114-spamassassin-plugin/">project page</a> for the <a href="http://mschuette.name/files/crm114.pm">module</a>, its <a href="http://mschuette.name/files/crm114.html">documentation</a> and additional notes).</p>
<p><strong>Update:</strong> I just noticed that CRM114&#8242;s stable versions (those from 2007) do not support the “<code>--report_only</code>” option. Thus I made a last minute change after uploading and deactivated the option in line 653 (= line 607 in the SA3.3 version).</p>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2009/04/crm114-plugin-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finally, the Syslog RFCs</title>
		<link>http://mschuette.name/wp/2009/03/finally-the-syslog-rfcs/</link>
		<comments>http://mschuette.name/wp/2009/03/finally-the-syslog-rfcs/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 19:46:41 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[GSoC08]]></category>
		<category><![CDATA[Syslog]]></category>

		<guid isPermaLink="false">http://mschuette.name/wp/?p=246</guid>
		<description><![CDATA[Today the RFCs for the new Syslog procol and transport were published: RFC 5424 on The Syslog Protocol RFC 5425 on Transport Layer Security (TLS) Transport Mapping for Syslog RFC 5426 on Transmission of Syslog Messages over UDP]]></description>
			<content:encoded><![CDATA[<p>Today the RFCs for the new Syslog procol and transport were published:</p>
<ul>
<li><a href="http://www.rfc-editor.org/rfc/rfc5424.txt">RFC 5424 on The Syslog Protocol</a></li>
<li><a href="http://www.rfc-editor.org/rfc/rfc5425.txt">RFC 5425 on Transport Layer Security (TLS) Transport Mapping for Syslog</a></li>
<li><a href="http://www.rfc-editor.org/rfc/rfc5426.txt">RFC 5426 on Transmission of Syslog Messages over UDP </a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://mschuette.name/wp/2009/03/finally-the-syslog-rfcs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

