<?xml version="1.0" encoding="iso-8859-1"?><!-- generator="b2evolution/2.4.2" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>basjobsen blog</title>
		<link>http://basjobsen.weblogs.fm/</link>
		<description></description>
		<language>en-EU</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=2.4.2"/>
		<ttl>60</ttl>
				<item>
			<title>Ubuntu 10.04 LTS ("Lucid Lynx")</title>
			<link>http://basjobsen.weblogs.fm/openid/ubuntu-10-04-lts-lucid-lynx</link>
			<pubDate>Sat, 08 May 2010 20:30:15 +0000</pubDate>			<dc:creator>basjobsen</dc:creator>
			<category domain="main">OpenID</category>			<guid isPermaLink="false">61@http://www.weblogs.fm/</guid>
						<description>&lt;p&gt;De upgrade van Ubuntu 9.10 (&quot;Karmic Koala&quot;) naar Ubuntu 10.04 LTS (&quot;Lucid Lynx&quot;) verliep soepel. Enige probleem was dat o.a. de NetworkManger en de dropbox iconen niet meer in het (desktop)panel verschenen.&lt;/p&gt;

&lt;p&gt;Hiervoor worden verschillende oplossingen beschreven, zie o.a. &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/network-manager-applet/+bug/482684&quot;&gt;https://bugs.launchpad.net/ubuntu/+source/network-manager-applet/+bug/482684&lt;/a&gt;. M.i. wordt dit probleem veroorzaakt door het uitschakelen van het notificatie gebied (Notification Area) in het panel. Op te lossen door &lt;em&gt;Add to Panel... --&gt; &quot;Notification Area&quot;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Aanpassingen aan /etc/network/interface (wat ook problemen zou geven met de &lt;em&gt;localhost&lt;/em&gt;) of het installeren van WICD, zoals elders beschreven lossen dit probleem niet op.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://basjobsen.weblogs.fm/openid/ubuntu-10-04-lts-lucid-lynx&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>De upgrade van Ubuntu 9.10 ("Karmic Koala") naar Ubuntu 10.04 LTS ("Lucid Lynx") verliep soepel. Enige probleem was dat o.a. de NetworkManger en de dropbox iconen niet meer in het (desktop)panel verschenen.</p>

<p>Hiervoor worden verschillende oplossingen beschreven, zie o.a. <a href="https://bugs.launchpad.net/ubuntu/+source/network-manager-applet/+bug/482684">https://bugs.launchpad.net/ubuntu/+source/network-manager-applet/+bug/482684</a>. M.i. wordt dit probleem veroorzaakt door het uitschakelen van het notificatie gebied (Notification Area) in het panel. Op te lossen door <em>Add to Panel... --> "Notification Area"</em>.</p>

<p>Aanpassingen aan /etc/network/interface (wat ook problemen zou geven met de <em>localhost</em>) of het installeren van WICD, zoals elders beschreven lossen dit probleem niet op.</p><div class="item_footer"><p><small><a href="http://basjobsen.weblogs.fm/openid/ubuntu-10-04-lts-lucid-lynx">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://basjobsen.weblogs.fm/openid/ubuntu-10-04-lts-lucid-lynx#comments</comments>
		</item>
				<item>
			<title>Upgrade naar php 5.3</title>
			<link>http://basjobsen.weblogs.fm/phpprogramming/upgrade-naar-php-5-3</link>
			<pubDate>Sat, 08 May 2010 20:04:16 +0000</pubDate>			<dc:creator>basjobsen</dc:creator>
			<category domain="main">PHP</category>
<category domain="alt">Web programming</category>			<guid isPermaLink="false">60@http://www.weblogs.fm/</guid>
						<description>&lt;p&gt;Bijna een jaar geleden (30 juni 2009) kwam PHP 5.3 uit. PHP 5.3 wordt o.a. standaard geleverd bij &lt;a href=&quot;http://www.ubuntu-nl.org/&quot;&gt;Ubuntu 10.04 LTS&lt;/a&gt; (&quot;Lucid Lynx&quot;). Een upgrade van versie 5.2 gaf enkele problemen, hieronder een samenvatting. Sinds versie 5.3 ondersteunt PHP ook &lt;a href=&quot;http://nl.wikipedia.org/wiki/Namespace&quot;&gt;namespaces&lt;/a&gt;, juist daarmee hadden daarmee enkelen van de hieronder beschreven problemen voorkomen kunnen worden.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nieuwe functies&lt;/strong&gt;&lt;br /&gt;
