<?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>DailyStuff &#187; Perl</title>
	<atom:link href="http://blog.dailystuff.nl/tag/perl/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dailystuff.nl</link>
	<description>toen Internet stil stond en weer doorging</description>
	<lastBuildDate>Sat, 04 Feb 2012 07:46:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="search"
           href="http://blog.dailystuff.nl/opensearch"
           type="application/opensearchdescription+xml"
           title="Content Search" /><atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Perl en Ini-files</title>
		<link>http://blog.dailystuff.nl/2010/02/perl-en-ini-files/</link>
		<comments>http://blog.dailystuff.nl/2010/02/perl-en-ini-files/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 07:39:56 +0000</pubDate>
		<dc:creator>Hans</dc:creator>
				<category><![CDATA[Internet, Unix en security]]></category>
		<category><![CDATA[bestand]]></category>
		<category><![CDATA[configuratie]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://blog.dailystuff.nl/?p=986</guid>
		<description><![CDATA[Soms zie je best leuke constructies om configuratiebestand in te lezen, maar Perl bestaat al zolang dat er voldoende modules zijn. Zo ook een module om het bekende ini-file formaat in te lezen. En met de volgende regels in je code heb je al toegang tot de content van een ini-file. use Config::IniFiles; use Env [...]]]></description>
			<content:encoded><![CDATA[<p>Soms zie je best leuke constructies om configuratiebestand in te lezen, maar <a href="http://www.perl.org/">Perl</a> bestaat al zolang dat er voldoende modules zijn. Zo ook een module om het bekende ini-file formaat in te lezen. En met de volgende regels in je code heb je al toegang tot de content van een ini-file.<br />
<code><br />
use Config::IniFiles;<br />
use Env qw(HOME);<br />
$cfg = new Config::IniFiles(-file => "$ENV{HOME}/.inirc");<br />
$config{'identity'}{'dbtype'} = $cfg->val('Identity', 'DBType');<br />
$config{'identity'}{'dbnode'} = $cfg->val('Identity', 'DBNode');<br />
$config{'dict'}{'dbtype'} = $cfg->val('Dict', 'DBType');<br />
</code><br />
En natuurlijk ook een voorbeeld van de ini-file.<br />
<code><br />
[Dict]<br />
DBType=variable1<br />
DBNode=variable2<br />
[Identity]<br />
DBType=variable3<br />
DBNode=variable4<br />
</code><br />
Gezien het gemak waarmee dit gedaan kan worden blijft de vraag over waarom je nog eigen procedures zou schrijven.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dailystuff.nl/2010/02/perl-en-ini-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Condensed Perl-code</title>
		<link>http://blog.dailystuff.nl/2010/01/condensed-perl-code/</link>
		<comments>http://blog.dailystuff.nl/2010/01/condensed-perl-code/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 07:20:39 +0000</pubDate>
		<dc:creator>Hans</dc:creator>
				<category><![CDATA[Internet, Unix en security]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://blog.dailystuff.nl/?p=853</guid>
		<description><![CDATA[Bij het opschonen cq herschijven van wat code kwam de volgende regel uit mijn vingers. Deze condensed Perl-code blijkt ook nog redelijk leesbaar te zijn. do $domains{lc($1)}++ if /postfix\/qmgr.+ from=&#60;.+\@(.+)&#62;,/; Of het verstandig is moet de toekomst uitwijzen, maar het past nu wel netjes op één regel zonder wrapping. Een ding wat wel langzaam duidelijk [...]]]></description>
			<content:encoded><![CDATA[<p>Bij het opschonen cq herschijven van wat code kwam de volgende regel uit mijn vingers. Deze condensed Perl-code blijkt ook nog redelijk leesbaar te zijn.<br />
<code><br />
do $domains{lc($1)}++ if /postfix\/qmgr.+ from=&lt;.+\@(.+)&gt;,/;<br />
</code><br />
Of het verstandig is moet de toekomst uitwijzen, maar het past nu wel netjes op één regel zonder wrapping. Een ding wat wel langzaam duidelijk wordt is dat <a href="http://www.perl.org/">Perl</a> een taal is die je door de jaren heen je code anders laat uitschrijven. We zullen zien wat de toekomst brengt, maar ik vrees het ergste <img src='http://blog.dailystuff.nl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dailystuff.nl/2010/01/condensed-perl-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DKIM verifiëren</title>
		<link>http://blog.dailystuff.nl/2009/12/dkim-verifieren/</link>
		<comments>http://blog.dailystuff.nl/2009/12/dkim-verifieren/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 20:08:49 +0000</pubDate>
		<dc:creator>Hans</dc:creator>
				<category><![CDATA[Internet, Unix en security]]></category>
		<category><![CDATA[amavisd-new]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[DKIM]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[SpamAssassin]]></category>
		<category><![CDATA[SPF]]></category>

		<guid isPermaLink="false">http://blog.dailystuff.nl/?p=933</guid>
		<description><![CDATA[DKIM aka DomainKeys Identified Mail is een alternatief op SPF aka Sender Policy Framework en hoewel het lastiger is op te zetten aan de verzenderkant is het wel goed te gebruiken als ontvanger. Zeker omdat oa grote partijen zoals Google en Yahoo het ook gebruiken om hun e-mail te versturen. Gelukkig zijn er ook steeds [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/DomainKeys_Identified_Mail">DKIM</a> aka DomainKeys Identified Mail is een alternatief op <a href="http://en.wikipedia.org/wiki/Sender_Policy_Framework">SPF</a> aka Sender Policy Framework en hoewel het lastiger is op te zetten aan de verzenderkant is het wel goed te gebruiken als ontvanger. Zeker omdat oa grote partijen zoals Google en Yahoo het ook gebruiken om hun e-mail te versturen. Gelukkig zijn er ook steeds meer kleinere partijen die DKIM gebruiken.</p>
<p>Op Debian kan door het installeren van Mail::DKIM het oa worden gebruikt door SpamAssassin en Amavisd-new.<br />
<code><br />
$ sudo apt-get install libmail-dkim-perl<br />
</code></p>
<p>Voor <a href="http://www.spamassassin.org/">SpamAssassin</a> om gebruik te maken van DKIM hoeft in het bestand <em>/etc/spamassassin/v312.pre</em> de volgende regel staan zonder #-teken ervoor.<br />
<code><br />
loadplugin Mail::SpamAssassin::Plugin::DKIM<br />
</code></p>
<p>Je kan los een <a href="http://packages.debian.org/search?suite=all&#038;section=all&#038;arch=any&#038;searchon=names&#038;keywords=dkimproxy">DKIM-proxy</a> installeren om een header te laten toevoegen of de DKIM-signature voldoet, maar als je al al gebruikt maakt van <a href="http://www.ijs.si/software/amavisd/">Amavisd-new</a> dan kan het al automatisch worden gedaan door Amavisd-new. Zorg dat in het bestand <em>/etc/amavis/conf.d/50-user</em> de volgende regel staan en herstart de daemon.<br />
<code><br />
$enable_dkim_verification = 1;<br />
</code></p>
<p>Je zal nu zien dat de volgende regels zien verschijnen in <em>/var/log/mail.log</em>:<br />
<code><br />
Dec 29 20:36:45 server amavis[7162]: Module Mail::DKIM          0.32<br />
Dec 29 20:36:45 server amavis[7162]: DKIM code            loaded<br />
</code></p>
<p>Als je bijvoorbeeld <a href="http://www.roundcube.net/">RoundCube</a> gebruikt dat kan je met <a href="http://rcmplugins.wladik.net/">DKIM verification plugin</a> de status automatisch laten weergegeven als de gebruiker zijn e-mail leest. Het zal je ook opvallen waar het voorlopig niet verstandig is om e-mail te rejecten op basis van een invalide DKIM signature. Bij sommige mailinglisten worden extra regels aan de body van de e-mail toegevoegd waardoor het signature niet meer valide is.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dailystuff.nl/2009/12/dkim-verifieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IMAP migreren naar IMAP, deel 1</title>
		<link>http://blog.dailystuff.nl/2009/09/imap-migreren-naar-imap-deel-1/</link>
		<comments>http://blog.dailystuff.nl/2009/09/imap-migreren-naar-imap-deel-1/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 10:16:52 +0000</pubDate>
		<dc:creator>Hans</dc:creator>
				<category><![CDATA[Internet, Unix en security]]></category>
		<category><![CDATA[Courier]]></category>
		<category><![CDATA[Dovecot]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://blog.dailystuff.nl/?p=873</guid>
		<description><![CDATA[Vroeger was Courier redelijk de standaard voor diensten zoals POP3 en IMAP, maar er waren te veel beperkinge en de developers te moeilijk in de omgang. En totdat Dovecot aan de releasecandidates begon van 1.0 serie was er ook niet echt een alternatief. Een zeer goed bruikbaar alternatief welke nog hard in ontwikkeling is met [...]]]></description>
			<content:encoded><![CDATA[<p>Vroeger was <a href="http://www.courier-mta.org/">Courier</a> redelijk de standaard voor diensten zoals POP3 en IMAP, maar er waren te veel beperkinge en de developers te moeilijk in de omgang. En totdat <a href="http://www.dovecot.org/">Dovecot</a> aan de releasecandidates begon van 1.0 serie was er ook niet echt een alternatief. Een zeer goed bruikbaar alternatief welke nog hard in ontwikkeling is met mailboxen in verschillende namespaces zoals public en private, maar ook fatsoenlijk Sieve-ondersteuning.</p>
<p>Met de komst van <a href="http://roundcube.net/">Roundcube</a> 0.3 als webmailclient zijn er nieuwe mogelijkheden beschikbaar gekomen welke nu langzaam benut kunnen worden. Ondersteuning voor Sieve is daar eentje van en met de belofte van de developers om ook ondersteuning in Evolution te bouwen komt serverside mailfitering voor oa de Linux-wereld en de normale gebruikers redelijk dichtbij. Geen geknutsel meer met .procmailrc of .maildrop files uploaden en hopen dat het werkt.</p>
<p>Helaas kwam er direct een probleem aan het licht bij het testen. Een probleem in de private namespace van de mailbox en eentje die eigenlijk voorkomt uit de migratie van Courier naar Dovecot. Om het <a href="http://wiki.dovecot.org/Migration/Courier">gedrag van Courier te imiteren beschikt Dovecot</a> over de mogelijkheid om standaard een prefix voor subfolders te zetten. Een actie om zo gebruikers transparante kunnen migreren, maar welke wel zorgt dat alle subfolders onderdeel zijn van de Inbox.</p>
<p>Om cache fouten in mailclients uit te sluiten is het gebruiken van een simpele client aan te raden. Simpeler dan de Perl-code hieronder bestaat bijna niet, maar doet precies wat het moet doen.<br />
<code><br />
#!/usr/bin/env perl<br />
use Net::IMAP::Client;<br />
my $imap = Net::IMAP::Client->new(<br />
        server => 'mailhost',<br />
        user   => 'username',<br />
        pass   => 'password',<br />
        ssl    => 1,<br />
        port   => 993<br />
) or die "Could not connect to IMAP server";<br />
$imap->login or die('Login failed: '.$imap->last_error);<br />
foreach ($imap->folders) { print $_."\n"; }<br />
</code><br />
Bij de eerste run komt de output zoals die nu wordt aangeboden aan de mailclient.<br />
<code><br />
INBOX.Trash<br />
INBOX.Drafts<br />
INBOX.Test<br />
INBOX.Junk<br />
INBOX.Sent<br />
INBOX<br />
</code><br />
Bij het uitschakelen van alleen de prefix-optie in Dovecot komt gelijk naar voren wat er gaat veranderen.<br />
<code><br />
Trash<br />
Drafts<br />
Test<br />
Junk<br />
Sent<br />
INBOX<br />
</code><br />
Bij het controleren met verschillende mailclients komt direct naar voren dat hier wat slims gedaan moet gaan worden. Want de mailclients zien subfolders die ineens niet meer onderdeel zijn van de Inbox. Technisch gezien zijn ze nu ook geen onderdeel van de Inbox. Voor de standaard folders zoals Trash, Drafts, Junk en Sent zal dit niet echt een probleem gaan vormen, maar wel voor bv de folder Test. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dailystuff.nl/2009/09/imap-migreren-naar-imap-deel-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl blijft het plakband</title>
		<link>http://blog.dailystuff.nl/2008/04/perl-blijft-het-plakband/</link>
		<comments>http://blog.dailystuff.nl/2008/04/perl-blijft-het-plakband/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 22:14:07 +0000</pubDate>
		<dc:creator>Hans</dc:creator>
				<category><![CDATA[Internet, Unix en security]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.dailystuff.nl/blog/?p=268</guid>
		<description><![CDATA[&#8220;Perl is the ducktape of Internet&#8221; is de uitspraak van iemand bij Sun Microsystems en ik kan hem geen ongelijk geven. In amper een uurtje en 100 regels code doorloopt een Perl-script nu elke dag netjes door een tabel en zoekt resource records op in DNS. Als alles correct gaat in de dry-run van de [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.perl.org/"><img class="alignright size-medium wp-image-269" style="float: right; border: 0; margin-left: 10px; margin-right: 10px; margin-top: 5px; margin-bottom: 5px;" title="perl-camel" src="http://blog.dailystuff.nl/wp-content/uploads/2008/04/perl-camel.png" alt="Perl Camel" width="72" height="81" /></a>&#8220;Perl is the ducktape of Internet&#8221; is de uitspraak van iemand bij Sun Microsystems en ik kan hem geen ongelijk geven. In amper een uurtje en 100 regels code doorloopt een Perl-script nu elke dag netjes door een tabel en zoekt resource records op in DNS. Als alles correct gaat in de dry-run van de komende tijd zal dit me weer wat tijd besparen wat ik dan aan andere dingen kan besteden. Ik vraag me alleen wel af of ik zo uberhaupt nog wel aan Python of Java leren toekom en of het nog toegevoegde waarde gaat hebben.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dailystuff.nl/2008/04/perl-blijft-het-plakband/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl kan ook verplaatsen</title>
		<link>http://blog.dailystuff.nl/2006/11/perl-kan-ook-verplaatsen/</link>
		<comments>http://blog.dailystuff.nl/2006/11/perl-kan-ook-verplaatsen/#comments</comments>
		<pubDate>Sat, 11 Nov 2006 01:08:01 +0000</pubDate>
		<dc:creator>Hans</dc:creator>
				<category><![CDATA[Technologie & techniek]]></category>
		<category><![CDATA[broncode]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.dailystuff.nl/2006/11/11/perl-kan-ook-verplaatsen/</guid>
		<description><![CDATA[Perl is een taal met veel mogelijkheden en nog meer modules. Zo ook File::Copy waarmee je bestanden kan kopieren, maar ook kan verplaatsen cq hernoemen. Deze module zou standaard bij elke Perl distributie moeten zitten zodat je niet bang hoeft te zijn dat andere mbv CPAN de module moeten gaan ophalen. #/usr/bin/perl use strict; use [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.perl.org/">Perl</a> is een taal met veel mogelijkheden en nog meer <a href="http://www.cpan.org/">modules</a>. Zo ook <a href="http://perldoc.perl.org/File/Copy.html">File::Copy</a> waarmee je bestanden kan kopieren, maar ook kan verplaatsen cq hernoemen. Deze module zou standaard bij elke Perl distributie moeten zitten zodat je niet bang hoeft te zijn dat andere mbv CPAN de module moeten gaan ophalen.</p>
<p><code><br />
#/usr/bin/perl<br />
use strict;<br />
use warnings;<br />
use File::Copy;<br />
move("/tmp/file1","/tmp/file2") or die "Move failed: $!";<br />
</code></p>
<p>Zoals het voorbeeld al laat zien kan je met een enkele function operaties op het filesysteem uitvoeren. En met een paar extra paar regels kan je grote hoeveelheden bestanden verplaatsen of van naam laten veranderen bijvoorbeeld.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dailystuff.nl/2006/11/perl-kan-ook-verplaatsen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

