<?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>Lifelog &#187; frameworks</title>
	<atom:link href="http://www.lifelog.be/category/it/webdesign/frameworks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lifelog.be</link>
	<description>Life as a web developer/entrepreneur</description>
	<lastBuildDate>Wed, 10 Aug 2011 13:05:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Digital Base v3 &#8211; Launch</title>
		<link>http://www.lifelog.be/2007/12/14/digital-base-v3-launch/</link>
		<comments>http://www.lifelog.be/2007/12/14/digital-base-v3-launch/#comments</comments>
		<pubDate>Fri, 14 Dec 2007 10:24:57 +0000</pubDate>
		<dc:creator>snk00sj</dc:creator>
				<category><![CDATA[(x)HTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Tech-Stuff]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[digitalbase]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[launch]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.lifelog.be/2007/12/14/digital-base-v3-launch/</guid>
		<description><![CDATA[I am proud to announce we launched our new website. On this website you&#8217;ll find a detailed portfolio &#038; more about us. Although there is still alot of work todo (optimise css/xhtml, w3c validation, content correction). Check out our site in english &#038; dutch]]></description>
			<content:encoded><![CDATA[<p>I am proud to announce we launched <a href="http://www.digitalbase.eu" title="Digital Base web design" target="_blank">our new website</a>. On this website you&#8217;ll find a detailed portfolio &#038; more about us. Although there is still alot of work todo (optimise css/xhtml, w3c validation, content correction). Check out our site in <a href="http://www.digitalbase.eu" title="Digital Base web design" target="_blank">english</a> &#038; <a href="http://www.digitalbase.be" title="Digital Base web design" target="_blank">dutch</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifelog.be/2007/12/14/digital-base-v3-launch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Propel / Pager / Datagrid</title>
		<link>http://www.lifelog.be/2006/12/15/propel-pager-datagrid/</link>
		<comments>http://www.lifelog.be/2006/12/15/propel-pager-datagrid/#comments</comments>
		<pubDate>Fri, 15 Dec 2006 13:27:56 +0000</pubDate>
		<dc:creator>snk00sj</dc:creator>
				<category><![CDATA[(x)HTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[PHP / MySQL]]></category>
		<category><![CDATA[Tech-Stuff]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[DAL]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[datagrid]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[propel]]></category>

		<guid isPermaLink="false">http://www.lifelog.be/2006/propel-pager-datagrid/</guid>
		<description><![CDATA[Because we are using propel in most of our larger projects, it&#8217;s very common we need a datagrid for the listing of the objects. A year ago we made a datagrid with the most important features combined with an ajax approach (sorting, filtering&#8230;), for the ajax functionality we wrote our own javascript function calls, what [...]]]></description>
			<content:encoded><![CDATA[<p>Because we are using propel in most of our larger projects, it&#8217;s very common we need a datagrid for the listing of the objects. A year ago we made a datagrid with the most important features combined with an ajax approach (sorting, filtering&#8230;), for the ajax functionality we wrote our own javascript function calls, what led to alot of unmanageable code, both javascript and php.</p>
<p>As time moved on, this loading of the datagrid became slower and slower (due to increasing objects, about 9000 records with multiple joined tables). This was mainly because the old datagrid first loaded all objects, and then sorted the entire array by the columns as defined by the user&#8230;.don&#8217;t tell me..i know ! This is a bad approach, that means all records get looped, and if you are using propel that would mean for each of those 9000+ records an object is created&#8230;that&#8217;s crazy&#8230;(it has some advantages though)&#8230;</p>
<p>So now i finally found some time to do a total rewrite of this datagrid, combined with the power of the <a title="Propel Pager" target="_blank" href="http://propel.phpdb.org/docs/api/current/runtime/propel.util/PropelPager.html">propel pager</a>, <a title="Propel Criteria" target="_blank" href="http://propel.phpdb.org/docs/user_guide/chapters/FindingObjects.html">propel criteria</a> &#038; the php/ajax framework <a title="Xajax" target="_blank" href="http://www.xajaxproject.org/">xajax</a>, i came up, faster then expected, with a powerfull scalable datagrid that only loads the visible records. All switchpages, sorting &#038; filters call a corresponding ajax function. These functions change the criteria in the object and reload the datagrid. I&#8217;ll elaborate on this later, by showing you some code and perhaps an online example.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifelog.be/2006/12/15/propel-pager-datagrid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internationalization &#8211; seo &#8211; mod_rewrite : Part II</title>
		<link>http://www.lifelog.be/2006/08/02/internationalization-seo-mod_rewrite-part-ii/</link>
		<comments>http://www.lifelog.be/2006/08/02/internationalization-seo-mod_rewrite-part-ii/#comments</comments>
		<pubDate>Wed, 02 Aug 2006 11:06:43 +0000</pubDate>
		<dc:creator>snk00sj</dc:creator>
				<category><![CDATA[frameworks]]></category>
		<category><![CDATA[PHP / MySQL]]></category>
		<category><![CDATA[Tech-Stuff]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webhosting]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.lifelog.be/2006/08/02/internationalization-seo-mod_rewrite-part-ii/</guid>
		<description><![CDATA[As a follow-up to my previous post (Internationalization &#8211; seo &#8211; mod_rewrite : Part I). If you followed my previous instructions, by now you should be the proud owner of a &#8216;google sitemaps&#8216; account and your webhost supports statistics that can tell you when a crawlbot visited your website (or raw logs, if you&#8217;re a [...]]]></description>
			<content:encoded><![CDATA[<p>As a follow-up to <a title="Previous post" href="/2006/07/10/internationalization-bot-crawling-php-mod_rewrite-part-1/">my previous post</a> (<a title="Internationalization - SEO - mod_rewrite : Part I" href="/2006/07/10/internationalization-bot-crawling-php-mod_rewrite-part-1/">Internationalization &#8211; seo &#8211; mod_rewrite : Part I</a>). If you followed my previous instructions, by now you should be the proud owner of a &#8216;<a class="external" title="Google Sitemaps" target="_blank" href="https://www.google.com/webmasters/sitemaps/">google sitemaps</a>&#8216; account and your webhost supports statistics that can tell you when a crawlbot visited your website (or raw logs, if you&#8217;re a sherlock holmes type).</p>
<p>Because you are reading this howto, i can conclude you have a website running on a domain or atleast a subdomain. For multi-language systems i prefer using the subdomain to set the language of the user. So if you were using www.mydomain.tld/index.php?lang=en before, you will now be using en.mydomain.tld. For a website with multiple languages that would become :</p>
<ul>
<li>www.mydomain.tld : would point to the default language, or will relocate the user based on browser/os/nslookup (whatever you prefer)</li>
<li>en.mydomain.tld : would point to the website in english</li>
<li>fr.mydomain.tld : would point to the website in french</li>
<li>X.mydomain.tld : would point to the website in &#8230;</li>
</ul>
<p>If you are using a subdomain this could be done with en.subdomain.mydomain.tld etc&#8230;.<br />
This way of working has some advantages :</p>
<ul>
<li>users will be able to bookmark directly in their language.</li>
<li>Search engine optimalisation can be targetted on subdomains seperately</li>
<li>crawlbots will easily know which language they are crawling (also due to <meta /> tag)</li>
</ul>
<p><strong>Step 1 : Set up your nameserver records</strong></p>
<p>Make sure the A records all point to the same adress, i prefer setting a records for all different languages as i do not want to point *.domain.tld to the website (for various reasons). As this is not a dns administration guide, try to find more information in the docs of your dns daemon, but before doing that check if undefined subdomains do not already point to the same ip as your main domain,  this could be the case and then no configuration is needed&#8230;</p>
<p>You can check this by doing :</p>
<blockquote>
<pre><code allow="none"> ping mydomain.tld</code></pre>
</blockquote>
<p>Compare the result ip adress with a ping to a subdomain :</p>
<blockquote>
<pre><code allow="none"> ping en.mydomain.tld</code></pre>
</blockquote>
<p>If both ip match, you will most probably have the right nameserver configuration already, you can go straight to step 2.</p>
<p><strong>Step 2 : Make sure the webserver catches the subdomain</strong></p>
<p>As i am using apache only at this moment, i will only explain you briefly how to do this in apache, for all other webservers check the documentation. Try to look for the virtualhost directive of your domain in the webserver configuration, by default this will be in /etc/httpd/conf, searching for httpd.conf, apache.conf or apache2.conf will tell you where it&#8217;s located&#8230;If you split up your virtualhost directives in different files, you are most probably clever enough to find your virtualhost directive, if you didn&#8217;t check the bottom of your configation file, there should be something like this :</p>
<blockquote>
<pre><code allow="none">

<VirtualHost *:80>
  ServerName yourdomain
  DocumentRoot "/path/to/your/webroot"
  DirectoryIndex index.php
  <Directory "/path/to/your/webroot">
   AllowOverride All
   Order allow,deny
   Allow from All
  </Directory>
</VirtualHost>
</code></pre>
</blockquote>
<p>Add a serveralias, so apache knows to catch the subdomains, there are 2 ways of doing this, you can add a ServerAlias for all different languages, or you could add a * alias, so from now on apache will catch all unknown subdomains for this domain.</p>
<p><strong>Option 1 : Catch only the subdomains i want</strong></p>
<blockquote>
<pre><code allow="none">

<VirtualHost *:80>
  ServerName yourdomain
  ServerAlias language1.yourdomain
  ServerAlias language2.yourdomain
  DocumentRoot "/path/to/your/webroot"
  DirectoryIndex index.php
  <Directory "/path/to/your/webroot">
   AllowOverride All
   Order allow,deny
   Allow from All
  </Directory>
</VirtualHost>
</code></pre>
</blockquote>
<p><strong>Option 2 : Catch all subdomains</strong></p>
<blockquote>
<pre><code allow="none">

<VirtualHost *:80>
  ServerName yourdomain
  ServerAlias *.yourdomain
  DocumentRoot "/path/to/your/webroot"
  DirectoryIndex index.php
  <Directory "/path/to/your/webroot">
   AllowOverride All
   Order allow,deny
   Allow from All
  </Directory>
</VirtualHost>
</code></pre>
</blockquote>
<p>Save your virtualhost config file, or main webserver configuration file and restart your webserver</p>
<blockquote>
<pre><code allow="none"> apachectrl -k restart</code></pre>
</blockquote>
<p><a target='_blank' title='more info on setting apache vhost alias' href="http://httpd.apache.org/docs/1.3/mod/core.html#serveralias">More information on setting Apache virtualhosts serveralias&#8217;es</a>.</p>
<p>You should now be able to see the same website you had before, using the lang.mydomain.tld subdomains, if this is not the case, check your include paths etc&#8230;.I have to stop this howto for now, we will go the the coding itself in Part III</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifelog.be/2006/08/02/internationalization-seo-mod_rewrite-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My first project in Symfony</title>
		<link>http://www.lifelog.be/2006/07/11/my-first-project-in-symfony/</link>
		<comments>http://www.lifelog.be/2006/07/11/my-first-project-in-symfony/#comments</comments>
		<pubDate>Tue, 11 Jul 2006 14:19:02 +0000</pubDate>
		<dc:creator>snk00sj</dc:creator>
				<category><![CDATA[(x)HTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[PHP / MySQL]]></category>
		<category><![CDATA[Tech-Stuff]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.lifelog.be/2006/07/06/my-first-project-in-symfony/</guid>
		<description><![CDATA[I&#8217;ve started on a project using a very good framework i am pleased about. If you take your time to have a look around on the website, you can clearly see this is a framework with alot of documentation, one of the major requirements for selection (in my case). I decided to give it a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started on a project using a <a target="_blank" title="Symfony Project" class="external external external external external external" href="http://www.symfony-project.com/weblog.html">very good framework</a> i am pleased about. If you take your time to have a look around on the website, you can clearly see this is a framework with <a target="_blank" title="Symfony Framework documentation" class="external external external external external external" href="http://www.symfony-project.com/content/documentation.html">alot of documentation</a>, one of the major requirements for selection (in my case).</p>
<p>I decided to give it a go and use the framework on my latest project for EuPR (<a target="_blank" title="Plastics Recyclers" href="http://www.lifelog.be/www.plasticsrecyclers.eu">www.plasticsrecyclers.eu</a>), as the timeframe for this project was quite limited, i needed a good framework, with plenty of documentation to solve the issues i would run into&#8230;</p>
<p>A snippet from the <a class="external external external external external" title="About Symfony Framework" target="_blank" href="http://www.symfony-project.com/content/about.html">symfony about page</a> :</p>
<blockquote><p>Symfony is a <strong>web application framework</strong> for PHP5 projects.</p>
<p>It aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure.</p>
<p>The very small number of prerequisites make symfony <strong>easy to install</strong> on any configuration; you just need Unix or Windows with a web server and PHP 5 installed. It is compatible with almost every database system. In addition, it has a very <strong>small overhead</strong>, so the benefits of the framework don&#8217;t come at the cost of an increase of hosting costs.</p></blockquote>
<p>If you want to have a look at the results, go over to <a target="_blank" title="EPSE" href="http://www.lifelog.be/www.plasticsrecyclers.eu">plasticsrecyclers.eu</a>, i implented a login form, upload functionality (in different categories and a pager to browse through the various results of newsletters &#038; documents&#8230;Keep in note that this is a &#8220;non-released&#8221; website still open for feedback &#038; improvements&#8230;.</p>
<p>Whatta ya think ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifelog.be/2006/07/11/my-first-project-in-symfony/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internationalization &#8211; seo &#8211; mod_rewrite : Part 1</title>
		<link>http://www.lifelog.be/2006/07/10/internationalization-bot-crawling-php-mod_rewrite-part-1/</link>
		<comments>http://www.lifelog.be/2006/07/10/internationalization-bot-crawling-php-mod_rewrite-part-1/#comments</comments>
		<pubDate>Mon, 10 Jul 2006 14:57:17 +0000</pubDate>
		<dc:creator>snk00sj</dc:creator>
				<category><![CDATA[(x)HTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[PHP / MySQL]]></category>
		<category><![CDATA[Tech-Stuff]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[webhosting]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.lifelog.be/2006/07/10/internationalization-bot-crawling-php-mod_rewrite-part-1/</guid>
		<description><![CDATA[I am running a pretty big company website that uses multiple languages so users can browse the website in their language. Lately i have been working on the Search Engine Optimalisation, and i noticed google (and some other crawl bots) do not correctly crawl the other languages, this had something todo with various reasons : [...]]]></description>
			<content:encoded><![CDATA[<p>I am running a pretty big company website that uses multiple languages so users can browse the website in their language. Lately i have been working on the Search Engine Optimalisation, and i noticed google (and some other crawl bots) do not correctly crawl the other languages, this had something todo with various reasons :</p>
<ul>
<li>language selection was saved in session or by $_GET argument</li>
<li>meta language tag was not always set</li>
<li>there was no clear line how the language was selected, user couldn&#8217;t see by url which language he selected</li>
</ul>
<p>I did a few lookups on the internet, some various SEO forums, and i&#8217;ve collected this information and, with the help of Apache mod_rewrite, turned the website into a fancy, easy-to-use, multilanguage environment, and this is how i did it. I will explain you in 3 different parts, which i will try to finish in the upcoming 3 days&#8230;.</p>
<p>To start off i am using .xml files to hold all the different language strings, nowadays you can find some php frameworks that fully support i18n, but back in the days i was making international websites, they were not that commonly available. If you would go for a framework i would choose <a target="_blank" title="MVC Framework in PHP" class="external external external external external external external external external external" href="http://www.mojavi.org">Mojavi</a>, <a target="_blank" title="ANother MVC framework with I18N" class="external external external external external external external external external external" href="http://www.xisc.com">Prado</a> or <a target="_blank" title="Symfony Project" class="external external external external external external external external external external" href="http://www.symfony-project.com">Symfony</a>, i am not going to elaborate on that, as this post is not about frameworks, but howto put different languages on your website, and making sure google (and other search engines), crawl em like they should&#8230;.</p>
<p>Start off by making sure you have a <a target="_blank" title="Google Sitemaps" class="external external external external external external external external external external" href="https://www.google.com/webmasters/sitemaps/">google sitemaps</a> account and have a way to gather website statistics, very good would be a package where you can list the crawl bots seperately (i prefer awstats)</p>
<p>Sitemaps what/where went wrong when crawling your site. The Google Sitemaps program has two major components:</p>
<ul>
<li><a class="external external external external external external external external external external" href="http://www.google.com/support/webmasters/bin/topic.py?topic=8464">Google Sitemaps Console:</a> Provides statistics and error information about your site, as well as tools for managing your site.</li>
<li><a class="external external external external external external external external external external" href="http://www.google.com/support/webmasters/bin/topic.py?topic=8476">Google Sitemaps files:</a> Enable you to tell us what pages are present on your site.</li>
</ul>
<p>I&#8217;ll leave you the time to make sure you have both of the above items + it&#8217;s a really nice excuse to stop writing and do something else&#8230;Part II soon&#8230;</p>
<p><a title="Awstats" class="imagelink" onclick="doPopup(31);return false;" href="http://www.lifelog.be/wp-content/awstats.jpg"><img width="128" height="52" alt="Awstats" id="image31" src="http://www.lifelog.be/wp-content/awstats.thumbnail.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifelog.be/2006/07/10/internationalization-bot-crawling-php-mod_rewrite-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prado v3.0 alpha edition is out</title>
		<link>http://www.lifelog.be/2006/01/25/prado-v30-alpha-edition/</link>
		<comments>http://www.lifelog.be/2006/01/25/prado-v30-alpha-edition/#comments</comments>
		<pubDate>Wed, 25 Jan 2006 12:31:50 +0000</pubDate>
		<dc:creator>snk00sj</dc:creator>
				<category><![CDATA[frameworks]]></category>
		<category><![CDATA[PHP / MySQL]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[webdevelopment]]></category>

		<guid isPermaLink="false">http://www.lifelog.be/?p=18</guid>
		<description><![CDATA[I just got a very nice email concerning the release of an update of my favourite MVC php framework. We are very pleased to announce that PRADO 3.0 alpha version is now available for downloading. Please use PRADO v3 discussion for topics about this v3 alpha release. We are working on a new website at [...]]]></description>
			<content:encoded><![CDATA[<p>I just got a very nice email concerning the release of an update of my favourite MVC php framework.</p>
<blockquote><p>We are very pleased to announce that PRADO 3.0 alpha version is now available for downloading.  Please use PRADO v3 discussion for topics about this v3 alpha release. We are working on a new website at pradosoft.com which will be available upon v3 beta release.</p></blockquote>
<p>I got the 3.0a version just 5 minutes ago, because i am starting a new project with another user registration / signup, i decided to give <a href="http://www.xisc.com/">prado</a> a shot. Very nice is the <a title="prado v3 quickstart tutorial" href="http://www.pradosoft.com/prado3/demos/quickstart/index.php">v3 quickstart tutorial</a>, the guys over at <a href="http://www.xisc.com/">xisc</a> realize how important it is to have good user documentation / sample applications.</p>
<p>I used prado v2 before to develop a small intranet, and back then the <em>petshop example</em> (available by CVS) helped me quite alot trying to figure things out&#8230;and it seems like they are putting a big effort into <a title="prado wiki" href="http://www.xisc.com/wiki/index.php/Main_Page">documentation</a> once again. Another big advantage is that prado has a good / friendly community, decent questions on the <a target="_blank" href="http://www.xisc.com/forum/">forum</a> get a fast reply, and also developers are hanging around to help people as much as possible, keep up the good work guys ! i&#8217;m with ya !</p>
<p>Go get it over at <a title="XiSC" target="_blank" href="http://www.xisc.com/">xisc.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lifelog.be/2006/01/25/prado-v30-alpha-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