Vanaf versie 5.3 zijn o.a de volgende functies beschikbaar &lt;a href=&quot;http://www.php.net/gethostname&quot;&gt;getHostname&lt;/a&gt; en &lt;a href=&quot;http://www.php.net/lcfirst&quot;&gt;lcfirst&lt;/a&gt;. Beide functies waren al gedefinieerd in &lt;a href=&quot;http://www.opensourcecms.eu/&quot;&gt;Opensourcecms&lt;/a&gt;. De eerste functie is hernoemt. Voor lcfirst is nu het volgende gebruikt:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;if (!function_exists('lcfirst'))&lt;br /&gt;
{&lt;br /&gt;
	function lcfirst($string)&lt;br /&gt;
	{&lt;br /&gt;
		return strtolower(substr($string,0,1)) . substr($string,1);&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;lcfirst() biedt afhankelijk van de lokale instellingen (via setlocale()) ook ondersteuning voor speciale teken zoals &amp;euml;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regular expressions&lt;/strong&gt;&lt;br /&gt;
PHP had altijd een eigen implementatie van Regular expressions (POSIX Regex Functions). Daarnaast kon ook gebruik gemaakt worden van regular expressions zoals die in Perl gebruikt worden (PCRE Functions). Van de laatste was al bekend dat deze vele malen sneller waren. Sinds versie 5.3 wordt dan ook afgeraden nog langer gebruik te maken van de POSIX Regex Functions, zoals ereg() en ereg_match(). Webapplicaties die bijvoorbeeld error level E_ALL gebruiken geven nu een waarschuwing. &lt;br /&gt;
Voor de verschillende foutmeldingniveaus in php (instelbaar via error_reporting()) kent php een aantal (voorgedefinieerde) constanten zoals E_ALL (2047). Sinds versie 5.3 komen hier de volgende constanten bij: E_DEPRECATED en E_USER_DEPRECATED. Daarmee kunnen dus de eerder beschreven foutmeldingen ook onderdrukt worden:&lt;/p&gt;

&lt;p&gt;error_reporting(E_ALL ^ E_DEPRECATED);&lt;/p&gt;

&lt;p&gt;Naast de POSIX Regex Functions worden sinds versie 5.3 nog een hoop meer functies afgeraden, zie &lt;a href=&quot;http://php.net/manual/en/migration53.deprecated.php&quot;&gt;hier&lt;/a&gt; voor een overzicht.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://basjobsen.weblogs.fm/phpprogramming/upgrade-naar-php-5-3&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Bijna een jaar geleden (30 juni 2009) kwam PHP 5.3 uit. PHP 5.3 wordt o.a. standaard geleverd bij <a href="http://www.ubuntu-nl.org/">Ubuntu 10.04 LTS</a> ("Lucid Lynx"). Een upgrade van versie 5.2 gaf enkele problemen, hieronder een samenvatting. Sinds versie 5.3 ondersteunt PHP ook <a href="http://nl.wikipedia.org/wiki/Namespace">namespaces</a>, juist daarmee hadden daarmee enkelen van de hieronder beschreven problemen voorkomen kunnen worden.</p>

<p><strong>Nieuwe functies</strong><br />
Vanaf versie 5.3 zijn o.a de volgende functies beschikbaar <a href="http://www.php.net/gethostname">getHostname</a> en <a href="http://www.php.net/lcfirst">lcfirst</a>. Beide functies waren al gedefinieerd in <a href="http://www.opensourcecms.eu/">Opensourcecms</a>. De eerste functie is hernoemt. Voor lcfirst is nu het volgende gebruikt:</p>

<p><code>if (!function_exists('lcfirst'))<br />
{<br />
	function lcfirst($string)<br />
	{<br />
		return strtolower(substr($string,0,1)) . substr($string,1);<br />
	}	<br />
}</code></p>

<p>lcfirst() biedt afhankelijk van de lokale instellingen (via setlocale()) ook ondersteuning voor speciale teken zoals &euml;.</p>

<p><strong>Regular expressions</strong><br />
PHP had altijd een eigen implementatie van Regular expressions (POSIX Regex Functions). Daarnaast kon ook gebruik gemaakt worden van regular expressions zoals die in Perl gebruikt worden (PCRE Functions). Van de laatste was al bekend dat deze vele malen sneller waren. Sinds versie 5.3 wordt dan ook afgeraden nog langer gebruik te maken van de POSIX Regex Functions, zoals ereg() en ereg_match(). Webapplicaties die bijvoorbeeld error level E_ALL gebruiken geven nu een waarschuwing. <br />
Voor de verschillende foutmeldingniveaus in php (instelbaar via error_reporting()) kent php een aantal (voorgedefinieerde) constanten zoals E_ALL (2047). Sinds versie 5.3 komen hier de volgende constanten bij: E_DEPRECATED en E_USER_DEPRECATED. Daarmee kunnen dus de eerder beschreven foutmeldingen ook onderdrukt worden:</p>

<p>error_reporting(E_ALL ^ E_DEPRECATED);</p>

<p>Naast de POSIX Regex Functions worden sinds versie 5.3 nog een hoop meer functies afgeraden, zie <a href="http://php.net/manual/en/migration53.deprecated.php">hier</a> voor een overzicht.</p><div class="item_footer"><p><small><a href="http://basjobsen.weblogs.fm/phpprogramming/upgrade-naar-php-5-3">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://basjobsen.weblogs.fm/phpprogramming/upgrade-naar-php-5-3#comments</comments>
		</item>
				<item>
			<title>Wie heeft er straks nog een website?</title>
			<link>http://basjobsen.weblogs.fm/webprogramming/wie-heeft-er-straks-nog-een-website</link>
			<pubDate>Mon, 27 Jul 2009 22:49:42 +0000</pubDate>			<dc:creator>basjobsen</dc:creator>
			<category domain="main">Web programming</category>			<guid isPermaLink="false">59@http://www.weblogs.fm/</guid>
						<description>&lt;p&gt;Onlangs deelde ik de volgende mening met &lt;a href=&quot;http://www.facebook.com/profile.php?id=553354138&amp;amp;hiq=mathiashd&quot;&gt;Mathias HD&lt;/a&gt; (recent afgestudeerd informaticus uit Vlaanderen); &quot;In de toekomst hebben websites (domeinen) mogelijk steeds meer een samenvat- en doorverwijsfunctie. E.e.a. is al terug te vinden in de (amateur)muziekindustrie. Op de website van een artiest is slechts beknopt informatie te vinden, verder staan foto's &lt;a href=&quot;http://www.flicker.com/&quot;&gt;flicker&lt;/a&gt;, muziek op &lt;a href=&quot;http://www.myspace.com/&quot;&gt;myspace&lt;/a&gt; en filmpjes op &lt;a href=&quot;http://www.youtube.com/&quot;&gt;youtube&lt;/a&gt;. &lt;br /&gt;
Daar kwam ik achter tijdens mijn werkzaamheden aan &lt;a href=&quot;http://www.jazzfestivaldelft.nl/&quot;&gt;Jazz Festival Delft&lt;/a&gt;.&lt;br /&gt;
Terugkoppeling naar de website van deze netwerksites wordt nog maar zelden gebruikt, daarbij zou gedacht kunnen worden overzichten van updates op flicker, myspace, &lt;a href=&quot;http://www.twitter.com/&quot;&gt;twitter&lt;/a&gt;, etc. bijvoorbeeld via rss. De website wordt dan een samenvatting van wat elders te vinden is. &lt;br /&gt;
Als je deze lijn doortrekt kun je ook afvragen hebben personen in de toekomst &lt;br /&gt;
nog een website? Of is een &lt;a href=&quot;http://www.linkedin.com/&quot;&gt;linkedinpagina&lt;/a&gt; voldoende of zelfs beter? &lt;br /&gt;
Hoe gaan bedrijven daarmee om?&lt;br /&gt;
Heb je een webshop? Bouw je die zelf of verspreid je slechts een productfeed &lt;br /&gt;
(xml) waarbij de gebruiker zelf de device / shopapplicatie kiest?&quot;&lt;/p&gt;

&lt;p&gt;Mathias reageerde hierop met een verwijzing naar: &lt;a href=&quot;http://www.baekdal.com/articles/Technology/google-chrome-os/&quot;&gt;Google Chrome OS is 7 years too late&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tja..... zelf bouw ik webapplicaties en websites......... hoe lang nog?&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://basjobsen.weblogs.fm/webprogramming/wie-heeft-er-straks-nog-een-website&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Onlangs deelde ik de volgende mening met <a href="http://www.facebook.com/profile.php?id=553354138&amp;hiq=mathiashd">Mathias HD</a> (recent afgestudeerd informaticus uit Vlaanderen); "In de toekomst hebben websites (domeinen) mogelijk steeds meer een samenvat- en doorverwijsfunctie. E.e.a. is al terug te vinden in de (amateur)muziekindustrie. Op de website van een artiest is slechts beknopt informatie te vinden, verder staan foto's <a href="http://www.flicker.com/">flicker</a>, muziek op <a href="http://www.myspace.com/">myspace</a> en filmpjes op <a href="http://www.youtube.com/">youtube</a>. <br />
Daar kwam ik achter tijdens mijn werkzaamheden aan <a href="http://www.jazzfestivaldelft.nl/">Jazz Festival Delft</a>.<br />
Terugkoppeling naar de website van deze netwerksites wordt nog maar zelden gebruikt, daarbij zou gedacht kunnen worden overzichten van updates op flicker, myspace, <a href="http://www.twitter.com/">twitter</a>, etc. bijvoorbeeld via rss. De website wordt dan een samenvatting van wat elders te vinden is. <br />
Als je deze lijn doortrekt kun je ook afvragen hebben personen in de toekomst <br />
nog een website? Of is een <a href="http://www.linkedin.com/">linkedinpagina</a> voldoende of zelfs beter? <br />
Hoe gaan bedrijven daarmee om?<br />
Heb je een webshop? Bouw je die zelf of verspreid je slechts een productfeed <br />
(xml) waarbij de gebruiker zelf de device / shopapplicatie kiest?"</p>

<p>Mathias reageerde hierop met een verwijzing naar: <a href="http://www.baekdal.com/articles/Technology/google-chrome-os/">Google Chrome OS is 7 years too late</a>.</p>

<p>Tja..... zelf bouw ik webapplicaties en websites......... hoe lang nog?</p><div class="item_footer"><p><small><a href="http://basjobsen.weblogs.fm/webprogramming/wie-heeft-er-straks-nog-een-website">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://basjobsen.weblogs.fm/webprogramming/wie-heeft-er-straks-nog-een-website#comments</comments>
		</item>
				<item>
			<title>En misschien is het nog wel waar ook.....</title>
			<link>http://basjobsen.weblogs.fm/webprogramming/en-misschien-is-het-nog-wel-waar-ook</link>
			<pubDate>Tue, 02 Jun 2009 22:49:00 +0000</pubDate>			<dc:creator>basjobsen</dc:creator>
			<category domain="alt">PHP</category>
<category domain="alt">CMS</category>
<category domain="main">Web programming</category>			<guid isPermaLink="false">58@http://www.weblogs.fm/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://ediblepet.net/2009/05/23/web-applications-should-be-compile/&quot;&gt;http://ediblepet.net/2009/05/23/web-applications-should-be-compile/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Vanmiddag wees &lt;a href=&quot;http://twitter.com/birgerjansen/&quot;&gt;@birgerjansen&lt;/a&gt; mij op een leuke en vooral interessante blog; &quot;&lt;a href=&quot;http://ediblepet.net/2009/05/23/web-applications-should-be-compile/&quot;&gt;Web Applications Should Be Compiled&lt;/a&gt;&quot;. Reageren op het artikel kan niet meer. Zelf kan ik nog steeds &lt;a href=&quot;http://basjobsen.weblogs.fm/twitter/twitter-account-suspended&quot;&gt;niet reageren via twitter&lt;/a&gt;, dus dan maar op deze manier....&lt;/p&gt;

&lt;p&gt;Zelf ontwikkel ik webapplicaties en websites in &lt;a href=&quot;http://www.opensourcecms.eu/&quot;&gt;Opensourcecms.eu&lt;/a&gt;, wat is geschreven in PHP. Ontwikkelen gaat inderdaad snel. PHP is helemaal toegesneden op het ontwikkelen voor het web, dus dat biedt zeker voordelen voor 'ad hoc' implementaties. Performance issues spelen natuurlijk altijd een rol en in die zin zou compiled code absoluut een verbetering opleveren.&lt;/p&gt;

&lt;p&gt;Bij de comments van het genoemde artikel wordt verwezen naar &lt;a href=&quot;http://code.google.com/p/mongoose/&quot;&gt;Mongoose&lt;/a&gt;. Mogoose is een webserver, m.i. in eerste instantie te vergelijken met bijvoorbeeld &lt;a href=&quot;http://www.mortbay.org/jetty/&quot;&gt;Jetty&lt;/a&gt;. Er van uitgaande dat de gecompileerde webapplicaties, tevens webserver zijn (onder port 80) kan het toch interessant zijn Mogoose nader te bekijken.&lt;/p&gt;

&lt;p&gt;Goed stel; ik zou een webapplication framework willen bouwen, wat bij voorkeur ook direct inzetbaar is als CMS, in C of C++, wat zou ik dan nodig hebben. Beginnen 'from scratch', is meestal alleen leuker, maar niet per definitie effici&amp;#235;nter. De auteur van het artikel geeft de voorkeur aan C boven C++. Mijn mening is, wanneer herbruikbare code even snel geschreven kan worden als niet herbruikbare code, dan te kiezen voor het eerste. Naast C zou C++ dus zeker een optie zijn.&lt;/p&gt;

&lt;p&gt;Zelf heb ik de volgende reeds bestaande projecten kunnen vinden:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://labs.wexussoftware.com/&quot;&gt;Wexus Labs&lt;/a&gt; een C++ library voor web application development. Het idee achter Wexus lijkt duidelijk. Verder is mijn indruk dat er na 2006 weinig meer is gebeurd. Veel verder dan een 'hello world' wordt dan niet gekomen.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.webtoolkit.eu/wt&quot;&gt;Wt&lt;/a&gt;, uitgesproken als 'witty', is zeker een interessant project. Wederom een C++ library. Zelf beschrijven ze het als een applicatieserver voor het ontwikkelen en onderhouden van webapplicaties. Goede indruk maakt natuurlijk, dat de site zelf &lt;a href=&quot;http://www.webtoolkit.eu/wt#/examples/wt_homepage&quot;&gt;gebouwd is in Wt&lt;/a&gt;. Nadere inspectie van de html-broncode wijst wel uit, dat Wt code produceert waarvan de zoekmachines waarschijnlijk niet echt blij  worden..... na een korte analyse denk ik dat dit niet simpel op te lossen is. Wt lijkt mij bepalend in de uiteindelijke output. Webapplicaties die werken met en zonder javascript is natuurlijk mooi, maar voor het bouwen van websites is zoekmachineoptimalisatie (voor mij) ook belangrijk.&lt;/p&gt;

&lt;p&gt;De meeste indruk maakte &lt;a href=&quot;http://cppcms.sourceforge.net/wikipp/en/page/main&quot;&gt;CppCMS&lt;/a&gt; op mij. Zoals ze zelf zeggen;&lt;br /&gt;
&quot;&lt;em&gt;CppCMS is Free C++ Web Development Framework (not CMS) aimed for Rapid Web Application Development&lt;/em&gt;&quot;. Het is dan op zichzelf geen CMS, er is wel een implementatie voor database-connectie(sql), sessies en caching. CppCMS lijkt mij een interessant project om binnenkort nog eens beter te bekijken.&lt;/p&gt;

&lt;p&gt;Tot slot nog een vraag voor 'de heren' van &lt;a href=&quot;http://www.cnoc.nl&quot;&gt;CNOC&lt;/a&gt;. Hoe zien jullie de mogelijkheden wat dit betreft voor het ontwikkelen in &lt;a href=&quot;http://www.freepascal.org/&quot;&gt;Free pascal&lt;/a&gt;?&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://basjobsen.weblogs.fm/webprogramming/en-misschien-is-het-nog-wel-waar-ook&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://ediblepet.net/2009/05/23/web-applications-should-be-compile/">http://ediblepet.net/2009/05/23/web-applications-should-be-compile/</a></p><p>Vanmiddag wees <a href="http://twitter.com/birgerjansen/">@birgerjansen</a> mij op een leuke en vooral interessante blog; "<a href="http://ediblepet.net/2009/05/23/web-applications-should-be-compile/">Web Applications Should Be Compiled</a>". Reageren op het artikel kan niet meer. Zelf kan ik nog steeds <a href="http://basjobsen.weblogs.fm/twitter/twitter-account-suspended">niet reageren via twitter</a>, dus dan maar op deze manier....</p>

<p>Zelf ontwikkel ik webapplicaties en websites in <a href="http://www.opensourcecms.eu/">Opensourcecms.eu</a>, wat is geschreven in PHP. Ontwikkelen gaat inderdaad snel. PHP is helemaal toegesneden op het ontwikkelen voor het web, dus dat biedt zeker voordelen voor 'ad hoc' implementaties. Performance issues spelen natuurlijk altijd een rol en in die zin zou compiled code absoluut een verbetering opleveren.</p>

<p>Bij de comments van het genoemde artikel wordt verwezen naar <a href="http://code.google.com/p/mongoose/">Mongoose</a>. Mogoose is een webserver, m.i. in eerste instantie te vergelijken met bijvoorbeeld <a href="http://www.mortbay.org/jetty/">Jetty</a>. Er van uitgaande dat de gecompileerde webapplicaties, tevens webserver zijn (onder port 80) kan het toch interessant zijn Mogoose nader te bekijken.</p>

<p>Goed stel; ik zou een webapplication framework willen bouwen, wat bij voorkeur ook direct inzetbaar is als CMS, in C of C++, wat zou ik dan nodig hebben. Beginnen 'from scratch', is meestal alleen leuker, maar niet per definitie effici&#235;nter. De auteur van het artikel geeft de voorkeur aan C boven C++. Mijn mening is, wanneer herbruikbare code even snel geschreven kan worden als niet herbruikbare code, dan te kiezen voor het eerste. Naast C zou C++ dus zeker een optie zijn.</p>

<p>Zelf heb ik de volgende reeds bestaande projecten kunnen vinden:</p>

<p><a href="http://labs.wexussoftware.com/">Wexus Labs</a> een C++ library voor web application development. Het idee achter Wexus lijkt duidelijk. Verder is mijn indruk dat er na 2006 weinig meer is gebeurd. Veel verder dan een 'hello world' wordt dan niet gekomen.</p>

<p><a href="http://www.webtoolkit.eu/wt">Wt</a>, uitgesproken als 'witty', is zeker een interessant project. Wederom een C++ library. Zelf beschrijven ze het als een applicatieserver voor het ontwikkelen en onderhouden van webapplicaties. Goede indruk maakt natuurlijk, dat de site zelf <a href="http://www.webtoolkit.eu/wt#/examples/wt_homepage">gebouwd is in Wt</a>. Nadere inspectie van de html-broncode wijst wel uit, dat Wt code produceert waarvan de zoekmachines waarschijnlijk niet echt blij  worden..... na een korte analyse denk ik dat dit niet simpel op te lossen is. Wt lijkt mij bepalend in de uiteindelijke output. Webapplicaties die werken met en zonder javascript is natuurlijk mooi, maar voor het bouwen van websites is zoekmachineoptimalisatie (voor mij) ook belangrijk.</p>

<p>De meeste indruk maakte <a href="http://cppcms.sourceforge.net/wikipp/en/page/main">CppCMS</a> op mij. Zoals ze zelf zeggen;<br />
"<em>CppCMS is Free C++ Web Development Framework (not CMS) aimed for Rapid Web Application Development</em>". Het is dan op zichzelf geen CMS, er is wel een implementatie voor database-connectie(sql), sessies en caching. CppCMS lijkt mij een interessant project om binnenkort nog eens beter te bekijken.</p>

<p>Tot slot nog een vraag voor 'de heren' van <a href="http://www.cnoc.nl">CNOC</a>. Hoe zien jullie de mogelijkheden wat dit betreft voor het ontwikkelen in <a href="http://www.freepascal.org/">Free pascal</a>?</p><div class="item_footer"><p><small><a href="http://basjobsen.weblogs.fm/webprogramming/en-misschien-is-het-nog-wel-waar-ook">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://basjobsen.weblogs.fm/webprogramming/en-misschien-is-het-nog-wel-waar-ook#comments</comments>
		</item>
				<item>
			<title>Twitter Account Suspended</title>
			<link>http://basjobsen.weblogs.fm/twitter/twitter-account-suspended</link>
			<pubDate>Thu, 21 May 2009 22:45:29 +0000</pubDate>			<dc:creator>basjobsen</dc:creator>
			<category domain="main">Twitter</category>			<guid isPermaLink="false">57@http://www.weblogs.fm/</guid>
						<description>&lt;p&gt;Afgelopen maandag zag ik opeens dat mijn twitteraccount &lt;a href=&quot;http://twitter.com/basjobsen/&quot;&gt;@basjobsen&lt;/a&gt; niet meer werkte. Het account van op inactief gezet en daar van kreeg ik na het inloggen een melding. De melding verwijs naar een pagina met uitleg, die helaas niet meer bleek te bestaan. De meest voor de hand liggende oorzaak zou het maken van te veel requests per uur zijn. Ik wist zeker dat niet te veel requests had gedaan. Hoe lang ik er ook over nadacht, ik kon echt niet bedenken wat ik fout gedaan zou kunnen hebben.&lt;/p&gt;

&lt;p&gt;De enige oorzaak die ik kon bedenken; ik had in een van mijn tweets &quot;&lt;a href=&quot;http://nl.wikipedia.org/wiki/White_Widow&quot;&gt;White Widow&lt;/a&gt;&quot; genoemd. Misschien was deze tweet in verkeerde aarde gevallen????. Ik kon mij niet voorstellen dat dit de oorzaak was, maar het was toch het enige wat ik kon bedenken. Via &lt;a href=&quot;http://help.twitter.com/home&quot;&gt;Twitter Support!&lt;/a&gt; heb ik een verzoek ingediend mijn account weer te activeren. Het toewijzen van mijn support-ticket aan een medewerker duurde langer dan 24 uur. Na de toewijzing duurde het nog ruim 10 uur voordat ik een reactie ontving. &lt;/p&gt;

&lt;p&gt;De reactie van Twitter Support! luidde; &quot;Twitter is a free service, and we can't answer every email we receive; we do try to help with problems of broken accounts as much as possible.&quot; en &quot;Thanks for writing Twitter Support. For answers to your questions, please check out our Help Resources&quot;. Na deze berichtgeving werd mijn ticket ook gesloten. Ik had geen kans meer om &amp;#252;berhaupt te reageren. Best frustrerend, want ook al zou ik uit de &lt;a href=&quot;http://help.twitter.com/forums&quot;&gt;Help Resources&lt;/a&gt; kunnen achterhalen waarom mijn account op non-actief is gezet, dan ik kan ik het nog steeds niet gebruiken. Om te kunnen reageren kon ik niet anders doen dan een nieuw support-ticket starten en hopen dat hierop wel een actie zou volgen. Toewijzing van het ticket duurt weer meer dan 24 uur en nu wacht ik nog steeds op een reactie.&lt;/p&gt;

&lt;p&gt;Naast mijn persoonlijk account had ik nog een tweede account &lt;a href=&quot;http://twitter.com/basjobsen/ictcongres/&quot;&gt;@ictcongres&lt;/a&gt;. Dit twitter account gebruikte ik om &lt;a href=&quot;http://www.ictcongresdelft.nl&quot;&gt;ICTCongresDelft.nl&lt;/a&gt; te promoten. Na de afsluiting van @basjobsen kon ik op dit account verder twitteren. Op deze manier kon ik dinsdag tweets versturen van het boeiende en in mijn ogen succesvolle &lt;a href=&quot;http://www.samen-werken.com/&quot;&gt;#sm29&lt;/a&gt;. Deze pret duurde ook weer niet heel lang, want voor het einde van de dag was, de 's morgens uit de oplader gehaalde, iphone helemaal leeg.&lt;/p&gt;

&lt;p&gt;Woensdagavond merkte ik dat @ictcongres plotseling ook op Suspended stond. Dat kon geen toeval zijn..... Op de iphone twitter ik via &lt;a href=&quot;http://iconfactory.com/software/twitterrific&quot;&gt;Twitterrific&lt;/a&gt;. De meest voor de hand liggende oorzaak lijkt dan ook dat deze applicatie beide problemen veroorzaakt. Mogelijk doet Twitterrific te veel request, waardoor mijn batterij letterlijk leeg stroomt en mijn accounts worden geblokkeerd.&lt;/p&gt;

&lt;p&gt;Ik heb Twitter Support! hiervan melding gemaakt. Nog geen reactie ontvangen. Vandaag heb ik Twitterrific ge&amp;#252;pdate van versie 2.0 naar 2.1. Of deze versie nog steeds te veel requests doet kan ik niet testen. Na de update blijft mijn batterij leeglopen. Ik heb inmiddels besloten Twitterrific helemaal van mijn iphone te verwijderen.&lt;/p&gt;

&lt;p&gt;Ik hoop dat mijn batterij nu weer een acceptabele tijd zal meegaan. Ook hoop ik natuurlijk dat mijn account spoedig weer geactiveerd zullen worden. Het zou jammer zijn als dit voor mij een definitieve &lt;strong&gt;Twexit&lt;/strong&gt; zou betekenen.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://basjobsen.weblogs.fm/twitter/twitter-account-suspended&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Afgelopen maandag zag ik opeens dat mijn twitteraccount <a href="http://twitter.com/basjobsen/">@basjobsen</a> niet meer werkte. Het account van op inactief gezet en daar van kreeg ik na het inloggen een melding. De melding verwijs naar een pagina met uitleg, die helaas niet meer bleek te bestaan. De meest voor de hand liggende oorzaak zou het maken van te veel requests per uur zijn. Ik wist zeker dat niet te veel requests had gedaan. Hoe lang ik er ook over nadacht, ik kon echt niet bedenken wat ik fout gedaan zou kunnen hebben.</p>

<p>De enige oorzaak die ik kon bedenken; ik had in een van mijn tweets "<a href="http://nl.wikipedia.org/wiki/White_Widow">White Widow</a>" genoemd. Misschien was deze tweet in verkeerde aarde gevallen????. Ik kon mij niet voorstellen dat dit de oorzaak was, maar het was toch het enige wat ik kon bedenken. Via <a href="http://help.twitter.com/home">Twitter Support!</a> heb ik een verzoek ingediend mijn account weer te activeren. Het toewijzen van mijn support-ticket aan een medewerker duurde langer dan 24 uur. Na de toewijzing duurde het nog ruim 10 uur voordat ik een reactie ontving. </p>

<p>De reactie van Twitter Support! luidde; "Twitter is a free service, and we can't answer every email we receive; we do try to help with problems of broken accounts as much as possible." en "Thanks for writing Twitter Support. For answers to your questions, please check out our Help Resources". Na deze berichtgeving werd mijn ticket ook gesloten. Ik had geen kans meer om &#252;berhaupt te reageren. Best frustrerend, want ook al zou ik uit de <a href="http://help.twitter.com/forums">Help Resources</a> kunnen achterhalen waarom mijn account op non-actief is gezet, dan ik kan ik het nog steeds niet gebruiken. Om te kunnen reageren kon ik niet anders doen dan een nieuw support-ticket starten en hopen dat hierop wel een actie zou volgen. Toewijzing van het ticket duurt weer meer dan 24 uur en nu wacht ik nog steeds op een reactie.</p>

<p>Naast mijn persoonlijk account had ik nog een tweede account <a href="http://twitter.com/basjobsen/ictcongres/">@ictcongres</a>. Dit twitter account gebruikte ik om <a href="http://www.ictcongresdelft.nl">ICTCongresDelft.nl</a> te promoten. Na de afsluiting van @basjobsen kon ik op dit account verder twitteren. Op deze manier kon ik dinsdag tweets versturen van het boeiende en in mijn ogen succesvolle <a href="http://www.samen-werken.com/">#sm29</a>. Deze pret duurde ook weer niet heel lang, want voor het einde van de dag was, de 's morgens uit de oplader gehaalde, iphone helemaal leeg.</p>

<p>Woensdagavond merkte ik dat @ictcongres plotseling ook op Suspended stond. Dat kon geen toeval zijn..... Op de iphone twitter ik via <a href="http://iconfactory.com/software/twitterrific">Twitterrific</a>. De meest voor de hand liggende oorzaak lijkt dan ook dat deze applicatie beide problemen veroorzaakt. Mogelijk doet Twitterrific te veel request, waardoor mijn batterij letterlijk leeg stroomt en mijn accounts worden geblokkeerd.</p>

<p>Ik heb Twitter Support! hiervan melding gemaakt. Nog geen reactie ontvangen. Vandaag heb ik Twitterrific ge&#252;pdate van versie 2.0 naar 2.1. Of deze versie nog steeds te veel requests doet kan ik niet testen. Na de update blijft mijn batterij leeglopen. Ik heb inmiddels besloten Twitterrific helemaal van mijn iphone te verwijderen.</p>

<p>Ik hoop dat mijn batterij nu weer een acceptabele tijd zal meegaan. Ook hoop ik natuurlijk dat mijn account spoedig weer geactiveerd zullen worden. Het zou jammer zijn als dit voor mij een definitieve <strong>Twexit</strong> zou betekenen.</p><div class="item_footer"><p><small><a href="http://basjobsen.weblogs.fm/twitter/twitter-account-suspended">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://basjobsen.weblogs.fm/twitter/twitter-account-suspended#comments</comments>
		</item>
				<item>
			<title>Project met JQuery en phpjs</title>
			<link>http://basjobsen.weblogs.fm/javascript/project-met-jquery-en-phpjs</link>
			<pubDate>Fri, 15 May 2009 10:51:39 +0000</pubDate>			<dc:creator>basjobsen</dc:creator>
			<category domain="main">Javascript</category>
<category domain="alt">Jquery</category>
<category domain="alt">Phpjs</category>			<guid isPermaLink="false">56@http://www.weblogs.fm/</guid>
						<description>&lt;p&gt;Voor een project heb ik gebruik gemaakt van &lt;a href=&quot;http://www.jquery.com/&quot;&gt;JQuery&lt;/a&gt; en &lt;a href=&quot;http://www.phpjs.org/&quot;&gt;phpjs&lt;/a&gt;. Door gebruik te maken van Jquery als abstractielaag had ik natuurlijk gehoopt incompatibiliteit tussen verschillende browsers te kunnen oplossen. Op de eerst testversie kreeg ik toch te horen dat alles in Internet Explorer niet zo werkt als gemoeten had.&lt;/p&gt; 

&lt;p&gt;In eerste instantie werd ik &lt;a href=&quot;http://twitter.com/manuelvanrijn/status/1782780845&quot;&gt;gewezen&lt;/a&gt; op de &lt;a href=&quot;http://docs.jquery.com/Events/live&quot;&gt;live()-functie&lt;/a&gt;. Om deze functie te kunnen gebruiken moest ik Jquery updaten van versie 1.2.3. naar 1.3.2. Toen ik dat gedaan had , kreeg ik nog veel meer problemen...... &lt;/p&gt;

&lt;p&gt;De laatste versie bleek niet 100% backwards compatibel, jammer. Probleem leek hier in te zitten: &lt;a href=&quot;http://blog.jquery.com/2009/01/05/help-test-jquery-13-beta-2/&quot;&gt;Old, XPath, style attribute selectors: [@attr=value]. These have been deprecated for quite some time - and we&amp;#8217;re finally removing them. To fix it just remove the @!&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Mijn eerste probleem bleek overigens ook niet met de live()-function te worden opgelost. Probleem bleek het uitlezen van een &lt;a href=&quot;http://docs.jquery.com/Attributes/attr&quot;&gt;href-attribuut&lt;/a&gt; in een link. In dit attribuut plaatste ik een woord wat ik later weer uitlas. Internet Explorer bleek automatische de complete URL voor dit woord te plaatsen. Of dat logisch is vraag ik mij af. Toen kon ik het oplossen door mijn woord te verplaatsen naar het rev-attribuut.&lt;/p&gt;

&lt;p&gt;Phpjs spaart nu toch wel wat tijd, al zag ik eerste instantie het nut niet zo. Ik zag het vooral als een leuk project. Tot mijn spijt ontdekte ik alleen dat zowel &lt;a href=&quot;http://www.php.net/preg_replace&quot;&gt;preg_replace&lt;/a&gt; en &lt;a href=&quot;http://www.php.net/preg_match&quot;&gt;preg_match&lt;/a&gt; nog niet ge&amp;#239;mplementeerd waren. Dat waren nu net de functies die ik nodig had...... In eerste instantie leek het mij logisch om deze functie gewoon te schrijven m.b.v. de javascript regular expressions. &lt;a href=&quot;http://twitter.com/kvz&quot;&gt;Kevin van Zonneveld&lt;/a&gt; wees meer er echter terecht op dat de javascript (ECMA-262 standard) regular expressions niet gelijk zijn aan de uit perl ontleende versie (The open source PCRE library) gebruikt voor PHP (zie ook: &lt;a href=&quot;http://www.regular-expressions.info/refflavors.html&quot;&gt;http://www.regular-expressions.info/refflavors.html&lt;/a&gt;). Ondanks deze beperking heb ik nu zelf twee functies geschreven, die voorlopig i.i.g. doen waar ik ze voor nodig heb. Beide functies staan hieronder en maken gebruik van: toRegexp(), omdat een regular expression in javascript geen string is. RegExp is een apart type, met twee parameters, daarom is casting van een string naar een RegExp niet mogelijk.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;br /&gt;
function toRegexp(regexpstring)&lt;br /&gt;
{&lt;br /&gt;
        &lt;br /&gt;
        var result = regexpstring.match(/(\/)(.+)(\/)(.*)/);&lt;br /&gt;
        return new RegExp(result[2],result[4]);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function preg_replace(search, replace, subject,limit,countername) &lt;br /&gt;
{&lt;br /&gt;
        // &lt;br /&gt;
        // version: 0.0001&lt;br /&gt;
        // discuss at: &lt;a href=&quot;http://phpjs.org/functions/preg_replace&quot;&gt;http://phpjs.org/functions/preg_replace&lt;/a&gt;&lt;br /&gt;
        // +   original by: Bas Jobsen (http://www.w3masters.nl/)&lt;br /&gt;
        // *     example 1: preg_replace(['/^test | test | test$/g','/ +/g'],[' ',' '],'boektest andertest test');&lt;br /&gt;
        // *     returns 1: 'boektest andertest'&lt;br /&gt;
        // &lt;br /&gt;
        // * use a global var with 'countername' to count replacements&lt;br /&gt;
        // * var counter=0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        var s = [].concat(search);&lt;br /&gt;
        var r = [].concat(replace);&lt;br /&gt;
        var lim = 0;&lt;br /&gt;
&lt;br /&gt;
        var end = s.length;&lt;br /&gt;
       &lt;br /&gt;
        var j=0;&lt;br /&gt;
        var k=0;&lt;br /&gt;
        for(var i=0; i&lt;end; i++)&lt;br /&gt;
        {&lt;br /&gt;
        if(i in replace){j=i;}&lt;br /&gt;
        lim = (limit&gt;0)?limit:-1;&lt;br /&gt;
        searchstr = toRegexp(search[i]);&lt;br /&gt;
        while(lim-- &amp;amp;&amp;amp; subject!=(subject=subject.replace(searchstr,replace[j]))){k++;};&lt;br /&gt;
        }&lt;br /&gt;
        if(countername)eval(countername+'=k');&lt;br /&gt;
        &lt;br /&gt;
        return subject; &lt;br /&gt;
}&lt;br /&gt;
function preg_match(pattern,subject,matchesname,flags,offset)&lt;br /&gt;
{&lt;br /&gt;
        // &lt;br /&gt;
        // version: 0.0001&lt;br /&gt;
        // discuss at: &lt;a href=&quot;http://phpjs.org/functions/preg_match&quot;&gt;http://phpjs.org/functions/preg_match&lt;/a&gt;&lt;br /&gt;
        // +   original by: Bas Jobsen (http://www.w3masters.nl/)&lt;br /&gt;
        // *     example 1: var matches = new Array();&lt;br /&gt;
        // *     example 1:alert(preg_match('/boek/','tes/t boektest andertest test','matches',1));&lt;br /&gt;
        // *     example 1:alert (matches[0]);&lt;br /&gt;
        // *     example 1:alert (matches[1]);&lt;br /&gt;
        // *     alerts 1: 1&lt;br /&gt;
        // *     alerts 1: 'boek'&lt;br /&gt;
        // *     alerts 1: 6&lt;br /&gt;
        // * use a global var (array) with 'matchesname' to get matches&lt;br /&gt;
        // * var matches = new Array();&lt;br /&gt;
&lt;br /&gt;
        if(offset&gt;0)&lt;br /&gt;
        {&lt;br /&gt;
                subject=subject.substring(offset);&lt;br /&gt;
                pattern=pattern.replace(/\^/,'');&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        var result = subject.match(toRegexp(pattern));&lt;br /&gt;
        &lt;br /&gt;
        if(!result) return 0;&lt;br /&gt;
&lt;br /&gt;
        for(i = 0; i &lt; result.length; i++) &lt;br /&gt;
        {&lt;br /&gt;
                eval(matchesname+'['+i+']=\''+result[i]+'\'');&lt;br /&gt;
        }&lt;br /&gt;
        if(flags==1)&lt;br /&gt;
        {&lt;br /&gt;
                eval(matchesname+'['+i+']='+subject.indexOf(result[0]));&lt;br /&gt;
        } &lt;br /&gt;
&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://basjobsen.weblogs.fm/javascript/project-met-jquery-en-phpjs&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Voor een project heb ik gebruik gemaakt van <a href="http://www.jquery.com/">JQuery</a> en <a href="http://www.phpjs.org/">phpjs</a>. Door gebruik te maken van Jquery als abstractielaag had ik natuurlijk gehoopt incompatibiliteit tussen verschillende browsers te kunnen oplossen. Op de eerst testversie kreeg ik toch te horen dat alles in Internet Explorer niet zo werkt als gemoeten had.</p> 

<p>In eerste instantie werd ik <a href="http://twitter.com/manuelvanrijn/status/1782780845">gewezen</a> op de <a href="http://docs.jquery.com/Events/live">live()-functie</a>. Om deze functie te kunnen gebruiken moest ik Jquery updaten van versie 1.2.3. naar 1.3.2. Toen ik dat gedaan had , kreeg ik nog veel meer problemen...... </p>

<p>De laatste versie bleek niet 100% backwards compatibel, jammer. Probleem leek hier in te zitten: <a href="http://blog.jquery.com/2009/01/05/help-test-jquery-13-beta-2/">Old, XPath, style attribute selectors: [@attr=value]. These have been deprecated for quite some time - and we&#8217;re finally removing them. To fix it just remove the @!</a>.</p>

<p>Mijn eerste probleem bleek overigens ook niet met de live()-function te worden opgelost. Probleem bleek het uitlezen van een <a href="http://docs.jquery.com/Attributes/attr">href-attribuut</a> in een link. In dit attribuut plaatste ik een woord wat ik later weer uitlas. Internet Explorer bleek automatische de complete URL voor dit woord te plaatsen. Of dat logisch is vraag ik mij af. Toen kon ik het oplossen door mijn woord te verplaatsen naar het rev-attribuut.</p>

<p>Phpjs spaart nu toch wel wat tijd, al zag ik eerste instantie het nut niet zo. Ik zag het vooral als een leuk project. Tot mijn spijt ontdekte ik alleen dat zowel <a href="http://www.php.net/preg_replace">preg_replace</a> en <a href="http://www.php.net/preg_match">preg_match</a> nog niet ge&#239;mplementeerd waren. Dat waren nu net de functies die ik nodig had...... In eerste instantie leek het mij logisch om deze functie gewoon te schrijven m.b.v. de javascript regular expressions. <a href="http://twitter.com/kvz">Kevin van Zonneveld</a> wees meer er echter terecht op dat de javascript (ECMA-262 standard) regular expressions niet gelijk zijn aan de uit perl ontleende versie (The open source PCRE library) gebruikt voor PHP (zie ook: <a href="http://www.regular-expressions.info/refflavors.html">http://www.regular-expressions.info/refflavors.html</a>). Ondanks deze beperking heb ik nu zelf twee functies geschreven, die voorlopig i.i.g. doen waar ik ze voor nodig heb. Beide functies staan hieronder en maken gebruik van: toRegexp(), omdat een regular expression in javascript geen string is. RegExp is een apart type, met twee parameters, daarom is casting van een string naar een RegExp niet mogelijk.</p>

<p><code><br />
function toRegexp(regexpstring)<br />
{<br />
        <br />
        var result = regexpstring.match(/(\/)(.+)(\/)(.*)/);<br />
        return new RegExp(result[2],result[4]);<br />
}<br />
<br />
<br />
function preg_replace(search, replace, subject,limit,countername) <br />
{<br />
        // <br />
        // version: 0.0001<br />
        // discuss at: <a href="http://phpjs.org/functions/preg_replace">http://phpjs.org/functions/preg_replace</a><br />
        // +   original by: Bas Jobsen (http://www.w3masters.nl/)<br />
        // *     example 1: preg_replace(['/^test | test | test$/g','/ +/g'],[' ',' '],'boektest andertest test');<br />
        // *     returns 1: 'boektest andertest'<br />
        // <br />
        // * use a global var with 'countername' to count replacements<br />
        // * var counter=0;<br />
<br />
<br />
        var s = [].concat(search);<br />
        var r = [].concat(replace);<br />
        var lim = 0;<br />
<br />
        var end = s.length;<br />
       <br />
        var j=0;<br />
        var k=0;<br />
        for(var i=0; i<end; i++)<br />
        {<br />
        if(i in replace){j=i;}<br />
        lim = (limit>0)?limit:-1;<br />
        searchstr = toRegexp(search[i]);<br />
        while(lim-- &amp;&amp; subject!=(subject=subject.replace(searchstr,replace[j]))){k++;};<br />
        }<br />
        if(countername)eval(countername+'=k');<br />
        <br />
        return subject; <br />
}<br />
function preg_match(pattern,subject,matchesname,flags,offset)<br />
{<br />
        // <br />
        // version: 0.0001<br />
        // discuss at: <a href="http://phpjs.org/functions/preg_match">http://phpjs.org/functions/preg_match</a><br />
        // +   original by: Bas Jobsen (http://www.w3masters.nl/)<br />
        // *     example 1: var matches = new Array();<br />
        // *     example 1:alert(preg_match('/boek/','tes/t boektest andertest test','matches',1));<br />
        // *     example 1:alert (matches[0]);<br />
        // *     example 1:alert (matches[1]);<br />
        // *     alerts 1: 1<br />
        // *     alerts 1: 'boek'<br />
        // *     alerts 1: 6<br />
        // * use a global var (array) with 'matchesname' to get matches<br />
        // * var matches = new Array();<br />
<br />
        if(offset>0)<br />
        {<br />
                subject=subject.substring(offset);<br />
                pattern=pattern.replace(/\^/,'');<br />
        }<br />
<br />
        var result = subject.match(toRegexp(pattern));<br />
        <br />
        if(!result) return 0;<br />
<br />
        for(i = 0; i < result.length; i++) <br />
        {<br />
                eval(matchesname+'['+i+']=\''+result[i]+'\'');<br />
        }<br />
        if(flags==1)<br />
        {<br />
                eval(matchesname+'['+i+']='+subject.indexOf(result[0]));<br />
        } <br />
<br />
        return 1;<br />
}<br />
</code></p><div class="item_footer"><p><small><a href="http://basjobsen.weblogs.fm/javascript/project-met-jquery-en-phpjs">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://basjobsen.weblogs.fm/javascript/project-met-jquery-en-phpjs#comments</comments>
		</item>
				<item>
			<title>Twittermoney</title>
			<link>http://basjobsen.weblogs.fm/twitter/twittermoney</link>
			<pubDate>Sun, 10 May 2009 21:58:45 +0000</pubDate>			<dc:creator>basjobsen</dc:creator>
			<category domain="main">Twitter</category>			<guid isPermaLink="false">55@http://www.weblogs.fm/</guid>
						<description>&lt;p&gt;Twitteren wordt steeds leuker en levert steeds meer op. Persoonlijk zie ik vooral voordeel in het feit dat je een @ kunt sturen, maar dat dit mogelijk ook een reply van een van je andere 'volgers' kan opleveren. Een berichtje kan een hoop extra nuttig informatie en links opleveren.&lt;br /&gt;
Misschien zouden tweets best aan waarde gekoppeld kunnen worden. Er komen steeds meer Twitter applicaties, die leuk zijn om te gebruiken. Een goed voorbeeld is &lt;a href=&quot;http://twtpoll.com/&quot;&gt;Twtpoll.com&lt;/a&gt;. Hier kunnen we nu stemmen op &lt;a href=&quot;http://twtpoll.com/r/hjp1gf&quot;&gt;Wie is de Nederlandse Twitterkoningin?&lt;/a&gt;. Leuk! Het bedrijf van Twtpoll.com biedt inmiddels al diverse andere zgn. &lt;a href=&quot;http://twtapps.com/about.php&quot;&gt;twtapps&lt;/a&gt;. Twtapps zullen niet direct geld genereren, maar als je op deze manier de kracht van Twitter kun laten zien is er vast vroeg of laat een betaalde klant die ook iets dergelijks wil. Zelf bouwde ik eerder &lt;a href=&quot;http://www.twitterchat.nl/&quot;&gt;Twitterchat.nl&lt;/a&gt;. Het bouwen was een leuke ervaring en ik heb er zeker van geleerd, hoe je twitter kunt toepassen om nuttige toepassingen te verzinnen.&lt;br /&gt;
Momenteel werk ik aan een script waarmee ik op diverse social netwerksites, mijn status of www's kan aanpassen. Momenteel werkt het script voor &lt;a href=&quot;http://twitter.com/&quot;&gt;Twitter&lt;/a&gt;, &lt;a href=&quot;http://www.hyves.nl/&quot;&gt;Hyves&lt;/a&gt; en &lt;a href=&quot;http://www.linkedin.com/&quot;&gt;Linkedin&lt;/a&gt;. Voor mij persoonlijk werkt het nu goed, maar misschien zouden meer mensen daar iets aan hebben. Zelfs dan moet ik eerste een website of pagina aanmaken om het verder te verspreiden. Een ander voorbeeld zijn de &lt;a href=&quot;http://www.w3masters.nl/linkedin/index.htm&quot;&gt;Linkedin Buttons&lt;/a&gt;. Ook leuk om te maken, maar verder kost het mij voorlopig alleen bandbreedte. Kortom wat ik nodig heb is meer vrije tijd (tijd waarin je niet noodzakelijk geld hoeft te verdien), zodat ik ik 'leuke' idee&amp;#235;n kan implementeren.... Kan twitter mij hier ook bij helpen?&lt;br /&gt;
De afgelopen weken zijn een aantal nieuwe initiatieven ontstaan; &lt;a href=&quot;http://tipjoy.com/&quot;&gt;Tip&amp;#183;Joy&lt;/a&gt; en &lt;a href=&quot;http://adf.ly/?id=456&quot;&gt;Adf.ly&lt;/a&gt;.&lt;br /&gt;
Tip&amp;#183;Joy biedt goede doelen de mogelijkheid geld in te zamelen via Twitter. Okay, mijn goede doel wordt dan meer 'vrije tijd'. Als mijn twittervolgers geven 1 Euro en hun volgens ook, etc. ...... mijn einddoel 1.000.000 Euro, moet lukken toch?&lt;/p&gt;

&lt;script language=&quot;javascript&quot; src=&quot;http://tipjoy.com/twitterPaymentWidget/?twitterUsername=basjobsen&amp;amp;message=Ik%20wil%20meer%20vrije%20tijd&amp;amp;extraTweet=to%20help%20our%20cause%20http%3A%2F%2Fbasjobsen.weblogs.fm%20using%20%40basjobsen&amp;amp;amount=1&quot;&gt;&lt;/script&gt;
&lt;p&gt;en&lt;/p&gt;
&lt;script language=&quot;javascript&quot; src=&quot;http://tipjoy.com/twitterGoal/?twitterUsername=basjobsen&amp;amp;goal=1000000&quot;&gt;&lt;/script&gt;
&lt;p&gt;Goed tot zover nu Adf.ly. Deze website koppelt een korte link aan advertenties. Korte links wat betreft Twitter belangrijk, omdat elk bericht maar 140 tekens mag bevatten. Zo verwijst &lt;a href=&quot;http://adf.ly/rM&quot;&gt;http://adf.ly/rM&lt;/a&gt; naar mijn website. Elke keer dat iemand de link  klikt, kan mij dat geld opleveren.&lt;br /&gt;
Ik ben benieuwd, ik zal deze blog bij wijze van experiment ook op deze manier op Twitter posten.&lt;/p&gt;

&lt;p&gt;Zie ook: &lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://pc-en-internet.infonu.nl/tips-en-tricks/36000-tipjoy-betalen-via-twitter.html&quot;&gt;	Tipjoy betalen via Twitter&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://tweetdollar.com/&quot;&gt;Tweetdollar.com&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://basjobsen.weblogs.fm/twitter/twittermoney&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Twitteren wordt steeds leuker en levert steeds meer op. Persoonlijk zie ik vooral voordeel in het feit dat je een @ kunt sturen, maar dat dit mogelijk ook een reply van een van je andere 'volgers' kan opleveren. Een berichtje kan een hoop extra nuttig informatie en links opleveren.<br />
Misschien zouden tweets best aan waarde gekoppeld kunnen worden. Er komen steeds meer Twitter applicaties, die leuk zijn om te gebruiken. Een goed voorbeeld is <a href="http://twtpoll.com/">Twtpoll.com</a>. Hier kunnen we nu stemmen op <a href="http://twtpoll.com/r/hjp1gf">Wie is de Nederlandse Twitterkoningin?</a>. Leuk! Het bedrijf van Twtpoll.com biedt inmiddels al diverse andere zgn. <a href="http://twtapps.com/about.php">twtapps</a>. Twtapps zullen niet direct geld genereren, maar als je op deze manier de kracht van Twitter kun laten zien is er vast vroeg of laat een betaalde klant die ook iets dergelijks wil. Zelf bouwde ik eerder <a href="http://www.twitterchat.nl/">Twitterchat.nl</a>. Het bouwen was een leuke ervaring en ik heb er zeker van geleerd, hoe je twitter kunt toepassen om nuttige toepassingen te verzinnen.<br />
Momenteel werk ik aan een script waarmee ik op diverse social netwerksites, mijn status of www's kan aanpassen. Momenteel werkt het script voor <a href="http://twitter.com/">Twitter</a>, <a href="http://www.hyves.nl/">Hyves</a> en <a href="http://www.linkedin.com/">Linkedin</a>. Voor mij persoonlijk werkt het nu goed, maar misschien zouden meer mensen daar iets aan hebben. Zelfs dan moet ik eerste een website of pagina aanmaken om het verder te verspreiden. Een ander voorbeeld zijn de <a href="http://www.w3masters.nl/linkedin/index.htm">Linkedin Buttons</a>. Ook leuk om te maken, maar verder kost het mij voorlopig alleen bandbreedte. Kortom wat ik nodig heb is meer vrije tijd (tijd waarin je niet noodzakelijk geld hoeft te verdien), zodat ik ik 'leuke' idee&#235;n kan implementeren.... Kan twitter mij hier ook bij helpen?<br />
De afgelopen weken zijn een aantal nieuwe initiatieven ontstaan; <a href="http://tipjoy.com/">Tip&#183;Joy</a> en <a href="http://adf.ly/?id=456">Adf.ly</a>.<br />
Tip&#183;Joy biedt goede doelen de mogelijkheid geld in te zamelen via Twitter. Okay, mijn goede doel wordt dan meer 'vrije tijd'. Als mijn twittervolgers geven 1 Euro en hun volgens ook, etc. ...... mijn einddoel 1.000.000 Euro, moet lukken toch?</p>

<script language="javascript" src="http://tipjoy.com/twitterPaymentWidget/?twitterUsername=basjobsen&amp;message=Ik%20wil%20meer%20vrije%20tijd&amp;extraTweet=to%20help%20our%20cause%20http%3A%2F%2Fbasjobsen.weblogs.fm%20using%20%40basjobsen&amp;amount=1"></script>
<p>en</p>
<script language="javascript" src="http://tipjoy.com/twitterGoal/?twitterUsername=basjobsen&amp;goal=1000000"></script>
<p>Goed tot zover nu Adf.ly. Deze website koppelt een korte link aan advertenties. Korte links wat betreft Twitter belangrijk, omdat elk bericht maar 140 tekens mag bevatten. Zo verwijst <a href="http://adf.ly/rM">http://adf.ly/rM</a> naar mijn website. Elke keer dat iemand de link  klikt, kan mij dat geld opleveren.<br />
Ik ben benieuwd, ik zal deze blog bij wijze van experiment ook op deze manier op Twitter posten.</p>

<p>Zie ook: </p><p><a href="http://pc-en-internet.infonu.nl/tips-en-tricks/36000-tipjoy-betalen-via-twitter.html">	Tipjoy betalen via Twitter</a><br /><a href="http://tweetdollar.com/">Tweetdollar.com</a></p><div class="item_footer"><p><small><a href="http://basjobsen.weblogs.fm/twitter/twittermoney">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://basjobsen.weblogs.fm/twitter/twittermoney#comments</comments>
		</item>
				<item>
			<title>Google Hulpprogramma's voor webmasters / Wel of geen indexbestand?(2)</title>
			<link>http://basjobsen.weblogs.fm/googlehulpprogrammas/google-hulpprogramma-s-voor-webmasters-w-2</link>
			<pubDate>Wed, 25 Mar 2009 23:56:58 +0000</pubDate>			<dc:creator>basjobsen</dc:creator>
			<category domain="alt">Affiliate marketing</category>
<category domain="main">Google Hulpprogramma's voor webmasters</category>			<guid isPermaLink="false">54@http://www.weblogs.fm/</guid>
						<description>&lt;p&gt;Eerder schreef ik hier over het wel of niet opnemen van een index.* bestand in de url's en interne links. Gisteren gaven de &lt;a href=&quot;http://www.google.com/webmasters/sitemaps/?hl=nl&quot;&gt;Google Hulpprogramma's voor webmasters&lt;/a&gt; ook geen fouten meer voor de sites waarop ik wel een index-bestand gebruikte, zie: &lt;a href=&quot;http://basjobsen.weblogs.fm/webprogramming/wel-of-geen-indexbestand&quot;&gt; Wel of geen indexbestand?&lt;/a&gt;. Nu heb ik weleens eerder gezien dat de fouten tijdelijk weg waren en later weer terugkwamen. Mogelijk gebruikt Google verschillende versies van de bots, die controleren op fouten en eventuele duplicate content.&lt;/p&gt;

&lt;p&gt;Hierbij viel mij verder op dat Google direct melding gaf van pagina's met de zelfde metatags en /of title-tag voor pagina's waar in na aanpassing nog interne links met index.htm gebruikte.&lt;/p&gt;

&lt;p&gt;Daarnaast viel mij vandaag het volgende op: Gisteren heb ik de domeinnaam &lt;a href=&quot;http://www.idating.be&quot;&gt;Idating.be&lt;/a&gt; geregistreerd. Hierop heb ik meteen een site gezet. Deze site maakt gebruik van de content van &lt;a href=&quot;http://www.easyflirt-partners.biz/index.php?pr=33678&quot;&gt;Easyflirt-partners.biz&lt;/a&gt;, ik ben benieuwd of dit white-labeled dating concept inderdaad lucratief is. Na het plaatsen van de website heb ik meteen de sitemap ge&amp;#252;pload naar het Google webmasterhulpprogramma. Vandaag vond ik onder &quot;Diagnose &gt; Webcrawl&quot; een http-error. De error luidde: &quot;Domeinnaam niet gevonden&quot;. Dat zou natuurlijk kunnen als er een vertraging zou zijn in het updaten van de DNS-servers. Echter wordt er bij de fout ook vermeld; Probleem gedetecteerd op; 19 mrt. 2009.&lt;/p&gt;

&lt;p&gt;De datum maakt deze foutmelding opvallend want toen bestond de site nog niet, laat staan dat ik al een sitemap had ge&amp;#252;pload. Mogelijk had de domeinnaam eerst een andere eigenaar. In Google kan ik echter geen vermeldingen vinden voor idating.be. Tja een vreemd verhaal...... of niet? Misschien kijkt Google bij nieuwe aanmeldingen dus naar de historie van een website. Lijkt misschien onlogisch, maar daarmee kan natuurlijk voorkomen worden dat iemand de content van een website aanpast. Aanpassen van de content van een website is natuurlijk prima. Extreme aanpassingen kunnen er echter toe leiden dat een bezoeker via een zoekmachine iets anders vindt, dan verwacht. Hierbij kun je denken aan een website met een goede ranking, die plotseling verandert in een pornosite.&lt;/p&gt;

&lt;p&gt;zie ook &lt;a href=&quot;http://www.seonieuws.nl/SEO+bevindingen/Google+Hulpprogramma's+voor+webmasters+steeds+nuttiger+voor+s.e.o..html&quot;&gt;Google Hulpprogramma's voor webmasters steeds nuttiger voor s.e.o.&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;http://basjobsen.weblogs.fm/googlehulpprogrammas/google-hulpprogramma-s-voor-webmasters-w-2&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Eerder schreef ik hier over het wel of niet opnemen van een index.* bestand in de url's en interne links. Gisteren gaven de <a href="http://www.google.com/webmasters/sitemaps/?hl=nl">Google Hulpprogramma's voor webmasters</a> ook geen fouten meer voor de sites waarop ik wel een index-bestand gebruikte, zie: <a href="http://basjobsen.weblogs.fm/webprogramming/wel-of-geen-indexbestand"> Wel of geen indexbestand?</a>. Nu heb ik weleens eerder gezien dat de fouten tijdelijk weg waren en later weer terugkwamen. Mogelijk gebruikt Google verschillende versies van de bots, die controleren op fouten en eventuele duplicate content.</p>

<p>Hierbij viel mij verder op dat Google direct melding gaf van pagina's met de zelfde metatags en /of title-tag voor pagina's waar in na aanpassing nog interne links met index.htm gebruikte.</p>

<p>Daarnaast viel mij vandaag het volgende op: Gisteren heb ik de domeinnaam <a href="http://www.idating.be">Idating.be</a> geregistreerd. Hierop heb ik meteen een site gezet. Deze site maakt gebruik van de content van <a href="http://www.easyflirt-partners.biz/index.php?pr=33678">Easyflirt-partners.biz</a>, ik ben benieuwd of dit white-labeled dating concept inderdaad lucratief is. Na het plaatsen van de website heb ik meteen de sitemap ge&#252;pload naar het Google webmasterhulpprogramma. Vandaag vond ik onder "Diagnose > Webcrawl" een http-error. De error luidde: "Domeinnaam niet gevonden". Dat zou natuurlijk kunnen als er een vertraging zou zijn in het updaten van de DNS-servers. Echter wordt er bij de fout ook vermeld; Probleem gedetecteerd op; 19 mrt. 2009.</p>

<p>De datum maakt deze foutmelding opvallend want toen bestond de site nog niet, laat staan dat ik al een sitemap had ge&#252;pload. Mogelijk had de domeinnaam eerst een andere eigenaar. In Google kan ik echter geen vermeldingen vinden voor idating.be. Tja een vreemd verhaal...... of niet? Misschien kijkt Google bij nieuwe aanmeldingen dus naar de historie van een website. Lijkt misschien onlogisch, maar daarmee kan natuurlijk voorkomen worden dat iemand de content van een website aanpast. Aanpassen van de content van een website is natuurlijk prima. Extreme aanpassingen kunnen er echter toe leiden dat een bezoeker via een zoekmachine iets anders vindt, dan verwacht. Hierbij kun je denken aan een website met een goede ranking, die plotseling verandert in een pornosite.</p>

<p>zie ook <a href="http://www.seonieuws.nl/SEO+bevindingen/Google+Hulpprogramma's+voor+webmasters+steeds+nuttiger+voor+s.e.o..html">Google Hulpprogramma's voor webmasters steeds nuttiger voor s.e.o.</a></p><div class="item_footer"><p><small><a href="http://basjobsen.weblogs.fm/googlehulpprogrammas/google-hulpprogramma-s-voor-webmasters-w-2">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>http://basjobsen.weblogs.fm/googlehulpprogrammas/google-hulpprogramma-s-voor-webmasters-w-2#comments</comments>
		</item>
			</channel>
</rss>
