<?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>Coen's blog</title>
	<atom:link href="http://blog.coenbijlsma.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.coenbijlsma.nl</link>
	<description>The blog of Coen Bijlsma (coenie)</description>
	<lastBuildDate>Wed, 26 May 2010 20:55:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>inspectfs</title>
		<link>http://blog.coenbijlsma.nl/2010/05/24/inspectfs/</link>
		<comments>http://blog.coenbijlsma.nl/2010/05/24/inspectfs/#comments</comments>
		<pubDate>Mon, 24 May 2010 11:50:01 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[udev]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=124</guid>
		<description><![CDATA[It has been some time since my last post here, but finally I have something new to share. Just yet I started working on a hobby project that may end up in the trash, or it may end up as a large side project: inspectfs. I haven&#8217;t put much thought in the name, so if [...]]]></description>
			<content:encoded><![CDATA[<p>It has been some time since my last post here, but finally I have something new to share.<br />
Just yet I started working on a hobby project that may end up in the trash, or it may end up as a large side project: inspectfs. I haven&#8217;t put much thought in the name, so if you have an idea, let me know.<br />
The idea is to build a (Linux) tool that gathers information about any disk / partition / file system that is currently attached to your computer. It&#8217;s a bit of a rough idea as of yet, but I hope it will crystallize a bit in the next few weeks.If you have any ideas or tips regarding this, please let me know and I&#8217;ll see if it&#8217;s worth incorporating.</p>
<p>Inspectfs relies on <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/index.html">libudev</a> for querying device information but I wrote some C++ wrapper classes because I want the project to contain as much C++ and as less C code as possible.<br />
Soon you&#8217;ll be able to find the code and more on <a href="http://github.com/coenbijlsma/libinspectfs">github</a>, and if you want to join me, post a message here!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2010/05/24/inspectfs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FreeNOS</title>
		<link>http://blog.coenbijlsma.nl/2009/08/08/freenos/</link>
		<comments>http://blog.coenbijlsma.nl/2009/08/08/freenos/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 08:07:34 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[c++]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=117</guid>
		<description><![CDATA[For some time now, I&#8217;ve spent my free time working on an experimental Operating System called FreeNOS (Free Niek&#8217;s Operating System) and it&#8217;s about time I tell you something about it. FreeNOS was invented by a friend of mine: Niek Linnenbank and is an microkernel OS written in C++, purely for learning purposes. By far [...]]]></description>
			<content:encoded><![CDATA[<p>For some time now, I&#8217;ve spent my free time working on an experimental Operating System called FreeNOS (Free Niek&#8217;s Operating System) and it&#8217;s about time I tell you something about it.<br />
FreeNOS was invented by a friend of mine: <a href="http://www.nieklinnenbank.nl">Niek Linnenbank</a> and is an microkernel OS written in C++, purely for learning purposes. By far the most work on FreeNOS is done by Niek but there is also some work on my name: I&#8217;ve been working on a time server, a parser library and the new challenge ahead is writing my own filesystem (as has Niek done with his LinnFS).<br />
If you&#8217;re curious you can check out the code from <a href="http://code.google.com/p/freenos">Google Code</a> and read all about FreeNOS on it&#8217;s <a href="http://www.freenos.org">website</a>. It&#8217;s all very well documented (one of the main purposes of FreeNOS) and there is a developers manual on the way. I cannot emphasize enough that it&#8217;s possible for anyone with some programming experience to contribute to FreeNOS, regardless of what you want to do. So go on and explore!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/08/08/freenos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>mv ./job /dev/null</title>
		<link>http://blog.coenbijlsma.nl/2009/07/31/mv-job-devnull/</link>
		<comments>http://blog.coenbijlsma.nl/2009/07/31/mv-job-devnull/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 07:02:36 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Life&Cooking]]></category>
		<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=114</guid>
		<description><![CDATA[So this is a nice one. Just back from my holidays and a short week before starting my new job the CEO of the company calls me to tell me that I&#8217;m not needed anymore (anymore? I didn&#8217;t even work a single second, but whatever). That&#8217;s kind of a bummer but hey, I made a [...]]]></description>
			<content:encoded><![CDATA[<p>So this is a nice one. Just back from my holidays and a short week before starting my new job the CEO of the company calls me to tell me that I&#8217;m not needed anymore (any<strong>more</strong>? I didn&#8217;t even work a single second, but whatever). That&#8217;s kind of a bummer but hey, I made a backup plan and that&#8217;s what I&#8217;m going to execute right now.</p>
<p>And actually, I&#8217;m very excited about it. The thing is, next September I&#8217;m going to give the master <a href="http://www.bis.uu.nl">Biomedical Image Sciences</a> a try. Maybe as soon as next week, I&#8217;ll have an appointment with the programme coordinator and see how I can get started.</p>
<p>That also means that I&#8217;ve to look out for an additional job to earn myself some money to pay for the tuition fees so if any of you have any idea&#8217;s, you&#8217;re welcome <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/07/31/mv-job-devnull/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Holidays</title>
		<link>http://blog.coenbijlsma.nl/2009/07/25/holidays/</link>
		<comments>http://blog.coenbijlsma.nl/2009/07/25/holidays/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 09:28:10 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Life&Cooking]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=81</guid>
		<description><![CDATA[Well, I&#8217;ve been quiet for some time now and today I decided that it was time to write about something else than programming, for a change. For the last 3.5 weeks I&#8217;ve been traveling through Thailand and I thought it would be nice if I shared my experience a little with y&#8217;all so there we [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;ve been quiet for some time now and today I decided that it was time to write about something else than programming, for a change. For the last 3.5 weeks I&#8217;ve been traveling through Thailand and I thought it would be nice if I shared my experience a little with y&#8217;all so there we go:</p>
<div id="attachment_82" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0488.jpg"><img src="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0488-300x225.jpg" alt="Wat Phra Kaew, Bangkok" title="Wat Phra Kaew, Bangkok" width="300" height="225" class="size-medium wp-image-82" /></a><p class="wp-caption-text">Wat Phra Kaew, Bangkok</p></div>
<div id="attachment_86" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0572.jpg"><img src="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0572-300x225.jpg" alt="Panorama from Vertigo, Bangkok" title="Club Vertigo, Bangkok" width="300" height="225" class="size-medium wp-image-86" /></a><p class="wp-caption-text">Panorama from Vertigo, Bangkok</p></div>
<div id="attachment_93" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0609.jpg"><img src="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0609-300x225.jpg" alt="Waterfall at Erawan National Park" title="Waterfall ad Erawan National Park" width="300" height="225" class="size-medium wp-image-93" /></a><p class="wp-caption-text">Waterfall at Erawan National Park</p></div>
<div id="attachment_99" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0759.JPG"><img src="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0759-300x225.jpg" alt="Muay Thai matches in Chang Mai" title="Muay Thai matches in Chang Mai" width="300" height="225" class="size-medium wp-image-99" /></a><p class="wp-caption-text">Muay Thai matches in Chang Mai</p></div>
<div id="attachment_101" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0790.JPG"><img src="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0790-300x225.jpg" alt="Giant Panda in Chang Mai Zoo" title="Giant Panda in Chang Mai Zoo" width="300" height="225" class="size-medium wp-image-101" /></a><p class="wp-caption-text">Giant Panda in Chang Mai Zoo</p></div>
<div id="attachment_103" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0798.JPG"><img src="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0798-300x225.jpg" alt="Wat Mahathat, Chang Mai" title="Wat Mahathat, Chang Mai" width="300" height="225" class="size-medium wp-image-103" /></a><p class="wp-caption-text">Wat Mahathat, Chang Mai</p></div>
<div id="attachment_102" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0844.JPG"><img src="http://blog.coenbijlsma.nl/wp-content/uploads/2009/07/IMG_0844-300x225.jpg" alt="Idyllic view from our guesthouse in Koh Pangan" title="Idyllic view from our guesthouse in Koh Pangan" width="300" height="225" class="size-medium wp-image-102" /></a><p class="wp-caption-text">Idyllic view from our guesthouse in Koh Pangan</p></div>
<p>And that&#8217;s it. Completely for free for you to get jealous about.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/07/25/holidays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finish!</title>
		<link>http://blog.coenbijlsma.nl/2009/06/16/finish/</link>
		<comments>http://blog.coenbijlsma.nl/2009/06/16/finish/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 09:17:33 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=76</guid>
		<description><![CDATA[Yesterday I had to graduate. I had to do a presentation about the project I&#8217;ve been doing the last couple of months and after that it was time to defend myself. I had to answer a couple of questions about my thesis and about my project, but that all went well. The result of those [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I had to graduate. I had to do a presentation about the project I&#8217;ve been doing the last couple of months and after that it was time to defend myself. I had to answer a couple of questions about my thesis and about my project, but that all went well. The result of those last months will be visible on my diploma by a big fat 9 out of 10! I created two possible follow-up projects involving the Eclipse Modeling Framework: integrate my proof of concept code in the EMF and after that project it could be interesting to see to what extent the <a href="http://en.wikipedia.org/wiki/Naked_objects">Naked Objects Pattern</a> can be applied while working with the EMF. My code is, by the way, publicly available from <a href="http://code.google.com/u/coenbijlsma/">Google Code</a>. It needs a *lot* of cleanup but it&#8217;s there for anybody to grab and learn <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  And now: back to celebrating my holidays!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/06/16/finish/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Endings and beginnings</title>
		<link>http://blog.coenbijlsma.nl/2009/05/31/endings-and-beginnings/</link>
		<comments>http://blog.coenbijlsma.nl/2009/05/31/endings-and-beginnings/#comments</comments>
		<pubDate>Sun, 31 May 2009 17:32:01 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=70</guid>
		<description><![CDATA[As we all know, at a given moment in time, some things end as other things begin. That&#8217;s also currently happening over here at coen-HQ: I&#8217;m working on the finishing touch of my graduation project and I&#8217;m preparing for the life after that. That means that I&#8217;ve got to do some interviewing for jobs and [...]]]></description>
			<content:encoded><![CDATA[<p>As we all know, at a given moment in time, some things end as other things begin. That&#8217;s also currently happening over here at coen-HQ: I&#8217;m working on the finishing touch of my graduation project and I&#8217;m preparing for the life after that. That means that I&#8217;ve got to do some interviewing for jobs and I&#8217;m preparing my submission for the <a title="Master Software Engineering" href="http://www.studeren.uva.nl/ma-software-engineering/" target="_blank">Software Engineering</a> master at the <em>University van Amsterdam</em>. At this moment, I have no idea whatsoever what &#8211; or where, for that matter &#8211; my job will be but actually I don&#8217;t care (actually I <em>do</em> care that it&#8217;s a computer science job). The most important thing to look out for is the environment I&#8217;ll work in: the colleagues, the working conditions, the diversity of the job and the career opportunities I&#8217;ll have. If these are fine, I don&#8217;t care what or where my job will be. </p>
<p>As for my thesis: it&#8217;s finished and ready for delivery next Tuesday, June 2nd. On June 15th I have to defend my case and I think I&#8217;ll be fine. After that my last but very long holiday begins in which I&#8217;ll be backpacking in Thailand with two friends and I&#8217;ll make sure to post some nice pictures over here <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I must say, I learned a *lot* during the last five months. Not only about pure software development, but I also learned to take a little more distance from my own work and review it like it was someone else&#8217;s and it&#8217;s actually pretty difficult to not go native when reviewing, for example, my own thesis. I also thought about what kind of programmer I&#8217;d like to be the most. The answer is definitely a backend programmer. Another thing I&#8217;d like to do is teaching. I simply love the idea of trying to teach someone something and afterwards see the successful results. Maybe that&#8217;s a boy&#8217;s way of thinking just as much as it is with programming: you create a toy and it works and you are happy.</p>
<p>I&#8217;m curious what the next couple of months will bring me with regard to jobs and stuff but I think fate and I will handle those things fine. Up to the next milestone!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/05/31/endings-and-beginnings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lost in translation</title>
		<link>http://blog.coenbijlsma.nl/2009/04/07/lost-in-translation/</link>
		<comments>http://blog.coenbijlsma.nl/2009/04/07/lost-in-translation/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 17:35:37 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[class diagram]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=60</guid>
		<description><![CDATA[I&#8217;ve been planning to blog again for some time now, but every time I had some spare time I had nothing interesting to write about. That has changed. In my short experience in working through projects, I noticed that sometimes there are moments &#8216;in between&#8217;. You know, those moments between milestones or something. Well, I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been planning to blog again for some time now, but every time I had some spare time I had nothing interesting to write about. That has changed. In my short experience in working through projects, I noticed that sometimes there are moments &#8216;in between&#8217;. You know, those moments between milestones or something. Well, I&#8217;m in one right now, and it&#8217;s a biggie.</p>
<p>I sort of finished the backend of my model translation tool (It reads an Enterprise Architect Class Diagram [/buzzwordalert] ), and now it&#8217;s time for the client. The problem with that is that I always get bored when the interesting stuff is done. In this case, The Interesting Stuff is figuring out how the Class Diagram parts of UML fit together and how to translate that to usable interfaces so that it can be transformed into code. </p>
<p>Luckyly for me, another interesting part is coming up: I have to create an Eclipse plug-in that uses the backend and produce kick-ass quality Java code of it. And reverse engineering, ofcourse. Not that I&#8217;m willing to be a rival of any other tool like, say, for instance the Eclispe Modeling Framework. I just want to know how stuff like that is done and what problems are encountered while creating code for that purpose, and I secretly hope that I will be able to contribute to the EMF after my graduation internship because after reading only the beginning of the E<a title="EMF on Amazon" href="http://www.amazon.com/EMF-Eclipse-Modeling-Framework-2nd/dp/0321331885" target="_blank">clipse Modeling Framework</a> I&#8217;m very excited about it.</p>
<p>I also ordered a book on creating Eclipse plug-ins because I couldn&#8217;t find much of a tutorial so I&#8217;ll be reading a lot, the next couple of weeks. But until that time I am a little off my game here with translating models and all. Lost in translation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/04/07/lost-in-translation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Modeling and code generation</title>
		<link>http://blog.coenbijlsma.nl/2009/02/22/modeling-and-code-generation/</link>
		<comments>http://blog.coenbijlsma.nl/2009/02/22/modeling-and-code-generation/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 10:02:35 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[C-Sharp]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=54</guid>
		<description><![CDATA[At my graduation internship at Sogyo I am currently working on an interesting item: researching the currently available modeling and code generation tools, and see if there&#8217;s a way to provide integration between those. There probably are a lot of tools that can generate code, but I&#8217;m focusing on the Eclipse Modeling Framework, Visual Studio [...]]]></description>
			<content:encoded><![CDATA[<p>At my graduation internship at <a title="Sogyo" href="http://www.sogyo.nl" target="_blank">Sogyo</a> I am currently working on an interesting item: researching the currently available modeling and code generation tools, and see if there&#8217;s a way to provide integration between those. There probably are a lot of tools that can generate code, but I&#8217;m focusing on the Eclipse Modeling Framework, Visual Studio 2008 and Enterprise Architect. The reason I am doing this &#8216;research&#8217; is because I believe that modeling should have nothing to do with the programming language the software will be written in.</p>
<p>As it turns out so far, Visual Studio provides a Class Designer tool, but that&#8217;s not as extensive as I&#8217;d hoped. On the other hand there are the DSL Tools which enables me to create a Domain Specific Language that provides the necessary functionality. In fact, one could create a DSL that generates Java code &#8211; or whatever language, but that&#8217;s an obvious property of any DSL.<br />
The Eclipse Modeling Framework has way more functionality, but can &#8211; as far as I know right now &#8211; only generate Java code.<br />
The third tool, the Enterprise Architect, is an UML modeling tool that also provides very basic code generation. Unfortunately I must say that I&#8217;m not satisfied at all with the generated code by the Enterprise Architect, and even less satisfied with the plug-ins they provide for Eclipse and Visual Studio. In the generated Java code, enums and interfaces are apparently ignored; in C# code, the namespaces are not created and class methods are generated but getters and setters are neither recognized nor generated (this also goes for Java).</p>
<p>So I have decided that I&#8217;m going to write at least an Eclipse plug-in that reads the model from Enterprise Architect and creates decent hand-written-quality code for the domain classes. And given time, I&#8217;ll also create a Visual Studio plug-in that does the same. After that, the next step would be to extend these plug-ins with functionality to generate persistence and GUI code. Another thing is that it should be possible to alter the code after it&#8217;s been generated and send the changes back to the model. I&#8217;ll incorporate that as well in the first version of the plug-ins.</p>
<p>That leaves me with a lot of work todo, so I won&#8217;t get bored the next couple of months <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/02/22/modeling-and-code-generation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>php and ssha ldap passwords</title>
		<link>http://blog.coenbijlsma.nl/2009/01/17/php-and-ssha-ldap-passwords/</link>
		<comments>http://blog.coenbijlsma.nl/2009/01/17/php-and-ssha-ldap-passwords/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 18:22:56 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=50</guid>
		<description><![CDATA[Although the current semester is almost over, we&#8217;re still working very hard on our project (in Dutch), and today I finished a password reset function for users of the portal. The tricky thing for me is that the user passwords are stored in LDAP, so I had to figure out how to write to a [...]]]></description>
			<content:encoded><![CDATA[<p>Although the current semester is almost over, we&#8217;re still working very hard on our <a title="MyHunix Portal" href="http://doc.hunix.nl/projecten/7esemester/myhunix/start">project</a> (in Dutch), and today I finished a password reset function for users of the portal. The tricky thing for me is that the user passwords are stored in LDAP, so I had to figure out how to write to a LDAP database, and how to create a SSHA password hash in php.<br />
I found that there is very little documentation about the ldap functionality in php, let alone how to create a SSHA hash. There was, however, one post on php.net where I found half of my answer: http://nl.php.net/manual/en/function.sha1.php#52365 . The only thing I had to change was:<br />
<code><br />
// this<br />
$salt = pack("CCCC", mt_rand(), mt_rand(), mt_rand(), mt_rand());<br />
// into this<br />
$salt = pack("CCCCCCCC", mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand());<br />
</code><br />
So, the complete code now looks like this:<br />
<code><br />
mt_srand((double)microtime()*1000000);<br />
$salt = pack("CCCCCCCC", mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand());<br />
$sshaPassword = "{SSHA}" . base64_encode( pack("H*", sha1($newpasswd . $salt)) . $salt);<br />
// bind using the configged options<br />
$ldap-&gt;bind();<br />
$ldap-&gt;save($userDn , array("userPassword" =&gt; $sshaPassword));<br />
</code><br />
So finally, the password reset functionality works and users won&#8217;t have to worry if they&#8217;ve lost their password.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/01/17/php-and-ssha-ldap-passwords/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2009</title>
		<link>http://blog.coenbijlsma.nl/2009/01/03/2009/</link>
		<comments>http://blog.coenbijlsma.nl/2009/01/03/2009/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 10:31:28 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[c++]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=46</guid>
		<description><![CDATA[And there it is: the year 2009. Thing is, I don&#8217;t really have a clue as to how to write this particular post, but there are a few things that I want to mention because I&#8217;m really really really excited about them First of, I&#8217;m going to graduate this year, starting February 2nd. I plan [...]]]></description>
			<content:encoded><![CDATA[<p>And there it is: the year 2009.<br />
Thing is, I don&#8217;t really have a clue as to how to write this particular post, but there are a few things that I want to mention because I&#8217;m really really really excited about them <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
First of, I&#8217;m going to graduate this year, starting February 2nd. I plan to do that at <a title="Sogyo" href="http://www.sogyo.nl/" target="_blank">Sogyo</a>, and I&#8217;ve got a very cool assignment: I am going to do research after the available tools of code generation and <a title="Domain Specific Language" href="http://en.wikipedia.org/wiki/Domain-specific_programming_language" target="_blank">DSL</a>, and build proof of concept code in case the already available tools don&#8217;t suffice. Also, I think I will get my first Java certificate (SCJP).</p>
<p>Although these things all have a high nerd factor, I&#8217;ve a plan that can top that. In the summer holidays, I&#8217;ve decided to go to <a href="https://har2009.org/" target="_blank">Hacking At Random,</a> which will be in The Netherlands this year. I think that my friends and classmates (who also will be there) and I will have a *lot* of fun. As a matter of fact, I promise to show you some pictures afterwards.</p>
<p>While I&#8217;m thinking about it, my learning-by-cheating idea didn&#8217;t go as well as I thought: I didn&#8217;t finish that little project (but alas, that&#8217;s one of many). What did  come out of it is Sentry. The Sentry core is actually nothing more than a library loader, but is has some nice features. Each plug-in (or library) can provide a number of hookpoints, where other plug-in commands can hook onto. Nice thing about this is that you can create a completely event-driven application, and anyone is free to create their own plug-ins. At this moment, I&#8217;m using it to create an IRC bot that is kind of able to control what&#8217;s happening in a channel and also to give my c++ knowledge a boost <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  If you&#8217;re interested: you can take a quick look at my websvn subdomain, the repository is sentry_cpp, and it&#8217;s also possible to svn co it from the svn subdomain.</p>
<p>That&#8217;s all for now, happy 2009 y&#8217;all!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2009/01/03/2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>learning by cheating</title>
		<link>http://blog.coenbijlsma.nl/2008/10/29/learning-by-cheating/</link>
		<comments>http://blog.coenbijlsma.nl/2008/10/29/learning-by-cheating/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 23:31:48 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[cheating]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[trivia]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=43</guid>
		<description><![CDATA[A long time ago, when I still was in high school, I sometimes tried to cheat my way out of some classes (like French, for instance). Of course, after a while, I got reasonably good at it, and that&#8217;s basically how I finished the course. I became more and more bold in other courses too, [...]]]></description>
			<content:encoded><![CDATA[<p>A long time ago, when I still was in high school, I sometimes tried to cheat my way out of some classes (like French, for instance). Of course, after a while, I got reasonably good at it, and that&#8217;s basically how I finished the course. I became more and more bold in other courses too, and after a while I got caught ( that was inevitable, of course).</p>
<p>Some time after I finished the part of high school we call &#8216;brugklas&#8217;, I came across a teacher who, to my surprise, encouraged using cheating notes. As I soon would realise, the man ment for us to create cheating notes <em>before</em> the exam, and not use them during one. That way, he said, you learn to summarize the things you need to study for that exam, and you&#8217;ll remember it, too.</p>
<p>The man was right. So, now that&#8217;s all behind me, I can use this story to do some cheating, while pretending to learn from it as well <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The cheating is about a trivia channel on irc. I&#8217;m writing a bot in Java that can parse <a title="Irssi" href="http://www.irssi.org" target="_blank">irssi</a> logfiles, and is also able to learn from the questions the trivia bot asks. The things I&#8217;m hoping to learn from this: How to simulate a human being that answers the questions (that means, among other things: do not answer every question correctly, but also that is makes some sense), and what is the nicest, most efficient way to learn questions; how do I determine the correct way to answer, etc.</p>
<p>So: $learning_by_cheating++</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/10/29/learning-by-cheating/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Valgrind and it&#8217;s neighbours</title>
		<link>http://blog.coenbijlsma.nl/2008/10/12/valgrind-and-its-neighbours/</link>
		<comments>http://blog.coenbijlsma.nl/2008/10/12/valgrind-and-its-neighbours/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 20:15:54 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[valgrind]]></category>

		<guid isPermaLink="false">http://cbijlsma.homelinux.net/blog/?p=33</guid>
		<description><![CDATA[For some time now, I have been working om my messaging client Skaar. Last week I built a version that only can connect to an IRC-server. There&#8217;s still a lot of work to do, but it was time to test and debug my work done so far. A classmate told me to use valgrind to [...]]]></description>
			<content:encoded><![CDATA[<p>For some time now, I have been working om my messaging client Skaar. Last week I built a version that only can connect to an IRC-server. There&#8217;s still a lot of work to do, but it was time to test and debug my work done so far.</p>
<p>A classmate told me to use valgrind to test Skaar for memory leaks. Valgrind is a suite of tools for debugging and profiling programs, so that should work, and there I went:</p>
<p><code>valgrind --log-file=./valgrind.log --leak-check=full ./skaar</code></p>
<p>After shutting down, it turned out that Skaar had left something behind, and not that modest (43Kb) either. It&#8217;s actually not that simple to prevent memory leaks, I learned. The obvious cases seem to scream: <code>free(3)</code> or <code>delete</code> me, but the not so obvious cases keep their mouths perfectly shut..</p>
<p><strong>Obvious case:</strong><br />
<code>char* line = (char*)malloc(513);<br />
memset(line, 0, 513);<br />
strcpy(line, "PRIVMSG #mychannel :foo\r\n");<br />
...<br />
free(line);<br />
</code><br />
<strong>Not so obvious case:</strong><br />
<code>// in RFC1459.cpp<br />
JoinMessage* joinmessage = new JoinMessage(this, line);<br />
return (AbstractMessage*)joinmessage;</code><br />
<code><br />
// somewhat later in Skaar.cpp<br />
AbstractMessage* message = protocol-&gt;translateIncoming(rawmsg);<br />
...<br />
delete message;<br />
</code></p>
<p>I&#8217;m wondering if this is the right way to end the <code>AbstractMessage*</code>&#8216;s life, by the way. Who&#8217;s responsibility is it to get rid of the message? I could go with this solution, that says: &#8220;Here is your object, have fun&#8221;. I could also create a function in the protocol that destroys the message, something like <code>RFC1459::destroyMessage(AbstractMessage* message)</code>, that says &#8220;Here is your object, but you have to let me take care of it&#8217;s end. Actually, I have no clue which one is the best choice, if there <em>is</em> a best choice here..</p>
<p>But, back to business: all I have to do now is just test every possibility to see if there are any leaks. Or I could just watch it when I write code, which also sounds nice.<br />
Another tool that I&#8217;ve come to value is gdb, The GNU Project Debugger. This tool allows you to see what happens &#8216;inside&#8217; the program while it executes. And yes, I stole that line from gnu.org <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
To start using gdb is not very hard, just type <code>gdb yourprogram</code>, and that&#8217;s that. To actually start executing you program, type <code>run</code> once gdb has started.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/10/12/valgrind-and-its-neighbours/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The switch</title>
		<link>http://blog.coenbijlsma.nl/2008/09/27/the-switch/</link>
		<comments>http://blog.coenbijlsma.nl/2008/09/27/the-switch/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 12:35:49 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[School]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cbijlsma.homelinux.net/blog/?p=31</guid>
		<description><![CDATA[A week or so ago, Guy and I decided to switch back from the minor we were doing at Utrecht University. As it turned out, the supposed level of math was so different than my own level, that I couldn&#8217;t keep up with it, so we switched back to Hogeschool Utrecht. At first I was [...]]]></description>
			<content:encoded><![CDATA[<p>A week or so ago, Guy and I decided to switch back from the minor we were doing at Utrecht University. As it turned out, the supposed level of math was so different than my own level, that I couldn&#8217;t keep up with it, so we switched back to Hogeschool Utrecht.</p>
<p>At first I was disappointed that we had to switch back, but now that I&#8217;m there, I feel home again. So, instead of our previous plans, Mattijs, Guy and I are going to try and do some research, and the results will be implemented in a now-not-so-ready-but-workable my.hunix.nl.</p>
<p>The idea is to find out (for both students and lecturers) what the current problems are while doing project-oriented assignments. For example, students have not one, but multiple places where they have to leave their work logs, and on top of that no decent templates, because every lecturer has his or her own definition of them, so student have to meet different demands, etc.<br />
After we&#8217;ve determined a solid set of problems and solutions, we will create a portal for both parties, where they have a nice and easy overview of what they&#8217;re actually doing at that point.</p>
<p>Nice thing about this for me is that I&#8217;ve time to assist at the preHBO again, because I now don&#8217;t have to study until midnight and later to keep up with the courses <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/09/27/the-switch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oops</title>
		<link>http://blog.coenbijlsma.nl/2008/08/20/oops/</link>
		<comments>http://blog.coenbijlsma.nl/2008/08/20/oops/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 10:57:43 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Life&Cooking]]></category>
		<category><![CDATA[holiday]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=18</guid>
		<description><![CDATA[After we spent out first holiday-week in Portugal, we decided to spend the second week in Eersel, The Netherlands. I must tell you, it&#8217;s a relief being here. And not just for the quiet environment (there&#8217;s lots of that over here), but also in case you forget to bring something, because you can go back [...]]]></description>
			<content:encoded><![CDATA[<p>After we spent out first holiday-week in <a title="Lisboa Camping" href="http://www.lisboacamping.com/main.php?lg=2" target="_blank">Portugal</a>, we decided to spend the second week in Eersel, The Netherlands. I must tell you, it&#8217;s a relief being here. And not just for the quiet environment (there&#8217;s lots of that over here), but also in case you forget to bring something, because you can go back and grab it. Maybe, if you already know me, you know that I tend to forget stuff. So to keep the legend going, I also forgot something this time (I don&#8217;t know exactly what it was again, but it had something to do with sleeping at a decent temperature).</p>
<p>You guys have no idea how lucky I was this time, because my girlfriend also brought stuff to sleep nice and warm, so I didn&#8217;t have to go back <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The only thing I have to do next time is prepare (as in creating a list of things that I have to bring, and actually take them with me).</p>
<p>That&#8217;s all for now folks, see you next time!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/08/20/oops/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finally</title>
		<link>http://blog.coenbijlsma.nl/2008/08/04/finally/</link>
		<comments>http://blog.coenbijlsma.nl/2008/08/04/finally/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 09:19:02 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Life&Cooking]]></category>
		<category><![CDATA[School]]></category>
		<category><![CDATA[holiday]]></category>
		<category><![CDATA[master]]></category>
		<category><![CDATA[minor]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=15</guid>
		<description><![CDATA[Hi y&#8217;all, today I decided that I have been &#8216;offline&#8217; long enough, and that I must write a final post before I leave for my holidays: so here it is. Actually, I have *a lot* to tell, but I&#8217;ll stick with the 2 weeks to come, for the sake of my peace of mind and [...]]]></description>
			<content:encoded><![CDATA[<p>Hi y&#8217;all,</p>
<p>today I decided that I have been &#8216;offline&#8217; long enough, and that I must write a final post before I leave for my holidays: so here it is.<br />
Actually, I have *a lot* to tell, but I&#8217;ll stick with the 2 weeks to come, for the sake of my peace of mind and stuff.</p>
<p>Tomorrow at 22.00 local time, we will arrive at Lissabon Airport, from where we will be driven to our bungalow. This year, we (as in my girlfriend and I) decided to go on holidays together with another couple. The first week we&#8217;ll spend together, and the second week we will split ways and see each other again at the airport to fly back home.</p>
<p>I think my girlfriend takes a camera with her, so there will be lots and lots of pictures taken, including nice civil looking ones with me in it. As I do not want to bear that burdon alone, I will share some of that pictures with you after I get back, so be prepared!</p>
<p>After we get back from our holidays, the fun begins again at school: I am going to do a minor at the University, as I told before. The downside of that is that once again, I had to change the composition of the courses because some idiot over there found it neccessary to switch some of the courses.<br />
So my actual, final list of courses (at this moment) is as follows:</p>
<ul>
<li><a title="Graphics @ UU" href="http://www.cs.uu.nl/docs/vakken/gr/" target="_blank">Graphics</a></li>
<li><a title="Math @ UU (in Dutch)" href="http://www.cs.uu.nl/docs/vakken/wis/" target="_blank">Concrete math</a></li>
<li><a title="HCI @ UU" href="http://www.cs.uu.nl/docs/vakken/hci/" target="_blank">Human Computer Interaction</a></li>
<li><a title="LV @ UU (also in Dutch)" href="http://www.cs.uu.nl/docs/vakken/lv/" target="_blank">Logic and Set Theory</a></li>
</ul>
<p>I really look forward to learning all that stuff, because it brings me up to speed for the <a title="BIS @ UU" href="http://www.bis.uu.nl/" target="_blank">master</a> I will take after I graduated for my BICT (some kind of BSc).<br />
So folks, that&#8217;s it for now, I&#8217;m out until August 21th. Good luck and farewell until then!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/08/04/finally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minor</title>
		<link>http://blog.coenbijlsma.nl/2008/04/20/minor/</link>
		<comments>http://blog.coenbijlsma.nl/2008/04/20/minor/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 14:48:55 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=13</guid>
		<description><![CDATA[Actually, this is not at all about a minor thing. And on the other hand, it is. I&#8217;m talking about the 7th semester course I&#8217;m going to do at Utrecht University at the Department of Information and Computer Sciences: &#8220;Minor Informatica voor HU&#8221;. This is a minor designed especially for IT students at Hogeschool Utrecht, [...]]]></description>
			<content:encoded><![CDATA[<p>Actually, this is not at all about a minor thing. And on the other hand, it is. I&#8217;m talking about the 7th semester course I&#8217;m going to do at Utrecht University at the Department of Information and Computer Sciences: &#8220;Minor Informatica voor HU&#8221;. This is a minor designed especially for IT students at Hogeschool Utrecht, and I happen to be such a student.</p>
<p>After a while at the HULK I think I have learned a lot about the Linux OS and its inner workings. I found out how the <a title="Linux Standard Base" href="http://en.wikipedia.org/wiki/Linux_Standard_Base" target="_blank">Linux Standard Base</a> is organised, how C, C++, Perl, Python, PHP and bash programs (and some more) all work together to build a fine Linux based system. But in the time to come, I would learn more about working with Linux, the administrative part. That doesn&#8217;t interest me as much as writing some cool C programs, so I have decided to expand my knowledge in Computer Science in another way.</p>
<p>Out of eight courses, I choose four of &#8216;em:<br />
- Concrete math<br />
- Distributed programming<br />
- Algorithm (design)<br />
- Logic and Set Theory</p>
<p>I&#8217;m very excited about this course, and even more because two of my classmates are also taking this minor, so we learn all this coolness together! Tomorrow, I&#8217;m going to apply for the minor, so as of September this year I will be busy doing whatever it is these courses provide me with <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/04/20/minor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HULK all the way</title>
		<link>http://blog.coenbijlsma.nl/2008/04/04/hulk-all-the-way/</link>
		<comments>http://blog.coenbijlsma.nl/2008/04/04/hulk-all-the-way/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 14:43:14 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/?p=12</guid>
		<description><![CDATA[Busy, busy, busy was the theme of my daily life the last few weeks. And actually, I think that it will be like that until school is finished in the summer break. But, there is some news (and that&#8217;s why I am writing this post. Surprise, huh?). The logbook I wrote about is finally ready [...]]]></description>
			<content:encoded><![CDATA[<p><em>Busy, busy, busy</em> was the theme of my daily life the last few weeks. And actually, I think that it will be like that until school is finished in the summer break. But, there is some news (and that&#8217;s why I am writing this post. Surprise, huh?). The logbook I <a title="logbook post" href="http://blog.coenbijlsma.nl/2008/02/16/about-how-school-can-be-enjoyed-again/" target="_self">wrote about</a> is finally ready for it&#8217;s first use, and will get some really cool features in the near future, like Ldap authentication and after that maybe also authorization.</p>
<p>The HUbuntu project started last week (actually, it hasn&#8217;t gotten off it&#8217;s feet for a few weeks), and at the moment we are thinking about how to implement easy access to our own repository. In this repository students will be able to find all the software they need for the courses given at the HU, and we want to make that process really easy for them. We already came up with the principal of meta-packages, and today I did some research in that area. The idea is to create a meta-package for each course and determine the right dependencies for that course. I think that a lot of work has to be done, but the general idea is finished. Yay, isn&#8217;t that great?</p>
<p>I also made some progress with my <a title="or-mapping" href="http://blog.coenbijlsma.nl/2007/12/29/one-step-at-a-time/" target="_self">or-mapping</a>. For mattijs&#8217; peace I will post a link to the Object class, just as he asked me to: <a title="Object" href="http://cbijlsma.dyndns.org/svn/orm/orm/application/Object.php" target="_blank">link</a>. It is password-protected, but if you ask nicely, I will provide you with an account. If you create an Object containing an array of Objects in it, the intermediate tables that are needed are now automagically created, but I still have to build that for arrays of primitive PHP types.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/04/04/hulk-all-the-way/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>About how school can be enjoyed again</title>
		<link>http://blog.coenbijlsma.nl/2008/02/16/about-how-school-can-be-enjoyed-again/</link>
		<comments>http://blog.coenbijlsma.nl/2008/02/16/about-how-school-can-be-enjoyed-again/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 16:46:23 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[hulk]]></category>
		<category><![CDATA[School]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/2008/02/16/about-how-school-can-be-enjoyed-again/</guid>
		<description><![CDATA[Finally I have some time to write another post to you, my dear readers! After starting up the HULK for about a fortnight, we started to bring up ideas for projects (so if anyone has an idea&#8230;). Actually, while I&#8217;m writing this I realize that I haven&#8217;t told you anything yet about the HULK (hmm.. [...]]]></description>
			<content:encoded><![CDATA[<p>Finally I have some time to write another post to you, my dear readers!</p>
<p>After starting up the <a href="http://www.hunix.nl" title="HULK" target="_blank">HULK</a> for about a fortnight, we started to bring up ideas for projects (so if anyone has an idea&#8230;). Actually, while I&#8217;m writing this I realize that I haven&#8217;t told you anything yet about the HULK (hmm.. weird).<br />
Well,  HULK stands for Hogeschool Utrecht Linux Kennisgroep, and consists of a few classmates and yours truly, who try to give Linux a shot in our university, the Hogeschool of Utrecht. The website is in Dutch, so if you want to follow up on it, you have to be able to read it.</p>
<p>We thought about some really cool projects like building our own Ubuntu distribution, HUbuntu , setting up Linux on mobile devices, teaching Unix, and also some smaller projects like building a logbook to keep track of what we&#8217;re doing and to provide student services (SSH access, web servers, database servers, etc.). Apart from that, I&#8217;ve started learning c(++), and for practice I&#8217;m building an IRC client, called skaar.</p>
<p>Next week, together with Mattijs, I&#8217;m starting on the logbook which will be built in PHP, so that we can start logging quickly.</p>
<p>Keeping you posted!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/02/16/about-how-school-can-be-enjoyed-again/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>My own playground</title>
		<link>http://blog.coenbijlsma.nl/2008/01/23/my-own-playground/</link>
		<comments>http://blog.coenbijlsma.nl/2008/01/23/my-own-playground/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 17:21:00 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[blue ray]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[notebook]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/2008/01/23/my-own-playground/</guid>
		<description><![CDATA[Today I bought some new stuff to play with: a new notebook (Acer Aspite 5630; at least, that&#8217;s what it says). My old one (HP Pavilion dv1000) has served it&#8217;s time, and it is time for it to move on to the museum. I also bought a brand new blue ray dvd player for only [...]]]></description>
			<content:encoded><![CDATA[<p>Today I bought some new stuff to play with:</p>
<p>a new notebook (Acer Aspite 5630; at least, that&#8217;s what it says). My old one (HP Pavilion dv1000)  has served it&#8217;s time, and it is time for it to move on to the museum.</p>
<p>I also bought a brand new blue ray dvd player for only 160 euro, which is really not expensive <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The only thing I have to do now, is compile a custom kernel  because the current kernel I use (2.6.22-14-generic) does not yet have built-in support for UDF2.5, which is the file system for blue ray dvd&#8217;s. After that, we&#8217;ll see if it works as I want it to.</p>
<p>For now, that&#8217;s the latest news about my cool stuff. I will be back!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2008/01/23/my-own-playground/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>One step at a time</title>
		<link>http://blog.coenbijlsma.nl/2007/12/29/one-step-at-a-time/</link>
		<comments>http://blog.coenbijlsma.nl/2007/12/29/one-step-at-a-time/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 12:08:46 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[or mapping]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/2007/12/29/one-step-at-a-time/</guid>
		<description><![CDATA[Some time ago I wrote about some great plans for writing an or-mapping. Well, today, I actually made some progress! Before I started to write on this code, I divided it in three parts: Creating Objects Updating Objects Deleting Objects I finished a test version of the first part today. Basically, this is how it [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I wrote about some <a target="_blank" href="http://blog.coenbijlsma.nl/2007/12/18/great-plans/" title="Great Plans :)">great plans</a> for writing an <abbr title="Object Relational mapping"></abbr>or-mapping. Well, today, I actually made some progress!</p>
<p>Before I started to write on this code, I divided it in three parts:</p>
<ol>
<li>Creating Objects</li>
<li>Updating Objects</li>
<li>Deleting Objects</li>
</ol>
<p>I finished a test version of the first part today. Basically, this is how it works: There is a class <code>Object</code> that should be extended by every class that has to be in a database. If you create a class extending this one, it will also be created in the database (if it doesn&#8217;t exist yet) as a table. For example, see this class:</p>
<pre><code> 

/**
 * foo
 * bar
 * @table_name=__TEST__
 *
 */
class Test extends Object {    </code></pre>
<pre><code>     </code><code>/**
     * @nullable = false
     */
    private $firstname; 

    private $lastname; 

    /**
    * @type = string(12)
    * @nullable = false
    */
    private $dateofbirth; 

    private $city; 

    function __construct() {
       parent::__construct();
   } 

    public function getFirstName(){
   	return $this-&gt;firstname;
   } 

    public function setFirstname($firstname){
   	$this-&gt;firstname = $firstname;
   } 

    public function getLastname(){
   	return $this-&gt;lastname;
   } 

    public function setLastname($lastname){
   	$this-&gt;lastname = $lastname;
   } 

    public function getDateofbirth(){
   	return $this-&gt;dateofbirth;
   } 

    public function setDateofbirth($dob){
   	$this-&gt;dateofbirth = $dob;
   } 

    public function getCity(){
   	return $this-&gt;city;
   } 

    public function setCity($city){
   	$this-&gt;city = $city;
   }
}
</code></pre>
<p>Will result in this table:<br />
<a target="_blank" href="http://blog.coenbijlsma.nl/tempimg/screenie.jpg"><img align="left" width="500" src="http://blog.coenbijlsma.nl/tempimg/screenie.jpg" alt="table screenie" height="127" /></a></p>
<pre>
</pre>
<p>Pretty cool, huh? I still have to do some work, but the base is there. As you can see, you can also use some kind of annotations to set the information for the table and the columns in the database, but there are also default settings if they are omitted.<br />
Enough for today, I&#8217;m going to celebrate my weekend and &#8220;Oud &amp; nieuw&#8221;, as we call New Year&#8217;s Eve in Holland <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Soon more about this!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2007/12/29/one-step-at-a-time/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Great plans</title>
		<link>http://blog.coenbijlsma.nl/2007/12/18/great-plans/</link>
		<comments>http://blog.coenbijlsma.nl/2007/12/18/great-plans/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 10:01:31 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[EJB]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/2007/12/18/great-plans/</guid>
		<description><![CDATA[In the 2nd year of my study at the HU we learned about J2EE, in particular EJB. Happy with the general idea of never writing another line of SQL, we started doing our school projects with EJB. However it&#8217;s true that you don&#8217;t write SQL, there is EJB-QL, which looks a darn lot like SQL. [...]]]></description>
			<content:encoded><![CDATA[<p>In the 2nd year of my study at the <a href="http://www.hu.nl/" title="Hogeschool Utrecht">HU</a> we learned about J2EE, in particular <a href="http://java.sun.com/products/ejb/" title="Enterprise Java Beans">EJB</a>. Happy with the general idea of never writing another line of <abbr title="Structured Query Language">SQL</abbr>, we started doing our school projects with <abbr title="Enterprise Java Beans">EJB</abbr>. However it&#8217;s true that you don&#8217;t write SQL, there is EJB-QL, which looks a darn lot like SQL.<br />
While I like the concept, I wonder if Java is the right language to use. I can&#8217;t help thinking about all the layers my poor code has to go through, and how can that ever be fast? Anyway, according to <a href="http://shootout.alioth.debian.org/" title="Computer Language Benchmarks">this</a> test, Java is way faster than PHP, which was originally intended for the web (<a href="http://en.wikipedia.org/wiki/Comparison_of_programming_languages" title="Wikipedia">Wikipedia</a> also has a nice comparison about this).</p>
<p>Strangely enough, at that time there was no framework or <a href="http://en.wikipedia.org/wiki/Abstraction_layer" title="Wikipedia Abstraction Layer">abstraction layer</a> available for PHP, so I started building one myself. The idea was for it to work like <abbr title="Enterprise Java Beans">EJB</abbr>, and the result was satisfactory. Then doom hit me, because I lost all that code <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  So now I&#8217;m going to start all over again, with a slightly different angle: I am going to write a framework that communicates with the <a href="http://framework.zend.com/" title="Zend Framework">Zend Framework</a>, but with a little extra: the Zend Framework does not provide creation and automatic querying for your objects in the database, and that&#8217;s what will be the extra in my framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2007/12/18/great-plans/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Post number one</title>
		<link>http://blog.coenbijlsma.nl/2007/12/17/post-number-one/</link>
		<comments>http://blog.coenbijlsma.nl/2007/12/17/post-number-one/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 14:19:47 +0000</pubDate>
		<dc:creator>coen</dc:creator>
				<category><![CDATA[Life&Cooking]]></category>
		<category><![CDATA[first]]></category>
		<category><![CDATA[startpost]]></category>

		<guid isPermaLink="false">http://blog.coenbijlsma.nl/2007/12/17/post-number-one/</guid>
		<description><![CDATA[Some time ago I was thinking about writing down my daily and programming experiences on some kind of web-log. And there I am, writing my first blog entry. Problem is however, I tried this more than once, and it took me a really short while to stop again. I hope this time lasts way longer, [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I was thinking about writing down my daily and programming experiences on some kind of web-log. And there I am, writing my first blog entry. Problem is however, I tried this more than once, and it took me a really short while to stop again.  I hope this time lasts way longer, because I also plan to use it as some kind of archive for myself (diary sounds silly, right?)<br />
So, in good faith I say &#8220;good luck to myself&#8221; <img src='http://blog.coenbijlsma.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.coenbijlsma.nl/2007/12/17/post-number-one/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
