<?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>XprsYrslf &#187; Coding &#38; Web Design</title>
	<atom:link href="http://xprsyrslf.be/feed/" rel="self" type="application/rss+xml" />
	<link>http://xprsyrslf.be</link>
	<description>by Jeroen Op &#039;t Eynde</description>
	<lastBuildDate>Fri, 09 Apr 2010 03:42:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A new kind of content management system</title>
		<link>http://xprsyrslf.be/2010/04/09/a-new-kind-of-content-management-system/</link>
		<comments>http://xprsyrslf.be/2010/04/09/a-new-kind-of-content-management-system/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 03:42:04 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web Technology]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=552</guid>
		<description><![CDATA[I've been thinking about an easy way to build an AJAX driven website,  I don't want to build a website that only runs when you have javascript enabled and I don't want to get stuck to a single way of making the content visible. This lead me to the idea of a new or another way of content managing. It may or may not already exist but here is my attempt to build a Content Management System that is not only browser independent and platform independent but also application independent. The output will be structured fully in XML so it can be read by any language.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about an easy way to build an AJAX driven website,  I don&#8217;t want to build a website that only runs when you have javascript enabled and I don&#8217;t want to get stuck to a single way of making the content visible. This lead me to the idea of a new or another way of content managing. It may or may not already exist but here is my attempt to build a Content Management System that is not only browser independent and platform independent but also application independent. The output will be structured fully in XML so it can be read by any language.</p>
<p>If this CMS will ever be produced, then it will probably be written in PHP with MySQL as a database back end.  All of this is a rough draft and I can&#8217;t promise any idea written here will ever be put in practice but we&#8217;ll see how fare we can get?! Here we go&#8230;</p>
<h3>Basics</h3>
<p>The basic structure goes like this: a Widget gives XML, a Panel contains one or more widgets, a Page is a set of Panels.</p>
<p>Widget -&gt; Panel -&gt; Page</p>
<h3>Widgets</h3>
<p>Widget gives information based on the given options. Each widget has its own format of output.<br />
Widgets produce XML code based on there content, it is possible to read XML code with any type of application.</p>
<p>See following examples:</p>
<p>News widget</p>
<ul>
<li>WidgetID</li>
<li>News item:
<ul>
<li>ItemID</li>
<li>Title</li>
<li>Text (without HTML)</li>
<li>HTML</li>
<li>Published datetime</li>
<li>Publisher name</li>
<li>Publisher ID</li>
<li>Category IDs</li>
</ul>
</li>
</ul>
<p>Category widget</p>
<ul>
<li>WidgetID</li>
<li> Category item:
<ul>
<li>ItemID</li>
<li>WidgetID</li>
<li>Title</li>
</ul>
</li>
</ul>
<p>Content widget</p>
<ul>
<li>WidgetID</li>
<li>Content item:
<ul>
<li>ItemID</li>
<li>Title</li>
<li>Text (without HTML)</li>
<li>HTML</li>
<li>Published datetime</li>
<li>Publisher name</li>
<li>Publisher ID</li>
</ul>
</li>
</ul>
<p>Comment widget</p>
<ul>
<li>WidgetID</li>
<li>Comment item:
<ul>
<li>WidgetID</li>
<li>ItemID</li>
<li>Name</li>
<li>Email</li>
<li>Text (without HTML)</li>
<li>HTML</li>
<li>Website</li>
</ul>
</li>
</ul>
<p>Menu widget</p>
<ul>
<li>WidgetID</li>
<li>Generates menus from the different pages</li>
<li>Oriented for web applications</li>
</ul>
<h3>Panels</h3>
<p>Panels contain one or more widgets. Panels also produce XML code, possible to read XML code with any type of application.</p>
<p>Sidebar panel:</p>
<ul>
<li>PanelID</li>
<li>Search box widget</li>
<li>Category widget for news (lists all categories of the news widget)</li>
</ul>
<p>News panel:</p>
<ul>
<li>PanelID</li>
<li>News widget (lists latest news)</li>
</ul>
<p>News item panel:</p>
<ul>
<li>PanelID</li>
<li>News widget (displays single news item)</li>
<li>Comment widget</li>
</ul>
<p>Menu panel:</p>
<ul>
<li>PanelID</li>
<li>Menu widget</li>
</ul>
<h3>Page</h3>
<p>A page is a set of Panels. Front end reads Page XML, implements the panels as fit. Pages are mainly oriented for web applications.</p>
<p>News page:</p>
<ul>
<li>PageID</li>
<li>News panel</li>
<li>Sidebar panel</li>
<li>Menu panel</li>
</ul>
<p>Pages:</p>
<ul>
<li>PageID (unique)</li>
<li>Page related options</li>
</ul>
<p>Page panels:  (see news page)</p>
<li>
<ul>
<li>PageID (not unique)</li>
<li>PanelID</li>
</ul>
<p>If anybody understands what I&#8217;m writing here (and maybe thinks it exists), hit the &#8216;Submit Comment&#8217; button.</p>
<ul></ul>
</li>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2010/04/09/a-new-kind-of-content-management-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jhdeput.be redesign</title>
		<link>http://xprsyrslf.be/2010/03/19/jhdeput-be-redesign/</link>
		<comments>http://xprsyrslf.be/2010/03/19/jhdeput-be-redesign/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 12:40:23 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=536</guid>
		<description><![CDATA[
Almost half a year ago I&#8217;ve done a face lift for the website of &#8216;Jeugdhuis de PUT&#8217;. It is a youth organization for youth and by youth. I work there as a volunteer since 2006 and I became board member in 2009. This website is again in dutch because its target group is localized in [...]]]></description>
			<content:encoded><![CDATA[<p><a style="background-color: white;" href="http://jhdeput.be" rel="external"><img class="alignright size-medium wp-image-537" title="Logo JH de PUT" src="http://xprsyrslf.be/wordpress/wp-content/uploads/2010/03/logo_put-name-300x97.png" alt="Logo JH de PUT" width="300" height="97" /></a></p>
<p>Almost half a year ago I&#8217;ve done a face lift for the <a href="http://jhdeput.be/">website of &#8216;Jeugdhuis de PUT&#8217;.</a> It is a youth organization for youth and by youth. I work there as a volunteer since 2006 and I became board member in 2009. This website is again in dutch because its target group is localized in that language area.</p>
<p>The design is build up with only 3 images: background image, header/menu image and rounded corners of the dropdown. If CSS3 would be supported in all browsers, it would take only 2 images. The dropdowns are realized with <a href="http://jquery.com/">jQuery</a> and the video&#8217;s page runs embed player of YouTube. On the frontpage is something called a Live Feed; it gives you all the posts made to the website. In &#8216;Kalender&#8217; you get the upcoming activities. The website currently contains more information than ever before: the vision, the rules, information about the active volunteers and the prices. A great amount of work went into the photo gallery, it currently holds more than 1000 pictures.</p>
<p>Also the back-end got an upgrade, I&#8217;ve switched from <a href="http://www.cmsmadesimple.org/">CMS Made Simple</a> to <a href="http://wordpress.org/">Wordpress</a>. It uses some very nice plugins, some of them also used by the blog you are reading now. To sum up: the standard <a href="http://akismet.com/">Akismet</a> for stopping spam, <a href="http://www.rajiv.com/blog/2008/02/10/blogroll-links/">Blogroll-links</a> plugin for the Links page, <a href="http://web-argument.com/google-map-shortcode-version-11/">Google Map Shortcode</a>, <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/">Google XML Sitemaps</a>, my own <a href="http://xprsyrslf.be/2009/08/22/contactform-plugin-for-wordpress/">Contactform Plugin</a> and the awesome <a href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/">NextGEN Gallery</a> with the <a href="http://stimuli.ca/lightbox/">Lightbox</a> plugin.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2010/03/19/jhdeput-be-redesign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plakzuilen.be has lift off!</title>
		<link>http://xprsyrslf.be/2010/03/18/plakzuilen-be-has-lift-off/</link>
		<comments>http://xprsyrslf.be/2010/03/18/plakzuilen-be-has-lift-off/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 22:51:10 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=525</guid>
		<description><![CDATA[
Plakzuilen.be, the most recent project I&#8217;ve been working on. This is a website in dutch for the Flemish area and in the future maybe for the Netherlands. The tool is targeted at the Belgian youth whom tries to promote their gigs via publicity columns or simply &#8216;Plakzuilen&#8217; in dutch. There seems to exist no exact [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://plakzuilen.be/"><img class="wp-image-526 aligncenter" title="Logo Plakzuilen.be" src="http://xprsyrslf.be/wordpress/wp-content/uploads/2010/03/logo1_plakzuilen.png" alt="" width="100%" /></a></p>
<p><a href="http://plakzuilen.be">Plakzuilen.be</a>, the most recent project I&#8217;ve been working on. This is a website in dutch for the Flemish area and in the future maybe for the Netherlands. The tool is targeted at the Belgian youth whom tries to promote their gigs via publicity columns or simply &#8216;Plakzuilen&#8217; in dutch. There seems to exist no exact translation on the word so if anyone can help me out, I would appreciate it. This website should form an overview between the many different regulations and widely spread locations.</p>
<p>It utilizes the <a href="http://www.mediawiki.org/">MediaWiki</a> software from the Wikimedia Foundation. This makes it possible to build a nice community of youth, youth organizations and municipalities working together on a single project. A wiki page is simple to create, easy to learn and the result gives a nice overview of all the information. For my Flemish readers, just check the page on <a href="http://plakzuilen.be/wiki/Help:Bewerken">how to create and edit a page</a>.</p>
<p>In the short period that the website is online, a lot of people have asked me how I came to the idea. Well, the youth in Flanders has never been more active then now. They organize parties and concerts every weekend and every club is full. In their promotional tour, these young people do their best to be noticed between the mayor clubs with professional promotors. In many cases, there is abundant use of the publicity columns, publicity boards and in some cases also on houses, shacks and electricity cabins. The latter are usually illegal. An Internet search for publicity columns had very little result. If there is anything it is an ambiguous explained place with reduced or no rules.</p>
<p>A wiki is an excellent way to collect the various locations and regulations and make them available to the public. Just like the famous Wikipedia, Plakzuilen.be is open for everyone (municipality workers, promotion teams, youth centers ,&#8230;). Anyone can add locations and regulations and adapt the information at will.</p>
<p>Before I forget, Plakzuilen.be has also linked into the various available networks online. Check us out at <a href="http://twitter.com/Plakzuilen">Twitter</a>, <a href="http://www.facebook.com/pages/Plakzuilenbe/343362797457">Facebook</a> and <a href="http://nl.netlog.com/groups/plakzuilen">Netlog</a>. Also Plakzuilen.be is entering at a contest for Youthwork site of the Year 2010, you can <a href="http://www.jeugdwerknet.be/acties/jeugdwerksite/deelnemers/jws10-httpplakzuilenbe">vote here</a>. This website has been made possible with hosting and support from <a href="http://jnet.be/">Jeugdwerknet.be</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2010/03/18/plakzuilen-be-has-lift-off/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to: Cheap Professional Hosting</title>
		<link>http://xprsyrslf.be/2009/11/26/how-to-cheap-professional-hosting/</link>
		<comments>http://xprsyrslf.be/2009/11/26/how-to-cheap-professional-hosting/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 06:32:32 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Hosting & Domain]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=502</guid>
		<description><![CDATA[As a student, I'm always searching for ways to reach my goal as cheap as possible. Today I needed to set up a hosting for a project I'm working on. The hosting needs to be reached with a top-level domain and it will need an e-mail address under the same top-level domain. These things are important to look legitimate to the visitor.]]></description>
			<content:encoded><![CDATA[<p><a href="https://www.zoneedit.com/"><img class="alignright" src="https://www.zoneedit.com/img/zoneeditpower.gif" alt="" width="88" height="31" /></a>As a student, I&#8217;m always searching for ways to reach my goal as cheap as possible. Today I needed to set up a hosting for a project I&#8217;m working on. The hosting needs to be reached with a top-level domain and it will need an e-mail address under the same top-level domain. These things are important to look legitimate to the visitor.</p>
<p>Let&#8217;s get started. First we&#8217;ll need a domain name of course. You can find them at <a href="http://www.google.com/search?q=domain+name">several places</a>. Don&#8217;t buy any hosting at all, just make sure you can change the name servers of the domain. I can help you to get a cheap domain name, please contact me personally for more information.</p>
<p>Next part is to create an account on <a href="http://zoneedit.com">ZoneEdit.com</a>. ZoneEdit is a free DNS service and domain manager. At first <a href="http://www.zoneedit.com/signup.html">Signup</a>, you can choose for a free trial of  5 zones(=5 domains). I recommend you to use accurate information. You&#8217;ll receive an e-mail with your login information. After you <a href="http://www.zoneedit.com/auth/">login</a>, you can start adding zones, look for the link &#8216;Add Zones&#8217;. Now enter your domain name and click &#8216;Add Zone&#8217;. It will create a default configuration with a MailForward™ so all e-mail traffic will get redirected to your account.</p>
<p>To give ZoneEdit the control over your domain, we need to change the name servers of your domain. Most likely the name servers given by ZoneEdit will be ns4.zoneedit.com and ns8.zoneedit.com, to be sure just just check the box on top of the configuration page. You probably have to ask your provider (where you&#8217;ve bought your domain) to do that for you, if not they should explain how you can. When the name servers get set, it still can take a few hours until it is propagated.</p>
<p>In the mean time, we&#8217;ll set up our hosting. I&#8217;ve chosen <a href="http://www.my3gb.com/">My3gb.com</a> to handle this. First of all because of the obvious 3GB of space with FTP access and second because they have support for PHP and MySQL. They are Ad-free. The only limit they have is a 1MB maximum file size, but most files for regular websites don&#8217;t reach that size. Now go and <a href="http://www.my3gb.com/register.jsp">register</a> yourself, you&#8217;ll receive an e-mail with your information if everything went correct. Next you can <a href="http://www.my3gb.com/login.jsp">login</a> and go to &#8216;Account settings&#8217;. Here you can add an extra domain to this hosting, just fill in your domain here. If you&#8217;ve read the extra information given, you&#8217;ll notice they ask you to change the name servers to the ones from my3gb. Don&#8217;t do this, it is not needed. By adding your extra domain here, My3gb will listen to that domain and show the correct website.</p>
<p>Let&#8217;s get back to ZoneEdit now, hopefully the name servers are propagated by now. If not, no worries, it can take some time. We can already set the WebForward and an Alias. First we&#8217;ll do a WebForward, just pick the menu item or click on &#8216;WebForwards&#8217; in the overview. Put in as destination &#8216;http://www.domain.tld&#8217; where domain.tld is your actual domain. and click &#8216;Add New&#8217;. After this you will be asked to redirect &#8216;http://www.domain.tld&#8217; to &#8217;http://www.domain.tld&#8217; but that is just ridiculous, just go for the &#8216;not recommended&#8217; because that is what we want to accomplish. Now &#8216;http://domain.tld&#8217; will forward to &#8216;http://www.domain.tld&#8217;. Go back to &#8216;View&#8217; and verify your actions. Next is the Alias (or CNAME) to your hosting. Click on &#8216;Aliases&#8217; in the menu or in the overview. Enter &#8216;www&#8217; in the &#8216;Alias&#8217; box and the URL to your hosting (accountname.my3gb.com) in the &#8216;Actual Name&#8217; box and click &#8216;Add New Alias&#8217;. Go back to &#8216;View&#8217; and again verify your actions.</p>
<p>This is basically it, you&#8217;ve set up your domain in ZoneEdit.com and your hosting at My3gb.com. Your files can be uploaded to the ftp server of your My3gb account. A MailForward™ can be set via MailForwards, which is self explanatory, a tutorial on setting up your mail account with this will follow soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2009/11/26/how-to-cheap-professional-hosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Open Source Software for Developers</title>
		<link>http://xprsyrslf.be/2009/08/30/using-open-source-software-for-developers/</link>
		<comments>http://xprsyrslf.be/2009/08/30/using-open-source-software-for-developers/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 23:32:03 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Technology]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=471</guid>
		<description><![CDATA[Over the past weeks, I noticed that open source software has replaced almost any closed source application in my workflow. Most likely I started to use them because they were freely available and I don't have tons of money available for all those software packages. On the other hand, I just try to choose the application that gets the job done in the most efficient way, therefore the software doesn't have to be Open Source.]]></description>
			<content:encoded><![CDATA[<p><a href="http://opensource.org/"><img class="alignright size-full wp-image-492" title="Open Source Initiative" src="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/garland_logo.png" alt="garland_logo" width="80" height="80" /></a>Over the past weeks, I noticed that open source software has replaced almost any closed source application in my workflow. Most likely I started to use them because they were freely available and I don&#8217;t have tons of money available for all those software packages. On the other hand, I just try to choose the application that gets the job done in the most efficient way, therefore the software doesn&#8217;t have to be Open Source.</p>
<p>Here is a part of  the applications I  use almost daily.</p>
<h3>Netbeans</h3>
<p>My main IDE, a essential tool for any PHP developer. Although this open source program is written as a Java IDE, it has native support for C/C++, PHP, JavaScript and many more. It has an excellent project manager to easily manage a lot of websites, this includes support for adding libraries and automatic FTP uploads.</p>
<p>And that is just a fraction of its possibilities, the editor has live parsing, refactoring and terribly good code completion (configurable to your needs). Also version control systems are available like CVS and Subversion and a really nice diff viewer that compares files per line or even per sign.</p>
<p>This piece of software runs on Windows, Linux, Mac OS X and even Solaris. I recommend Netbeans to any Dreamweaver user who works in code mode, give it a spin and if you like it you&#8217;ll save a lot of money.</p>
<p>Website: <a href="http://www.netbeans.org/">www.netbeans.org</a></p>
<h3>Geany</h3>
<p>This tool runs quite often next to Netbeans (or sometimes instead of Netbeans). It is accualy a lightweight GTK2 based text editor and, like many editors on linux, it has syntax highlighting for a zillion languages and automatic code completion. In my latest projects, I&#8217;ve used it mainly as a Python editor/debugger and I also took my first steps in C++ with it a few months ago.</p>
<p>It has build-in support for using the compilers installed on your system and you can use any terminal you prefer. Recently they also have released some Windows builds, more info on there website, although I&#8217;d recommend using <a href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a> on Windows.</p>
<p>Website: <a href="http://www.geany.org/">www.geany.org</a></p>
<h3>GIMP</h3>
<p>GIMP is the GNU Image Manipulation Program, in other words, the replacement for Adobe Photoshop on Linux. Probably the only, such advanced and well known, open source photo manipulation program. I mostly use it as an addition to Inkscape and recently Scribus to preform web design tasks like creating buttons and simple backgrounds.</p>
<p>Like with Netbeans, you&#8217;ll save a lot of money if you are willing to try something different. If you can&#8217;t get used to the interface, than check <a href="http://plasticbugs.com/?p=241">GIMPshop</a>, it is a hack that imitates Adobe&#8217;s Photoshop interface including menu structure. Both applications are available on Windows, Linux and Mac OS X.</p>
<p>Website: <a href="http://www.gimp.org">www.gimp.org</a></p>
<h3>Inkscape</h3>
<p>Another essential program for creating graphical designs. It has, for only being at version 0.46, a very nice set of tools on board. Most of the stuff in <a href="http://xprsyrslf.be/advertising/">Advertising</a> is made with this program and also the menu structures you see on this website. This program is a replacement for Adobe Illustrator and is available for Mac OS X, Windows and Linux. The program sometimes has its quirks and you&#8217;ll notice it is still not complete.</p>
<p>Website: <a href="http://inkscape.org">www.inkscape.org</a></p>
<h3>Scribus</h3>
<p>Scribus is fairly new to me. I&#8217;ve heard about people using Adobe&#8217;s InDesign but didn&#8217;t really know what it was. After some research and finding out it is one of the many applications from Adobe that costs too much and doesn&#8217;t even run on Linux, I&#8217;ve found Scribus as a alternative.</p>
<p>At first, it was a little confusing what the program actually did but then I found the light. Immediately I started trying out both the trial from InDesign and Scribus and tried to reproduce the design of this website. I got stuck in InDesign fairly quick because I needed to install a third party plugin or another program for just doing something essential like pattern fill, I didn&#8217;t even found usable documentation on the net. Scribus on the other hand had a <a href="http://wiki.scribus.net/index.php/Pattern">quick manual</a> which put me on the right path instant.This gave me enough courage to learn Scribus first and drop InDesign until a later point in time.</p>
<p>Like most popular open source software, this program is available on Mac OS X, Linux and Windows, there is even a build for OS/2.</p>
<p>Website: <a href="http://www.scribus.net/">www.scribus.net</a></p>
<h3>rdesktop</h3>
<p>If you need to manage Windows servers from your workstation, this tool is a necessity. It has support for any server reaching from Windows 2000 and NT 4.0 till Windows 2008. The program is very flexible and can be used at almost any resolution. It is all <a href="http://linux.die.net/man/1/rdesktop">command line</a>, but <a href="http://krdesktop.sourceforge.net/">some</a> <a href="http://sourceforge.net/projects/tsclient/">GUI</a> <a href="http://www.nongnu.org/grdesktop/">clients</a> are around. This program is available from source and is included in most linux distributions repositories. It is also known to build on Mac OS X, but Microsoft has released a <a href="http://www.microsoft.com/mac/products/remote-desktop/default.mspx">RDP client for Mac</a>. An RDP client is included by default on almost any Windows disc.</p>
<p>Website: <a href="http://www.rdesktop.org/">www.rdesktop.org</a></p>
<h3>VirtualBox</h3>
<p>At last we have VirtualBox. An easy way to simulate testing environments on your computer. This is useful for both web developers as for offline application engineers. You can test your program and make or break the system without harming your main operating system. Web developers probably use it mostly to run all kinds of web browsers on a wide variety of operating systems. It is another <a href="http://www.sun.com/">Sun Microsystems</a> application that fits in the row or Netbeans (see above), <a href="http://www.openoffice.org/">OpenOffice.org</a> and <a href="http://www.mysql.com/">MySQL</a>.</p>
<h3>Conclusion</h3>
<p>I can continue for a long time, talking about the wonderful world of open source. I&#8217;ll stop now and give you a chance to explore all of these great projects. In the end, you just have to make the decision which program you like most and think is the right one for the job and go for it. I doesn&#8217;t matter if it is open source, as long as you can see it as equals to commercial projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2009/08/30/using-open-source-software-for-developers/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How to validate an Email address with Regex &amp; PHP -update</title>
		<link>http://xprsyrslf.be/2009/08/24/how-to-validate-an-email-address-with-regex-php/</link>
		<comments>http://xprsyrslf.be/2009/08/24/how-to-validate-an-email-address-with-regex-php/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 11:27:32 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Technology]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=419</guid>
		<description><![CDATA[Just because everyone is allowed on the Internet, it doesn't mean they are qualified to use it correctly or they are just people who make mistakes. Programmers need to correct these things and therefore validation of external input is very important for a secure website. Email addresses are one of the hardest things to validate because you got so many possibilities. ]]></description>
			<content:encoded><![CDATA[<p><a href="http://xkcd.com/208/"><img class="alignright size-full wp-image-453" title="Regular Expressions on xkcd" src="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/regex.png" alt="Regular Expressions on xkcd" width="107" height="119" /></a>Just because everyone is allowed on the Internet, it doesn&#8217;t mean they are qualified to use it correctly or they are just people who make mistakes. Programmers need to correct these things and therefore validation of external input is very important for a secure website. Email addresses are one of the hardest things to validate because you got so many possibilities.</p>
<p>Validating of an email address mostly begins with a good regular expression which represents any possible email address. Searching on Google lead me to Ian Dunn, he made a nice <a onclick="this.target='_blank'" href="http://fightingforalostcause.net/misc/2006/compare-email-regex.php">list</a> on possibilities an email address can have and gathered all attempts for a regex and tested it on this list. The most accurate, near perfect, regular expression came from <a onclick="this.target='_blank'" href="http://blog.tuxz.net/content/regular-expressions-email-validation">Alexandre De Dommelin</a>, which I used in my script.</p>
<p>I wasn&#8217;t fully pleased with the regular expression, so I wanted to validate the domain even more. A function in PHP 4+ allows to check whether <a onclick="this.target='_blank'" href="http://en.wikipedia.org/wiki/MX_record">MX records</a> on a certain domain, just what I needed. Now the validation is perfect, I hope. The function is described below, it should be reusable in any project using PHP 4 or newer, please include credits. Code released under <a onclick="this.target='_blank'" href="http://creativecommons.org/licenses/by-sa/2.0/be/">Creative Commons Attribution-Share Alike 2.0 Belgium License</a></p>
<pre>function check_email($email) {
	//Function written by Jeroen Op 't Eynde - XprsYrslf.be
	//Creative Commons Attribution-Share Alike 2.0 Belgium License
	//Pattern from: http://fightingforalostcause.net/misc/2006/compare-email-regex.php
	$pattern = "/^[-a-z0-9~!$%^&amp;*_=+}{\'?]+(\.[-a-z0-9~!$%^&amp;*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|asia|cat|jobs|tel|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i";
	if (function_exists('checkdnsrr')){
		$domain=strstr($email,'@');
		if(preg_match($pattern,$email) &amp;&amp; checkdnsrr($domain,"MX")) return $email; //Linux: PHP 4.3.0 &amp; Windows: PHP 5.3.0
		else return false;
	} else {
		if(preg_match($pattern,$email)) return $email; //PHP 4 or 5
		else return false;
	}
}</pre>
<p>Please report any bugs/comments here or via the <a href="contact/">contact form</a>.</p>
<p><strong>Update:</strong><br />
On debugging a project, PHP threw some notices on the  <a href="http://us3.php.net/manual/en/function.split.php">split()</a> function. It seems to be a deprecated function. I simply replaced it with the <a href="http://us2.php.net/manual/en/function.strstr.php">strstr()</a> function. Below is the line I took out.</p>
<pre>list($user,$domain) = split('@',$email);</pre>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2009/08/24/how-to-validate-an-email-address-with-regex-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Contactform Plugin for WordPress</title>
		<link>http://xprsyrslf.be/2009/08/22/contactform-plugin-for-wordpress/</link>
		<comments>http://xprsyrslf.be/2009/08/22/contactform-plugin-for-wordpress/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 19:31:06 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=423</guid>
		<description><![CDATA[I've worked on a plugin for WordPress, actually I have been rewriting the Contact Form Captcha plugin. I've tackled out the javascript bit for generating the captcha and added a few features to the email itself.]]></description>
			<content:encoded><![CDATA[<p><a href="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/secure_email.png"><img class="alignright size-thumbnail wp-image-448" title="Secure Email" src="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/secure_email-150x150.png" alt="Secure Email" width="150" height="150" /></a> I&#8217;ve worked on a plugin for WordPress, actually I have been rewriting the <a href="http://eazeenet.in/contact-form-with-captcha-plugin-for-wordpress/">Contact Form Captcha</a> plugin (also <a href="http://wordpress.org/extend/plugins/contact-form-captcha/">here</a> on WP Extend). I&#8217;ve tackled out the javascript bit for generating the captcha and added a few features to the email itself.</p>
<p>You can download it from <a href="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/contactform.1.0.tar.gz">here</a>.</p>
<p>The code generated in the captcha will only contain alphabetic capitals between A &amp; Z, which is stronger, I&#8217;m not a security expert but 26<sup>6</sup> is a higher number than 10<sup>6</sup>. Instead of the javascript validation, it only uses server side validation. The boxes will get a red border to indicate if there was something wrong in there. This indication can be easily expanded in the source, maybe I&#8217;ll add that later. The code comparison will happen in a session, so no client side hacking possible.</p>
<p>Next big thing I did was the email validation check with regular expressions, I&#8217;ll talk more about that later. This validation should be foolproof and even checks if the domain has <a onclick="this.target='_blank'" href="http://en.wikipedia.org/wiki/MX_record">MX records</a>. Check out the function, it should be reusable in any project using PHP 4 or newer, please include credits. Code released under <a onclick="this.target='_blank'" href="http://creativecommons.org/licenses/by-sa/2.0/be/">Creative Commons Attribution-Share Alike 2.0 Belgium License</a></p>
<pre>function check_email($email) {
	//Function written by Jeroen Op 't Eynde - XprsYrslf.be
	//Creative Commons Attribution-Share Alike 2.0 Belgium License
	//Pattern from: http://fightingforalostcause.net/misc/2006/compare-email-regex.php
	$pattern = "/^[-a-z0-9~!$%^&amp;*_=+}{\'?]+(\.[-a-z0-9~!$%^&amp;*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|asia|cat|jobs|tel|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i";
	if (function_exists('checkdnsrr')){
		list($user,$domain) = split('@',$email);
		if(preg_match($pattern,$email) &amp;&amp; checkdnsrr($domain,"MX")) return $email; //Linux: PHP 4.3.0 &amp; Windows: PHP 5.3.0
		else return false;
	} else {
		if(preg_match($pattern,$email)) return $email; //PHP 4 or 5
		else return false;
	}
}</pre>
<p>I thank <a href="http://blog.tuxz.net/archives/2009/03/27/email_validation_using_regular_expression/">Alexandre De Dommelin</a> &amp; <a href="http://fightingforalostcause.net/misc/2006/compare-email-regex.php">Ian Dunn</a> for the regex research.</p>
<p>As I said, I&#8217;ve added a few features to the email that makes it more usable for different website&#8217;s. List of features:</p>
<ul>
<li>Date of Submission</li>
<li>Server&#8217;s Name (or Website&#8217;s Name)</li>
<li>IP address of person using the form</li>
<li>URL of page containing the form</li>
</ul>
<p>Like in the original plugin by Eazeenet, you can add &lt;!&#8211;contact form&#8211;&gt; anywhere you want to put it. But now it puts it exactly where you put the tag and not only below the text of that page.</p>
<p>That&#8217;s it. You can see an example of the contact form <a href="http://xprsyrslf.be/contact/">here</a>. You are free to test it with any hate mail you want. Any bugs and/or features can be reported as a reply to this post or via the contact form, of course.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2009/08/22/contactform-plugin-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XHTML to HTML plugin for WordPress</title>
		<link>http://xprsyrslf.be/2009/08/20/xhtml-to-html-plugin-for-wordpress/</link>
		<comments>http://xprsyrslf.be/2009/08/20/xhtml-to-html-plugin-for-wordpress/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 22:50:03 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Technology]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=404</guid>
		<description><![CDATA[In setting up WordPress for the use of this website, I noticed it was fully written in XHTML, while some browsers don't support the 'application/XHTML+XML' MIME type, so they get it served as 'text/html'.  So, before I get too technical, I just wanted to display the website as HTML (4.01 Strict).]]></description>
			<content:encoded><![CDATA[<p>In setting up WordPress for the use of this website, I noticed it was fully written in XHTML, while some browsers don&#8217;t support the &#8216;application/XHTML+XML&#8217; MIME type, so they get it served as &#8216;text/html&#8217;.  So, before I get too technical, I just wanted to display the website as HTML (4.01 Strict).</p>
<p>Fortunately, there was a simple plugin that solved this quickly:  <a onclick="this.target='_blank'" href="http://www.kilroyjames.co.uk/2008/07/xhtml-to-html-wordpress-plugin/">XHTML to XML plugin</a>. You can find more about the above issues on that page. For use in this website, I added 2 lines of my own, to turn onclick=&#8221;this.target=&#8217;something&#8217;&#8221;  in  onclick=&#8221;this.target=&#8217;something&#8217;&#8221;.</p>
<pre>
&lt;?php
  ...
  $xhtml[5] = '/target="([_A-Za-z]+)"/';
  ...
  $html[5] = 'onclick="this.target=\'$1\'"';
  ...
?&gt;
</pre>
<p>Thanks and <a href="http://xprsyrslf.be/about/#Accreditation">credits</a> go to John Kilroy.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2009/08/20/xhtml-to-html-plugin-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE8 display: table-cell &amp; max-width bug</title>
		<link>http://xprsyrslf.be/2009/08/18/ie8-display-table-cell-max-width-bug/</link>
		<comments>http://xprsyrslf.be/2009/08/18/ie8-display-table-cell-max-width-bug/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 20:27:44 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Easy Online Portals]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=392</guid>
		<description><![CDATA[A few days ago, a bug in EasySell appeared in Internet Explorer 8.

Apparently we used max-width (and max-height) on the image in a table &#8216;td&#8217;:

table td img {
max-height: 255px;
max-width: 345px;
}

This piece of code won&#8217;t get applied by IE8, so it seems&#8230;
But google found the solution right here, thanks to the forum user AsraiLight.
To let IE8 [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, a bug in EasySell appeared in Internet Explorer 8.</p>
<p style="text-align: center;"><a href="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/fault.png"><img class="size-full wp-image-386 aligncenter" style="width: 80%;" title="Fault Version" src="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/fault.png" alt="Fault Version" width="700" height="350" /></a></p>
<p>Apparently we used max-width (and max-height) on the image in a table &#8216;td&#8217;:<br />
<code><br />
table td img {<br />
max-height: 255px;<br />
max-width: 345px;<br />
}<br />
</code></p>
<p>This piece of code won&#8217;t get applied by IE8, so it seems&#8230;<br />
But google found the solution <a href="http://bytes.com/topic/html-css/answers/870359-ie8-display-table-cell-max-width-bug">right here</a>, thanks to the forum user <a href="http://bytes.com/topic/html-css/answers/870359-ie8-display-table-cell-max-width-bug#post3496446">AsraiLight</a>.<br />
To let IE8 apply the max-width/max-height, you have to use a fixed table layout:<br />
<code><br />
table{<br />
table-layout: fixed;<br />
}<br />
</code></p>
<p>This made it look like it is supposed to:</p>
<p style="text-align: center;"><a href="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/correct.png"><img class="size-full wp-image-385 aligncenter" style="width: 80%;" title="Correct Version" src="http://xprsyrslf.be/wordpress/wp-content/uploads/2009/08/correct.png" alt="Correct Version" width="700" height="350" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2009/08/18/ie8-display-table-cell-max-width-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Big Ask Again</title>
		<link>http://xprsyrslf.be/2009/08/17/the-big-ask-again/</link>
		<comments>http://xprsyrslf.be/2009/08/17/the-big-ask-again/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 00:34:33 +0000</pubDate>
		<dc:creator>Jeroen</dc:creator>
				<category><![CDATA[Environmental]]></category>

		<guid isPermaLink="false">http://xprsyrslf.be/?p=350</guid>
		<description><![CDATA[The Big Ask Again, Act Now!

]]></description>
			<content:encoded><![CDATA[<p><a onclick="this.target='_blank'" href="http://www.thebigaskagain.be/spip.php?rubrique11">The Big Ask Again</a>, Act Now!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/-kRP5x2MsAw&amp;hl=en&amp;fs=1&amp;rel=0" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/-kRP5x2MsAw&amp;hl=en&amp;fs=1&amp;rel=0" wmode="transparent" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://xprsyrslf.be/2009/08/17/the-big-ask-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
