<?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>Burobjorn.nl &#124; digitaal vakmanschap // digital craftsmanship</title>
	<atom:link href="http://www.burobjorn.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.burobjorn.nl</link>
	<description>Burobjorn houdt zich bezig met open source software en online media. Van advies tot concept. Van prototype tot implementatie.</description>
	<lastBuildDate>Wed, 01 Feb 2012 12:24:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Import a Bzr repo into Git</title>
		<link>http://www.burobjorn.nl/blog/2012/02/01/import-a-bzr-repo-into-git/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=import-a-bzr-repo-into-git</link>
		<comments>http://www.burobjorn.nl/blog/2012/02/01/import-a-bzr-repo-into-git/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 12:24:40 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1132</guid>
		<description><![CDATA[Just a quick note to self. Only use it on a copy of the bzr repo as it will kill the bzr repo: git init &#038;&#038; bzr fast-export `pwd` &#124; git fast-import &#038;&#038; rm -r .bzr &#038;&#038; git reset HEAD]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to self. Only use it on a copy of the bzr repo as it will kill the bzr repo:<br />
<code><br />
git init &#038;&#038; bzr fast-export `pwd` | git fast-import &#038;&#038; rm -r .bzr &#038;&#038; git reset HEAD<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2012/02/01/import-a-bzr-repo-into-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dealing with Transip&#8217;s Java based Console for VPS VM&#8217;s on Ubuntu</title>
		<link>http://www.burobjorn.nl/blog/2012/01/19/dealing-with-transips-java-based-console-for-vps-vms-on-ubuntu/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dealing-with-transips-java-based-console-for-vps-vms-on-ubuntu</link>
		<comments>http://www.burobjorn.nl/blog/2012/01/19/dealing-with-transips-java-based-console-for-vps-vms-on-ubuntu/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 20:17:08 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1127</guid>
		<description><![CDATA[This is just a dump of my experience in getting the Transip VPS Console interface to work on Lubuntu 11.04 (64-bit) with Chromium 14.0.835.202 (Developer Build 103287) Ubuntu 11.04. Transip uses a Java Applet for accessing your newly created VM. At first I could not get the Java applet to work with the packages available [...]<br /><a href="http://www.burobjorn.nl/blog/2012/01/19/dealing-with-transips-java-based-console-for-vps-vms-on-ubuntu/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>This is just a dump of my experience in getting the <a href="http://www.transip.nl">Transip</a> VPS Console interface to work on <a href="https://en.wikipedia.org/wiki/Lubuntu">Lubuntu</a> 11.04 (64-bit) with <a href="https://en.wikipedia.org/wiki/Chromium_(web_browser)">Chromium</a> 14.0.835.202 (Developer Build 103287) Ubuntu 11.04.  </p>
<p>Transip uses a <a href="https://en.wikipedia.org/wiki/Java_applet">Java Applet</a> for accessing your newly created <a href="https://en.wikipedia.org/wiki/Virtual_Machine">VM</a>. At first I could not get the Java applet to work with the packages available on Ubuntu. This is not Transip&#8217;s fault, but rather due to the issues surrounding Java on Linux. <a href="http://www.infoworld.com/d/application-development/oracles-latest-java-moves-frustrate-users-and-vendors-183452">Oracle decided to change Java &#8216;s license</a> and thus forcing Ubuntu to change the way they are handling Java. Basically making installing Java unnecessary difficult. Anyways, if you follow these steps you at least should get a working Transip Console, albeit a very buggy and highly annoying to use console. </p>
<p>Since I use a 64-bit version of Ubuntu the following steps might be different for the 32-bit version. Oh, this worked for me, it might not work for you and eat your cat or something evil like that. Use the following information at your own risk! For now I&#8217;m ONLY interested in getting Java applets to work with Chrome &#038; Chromium. If you need a different browser or want to use this Java version on the desktop, you&#8217;ll have to find out yourself on how to achieve what you need. Leave a comment if you have done so <img src='http://www.burobjorn.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>Anyways, let&#8217;s start! </p>
<p>1) Download <a href="http://www.oracle.com/technetwork/java/javase/downloads/jre-7u2-download-1377135.html">Oracle Java JRE 7</a> (Use the link otherwise you might get lost in a forest of corporate speak&#8230;). In my case I&#8217;ve downloaded only the Java Runtime Environment (<a href="http://download.oracle.com/otn-pub/java/jdk/7u2-b13/jre-7u2-linux-x64.tar.gz">JRE 64-bit tar.gz</a>) version and not the Java Development Kit (JDK) since I only wanted to use an Java applet.   </p>
<p>2) Unpack the tar.gz. In my case I used the following path: <code>/opt/jre1.7.0_02</code><br />
I&#8217;ve symlinked this from /opt/jre-oracle to make it more accessible and easy to change.</p>
<p>3) In order to make Chromium use the newly installed Java plugin you need to tell it where it can find the plugin. You need to do this by making a symlink: </p>
<p><code>sudo ln -s /opt/jre-oracle/lib/amd64/libnpjp2.so /usr/lib/chromium-browser/plugins</code></p>
<p>4) Restart Chromium and check if the plugin is found. Do this by entering <code>chrome://plugins</code> in the url bar. If you see multiple Java plugins, for instance something with IcedTea, disable all <em>except</em> the one you just installed (probably called similar to this: &#8216;Java(TM) Plug-in 1.7.0_02&#8242; </p>
<p>5) Check if you can use or view a Java Applet. I&#8217;ve used this <a href="http://www.learningprocessing.com/examples/chapter-3/example-3-5/">example</a> from the excellent <a href="http://www.learningprocessing.com/">Learning Processing site</a> by <a href="http://www.shiffman.net/">Daniel Shiffman</a></p>
<p>Note: In theory nothing should happen to any other installed Java version you might have, since we only changed the Java plugin for Chromium, but keep in mind that Java Applets will now run using the Oracle JRE and not any previous installed Java versions.  </p>
<p>After following the above steps I finally managed to &#8216;use&#8217; the Transip Console. </p>
<p>PS: Transip, if you&#8217;re reading this please fix this abomination you call a console. You can do so much better as you have already shown with your awesome employees responding diligently and the spot on price quality ratio in your products. Except for this horrible VPS console! Please check out <a href="http://linode.com">Linode</a> and learn from them. </p>
<p>Oh, feel free to <a href="http://www.burobjorn.nl/contact/">contact me</a> if you need a beta tester for a new console <img src='http://www.burobjorn.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2012/01/19/dealing-with-transips-java-based-console-for-vps-vms-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fix sudo and path environment variable on Ubuntu</title>
		<link>http://www.burobjorn.nl/blog/2012/01/04/fix-sudo-and-path-environment-variable-on-ubuntu/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fix-sudo-and-path-environment-variable-on-ubuntu</link>
		<comments>http://www.burobjorn.nl/blog/2012/01/04/fix-sudo-and-path-environment-variable-on-ubuntu/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 16:15:52 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1120</guid>
		<description><![CDATA[Due to Ubuntu using secure_path in sudo you can&#8217;t change the $PATH environment variable. Thanks to http://serverfault.com/questions/182995/problems-with-sudo-in-path I fixed it in my ~/.basrc with an alias: alias sudo='sudo env PATH=$PATH $@' This allows me to add my ~/Scripts/bin path for personal scripts that make my life easier while allowing those scripts to be run with [...]<br /><a href="http://www.burobjorn.nl/blog/2012/01/04/fix-sudo-and-path-environment-variable-on-ubuntu/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Due to Ubuntu using secure_path in sudo you can&#8217;t change the $PATH environment variable. Thanks to <a href="http://serverfault.com/questions/182995/problems-with-sudo-in-path">http://serverfault.com/questions/182995/problems-with-sudo-in-path</a> I fixed it in my ~/.basrc with an alias: </p>
<p><code><br />
alias sudo='sudo env PATH=$PATH $@'<br />
</code></p>
<p>This allows me to add my ~/Scripts/bin path for personal scripts that make my life easier while allowing those scripts to be run with sudo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2012/01/04/fix-sudo-and-path-environment-variable-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Program or be programmed quote by Douglas Rushkoff</title>
		<link>http://www.burobjorn.nl/blog/2011/12/09/program-or-be-programmed-quote-by-douglas-rushkoff/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=program-or-be-programmed-quote-by-douglas-rushkoff</link>
		<comments>http://www.burobjorn.nl/blog/2011/12/09/program-or-be-programmed-quote-by-douglas-rushkoff/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 08:44:13 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[better-than-tv]]></category>
		<category><![CDATA[culture]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1106</guid>
		<description><![CDATA[I&#8217;ve just finished Program or be Programmed by Douglas Rushkoff. It&#8217;s a relatively short read (approx 150 pages) and tries to explain the need for understanding technology and creating (with) technology instead of just using it. I&#8217;m a advocate for programming literacy striving towards making people aware of the influence of technology on our society, [...]<br /><a href="http://www.burobjorn.nl/blog/2011/12/09/program-or-be-programmed-quote-by-douglas-rushkoff/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just finished <a href="http://www.orbooks.com/catalog/program/">Program or be Programmed</a> by Douglas Rushkoff. It&#8217;s a relatively short read (approx 150 pages) and tries to explain the need for understanding technology and creating <em>(with)</em> technology instead of just using it. I&#8217;m a advocate for programming literacy striving towards making people aware of the influence of technology on our society, so I just had to read what <a href="http://www.rushkoff.com/">Rushkoff</a> has to say about this. </p>
<p>At first I was not so impressed. The first chapters mostly felt like filler content. Actually I can&#8217;t even remember the main arguments brought forward in those chapters. However the last chapter really made up for this lack of content in the first chapters. I think the quote below sums this up nicely: </p>
<blockquote><p>
&#8220;For the person who understands code, the whole world reveals itself as a series of decisions made by planners and designers for how the rest of us should live. Not just computers, but everything from the way streets are organized in a town to the way election rules (are tilted for a purpose vote for any three candidates) begin to look like what they are: sets of rules developed to promote certain outcomes. Once the biases become apparent, anything becomes possible. The world and its many arbitrary systems can be hacked.&#8221;
</p></blockquote>
<p>Source: <a href="http://www.rushkoff.com/program-or-be-programmed/">Program or be programmed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2011/12/09/program-or-be-programmed-quote-by-douglas-rushkoff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The recommended alternative for procmail server based mail filtering is maildirproc</title>
		<link>http://www.burobjorn.nl/blog/2011/11/30/the-recommended-alternative-for-procmail-server-based-mail-filtering-is-maildirproc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-recommended-alternative-for-procmail-server-based-mail-filtering-is-maildirproc</link>
		<comments>http://www.burobjorn.nl/blog/2011/11/30/the-recommended-alternative-for-procmail-server-based-mail-filtering-is-maildirproc/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 13:56:50 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[howto]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1099</guid>
		<description><![CDATA[If you&#8217;re like me, you probably receive a lot of email everyday. Some of it needs our immediate attention, but most of it can be dealt with at some time in the future. In order to filter these emails into the correct categories I&#8217;d use Procmail, which is a server based mail delivery and filtering [...]<br /><a href="http://www.burobjorn.nl/blog/2011/11/30/the-recommended-alternative-for-procmail-server-based-mail-filtering-is-maildirproc/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me, you probably receive a lot of email everyday. Some of it needs our immediate attention, but most of it can be dealt with at some time in the future. In order to filter these emails into the correct categories I&#8217;d use <a href="https://en.wikipedia.org/wiki/Procmail">Procmail</a>, which is a server based mail delivery and filtering agent (<a href="https://en.wikipedia.org/wiki/Mail_delivery_agent">MDA</a>).  You might wonder why I prefer filtering on the server? </p>
<p>Filtering on the server allows me to easily switch between mail clients like <a href="https://en.wikipedia.org/wiki/Mutt_(e-mail_client)">Mutt</a>, <a href="https://en.wikipedia.org/wiki/Mozilla_Thunderbird">Thunderbird</a> and webmail without having to wonder about each client&#8217;s specific filtering options. The server deals with the filtering and serves my mail via <a href="https://en.wikipedia.org/wiki/IMAPS">IMAPS</a> to whatever client I might use to read my mail. Procmail served me well, but it&#8217;s <a href="http://pm-doc.sourceforge.net/doc/">arcane &#8216;language&#8217;</a> to construct rules by which emails are sorted into different folders is a pain to use. </p>
<p>It became harder and harder for me to create correct rules to filter my mail. This resulted into less important mail cluttering up my inbox hiding the important mail and even important mail being sorted into the wrong folder. So I set out to find an alternative for Procmail.  </p>
<p>Surprisingly it took way longer than I anticipated to find an alternative to Procmail. Apparently most people just deal with Procmail&#8217;s arcane mumbo jumbo language. After some failed attempts I stumbled upon <a href="http://joel.rosdahl.net/maildirproc/">maildirproc</a> by <a href="http://joel.rosdahl.net/">Joel Rosdahl</a>. As Joel puts it: </p>
<blockquote><p>maildirproc is a program that processes one or several existing mail boxes in the maildir format. It is primarily focused on mail sorting — i.e., moving, copying, forwarding and deleting mail according to a set of rules. It can be seen as an alternative to procmail, but instead of being a delivery agent (which wants to be part of the delivery chain), maildirproc only processes already delivered mail. And that&#8217;s a feature, not a bug.
</p></blockquote>
<p>The greatest feature of maildirproc is not even mentioned in this quote: it uses the regular <a href="https://en.wikipedia.org/wiki/Python_(programming_language)">Python programming language</a> to construct rules by which your mail will be sorted. Python is widely regarded as a great readable programming language which suits both aspiring as well as advanced developers. By using Python it is quite easy to construct rules to filter emails. The documentation and examples of maildirproc should have you up and running within minutes.</p>
<p>Personally I still use Procmail as MDA, but it only makes sure my emails will be put into the inbox. Maildirproc will take care of the sorting. I run maildirproc using cron, so that I can see every mail coming in, but all the less important stuff will get automatically sorted every minute or so. </p>
<p>I highly recommend using maildirproc to sort your email instead of Procmail!    </p>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2011/11/30/the-recommended-alternative-for-procmail-server-based-mail-filtering-is-maildirproc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Test mail during PHP development without a mailserver</title>
		<link>http://www.burobjorn.nl/blog/2011/11/21/test-mail-during-php-development-without-a-mailserver/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=test-mail-during-php-development-without-a-mailserver</link>
		<comments>http://www.burobjorn.nl/blog/2011/11/21/test-mail-during-php-development-without-a-mailserver/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 16:56:27 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1095</guid>
		<description><![CDATA[During development I usually don&#8217;t want to send out email to recipients. I just want to make sure it will get sent, but I don&#8217;t care about it reaching it&#8217;s destiny (yet). Basically testing that my code does indeed send out mails when I ask it to do so After searching for some time I&#8217;ve [...]<br /><a href="http://www.burobjorn.nl/blog/2011/11/21/test-mail-during-php-development-without-a-mailserver/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>During development I usually don&#8217;t want to send out email to recipients. I just want to make sure it will get sent, but I don&#8217;t care about it reaching it&#8217;s destiny (yet). Basically testing that my code does indeed send out mails when I ask it to do so <img src='http://www.burobjorn.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
After searching for some time I&#8217;ve found <a href="http://seancoates.com/blogs/mail-replacement----a-better-hack" title="send email during development hack">a brilliant little one-liner written by Sean Coates some time ago</a>. It&#8217;s a quick and dirty hack, but it works brilliantly for my purposes. </p>
<p>I&#8217;ve elaborated a bit more on <a href="http://seancoates.com/blogs/mail-replacement----a-better-hack" title="send email during development hack">Sean&#8217;s piece</a> mainly on the installation, so even if you&#8217;re not that experienced you should be able to follow along. Also read Sean&#8217;s article as it contains a more sophisticated solution as well!</p>
<p><strong><br />
Preamble</strong><br />
I use Linux on my development machines, but I suppose it should work with any Unixish type of OS, such as OS X or *BSD. Probably doesn&#8217;t work on Windows (leave a comment for a Windows based solution).    </p>
<ol>
<li>Ok, first put the following line in a file called &#8216;logmail&#8217; (without the quotes!):<br />
<code>cat >> /tmp/test-emails-sent.log</code></li>
<li>Save the file somewhere you can find it back <img src='http://www.burobjorn.nl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  In my case, like Sean, I&#8217;ve used <code>/usr/local/bin</code> as the directory for this file.
</li>
<li>Then make sure it has execute rights. You may set it by typing in: <code>chmod +x /usr/local/bin/logmail</code></li>
<li>Finally if you use PHP you need to change the sendmail_path variable in your php.ini. In my case (I&#8217;m using Ubuntu 11.04 and 11.10) I&#8217;ve added a file called mail.ini to the <code>/etc/php5/conf.d</code> directory with the following line:<br />
<code>sendmail_path=/usr/local/bin/logmail</code>  </li>
<li>Restart Apache by typing <code>sudo service apache2 restart</code></li>
<li>Test your application&#8217;s mail sending capabilities by looking at the test-emails-sent.log in your /tmp directory</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2011/11/21/test-mail-during-php-development-without-a-mailserver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nieuw projectje: HackersNL</title>
		<link>http://www.burobjorn.nl/blog/2011/07/20/nieuw-projectje-hackersnl/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nieuw-projectje-hackersnl</link>
		<comments>http://www.burobjorn.nl/blog/2011/07/20/nieuw-projectje-hackersnl/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 12:12:38 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[hackersnl]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1087</guid>
		<description><![CDATA[Het is erg leuk om als freelancer bezig te zijn, maar soms mis ik het best wel om even met gelijkgestemde techneuten te kunnen bijpraten. Als je in een leuk bedrijf werkt kun je veelal terugvallen op je collega&#8217;s hiervoor, maar als freelancer ontbreekt dat meestal. Daarom ben ik samen met Jeroen Tietema gestart met een [...]<br /><a href="http://www.burobjorn.nl/blog/2011/07/20/nieuw-projectje-hackersnl/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Het is erg leuk om als freelancer bezig te zijn, maar soms mis ik het best wel om even met gelijkgestemde techneuten te kunnen bijpraten. Als je in een leuk bedrijf werkt kun je veelal terugvallen op je collega&#8217;s hiervoor, maar als freelancer ontbreekt dat meestal. Daarom ben ik samen met <a href="http://voidwalkers.nl">Jeroen Tietema</a> gestart met een nieuwe projectje genaamd HackersNL.</p>
<blockquote><p>Onder de naam HackersNL is er elke laatste donderdag van de maand (check de agenda!) een informele bijeenkomst voor techneuten, nerds en aanverwanten in <a title="Lokatie" href="http://hackersnl.nl/lokatie/">hartje Utrecht</a>. Doel van de avond is om kennis, ideëen en ervaringen uit te wisselen rondom technologie.</p></blockquote>
<p>Aankomende donderdag 28 juli is de eerste keer dat we <a href="http://hackersnl.nl">HackersNL</a> organiseren. Dankzij de hulp van <a href="http://setup.nl">SETUP</a> zijn er geen entreekosten en kunnen we dit doen in het gebouw van de <a href="http://www.dutchgamegarden.nl/">Dutch Game Garden</a> in hartje Utrecht!Daar staat tegenover dat we wel iedereen vragen zich aan te melden zodat we weten op hoeveel mensen we kunnen rekenen. Zonder de hulp van SETUP was dit absoluut niet mogelijk geweest! </p>
<p>Op het programma staan twee interessante sprekers: <a href="http://log4p.com/about/">Peter Maas</a> over de programmeertaal Scala &#038; een kijkje in de keuken van ontwikkelaar <a href="http://webschuur.com/">Bèr Kessels</a>. Tevens hebben we de &#8217;1 Minuut&#8217; &#8211; een concept ontwikkeld met <a href="http://www.rekeeb.com/">Patrick Beeker</a> &#8211; om snel een beeld te krijgen van de aanwezigen en het ijs alvast een beetje te breken <img src='http://www.burobjorn.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Voor meer informatie en aanmelden, zie <a href="http://hackersnl.nl">http://hackersnl.nl</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2011/07/20/nieuw-projectje-hackersnl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Multisite setup hints and tips</title>
		<link>http://www.burobjorn.nl/blog/2011/06/23/wordpress-multisite-setup-hints-and-tips/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-multisite-setup-hints-and-tips</link>
		<comments>http://www.burobjorn.nl/blog/2011/06/23/wordpress-multisite-setup-hints-and-tips/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 08:56:26 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1058</guid>
		<description><![CDATA[Local installation Installing WordPress (or actually any webapplication) without a domain is annoying and might cause issues. Therefor I always create a fake local domain name to use with my project. I use a nice little script based on Paul Gibson&#8217;s OSX virtualhost script which automates the first three steps below. 1. Create a local [...]<br /><a href="http://www.burobjorn.nl/blog/2011/06/23/wordpress-multisite-setup-hints-and-tips/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><strong>Local installation</strong><br />
Installing WordPress (or actually any webapplication) without a domain is annoying and might cause issues. Therefor I always create a fake local domain name to use with my project. I use a nice little script based on <a href="http://patrickgibson.com/utilities/virtualhost/">Paul Gibson&#8217;s OSX virtualhost</a> script which automates the first three steps below.</p>
<p>1. Create a local domain by adding a fake domain name to your <a title="Read more about the hosts file on Wikipedia" href="https://secure.wikimedia.org/wikipedia/en/wiki/Hosts_(file)">hosts file</a>. In this case I use &#8216;testproject.mine&#8217; as the domain name. In my hosts file I point this domain name to my own local machine. Here&#8217;s an example of my hosts file:</p>
<p><code>testproject.mine          127.0.0.1<br />
anotherproject.mine     127.0.0.1<br />
secret-project.mine      127.0.0.1</code></p>
<p>2. Setup a <a href="http://httpd.apache.org/docs/2.2/vhosts/">Virtualhost</a> in Apache. I use Apache (2.2.14-5ubuntu8.4) on Ubuntu Linux. Check the <a href="http://httpd.apache.org/docs/">manual</a> for info on the configuration files. In the main Apache configuration (usually httpd.conf, in my case apache2.conf) I have the following lines:</p>
<p><code><br />
NameVirtualHost 127.0.0.1<br />
Include /etc/apache2/sites-enabled<br />
</code></p>
<p>The first line with the <a href="http://httpd.apache.org/docs/2.2/mod/core.html#namevirtualhost">NameVirtualHost</a> tag binds the <a href="https://secure.wikimedia.org/wikipedia/en/wiki/127.0.0.1">local IPv4 ip-address</a> to the Virtualhosts. In the Virtualhost config I also need to use this ip-address as you will see. The second line will include my site aka Virtualhost specific configurations located in /etc/apache2/sites-enabled. In this directory I have a file testproject.mine which contains the VirtualHosts configuration file for &#8216;testproject.mine&#8217;:</p>
<p><code><br />
&lt;VirtualHost 127.0.0.1&gt;<br />
</code><span style="font-family: monospace;"> DocumentRoot /home/bjorn/Sites/testproject.mine<br />
</span><span style="font-family: monospace;"> ServerName testproject.mine</span></p>
<p><code> &lt;Directory /home/bjorn/Sites/testproject.mine&gt;<br />
</code><span style="font-family: monospace;"> Options All<br />
AllowOverride All<br />
&lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;<br />
</span></p>
<p>As you can see I have a VirtualHost tag which uses the same ip-address as the previous NameVirtualHost on the first line. Within this tag I have several others. Most importantly I have set the <a href="http://httpd.apache.org/docs/2.2/mod/core.html#documentroot">DocumentRoot</a>, which points to a directory with all the files I would like serve with Apache (make sure the Apache user has access to this!) and a tag <a href="http://httpd.apache.org/docs/2.2/mod/core.html#servername">ServerName</a> which is used to uniquely identify a virtual host, when using name-based virtual hosts.<br />
In other words it makes sure that this particular VirtualHosts&#8217; config is loaded when browsing to http://testproject.mine Between the <a href="http://httpd.apache.org/docs/current/mod/core.html#directory">Directory</a> tags are some directives in dealing with this directory. In this case I&#8217;m leaving it very open (not recommend for production!) by setting <a href="http://httpd.apache.org/docs/current/mod/core.html#allowoverride">AllowOverride</a> to All and <a href="http://httpd.apache.org/docs/current/mod/core.html#options">Options</a> to All. This makes it very easy to alter options with an <a href="http://httpd.apache.org/docs/current/howto/htaccess.html">.htaccess.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2011/06/23/wordpress-multisite-setup-hints-and-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keep track of configuration settings during development with multiple developers and WordPress Multisite</title>
		<link>http://www.burobjorn.nl/blog/2011/06/22/keep-track-of-configuration-settings-during-development-with-multiple-developers-and-wordpress-multisite/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=keep-track-of-configuration-settings-during-development-with-multiple-developers-and-wordpress-multisite</link>
		<comments>http://www.burobjorn.nl/blog/2011/06/22/keep-track-of-configuration-settings-during-development-with-multiple-developers-and-wordpress-multisite/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 14:04:19 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=1036</guid>
		<description><![CDATA[In this post I&#8217;ve written down my methods to make deployment and changing locations of WordPress Multisite installations easier by adhering to certain assumptions Deploying WordPress from a local machine to another location such as a testserver is annoying, because there is no easy way to export and import settings (although menu&#8217;s and other content [...]<br /><a href="http://www.burobjorn.nl/blog/2011/06/22/keep-track-of-configuration-settings-during-development-with-multiple-developers-and-wordpress-multisite/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>In this post I&#8217;ve written down my methods to make deployment and changing locations of <a href="http://codex.wordpress.org/Create_A_Network">WordPress Multisite</a> installations easier by adhering to certain assumptions</p>
<p>Deploying WordPress from a local machine to another location such as a testserver is annoying, because there is no easy way to export and import settings (although menu&#8217;s and other content can be exported and imported!). WordPress saves configuration options in the database and often these settings are part of serialized arrays (see <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Serialization">Serialization</a>) . Making it hard to change these by hand or using a deployment script. Imagine working with multiple developers, several plugins and it becomes a real pain in the ass to keep track of configuration changes.<br />
<span id="more-1036"></span><br />
Some problems are more or less solved for the single WordPress install: moving a single WordPress installation is a lot easier than a WordPress Multisite installation. Using <a href="http://codex.wordpress.org/Editing_wp-config.php">certain constants in the wp-config.php file</a>, such as WP_SITEURL or RELOCATE, you may alter the domain name used to access the WordPress installation. Et voila the installation has been moved!</p>
<p>Keep in mind though, all other settings have not been automagically altered. So you still need to change these, but at least for a single WordPress install there are some constants to help you out. Such constants are, as far as I know, not available in a WordPress Multisite installation and we still have the issues with all the other settings which need to be changed. Basically WordPress at the moment lacks a good approach for dealing with multiple installations and sharing settings.</p>
<p>Therefor my current approach towards development with multiple developers on WordPress Multisite uses database dumps and a simple search-replace. This is a bit &#8216;hackish&#8217; and certainly not a magic silver bullet, but it at least makes developing with multiple developers a bit easier.</p>
<p><strong>Assumptions</strong></p>
<ul>
<li>The WordPress Multisite installation uses subdirectories for the seperate sites.</li>
<li>There are at least two WordPress Multisite installations. One locally on the developer&#8217;s machine and one on a common test server. Both use a domain name and extension, which has the exact amount of characters regardless of it being locally installed or on a test server.</li>
</ul>
<p>For instance I&#8217;ve started to use the following scheme:</p>
<ul>
<li>http://domain.mine for my local test installation on my laptop</li>
<li>http://domain.test for a test server which we use with multiple developers</li>
</ul>
<p>It doesn&#8217;t matter what the domain names and extensions are as long as you are using the exact same amount of characters for both. This &#8216;fixes&#8217; the issue with settings being tied to a domain name in a serialized array. Due to the nature of serialized arrays, changes in the length or type of the new value will affect the serialized array. By keeping the amount of characters used in the domain name and extension exactly the same we prevent any issues with the length or type. Now I can dump the test server&#8217;s database, search &#8216;domain.test&#8217;, replace it with &#8216;domain.mine&#8217; and use this on my local machine. </p>
<p>For the search and replace I use <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Sed">sed</a>, a nice little Unix commandline tool which makes it very easy to do search-and-replaces. Check out <a href="http://www.grymoire.com/Unix/Sed.html">this great tutorial on sed by Bruce Barnett</a>, even if you have used sed before. This is the one-liner I use: </p>
<p><code>sed 's/bnn.test/bnn.mine/g' < database-dump-original.sql > database-dump-renamed.sql</code></p>
<p><em>Note:</em> this implies the test server is the leading example for all installations, so be careful with the test server and make regular dumps (I try to do this with every configuration change). </p>
<p>Although this approach does not solve deployment on a production or live server, keeping track of configuration changes during development is made a bit easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2011/06/22/keep-track-of-configuration-settings-during-development-with-multiple-developers-and-wordpress-multisite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a group editable webdirectory on Linux</title>
		<link>http://www.burobjorn.nl/blog/2011/06/19/creating-a-group-editable-webdirectory-on-linux/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=creating-a-group-editable-webdirectory-on-linux</link>
		<comments>http://www.burobjorn.nl/blog/2011/06/19/creating-a-group-editable-webdirectory-on-linux/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 11:32:13 +0000</pubDate>
		<dc:creator>BjornW</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.burobjorn.nl/?p=991</guid>
		<description><![CDATA[I&#8217;m working on a project in which I need a directory to be editable by a group of users. This directory will contain files and directories to be served by a webserver (in my case Apache). I&#8217;m using Linux (Ubuntu 10.04.2 LTS) and my users should not be bothered with setting up rights or changing [...]<br /><a href="http://www.burobjorn.nl/blog/2011/06/19/creating-a-group-editable-webdirectory-on-linux/">Lees verder &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a project in which I need a directory to be editable by a group of users. This directory will contain files and directories to be served by a webserver (in my case Apache). I&#8217;m using Linux (Ubuntu 10.04.2 LTS) and my users should not be bothered with setting up rights or changing any.<br />
I couldn&#8217;t find any detailed instructions on the best way to achieve this, so I&#8217;ve decided to write down my own process using bits of hints and tips from various sources to document my thought process. It may contain errors or there might be better ways. If you notice an error or know of better methods, please leave a comment.<br />
<span id="more-991"></span><br />
<strong>Some background info</strong></p>
<ul>
<li>The directory I want to server with Apache is: <em>/var/www/html</em></li>
<li>I have three developers: <em>Joe</em>, <em>Jack</em> and <em>Amy</em></li>
<li>Apache (by default on Ubuntu) runs as user <em>www-data</em> with group <em>www-data</em></li>
<li>The server is a <a href="http://www.linode.com/?r=af679ca5e7964d369d21e70b695cdfa57a3a4fd4">Linode VPS</a> (link uses my referral code)</li>
</ul>
<p><strong>Instructions</strong></p>
<ol>
<li>Create a new group called web-dev: <code>groupadd web-dev</code>This will be the group to which uses will be added in order to read and write files and directories within <em>/var/www/html</em>
<p>Note:<br />
I could also have added the users to the existing <em>www-data</em> group used by Apache, but then the Apache user would have gotten read and write privileges together with the rest of the group. I&#8217;m not comfortable doing this, because if an attacker would gain access through Apache, it would give the attacker the same privileges as the Apache user. Therefor I don&#8217;t want to give the Apache user anymore privileges than absolutely necessary. In my case nothing more than the ability to serve the files and directories.</li>
<li>Add the users to the <em>web-dev</em> group: <code>useradd -G web-dev joe</code>Repeat this for all users you want to be able to read and write the files within<em> /var/www/html</em>.
<p>Note:<br />
This is the common group for which we will set the correct permissions.</li>
<li>Change the ownership of <em>/var/www/html</em> to one of the developers and the common group they belong to: <code>chown -R joe:web-dev /var/www/html/</code><br />
Make sure the directory is still accessible (read for files and execute for directories) by Apache.</p>
<p>Note:<br />
By changing the ownership to one of the users in the common group, in our case <em>joe</em> with group ownership changed to the common group <em>web-dev</em> we have established a common directory for all users part of the group <em>web-dev</em>. <em>Update: It may also be a good idea to change the ownership to root. This prevents accidental removal of the directory by the group members. Thanks <a href="http://tuxic.nl">Jaap</a> for mentioning this!</em></li>
<li>Make sure the <em>/var/www/html</em> is group writeable: <code>chmod -R 775 /var/www/html</code>If the directory is already group writeable you may skip this step</li>
<li>Make sure any new files or directories within <em>/var/www/html</em>will inherit the parent directory&#8217;s group owner: <code>find /var/www/html -type d -print0 | xargs -0 chmod g+s</code>This uses the <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Setuid#setuid_and_setgid_on_directories">setgid</a> permission bit to make sure any new file or subdirectory will belong to the same group as it&#8217;s parent directory. In our case <em>web-dev</em>
<p>Note:<br />
Many thanks to <a href="http://serverfault.com/users/66000/rthomson">rthomson&#8217;s</a> <a href="http://serverfault.com/questions/257569/added-a-new-user-to-group-www-data-and-to-sudoers-still-not-sure-why-user-create/257653#257653">answer</a> on <a href="http://serverfault.com/">ServerFault</a> for the command and concise explanation of setgid</li>
<li>Make sure new files and directories created by users are group writable:
<ol>
<li>Install libpam-umask (mine was installed using libpam-modules by default): <code>sudo apt-get install libpam-modules</code></li>
<li>Add the line: <code>session optional pam_umask.so umask=002</code> to the file <em>/etc/pam.d/common-session</em></li>
<li>Make sure there is no umask line in <em>/etc/profile/</em> or <em>~/.bashrc</em> otherwise this will be combined with the umask set in PAM causing the umask to be changed from 002 to something else. If you do find a umask defined in the previous mentioned files, just comment them with a pound sign #.</li>
</ol>
<p>Note:</p>
<p>By default Ubuntu uses an <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Umask">umask</a> 022, which ensures new files are only writable for the owner (i.e. the user who created them). In our case we want files and subdirectories created in <em>/var/www/html</em> to be group writeable and therefor the umask for the users should be changed to umask 002. As far as I know this cannot be done on a per-directory base (although some mentioned that you could do this using POSIX ACL) so we need to set this either per user using ~/.bashrc or systemwide for all users using /etc/profile or by setting up <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Linux_PAM">PAM</a>.<br />
In our case I decided to use PAM so that regardless how a user logs into the server his/her umask will be set correctly. I&#8217;m not sure if this is the right way of doing this, since this means that every user would have his/her files group writeable by default which may pose a significant security issue. Our case is (for now) limited to a single purpose server with a very small group of users, so I&#8217;m willing to take the risk, however I do think a better solution must be at hand (perhaps POSIX ACL&#8217;s?).</li>
<li>Type: <code>umask</code>This shows the current umask. It should be 022. Now logout and login again to make sure the changed PAM settings take effect when logging in. Again type <code>umask</code>. It should be 0002, if the PAM settings have taken effect.</li>
<li>Finally create a new file called <em>test.txt</em> into <em>/var/www/html</em>: <code>touch test.txt</code>Use this file to see if other users can edit it, remove it and create it again. If this little test succeeds everything should have been setup correctly.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.burobjorn.nl/blog/2011/06/19/creating-a-group-editable-webdirectory-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

