<?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>markus' blog &#187; Coding</title>
	<atom:link href="http://markus.fischer.name/about/archives/category/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://markus.fischer.name/about</link>
	<description>babblings!</description>
	<lastBuildDate>Sun, 26 Apr 2009 20:35:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PHP: Memory leak in implicit __toString() call with certain functions</title>
		<link>http://markus.fischer.name/about/archives/2007/11/30/php-memory-leak-in-implicit-__tostring-call-with-certain-functoins/</link>
		<comments>http://markus.fischer.name/about/archives/2007/11/30/php-memory-leak-in-implicit-__tostring-call-with-certain-functoins/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 11:03:35 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/archives/2007/11/30/php-memory-leak-in-implicit-__tostring-call-with-certain-functoins/</guid>
		<description><![CDATA[See the gory details in http://bugs.php.net/bug.php?id=43450. Basically, there are function which expect strings and the implicit _toString() call on an object will leak memory. Testcase: &#60; ?php class Foo { function __toString() { return 'foo'; } } for ($i = 0; $i &#60; 1e5; $i++) { $o = new Foo; # leaks md5($o); # does [...]]]></description>
			<content:encoded><![CDATA[<p>See the gory details in <a href="http://bugs.php.net/bug.php?id=43450" target="_blank">http://bugs.php.net/bug.php?id=43450</a>.</p>
<p>Basically, there are function which expect strings and the implicit _toString() call on an object will leak memory. Testcase:</p>
<pre>
&lt; ?php
    class Foo {
        function __toString() {
            return 'foo';
        }
    }
    for ($i = 0; $i &lt; 1e5; $i++) {

        $o = new Foo;

        # leaks
        md5($o);
        # does not leak
        #md5($o-&gt;__toString());

        # does not leak either way
        # strstr($o, 'f');
        #strstr($o-&gt;__toString(), 'f');

        if ($i % 1e3 == 0) {
            printf("%u: %1.2f KB\n",
                $i, memory_get_usage(true) / 1024);
        }
    }</pre>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2007/11/30/php-memory-leak-in-implicit-__tostring-call-with-certain-functoins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript parsing: bootleneck?</title>
		<link>http://markus.fischer.name/about/archives/2007/08/17/javascript-parsing-bootleneck/</link>
		<comments>http://markus.fischer.name/about/archives/2007/08/17/javascript-parsing-bootleneck/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 11:44:22 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[JS]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/archives/2007/08/17/javascript-parsing-bootleneck/</guid>
		<description><![CDATA[While hacking on performance and a soon to be released customer site, it occurred to me that parsing the JavaScript we use is a pretty huge bottleneck. For CSS and JavaScript we use minification and compression and we even use domain aliases to parallel image/resource downloads. We currently haven&#8217;t the templates connected to the CMS [...]]]></description>
			<content:encoded><![CDATA[<p>While hacking on performance and a soon to be released customer site, it occurred to me that parsing the JavaScript we use is a pretty huge bottleneck. For CSS and JavaScript we use minification and compression and we even use domain aliases to parallel image/resource downloads.</p>
<p>We currently haven&#8217;t the templates connected to the CMS yet, but the raw time is currently between 700 and 900ms. Maybe it can be justified because the layout isn&#8217;t Web 1.0 style (i.e. many round corners, shadows, etc.).</p>
<p>What puzzled me was the &#8220;loading time of JavaScript was around 300ms&#8221;, see this picture:</p>
<p><img src="http://markus.fischer.name/about/wp-content/uploads/2007/08/js-loadandparse2.png" alt="Loading and parsing time of JavaScript" /></p>
<p>That&#8217;s quite a long time. It may is not that good visible from the chart, but nearly everything following the JavaScript is hold until it is read, which delays the complete loading of the rest of the page.</p>
<p>Since behind the scenes the actual request is in reality using <a href="http://code.google.com/p/minify/" target="_blank">Minify</a>, it&#8217;s not just plain serving (but for this scenario the JavaScript has already been cached).</p>
<p>So I took a look just at the JavaScript loading, see this:</p>
<p><img src="http://markus.fischer.name/about/wp-content/uploads/2007/08/js-justload1.png" alt="Just loading, like text." /></p>
<p>What&#8217;s that? Roughly 30ms vs 300ms?</p>
<p>The only realistic guess I&#8217;ve at the moment is: <em>parsing </em>the JavaScript.</p>
<p>This single request loads the following libraries:</p>
<ul>
<li> behaviour</li>
<li>prototype</li>
<li>scriptaculous (+effects)</li>
<li>yui: yahoo-dom-event</li>
<li>yui: container_core</li>
<li>yui: menu.js</li>
<li>our own small JavaScript parts</li>
</ul>
<p>Maybe I&#8217;m too optimistic but it hit me a bit that JavaScript parsing still does take so long. Given that the JavaScript is cached (ideally) things such a huge problem, but still. It was frustrating that I could trim down the &gt;1s request to ~700ms but not further and for most of the part just because it takes as long as it needs it.</p>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2007/08/17/javascript-parsing-bootleneck/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Behaviour and possible bug in getElementsBySelector</title>
		<link>http://markus.fischer.name/about/archives/2006/10/09/behaviour-and-possible-bug-in-getelementsbyselector/</link>
		<comments>http://markus.fischer.name/about/archives/2006/10/09/behaviour-and-possible-bug-in-getelementsbyselector/#comments</comments>
		<pubDate>Mon, 09 Oct 2006 13:48:17 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[JS]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/archives/2006/10/09/behaviour-and-possible-bug-in-getelementsbyselector/</guid>
		<description><![CDATA[Lately I&#8217;ve been banging my head against my keyboard because of a double event assigning bug I expirienced when using Behaviour from Ben Nolan. Tracking done the beast I found that the class pattern matching in Behaviour, which is done through the getElementsBySelector implementation from Simon Willison, uses word boundary matching which I think is [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been banging my head against my keyboard because of a <em>double event assigning</em> bug I expirienced when using <a target="_blank" href="http://bennolan.com/behaviour/">Behaviour </a>from Ben Nolan.<br />
Tracking done the beast I found that the class pattern matching in Behaviour, which is done through the <a target="_blank" href="http://simon.incutio.com/archive/2003/03/25/getElementsBySelector">getElementsBySelector </a>implementation from <a target="_blank" href="http://simon.incutio.com/">Simon Willison</a>, uses word boundary matching which I think is not the most suitable solutation for this.</p>
<p>My selector looked like <tt>.menu</tt> and unfortunately it also did match <tt>div class="menu-selector"</tt> in my code. This is because a dash also counts as word boundary when using Javascript <tt>\b</tt> pattern.</p>
<p>I modified the class matching regular expression do the following</p>
<p><tt>'(^|\s)' + className + '($|\s)'</tt></p>
<p>and this did work very well for me.</p>
<p>I&#8217;m currently trying to contact Simon Willison about his opinion whether this change is a good idea or not, I&#8217;ll update this post once I&#8217;ve received feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2006/10/09/behaviour-and-possible-bug-in-getelementsbyselector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysqltail</title>
		<link>http://markus.fischer.name/about/archives/2006/09/19/mysqltail/</link>
		<comments>http://markus.fischer.name/about/archives/2006/09/19/mysqltail/#comments</comments>
		<pubDate>Tue, 19 Sep 2006 14:46:51 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/archives/2006/09/19/mysqltail/</guid>
		<description><![CDATA[I&#8217;ve hacked together a little PHP script which allows to filter mysql log files for sql statements issued by specific users. Basic usage: php mysqltail.php /var/log/mysql.log userToFilter [orOtherUser] It can also be used to pipe an existing logfile: cat mysql.log &#124; php mysqltail.php - userToFilter Download: http://markus.fischer.name/lab/php/mysqltail.php.txt]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve hacked together a little PHP script which allows to filter mysql log files for sql statements issued by specific users.</p>
<p>Basic usage:</p>
<p><tt>php mysqltail.php /var/log/mysql.log userToFilter [orOtherUser]</tt></p>
<p>It can also be used to pipe an existing logfile:</p>
<p><tt>cat mysql.log | php mysqltail.php - userToFilter</tt></p>
<p>Download:  <a target="_blank" href="http://markus.fischer.name/lab/php/mysqltail.php.txt">http://markus.fischer.name/lab/php/mysqltail.php.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2006/09/19/mysqltail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web-developing, subversion and multi-developer environment</title>
		<link>http://markus.fischer.name/about/archives/2006/07/12/web-developing-subversion-and-multi-developer-environment/</link>
		<comments>http://markus.fischer.name/about/archives/2006/07/12/web-developing-subversion-and-multi-developer-environment/#comments</comments>
		<pubDate>Wed, 12 Jul 2006 05:57:42 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/archives/2006/07/12/web-developing-subversion-and-multi-developer-environment/</guid>
		<description><![CDATA[One of the often encountered problems when developing application in the web environment is their complex setup. It&#8217;s not like a desktop application that you can check out, compile and run the source. You need a proper server environment where your application can run, the components need to have the required version, etc. Setting up [...]]]></description>
			<content:encoded><![CDATA[<p>One of the often encountered problems when developing application in the web environment is their complex setup. It&#8217;s not like a desktop application that you can check out, compile and run the source.</p>
<p>You need a proper server environment where your application can run, the components need to have the required version, etc. Setting up web server is not hard but tuning all required parameters takes time. And usually in a team of developers someone is responsible for the configuration management; and there&#8217;s a reason for that.</p>
<p>Because of the resources it takes to set up such an environment, the common sense when developing applications is usually that there&#8217;s one server for all developers and that there are one or two fixed checkouts of a project. That&#8217;s a bit against the philosophy on how versioning systems are designed to work. Each and every developer should have its own checkout. But with a complex environment it&#8217;s not always feasable to have this process. When it takes so much resources to have the central development server fine tuned you can bet it takes even more for local development on the developers computer.</p>
<p>My goal was that we have flexibility:</p>
<ul>
<li>have a place were we check out a complte project and multiple (!) developer can work on one checkout (traditional)</li>
<li>have a place for each developer on the development server where he can check out as many custom web projects as he wants</li>
<li>make it next to zero work to create new apache configurations for new projects (VirtualHosts, etc.)</li>
</ul>
<p>I solved this with a small PHP class and some shell scripting, which basically can generate working apache VirtualHosts configuration on the fly. For this we need to know a few things first:</p>
<ul>
<li>the path where the apache configuration templates are stored</li>
<li>the path to the common checked out projects</li>
<li>the base directory for user specific checked out projects</li>
<li>where to generate the PHP5 apache configuration</li>
<li>where to generate the PHP4 apache configuration</li>
</ul>
<p>To recognize a directory whether it is a project to be enabled for apache we&#8217;ve the following rules for the directory name:</p>
<p>.php4|.php5[.extern]</p>
<p>Within the directory name is the distinction whether it&#8217;s an PHP4 or PHP5 project. That&#8217;s necessary because we&#8217;re running two instances of apache for each version of PHP so we can run both versions as apache modules.</p>
<p>The other directive, .extern, tells us that we want to public this project from our development server live on the internet. Why? Well, customers are everthing but patient, so it happens quite often we hand out URLs of our current development state to our customers. This also means we have to generate separate VirtualHost configuration for those projects.</p>
<p>The same rule applies to the user specific project directory, except that we don&#8217;t support .extern there, see below we.</p>
<p>Every project generated from those rules may have the following URLs:</p>
<p>project.dev.company.tld</p>
<p>For e.g. project.php4, not accessibe for customers</p>
<p>project.live.company.tld</p>
<p>For e.g. project.php5.extern</p>
<p>And for user specific checkouts:</p>
<p>project.username.dev.company.tld</p>
<p>In the end it&#8217;s dead simple. It took me about 2 days to gather the requirements, talk with the other developers how we could approach this and implement the soluation. Thanks to apaches Include *.conf directive it&#8217;s really easy to dynamically generate VirtualHosts and tell apache to restart.</p>
<p>Since ever developer within our company should be able to create new VirtualHosts config on demand, I provided a basic web interface which generates the apache configuration and restarts apache. Restarting apache from within PHP was a bit problematc, because you need to</p>
<ul>
<li>have the proper permissions to restart apache from user www-data (I&#8217;m using Debian)</li>
<li>take care that running a PHP script which stops apache also terminates this very PHP script</li>
</ul>
<p>To solve the permission problem I used sudo and creates a sudoers file like this:</p>
<p>Cmnd_Alias  WWWEXEC = /data/www/intern/magic-config/generate.sh<br />
www-data ALL = (root) NOPASSWD: WWWEXEC</p>
<p>To properly execute this script I had to put it into background immidiately so it is decoupled from the PHP script:</p>
<p>exec(&#8220;sudo /data/www/intern/magic-config/generate.sh&#038;&#8221;);</p>
<p>The generate.sh shell script restarts apache.<br />
At the moment I do not plan to release the code for two reasons:</p>
<ol>
<li>I would need to get permission from my company, but if someone think he would really benefit from it, I may ask for it</li>
<li>It may be to specific anyway to our environment</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2006/07/12/web-developing-subversion-and-multi-developer-environment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PEARs HTTP_Client and custom User-Agent</title>
		<link>http://markus.fischer.name/about/archives/2006/02/24/pears-http_client-and-custom-user-agent/</link>
		<comments>http://markus.fischer.name/about/archives/2006/02/24/pears-http_client-and-custom-user-agent/#comments</comments>
		<pubDate>Fri, 24 Feb 2006 09:51:39 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/archives/2006/02/24/pears-http_client-and-custom-user-agent/</guid>
		<description><![CDATA[The only way to get a custom User-Agent string to HTTP_Client is by deriving HTTP_Client and overloading the method _createRequest. Although HTTP_Client with its constructor provides a way to pass custom headers, the User-Agent header is also set inside HTTP_Request (create by HTTP_Client) which overrides any earlier value.]]></description>
			<content:encoded><![CDATA[<p>The only way to get a custom User-Agent string to HTTP_Client is by deriving HTTP_Client and overloading the method _createRequest.</p>
<p>Although HTTP_Client with its constructor provides a way to pass custom headers, the User-Agent header is also set inside HTTP_Request (create by HTTP_Client) which overrides any earlier value.</p>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2006/02/24/pears-http_client-and-custom-user-agent/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First steps with PDO in PHP 5.1</title>
		<link>http://markus.fischer.name/about/archives/2006/02/05/first-steps-with-pdo-in-php-51/</link>
		<comments>http://markus.fischer.name/about/archives/2006/02/05/first-steps-with-pdo-in-php-51/#comments</comments>
		<pubDate>Sun, 05 Feb 2006 20:23:09 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/archives/2006/02/05/first-steps-with-pdo-in-php-51/</guid>
		<description><![CDATA[Environment: Windows, CLI, using pdo_odbc. Here are some observations from my first steps with the new PDO extension. Good: Exception-Safe (with PDO::ERRMODE_EXCEPTION) I wonder how one could every seriously write good application without exceptions (i.e. proper and predictable error handling) Simple, easy API The API is so easy, it has so less methods and therefore [...]]]></description>
			<content:encoded><![CDATA[<p>Environment: Windows, CLI, using pdo_odbc.</p>
<p>Here are some observations from my first steps with the new PDO extension.</p>
<p>Good:</p>
<ul>
<li><strong>Exception-Safe</strong> (with PDO::ERRMODE_EXCEPTION)<br />
I wonder how one could every seriously write good application without exceptions (i.e. proper and predictable error handling)</li>
<li><strong>Simple, easy API</strong><br />
The API is so easy, it has so less methods and therefore is easy to grasp. It may all back in complex situations but that I cannot tell that at the moment.</li>
</ul>
<p>Not so good:</p>
<ul>
<li><strong>Bound parameters/values not working as expected</strong><br />
I&#8217;m not yet sure if it&#8217;s because I use pdo_odb or something else. What I tried, I couldn&#8217;t get it to working, no matter which way I tried. So I had to revert to using variables direct in the SQL statement.</li>
<li><strong>Crashes</strong><br />
PDO has the bad habit that it crashes PHP where it can. Since I&#8217;m under Windows and I&#8217;ve no Windows C IDE I can&#8217;t help in debugging this problems myself but can only try to come up with reproduceable scripts. PDO seems to completely go havoc when you use the <span style="font-weight: bold">PDO::FETCH_LAZY</span> attribute on PDO::query(). With havoc I mean that it throws back to you errors which aren&#8217;t a direct result of using FETCH_LAZY. I observed that I got two different kind of exceptions (Yes, I do love them) when using FETCH_LAZY. Both were Microsoft Access Driver problems, but they didn&#8217;t showed up once I stopped using FETCH_LAZY. One problem was error code 1311 and the other 1310. The former has something to do with running out of memory and the second one with an invalid table id.Then it seems, unreproduceable in small scripts, that it crashes when doing clean up at the end of the script. So basically, you&#8217;re doing your thing and when the script ends it gives you the <em>send report to microsoft</em> dialog</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2006/02/05/first-steps-with-pdo-in-php-51/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse code editor &#8211; full featured but &#8230;</title>
		<link>http://markus.fischer.name/about/archives/2005/11/30/eclipse-code-editor-full-features-but/</link>
		<comments>http://markus.fischer.name/about/archives/2005/11/30/eclipse-code-editor-full-features-but/#comments</comments>
		<pubDate>Wed, 30 Nov 2005 08:37:52 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/archives/2005/11/30/eclipse-code-editor-full-features-but/</guid>
		<description><![CDATA[Eclipse has really a full featured code editor, proving many goodies: code folding, code commenting, jump-to-declaration, code complition, outline view, etc. But, there&#8217;s one thing I really miss: editor split view. I&#8217;ve been using it for years in Vim: split horizontal, split vertical, make a quad-view; whatever. And I also discovered, having outline view or [...]]]></description>
			<content:encoded><![CDATA[<p>Eclipse has really a full featured code editor, proving many goodies: code folding, code commenting, jump-to-declaration, code complition, outline view, etc.</p>
<p>But, there&#8217;s one thing I really miss: editor split view. I&#8217;ve been using it for years in <a href="http://www.vim.org/">Vim</a>: split horizontal, split vertical, make a quad-view; whatever. And I also discovered, having outline view or not, I&#8217;m not much less faster than splitting a window in Vim and searching for the identifier to jump to the declartion. And still see where I&#8217;m currently in my code.</p>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2005/11/30/eclipse-code-editor-full-features-but/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My SSL certificates modulus don&#8217;t match, what&#8217;s wrong?</title>
		<link>http://markus.fischer.name/about/archives/2005/11/23/my-ssl-certificates-modulus-dont-match-whats-wrong/</link>
		<comments>http://markus.fischer.name/about/archives/2005/11/23/my-ssl-certificates-modulus-dont-match-whats-wrong/#comments</comments>
		<pubDate>Wed, 23 Nov 2005 12:01:00 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/?p=92</guid>
		<description><![CDATA[I want to use a self-signed CA for testing purposes. I&#8217;ve therefore created a CA certificate and a client cert. The problem I&#8217;m having is that, for some reason, the client key and cert moduli do not match. I&#8217;m using these commands to create the CA: openssl genrsa -des3 -out ca.key 1024 openssl req -new [...]]]></description>
			<content:encoded><![CDATA[<p>I want to use a self-signed CA for testing purposes. I&#8217;ve therefore created a CA certificate and a client cert. The problem I&#8217;m having is that, for some reason, the client key and cert moduli do not match.</p>
<p>I&#8217;m using these commands to create the CA:<br />
<code><br />
openssl genrsa -des3 -out ca.key 1024<br />
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt<br />
</code><br />
then I used these commands to create the client key/cert:<br />
<code><br />
openssl genrsa -out client.key 1024<br />
openssl req -new -key ca.key -in client.key -out client.csr<br />
sh sign.sh client.csr<br />
</code><br />
The <code>sign.sh</code> script is part of the libapache-mod-ssl package in Debian sarge.</p>
<p>At this point I end up with a client.crt.</p>
<p>When I now compare the modulus of the key and the crt file, they differ and I get the following error in apache:</p>
<p><code>OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch</code></p>
<p>In fact I discovered that the modulus in the csr already differs.<br />
<code><br />
$ openssl rsa -noout -modulus -in client.key<br />
Modulus=BF30F9CAA7C092CE...<br />
$ openssl req -noout -modulus -in client.csr<br />
Modulus=BF4E6276BF5CDFC7...<br />
</code><br />
I actually was using these steps a year ago in another environment and it worked.</p>
<p>The openssl version I&#8217;m using is OpenSSL 0.9.7e 25 Oct 2004.</p>
<p>Any ideas?</p>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2005/11/23/my-ssl-certificates-modulus-dont-match-whats-wrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL 4.0: default character set affecting behaviour of UNIQUE</title>
		<link>http://markus.fischer.name/about/archives/2005/11/22/mysql-40-default-character-set-affecting-behaviour-of-unique/</link>
		<comments>http://markus.fischer.name/about/archives/2005/11/22/mysql-40-default-character-set-affecting-behaviour-of-unique/#comments</comments>
		<pubDate>Tue, 22 Nov 2005 08:27:46 +0000</pubDate>
		<dc:creator>markus</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://markus.fischer.name/about/?p=91</guid>
		<description><![CDATA[A few weeks ago I discovered that the default latin1 character set of the MySQL server does sorting by rules of the swedish character sets. This doesn&#8217;t work in my country so I choose latin1_de which handles umlauts properly. What I didn&#8217;t expected is that this also affects the behaviour of the UNIQUE index. Before [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago <a title="Links to a forum in german language" href="http://www.overclockers.at/showthread.php?s=&#038;threadid=152435">I discovered</a> that the default <em>latin1 </em>character set of the MySQL server does sorting by rules of the swedish character sets. This doesn&#8217;t work in my country so I choose <em>latin1_de</em> which handles umlauts properly.</p>
<p>What I didn&#8217;t expected is that this also affects the behaviour of the UNIQUE index. Before the change, the words &#8216;Grossschlögl&#8217; and &#8216;Großschlögl&#8217; where different. Now, after the change, the behavour due to my changed character set was, that these words where suddenly equal. And during an import I couldn&#8217;t import both words into the table because the column is a unique column. To successfully finish the import I had to temporarely use the old latin1 character set.</p>
]]></content:encoded>
			<wfw:commentRss>http://markus.fischer.name/about/archives/2005/11/22/mysql-40-default-character-set-affecting-behaviour-of-unique/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
