<?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/"
	>

<channel>
	<title>Narnio</title>
	<atom:link href="http://www.narnio.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.narnio.com</link>
	<description>A day in the life of a software engineer</description>
	<pubDate>Sat, 03 Jan 2009 14:13:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Speeding Apache up using Compression</title>
		<link>http://www.narnio.com/2008/12/24/speeding-apache-up-using-compression/</link>
		<comments>http://www.narnio.com/2008/12/24/speeding-apache-up-using-compression/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 18:53:46 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Webdevelopment]]></category>

		<category><![CDATA[Website optimization]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[comperssion]]></category>

		<category><![CDATA[VPS]]></category>

		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=266</guid>
		<description><![CDATA[As of late I started to notice my little VPS server had more difficulty keeping up with the amount of data it has to sent to the webbrowsers. I knew that the amount of requests increased and after some tracking I found out that the average page size also increased.
Keep in mind the average page [...]]]></description>
			<content:encoded><![CDATA[<p>As of late I started to notice my little VPS server had more difficulty keeping up with the amount of data it has to sent to the webbrowsers. I knew that the amount of requests increased and after some tracking I found out that the average page size also increased.</p>
<p>Keep in mind the average page size is not only the size of the HTML but also adding the external CSS, JavaScript and images. Which could dramatically increase the amount of data the users are downloading. So I started looking in the compression options of <a title="Apache 2.0 documentation" href="http://httpd.apache.org/docs/2.0/" target="_blank">Apache 2.0</a></p>
<p>First I looked on the official Apache page, but as usual the data is probably available but not very user friendly. So after some testing and crashing I found out the following procedure which seems to work fine to enable compression per Virtual Host.</p>
<p>Firstly enable the module that supports compression by executing:</p>
<p><code>:&gt; ln -s /etc/apache2/mods-available/deflate.load /etc/apache2/mods-enabled/deflate.load</code></p>
<p>This will instruct Apache to load the needed library (module) for compression using GZip. The second thing you will need to do is add the following lines to every single <a title="The official documentation on Virtual Hosts" href="http://httpd.apache.org/docs/2.0/vhosts/examples.html" target="_blank">Virtual Host</a> you want to use compression on.</p>
<p><code>    &lt;Location / &gt;<br />
      SetOutputFilter DEFLATE<br />
      BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
      BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
      BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html<br />
    &lt;/Location&gt;<br />
</code></p>
<p>This will enable the compression for output (everything sent to the end-user) but not for incoming requests, which in my case is enough compression for right now. It also exludes some browsers that do not support compression.</p>
<p>Now restart or reload your apache by running the statement below and your website should support compression. This will make the loading of pages faster, though the client software needs to decompress the pages from this point on.</p>
<p><code>:&gt; etc/init.d/apache2 reload</code></p>
<p>If you have any trouble enabling compression just leave a message and I&#8217;ll try and help you where I can.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/12/24/speeding-apache-up-using-compression/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Setting up a mailserver, continued</title>
		<link>http://www.narnio.com/2008/12/15/setting-up-a-mailserver-continued/</link>
		<comments>http://www.narnio.com/2008/12/15/setting-up-a-mailserver-continued/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 19:35:08 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[authentication]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[dovecot]]></category>

		<category><![CDATA[mailserver]]></category>

		<category><![CDATA[plugin]]></category>

		<category><![CDATA[postfix]]></category>

		<category><![CDATA[smtp]]></category>

		<category><![CDATA[spamassassin]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=255</guid>
		<description><![CDATA[In my last article on how to setup a basic mail server in debian using postfix and dovecot, I am now continueing on how to setup some basic spam filters. The reason to split this up, well I was stupid and assumed I wouldn&#8217;t need a spam filter yet. But I forgot that I also [...]]]></description>
			<content:encoded><![CDATA[<p>In my last article on how to <a title="First article on setting up a basic Debian mail server" href="http://www.narnio.com/2008/12/08/debian-setting-up-a-postfix-and-dovecot-mail-server/">setup a basic mail server in debian using postfix and dovecot</a>, I am now continueing on how to setup some basic spam filters. The reason to split this up, well I was stupid and assumed I wouldn&#8217;t need a spam filter yet. But I forgot that I also moved one domain to my new mail server that got 200 spam messages a day.</p>
<p>So now to repair my mistake I am adding the following features to my already existing mail server. To find out how to setup the  mail server itself read my earlier article.</p>
<ul>
<li>Use spamassassin to mark spam in the header</li>
<li>Change the mail delivery to dovecot LDA, this is needed for step 3</li>
<li>Automatically move marked e-mails to the spam folder of the user</li>
</ul>
<p>Sounds easy right. Well it should be ;-).</p>
<p><span id="more-255"></span></p>
<h2>Install spamassassin and set it up in postfix</h2>
<p>The first step we will take is installing and setting up the spamassassin tool. First lets install it with the default options from Debian by running:</p>
<p>apt-get install spamassassin</p>
<p>Next we setup the basics of spamassassin configuration, the file called /etc/spamassassin/local.cf</p>
<p><code>report_safe        0<br />
required_score     2.0</code><br />
<code>use_bayes          1<br />
bayes_auto_learn   1<br />
use_bayes_rules    1</code></p>
<p><code># Some basic configuration<br />
score DCC_CHECK 4.000<br />
score SPF_FAIL 10.000<br />
score SPF_HELO_FAIL 10.000<br />
score RAZOR2_CHECK 2.500<br />
score BAYES_99 4.300<br />
score BAYES_95 3.500<br />
score BAYES_80 3.000</code></p>
<p><code># Headers to be added for all scanned messages<br />
add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_<br />
add_header all Level _STARS(*)_<br />
add_header all Checker-Version SpamAssassin _VERSION_ (_SUBVERSION_) on _HOSTNAME_</code></p>
<p>So what we&#8217;ve done so far is set spamassassin up to automatically learn from mail it receives and to mark anything with a bayes score over 2 as spam. But we still need to integrate it into postfix to get it to work. Add the following to the postfix configuration (/etc/postfix/master.cf):</p>
<p><code>spamassassin unix -     n       n       -       -       pipe<br />
 user=spamd argv=/usr/bin/spamc -f -e<br />
 /usr/sbin/sendmail -oi -f ${sender} ${recipient}</code></p>
<p>You will also need to change the smtp line in the same file to the following, this will set up spamassassin as a pre delivery filter:</p>
<p><code>smtp      inet  n     -     -     -     -     smtpd -o content_filter=spamassassin</code></p>
<p>This will add the spamassassin service as a unix service through a pipe connection. Sounds complicated but it&#8217;s really easy it basically uses a binary file to comunicate between postfix and spamassassin. Make sure the user <em>spamd</em> exists and create the folder <em>/usr/bin/spamc</em> with full access to the spamd user. Also edit the file spamassassin to the following:</p>
<p><code># /etc/default/spamassassin<br />
# Change to one to enable spamd<br />
ENABLED=1</code></p>
<p><code># SpamAssassin uses a preforking model, so be careful! You need to<br />
# make sure --max-children is not set to anything higher than 5,<br />
# unless you know what you're doing.<br />
SAHOME="/var/lib/spamassassin/"<br />
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SAHOME} -s ${SAHOME}spamd.log"<br />
PIDFILE="${SAHOME}spamd.pid"<br />
CRON=0</code></p>
<p>Make sure to create the directory <em>/var/lib/spamassassin</em> and give spamd full access right to it, otherwise the service might not run properly. Spamassassin is now setup and will start scanning your e-mail. So if all you are interested in is the header being changed to indicate if a message is spam then you are done. If you also wish yo move it to a different folder then continue reading.</p>
<h2>Settup Dovecot as LDA (Local Delivery Agent)</h2>
<p>Next step is setting up dovecot as the default LDA for postfix. This is needed to let dovecot filter messages into the proper locations. First setup the connection to the between postfix and dovecot by adding the following to the <em>/etc/postfix/master.cf</em>:</p>
<p><code>dovecot   unix  -       n       n       -       -       pipe<br />
 flags=DRhu user=dovecot:dovecot<br />
 argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient}</code></p>
<p>Please note that we now need to keep track of the fact that dovecot will be the user that is running this part of the mail server. So every file needed, log or configuration related, needs to be owned by dovecot:dovecot. I have had issues with files having the wrong owner so it is important! Before activating the postfix connection lets configure dovecot for LDA by editing the <em>/etc/dovecot/dovecot.conf</em> file. Add the following piece of code in the group auth default &gt;&gt; socket listen:</p>
<p><code>        master {<br />
          path = /var/run/dovecot/auth-master<br />
          user = dovecot<br />
          group= ssl-cert<br />
          mode = 0600<br />
        }<br />
</code></p>
<p>This will setup the authentication service that dovecot will use for delivering the e-mail to the correct user and authenticating users. Also add the following at the bottom of the file to configure the LDA of dovecot:</p>
<p><code>protocol lda {<br />
  mail_plugins = cmusieve<br />
  sieve_global_path = /etc/dovecot/globalsieverc/global.sieve<br />
  log_path = /var/log/dovecot-delivery_log<br />
  postmaster_address = <a href="mailto:noreply@domain.com">noreply@domain.com</a><br />
}</code></p>
<p><code>plugin {<br />
 sieve = /etc/dovecot/globalsieverc/global.sieve<br />
}</code></p>
<p>Again make sure that the user dovecot has full access to both the logfice and the global sieve directory (which you will need to make) :-). The plugin group is just for safety. I don&#8217;t know if it is needed but it doesn&#8217;t break anything. Also check the dovecot-mysql.conf that you made earlier to make sure that the uid and gid are those of the dovecot user. You can find this out by running:</p>
<p><code>:&gt; id dovecot</code></p>
<p>If this is all setup in dovecot restart it by running:</p>
<p><code>:&gt;/etc/init.d/dovecot force-reload</code></p>
<p>Now it is time to wrap things up and activate dovecot as the LDA for postfix, edit the file /etc/postfix/main.cf and change the virtual_transport from virtual to dovecot. Last but not least is creating the globe.sieve file.</p>
<p><code>:&gt; vi /etc/dovecot/globalsieverc/global.sieve</code></p>
<p><code>require ["fileinto"];<br />
if anyof (<br />
    header :contains ["X-Spam-Flag"] &#8220;Yes&#8221;<br />
) {<br />
    fileinto &#8220;Spam&#8221;; stop;<br />
}</code></p>
<p>Now restart postfix and send yourself a test mail. If everything is setup correctly it should be delivered to your mailbox. If not then first check &#8216;/var/log/mail.info&#8217; to gather some information as to what is going on. If this indicates a delivery was attempted but it failed then check &#8216;/var/log/dovecot-delivery_log&#8217; to find out more.</p>
<p>I hope you have fun using your spam free mail server. If you have any issues let me know, but please include snippets from the log as this will help me help you <img src='http://www.narnio.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/12/15/setting-up-a-mailserver-continued/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Debian Setting up a Postfix and Dovecot mail server</title>
		<link>http://www.narnio.com/2008/12/08/debian-setting-up-a-postfix-and-dovecot-mail-server/</link>
		<comments>http://www.narnio.com/2008/12/08/debian-setting-up-a-postfix-and-dovecot-mail-server/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 18:18:56 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Webdevelopment]]></category>

		<category><![CDATA[authentication]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[dovecot]]></category>

		<category><![CDATA[imap]]></category>

		<category><![CDATA[mailserver]]></category>

		<category><![CDATA[postfix]]></category>

		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=240</guid>
		<description><![CDATA[Ok over the weekend I spent some time to finally set up my personal mail server on the VPS system I have. I had been planning this for some time, and made several unsuccessful attempts. But this weekend after spending some hard time on it I finally got it working.
My setup is as follows:

Postfix as [...]]]></description>
			<content:encoded><![CDATA[<p>Ok over the weekend I spent some time to finally set up my personal mail server on the VPS system I have. I had been planning this for some time, and made several unsuccessful attempts. But this weekend after spending some hard time on it I finally got it working.</p>
<p>My setup is as follows:</p>
<ul>
<li>Postfix as a SMTP service</li>
<li>Dovecot as the IMAPS service and authentication service</li>
<li>MySQL as a storage location indicating the virtual email boxes and domains</li>
<li>PostfixAdmin as a package to manage the virtual domains and boxes</li>
</ul>
<p><span id="more-240"></span></p>
<h2>Installing the whole thing</h2>
<p>The first thing you might wanna do is install the needed services and applications on your Debian machine. You can install everything using:</p>
<p><code>apt-get install dovecot-common dovecot-imaps postfix</code></p>
<p>At this point I am asuming you already have MySQL installed and configured. If not then you should do so, but I won&#8217;t include that in this tutorial. The PostfixAdmin needs to be downloaded from <a href="http://sourceforge.net/projects/postfixadmin/">http://sourceforge.net/projects/postfixadmin/</a>. You will need to setup this somewhere on the webserver site, either in an already configured apache directory or by configuring a new one.</p>
<h2>Setting up everything in MySQL</h2>
<p>After everything is installed you will need to prepare everything in MySQL. Connect to your machine and run the following code to generate a database and tables in that database:</p>
<p><code>create database postfix;<br />
</code><code>grant all on postfix.* to postfix identified by 'postfix';<br />
grant all on postfix.* to postfixadmin identified by 'postfixadmin';<br />
set password for postfixadmin = old_password('postfixadmin');</code></p>
<p>This will setup the basic stuff for postfix and postfix admin to work. Next step is setting up the data for postfix. First configure the postfixAdmin plugin by setting some of the settings in &#8216;config.inc.php&#8217;.</p>
<h2>Setup Postfix configuration</h2>
<p>The next step is configuring Postfix to enable it to sent mails, use the MySQL database and login using the Dovecot application. The latter you will setup in a later stage. First open the <em>&#8216;/etc/postfix/main.cf&#8217;</em> file and change the entire content to something like:<br />
<code><br />
queue_directory = /var/spool/postfix<br />
command_directory = /usr/sbin<br />
daemon_directory = /usr/lib/postfix<br />
mail_owner = postfix</code><code>## Host name given by ISP<br />
myhostname = &lt;isp hostname&gt;<br />
mydomain   = &lt;domainname&gt;<br />
unknown_local_recipient_reject_code = 550<br />
debug_peer_level = 1</code></p>
<p><code># Virtual domain administration MySQL<br />
virtual_alias_maps      = mysql:/etc/postfix/mysql_virtual_alias_maps.cf<br />
virtual_gid_maps        = static:104<br />
virtual_mailbox_base    = /usr/postfix/<br />
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf<br />
virtual_mailbox_limit   = 51200000<br />
virtual_mailbox_maps    = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf<br />
virtual_minimum_uid     = 104<br />
virtual_transport       = virtual<br />
virtual_uid_maps        = static:104</code></p>
<p><code># The settings for the SASQL authentication using the autdaemon.<br />
smtpd_recipient_restrictions =<br />
   permit_mynetworks,<br />
   permit_sasl_authenticated,<br />
   reject_unauth_destination,<br />
   reject_unauth_pipelining,<br />
   reject_invalid_hostname,<br />
   reject_rbl_client list.dsbl.org,<br />
   reject_rbl_client sbl-xbl.spamhaus.org<br />
smtpd_sasl_auth_enable           = yes<br />
broken_sasl_auth_clients         = yes</code></p>
<p><code># Setup authentication using Dovecot<br />
smtpd_sasl_type = dovecot<br />
smtpd_sasl_path = private/auth<br />
</code><br />
In the above configuration you need to manually change the domain name to your primary domain and the ISP domain to the name given by your ISP. Another thing you must change is the number <em>104</em> this should be the UID of the <em>postfix</em> user on your system. You can find out what the UID is by running: </p>
<p> <code>id postfix</code></p>
<h2>Setting up the Postfix SQL files</h2>
<p>The last step in the postfix configuration is setting up the SQL files that instruct postfix on how to load the data from the MySQL database. Run the commands as instructed below.</p>
<p><code><strong>:&gt; vi /etc/postfix/mysql_virtual_mailbox_maps.cf</strong></code></p>
<p><code>user     = postfix<br />
password = &lt;password&gt;<br />
hosts    = &lt;ipaddress&gt;<br />
dbname   = postfix<br />
query    = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1</code></p>
<p><code><strong>:&gt; vi /etc/postfix/mysql_virtual_domains_maps.cf</strong></code></p>
<p><code>user     = postfix<br />
password = &lt;password&gt;<br />
hosts    = &lt;ipaddress&gt;<br />
dbname   = postfix<br />
query    = SELECT domain FROM domain WHERE domain='%s'</code></p>
<p><code><strong>:&gt; vi /etc/postfix/mysql_virtual_alias_maps.cf</strong></code></p>
<p><code>user     = postfix<br />
password = &lt;password&gt;<br />
hosts  = &lt;ipaddress&gt;<br />
dbname = postfix<br />
query  = SELECT goto FROM alias WHERE address='%s' AND active = 1</code> </p>
<p>Change the password and the host name to the ones as configured in your MySQL server. If everything went correct your postfix should be up and running by now. Please note that the logon when sending mail does not work yet as dovecot has not yet been configured.</p>
<h2>Configuring Dovecot</h2>
<p>Your last step should be easy. Edit the dovecot.conf file into the following.</p>
<p><code>protocols = imaps<br />
log_path  = /var/log/dovecot_log<br />
log_timestamp = "%Y-%m-%d %H:%M:%S "</code></p>
<p><code>default_mail_env      = maildir:/usr/postfix/%d/%n<br />
mail_privileged_group = mail<br />
first_valid_uid       = 100</code></p>
<p><code>protocol imap {<br />
  imap_client_workarounds = outlook-idle<br />
}</code></p>
<p><code>##<br />
## Authentication processes<br />
##<br />
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@<br />
auth default {<br />
  mechanisms = plain login<br />
  userdb sql {<br />
    args=/etc/dovecot/dovecot-mysql.conf<br />
  }<br />
  passdb sql {<br />
    args=/etc/dovecot/dovecot-mysql.conf<br />
  }<br />
  socket listen {<br />
    client {<br />
      path = /var/spool/postfix/private/auth<br />
      mode = 0660<br />
      user = postfix<br />
      group = postfix<br />
    }<br />
  }<br />
}<br />
</code></p>
<p>This simple configuration will enable dovecot to use IMAPS (you could also add POP or IMAP). The <em>auth default</em> group defines how to authenticate the user. In our case this is using the MySQL database to locate passwords and the directory of the user. We also define a socket in this group that indicates a location where Dovecot should offer the authentication service for other application, being Postfix in our case.</p>
<p>The last step for the dovecot setup is creating the query to find the data. Run the following command and then paste the code below:</p>
<p><code><strong>:&gt; vi /etc/dovecot/dovecot-mysql.conf</strong></code></p>
<p><code>driver = mysql<br />
connect = host=&lt;host&gt; dbname=postfix user=postfix password=&lt;password&gt;<br />
default_pass_scheme = CRYPT<br />
password_query = SELECT password FROM mailbox WHERE username = '%u'<br />
user_query = SELECT maildir, &lt;uid&gt; AS uid, &lt;uid&gt; AS gid FROM mailbox WHERE username = '%u'</code></p>
<p>You should change the host, password and UID. The UID is the one you previously obtained for postfix.</p>
<p>If everything is done correctly you can start adding domains, mailboxes and aliasses using PostfixAdmin. As well as starting the Postfix and dovecot service. You can do this by running:</p>
<p><code><strong>:&gt; /etc/init.d/dovecot start<br />
:&gt; postfix start</strong></code></p>
<p>And you&#8217;re all done. Congratulations you now have a mail service running on you Debian machine. If you have any difficulties please let me know and please post a snippet of the <em>&#8216;/var/log/mail.info&#8217;</em> to help me understand what&#8217;s going on. Trust me that I&#8217;ve probably seen most of the errors that you can encounter come by.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/12/08/debian-setting-up-a-postfix-and-dovecot-mail-server/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google found a way to crash Internet Explorer</title>
		<link>http://www.narnio.com/2008/12/07/google-found-a-way-to-crash-internet-explorer/</link>
		<comments>http://www.narnio.com/2008/12/07/google-found-a-way-to-crash-internet-explorer/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 13:23:55 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Search Engines]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=236</guid>
		<description><![CDATA[Ok today I came accross something really weird. I was trying to find information on setting up my own mail server using PostFix. No problem really, just used Google search to find the information.
The strange crashes started happening once I found a page that didn&#8217;t contain the information I needed and I hit the back [...]]]></description>
			<content:encoded><![CDATA[<p>Ok today I came accross something really weird. I was trying to find information on setting up my own mail server using PostFix. No problem really, just used Google search to find the information.</p>
<p>The strange crashes started happening once I found a page that didn&#8217;t contain the information I needed and I hit the back button. Every single time I did this Google crashed my tab with some type of cross scripting warning. Even when IE tried to recover the tab it crashed again. After the second crash IE just said, slightly paraphrased, &#8216;f*ck it the website keeps crashing go somewhere else instead!&#8217;.</p>
<p>So here is the steps to reproduce (as it crashed every single time):</p>
<ul>
<li>Use Internet Explorer 8</li>
<li>Have multiple tabs open, I had at least two in a google search result</li>
<li>I was logged into personalized search, don&#8217;t know if it is relevant but hey you never know</li>
<li>Click on of the search results</li>
<li>Hit the back button, or the backspace key</li>
<li>Presto crasho.</li>
</ul>
<p>Always fun to see how some javascript can crash a Internet Explorer tab. I am at least presuming it is caused by javascript.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/12/07/google-found-a-way-to-crash-internet-explorer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Netbeans 6.5 Final Release</title>
		<link>http://www.narnio.com/2008/12/05/netbeans-65-final-release/</link>
		<comments>http://www.narnio.com/2008/12/05/netbeans-65-final-release/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 10:47:47 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Webdevelopment]]></category>

		<category><![CDATA[beta]]></category>

		<category><![CDATA[debugging]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[netbeans]]></category>

		<category><![CDATA[upgrade]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=230</guid>
		<description><![CDATA[A short while back I wrote a quick review on the beta of Netbeans 6.5 and that it had some issues. Since the final version was released some time ago I thought it was time for a new review. This time of the final version.
The reason for me not to write one straight away was [...]]]></description>
			<content:encoded><![CDATA[<p>A short while back I wrote a quick review on the beta of Netbeans 6.5 and that it had some issues. Since the final version was released some time ago I thought it was time for a new review. This time of the final version.</p>
<p>The reason for me not to write one straight away was simple, I first wanna play around a little to find all the pleasant features and those less pleasant ones.</p>
<h3>Bigger, better, best</h3>
<p>The first thing you expect is this new version to be bigger, better and the best one yet. Well it is bigger in size, with 190MiB for just Java development. So this means a lot more time downloading, but hey that&#8217;s a one time thing.</p>
<p>So lets move onto something more relevant. Is it better then Netbeans 6.1. Lets summorize some of the issues I had with the previous version and see if the problem is solved:</p>
<ol>
<li>It crashed when working on larger projects. This issue has been fixed, netbeans won&#8217;t crash or hang. Though on occasion the parser may crash. Disabling autocomplete and syntax checking.</li>
<li>For some reason previous versions had difficulty displaying the names of parameters when using Java libraries. For as far as I&#8217;ve been able to determine this has been solved.</li>
<li>The autocomplete completely fails in some more complicated web projects. Well I&#8217;m sorry to say this is still true. For some projects not only does autocomplete fail, but so does the syntax checker, both for the JSP files as well as the Java Source files.</li>
</ol>
<p>So are there any other changes that would make you consider moving from Netbeans 5.5 to 6.5?</p>
<h3>New stuff you will like in Netbeans 6.5</h3>
<p>Well have there been any changes that would make you wanna switch to the new version.</p>
<ul>
<li>The new version actually has some basic debugging integrated of JavaScript. Though I haven&#8217;t got it working yet.</li>
<li>PHP development is now support. Which is a big plus, but it still kinda feels like a cheap addon that doesn&#8217;t work perfectly yet. (Maybe in the next release)</li>
<li>Thread debugging has been improved and made easier</li>
</ul>
<p>Unfortunattely not all is good in the world of Netbeans. There are also some new bugs, some of which are really annoying.</p>
<ul>
<li>For some unexplainable reason adding of libraries by right clicking the &#8216;Libraries&#8217; in the project view doesn&#8217;t work all the time.</li>
<li>Like I stated earlier the code completion fails in some of the older Java project I&#8217;m working on. Not only does code completion fail, but the syntax checker tells me every single line is wrong. Even though the project compiles beautifully <img src='http://www.narnio.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p>As a final note: is it worth upgrading to this version. Then I&#8217;d have to say hell yeah, it&#8217;s a lot better then previous versions. If you are a PHP developer however I suggest not using it, for the moment. Especially when you are already using Zend-Studio, which is still a lot better.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/12/05/netbeans-65-final-release/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SSH setup login using certificates</title>
		<link>http://www.narnio.com/2008/11/18/ssh-setup-login-using-certificates/</link>
		<comments>http://www.narnio.com/2008/11/18/ssh-setup-login-using-certificates/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 11:24:16 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Webdevelopment]]></category>

		<category><![CDATA[authentication]]></category>

		<category><![CDATA[certificate]]></category>

		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=228</guid>
		<description><![CDATA[Once you are running a linux server you can choose to do the login by username and password authentication or by certificate authentication. Personally I always choose for the latter as it is more difficult to intercept or hack in to.
Setting up certificate authentication is really simple. Just login to the machine as you would [...]]]></description>
			<content:encoded><![CDATA[<p>Once you are running a linux server you can choose to do the login by username and password authentication or by certificate authentication. Personally I always choose for the latter as it is more difficult to intercept or hack in to.</p>
<p>Setting up certificate authentication is really simple. Just login to the machine as you would normally. Change to the user you are setting-up a certificate for and enter:</p>
<p><code>ssh-keygen -t rsa</code></p>
<p>You will be prompted for a password twice. After this is completed two files will be generated. One being the public file and one being the prive file. You need to download the private file from the server and store it somewhere safe. The public key needs to be copied to:</p>
<p><code> ~/.ssh/authenticated_keys</code></p>
<p>After this you will be able to login to the server using your username and the private certificate. Please note that for Putty you will need to import the generated private key into puttygen and export it into a new private key. This is because Putty does not support the SSH generated private key.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/11/18/ssh-setup-login-using-certificates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Weird and complicated memory issues in C++</title>
		<link>http://www.narnio.com/2008/11/02/weird-and-complicated-memory-issues-in-c/</link>
		<comments>http://www.narnio.com/2008/11/02/weird-and-complicated-memory-issues-in-c/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 16:30:07 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[General Rant]]></category>

		<category><![CDATA[C++]]></category>

		<category><![CDATA[debugging]]></category>

		<category><![CDATA[memory management]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=226</guid>
		<description><![CDATA[Sometimes when you are developing you encounter the stranged errors. Today is just such a day. I&#8217;m right now having issues with memory access violations in on of the programs I&#8217;m developing.
This on its own is not that big of a deal, but I can&#8217;t seem to trace down why it&#8217;s happening. If I debug [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes when you are developing you encounter the stranged errors. Today is just such a day. I&#8217;m right now having issues with memory access violations in on of the programs I&#8217;m developing.</p>
<p>This on its own is not that big of a deal, but I can&#8217;t seem to trace down why it&#8217;s happening. If I debug the function that causes the error has no issues. No memory violations, but when I continue running (without debugging every single call) then all of a sudden at some point in time I get a memory access violation.</p>
<p>Now I don&#8217;t exactly know where it&#8217;s comming from. It may have something to do with the fact that the object I&#8217;m deleting is a prototype of a prototype. And also occasionally gives me an error during compile time that I have no destructor in the class. But when I compile the files one by one it does not give this error. And the class in question does have a default destructor.</p>
<p>Hmm, guess it&#8217;s time for some real line by line debugging and digging into the internet about the obscure error message I got.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/11/02/weird-and-complicated-memory-issues-in-c/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Upgrading my VPS to Debian Etch</title>
		<link>http://www.narnio.com/2008/10/12/upgrading-my-vps-to-debian-etch/</link>
		<comments>http://www.narnio.com/2008/10/12/upgrading-my-vps-to-debian-etch/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 15:25:02 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[General Rant]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[awstats]]></category>

		<category><![CDATA[debian]]></category>

		<category><![CDATA[SSL]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[VPS]]></category>

		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=216</guid>
		<description><![CDATA[You might have noticed it yesterday, or not ;). But my blog and several other websites hosted by me went offline yesterday for a couple of hours. Well this had to do with me upgrading the VPS to Debian Etch.
So far I ran every website on Debian Sarge, and though it&#8217;s stable they choose to [...]]]></description>
			<content:encoded><![CDATA[<p>You might have noticed it yesterday, or not ;). But my blog and several other websites hosted by me went offline yesterday for a couple of hours. Well this had to do with me upgrading the VPS to Debian Etch.</p>
<p>So far I ran every website on Debian Sarge, and though it&#8217;s stable they choose to no longer developer for it nor support it. So it was time to move to a newer version. Wich I did yesterday. Here&#8217;s some of the steps you should take before upgrading to the next version of Debian.</p>
<ul>
<li>Make a full backup of any website&#8217;s / databases / scripts running (don&#8217;t forget your crontab and logrotate files)</li>
<li>Copy the backup to a directory not affected by the upgrade. In my VPS the provider has one folder which will be left untouched, but also pull the backup to a local system (just in case ;))</li>
<li>Notify any other users also using your server, don&#8217;t want any suprises to potential paying customers.</li>
</ul>
<p>I was lucky that my hosting provider offers an easy way to upgrade or reinstall a Linux distro on the VPS. Just a couple of mouse clicks and they prepare the VPS for the installation. Please note that this will take up to an hour to complete. Once this base installation is complete you will want to perform the following steps:</p>
<ol>
<li>Un rar the backup of the websites / conf files and scripts (tar xf &lt;<em>tar name</em>&gt;) and move them to the right location.</li>
<li>Setup the proper user account /groups to have access to these files (or your users won&#8217;t be able to upload or change the website&#8217;s any more)</li>
<li>Install apache / PHP and mysql by running the following command:<br />
  apt-get install php5 mysql5-server apache2 mysqllib</li>
<li>Setup the apache conf file to load in your restored conf files (eg: <em>Include /export/conf/apache/*.conf</em>)</li>
<li>Replace the mysql <em>my.cnf</em> with the one you backed up previously</li>
<li>Enable the rewrite and ssl modules of apache (I forgot and got some upset calls :()</li>
</ol>
<p>From this point on your ready to go. All of the websites should be running without any problems. You do need to configure any other tools you had installed, like <a title="Article on how to setup AWStats" href="http://www.narnio.com/2008/03/26/setting-up-logrotation-with-awstats/">AWStats </a>/ <a title="Article on how to setup a Subversion system" href="http://www.narnio.com/2006/12/10/setting-up-a-dedicated-svn-server/">Subversion </a>or anything else. Though these should not require to much configuration as all of the configuration files where included in your backup. At least if you followed a setup similar to <a href="http://www.narnio.com/2007/08/11/configuring-a-debian-sarge-server-part-1/">my first article on setting up linux</a>.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/10/12/upgrading-my-vps-to-debian-etch/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Upgrading the HTC P3300, continued</title>
		<link>http://www.narnio.com/2008/09/13/upgrading-the-htc-p3300-continued/</link>
		<comments>http://www.narnio.com/2008/09/13/upgrading-the-htc-p3300-continued/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 19:58:25 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[General Rant]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Black&Blue]]></category>

		<category><![CDATA[HTC P3300]]></category>

		<category><![CDATA[Oops Black]]></category>

		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=209</guid>
		<description><![CDATA[After my first post on upgrading the HTC P3300 (Dopod P800 in the US) some time back it&#8217;s time for yet another post on this, see &#8216;Windows Mobile 6 on HTC P3300&#8242;.
This time round I&#8217;ve been playing around with two seperate versions of custom ROMs for the HTC P3300. The first one I&#8217;ve looked at [...]]]></description>
			<content:encoded><![CDATA[<p>After my first post on upgrading the HTC P3300 (Dopod P800 in the US) some time back it&#8217;s time for yet another post on this, see <a title="Upgrading to Windows Mobile 6" href="http://www.narnio.com/2007/09/07/setting-up-windows-mobile-6-on-htc-p3300/">&#8216;Windows Mobile 6 on HTC P3300&#8242;</a>.</p>
<p>This time round I&#8217;ve been playing around with two seperate versions of custom ROMs for the HTC P3300. The first one I&#8217;ve looked at is the &#8216;Black&amp;Blue 5.0&#8242; ROM, written by Tom. The second one is the &#8216;Oops Black 1.0&#8242; also written by Tom. If you need information on how to install these ROMs then look at my earlier article and follow those steps, except you don&#8217;t install the Windows Mobile 6.0 ROM but one of the two below.</p>
<h2>Black&amp;Blue 5.0</h2>
<p><a href="http://www.narnio.com/wp-content/uploads/2008/09/niki-project-v101.png"></a></p>
<div style="float:right">
<div id="attachment_210" class="wp-caption alignright" style="width: 310px"><a href="http://www.narnio.com/wp-content/uploads/2008/09/niki-project-v101.png"><img class="size-medium wp-image-210" title="Black&amp;Blue 5.0" src="http://www.narnio.com/wp-content/uploads/2008/09/niki-project-v101-300x200.png" alt="Image of ROM Black&amp;Blue 5.0" width="300" height="200" /></a><p class="wp-caption-text">Image of ROM Black&amp;Blue 5.0</p></div>
</div>
<p>The main reason for me to use this ROM was that it was build on top of Windows Mobile 6.1. Why was this so important you may think. Well let me list a couple of nice new features in:</p>
<ul>
<li>Better usability with out using the styles</li>
<li>A lot faster</li>
</ul>
<p>Though it&#8217;s not a big list the first one was reason enough for me. Finally a Windows Mobile version that I don&#8217;t need a styles to operate. Some of the parts I really liked about this ROM was that it was really fast. And even better really stable. I&#8217;ve had no problems what so ever using this ROM.</p>
<p><a title="Download Black&amp;Blue 5.0" href="http://media.narnio.com/Gadgets/Tom_B_B_v5.0_without_cube.rar">You can download the ROM Black&amp;Blue 5.0 here.</a></p>
<h2>Oops Black 1.0</h2>
<div style="float: right">
<div id="attachment_211" class="wp-caption alignright" style="width: 310px"><a href="http://www.narnio.com/wp-content/uploads/2008/09/arte-pro1.png"><img class="size-medium wp-image-211" title="Oops Black 1.0" src="http://www.narnio.com/wp-content/uploads/2008/09/arte-pro1-300x200.png" alt="Image of the Oops Black 1.0 ROM" width="300" height="200" /></a><p class="wp-caption-text">Image of the Oops Black 1.0 ROM</p></div>
</div>
<p>Like I stated before the second ROM I tested was a relatively new one written by Tom. The base of this ROM is identical to the Black&amp;Blue one. It&#8217;s also running on Windows Mobile 6.1 and has more or less the same applications installed. One huge difference is that this ROM is attempting to emulate the Touch Diamond style.</p>
<p>For those of you interested in this please let me give you a warning in advance. The ROM looks a lot like the Touch Diamond, but it&#8217;s behaviour is nothing like it. So if you are interested in the eye-candy this ROM is for you. If you want the functionality behind it then buy the new phone.</p>
<p><a title="Download Oops Black 1.0" href="http://media.narnio.com/Gadgets/Tom-Oops-Black-v1.0-WWE.rar">You can download the Oops Black 1.0 here.</a></p>
<p><strong>Warning notice:</strong> Please note that both of these ROMs have been written by a 3rd party, which means you&#8217;r phone operator will not support you if your phone breaks. As to support from HTC they might, but you did modify the phone without approval.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/09/13/upgrading-the-htc-p3300-continued/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Netbeans 6.5 short follow up</title>
		<link>http://www.narnio.com/2008/08/21/netbeans-65-short-follow-up/</link>
		<comments>http://www.narnio.com/2008/08/21/netbeans-65-short-follow-up/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 18:57:33 +0000</pubDate>
		<dc:creator>Jongerius</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[General Rant]]></category>

		<category><![CDATA[Webdevelopment]]></category>

		<category><![CDATA[beta]]></category>

		<category><![CDATA[netbeans]]></category>

		<guid isPermaLink="false">http://www.narnio.com/?p=208</guid>
		<description><![CDATA[Ok a very short follow up on my previous Netbeans 6.5 impression. Previously I stated that I had some serious problems with the debugging. It failed to indicate which line I was on.
After some research and some more debugging this only appears to happen when debugging jsp files or jspf files. For a beta that [...]]]></description>
			<content:encoded><![CDATA[<p>Ok a very short follow up on my previous <a title="Netbeans 6.5 Beta impression" href="http://www.narnio.com/2008/08/16/netbeans-65-beta/">Netbeans 6.5 impression</a>. Previously I stated that I had some serious problems with the debugging. It failed to indicate which line I was on.</p>
<p>After some research and some more debugging this only appears to happen when debugging <em>jsp</em> files or <em>jspf</em> files. For a beta that is something I can live with. Beyond that the debugger works like a charm.</p>
<p>I did however found some other issues:</p>
<ul>
<li>Randomly crashes when right clicking in the project view, seems to have something to do with the parsing of the tree that renders the window.</li>
<li>You cannot use code completion inside a switch clause. The autocomplete crashes.</li>
<li>Random crashes when debugging and selecting static variables for modifying their values in code.</li>
</ul>
<p>To be fair I have to say I never got Netbeans itself to crash. But you do get an exception window that asks you to file a bug report.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://www.narnio.com">Narnio</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@jong-soft.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://www.narnio.com/2008/08/21/netbeans-65-short-follow-up/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
