<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.6(BH)" -->
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Rambos blog</title>
    <subtitle></subtitle>
    <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/"/>
    <id>http://oldmidgard.hurttakallio.net/rambo/blog/</id>
    <updated>2010-03-10T09:56:42+00:00</updated>
    <generator>FeedCreator 1.7.6(BH) (info@mypapit.net)</generator>
    <link rel="self" type="application/atom+xml" href="http://oldmidgard.hurttakallio.net/rambo/blog/atom.xml" />
    <entry>
        <title>Back on-line</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/back_on-line/"/>
        <published>2009-03-31T19:59:01+00:00</published>
        <updated>2009-03-31T19:59:01+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-611ad1361e2e11de8e701f71fb97aca4aca4</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>Been a while eh ?</p>

<p>Well now I got the old backups on-line on my new <a href="http://www.nexenta.org">Nexenta</a> box, after some interesting hours of trying to get Midgard to compile on Opensolaris (and then run without segfaulting all the time).</p>

<p>Now sleep calls.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>Been a while eh ?</p>

<p>Well now I got the old backups on-line on my new <a href="http://www.nexenta.org">Nexenta</a> box, after some interesting hours of trying to get Midgard to compile on Opensolaris (and then run without segfaulting all the time).</p>

<p>Now sleep calls.</p>
]]></summary>
    </entry>
    <entry>
        <title>Did I mention DM2 can do Anti-Virus scans now</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/1197395356/"/>
        <published>2007-12-11T17:49:16+00:00</published>
        <updated>2007-12-11T17:49:16+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-642b18aca81111dcbe74b58d0e9aeb55eb55</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>In trunk and branch-28 (also packaged on channel), in fact for some three weeks now but I never got around to advertise the fact. To enable set the following config key <code>type_blobs_avscan_command</code> to a value, here is the default from <code>config.inc</code>:</p>

<pre><code>/* This is passed to sprintf, use %s where file name should be */
'type_blobs_avscan_command' =&gt; '',
/* Example command using ClamAV
'type_blobs_avscan_command' =&gt; 'clamscan --stdout -i --no-summary %s',
*/
</code></pre>

<p>Though at least on my test (virtual) machine clamscan was <strong>really</strong> slow to start and ate all the CPU for many seconds even for the <a href="http://www.eicar.org/anti_virus_test_file.htm">EICAR Test file</a>.</p>

<p>To use F-Secure Anti-Virus for Linux (remember to disable the real-time scanner or an infected file will never reach PHP since FSAV will prevent it from being written on the disk, how DM2/PHP in general reacts to this is undefined) use the following command:</p>

<pre><code>'type_blobs_avscan_command' =&gt; '/usr/bin/fsav --auto --silent %s',
</code></pre>

<p>Naturally you need to have the thing installed first...</p>
]]></content>
        <summary type="html"><![CDATA[
<p>In trunk and branch-28 (also packaged on channel), in fact for some three weeks now but I never got around to advertise the fact. To enable set the following config key <code>type_blobs_avscan_command</code> to a value, here is the default from <code>config.inc</code>:</p>

<pre><code>/* This is passed to sprintf, use %s where file name should be */
'type_blobs_avscan_command' =&gt; '',
/* Example command using ClamAV
'type_blobs_avscan_command' =&gt; 'clamscan --stdout -i --no-summary %s',
*/
</code></pre>

<p>Though at least on my test (virtual) machine clamscan was <strong>really</strong> slow to start and ate all the CPU for many seconds even for the <a href="http://www.eicar.org/anti_virus_test_file.htm">EICAR Test file</a>.</p>

<p>To use F-Secure Anti-Virus for Linux (remember to disable the real-time scanner or an infected file will never reach PHP since FSAV will prevent it from being written on the disk, how DM2/PHP in general reacts to this is undefined) use the following command:</p>

<pre><code>'type_blobs_avscan_command' =&gt; '/usr/bin/fsav --auto --silent %s',
</code></pre>

<p>Naturally you need to have the thing installed first...</p>
]]></summary>
    </entry>
    <entry>
        <title>Playing with Proximity</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/1195066831/"/>
        <published>2007-11-14T19:00:31+00:00</published>
        <updated>2007-11-14T19:00:31+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-df6fc71c92e311dcb501c7727e1cd700d700</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>I finally took the time to polish a bit more a few <a href="http://reduxcomputing.com/proximity.php">Proximity</a> scripts that I have used. Inspiration and code to get started from <a href="http://www.technocrat.ca/?p=44">this post</a>.</p>

<p>Since in my experience the proximity detection can be bit flaky if you put it to scan very often (for the screensaver use as outlined in <a href="http://www.technocrat.ca/?p=44">the post</a>) and there is battery to be considered and also I have had some issues with Bluetooth mouse those times, I now only use the in-range script (polling at 10mins) and even that to only do backup of my address book and calendar and then run iSync.</p>

<p>While Proximity does not have the handy "open at login" right at preferences/settings, you can easily enough add it via "System Preferences" -&gt; "Accounts" -&gt; "Login items".</p>

<p>Here are the scripts</p>

<p><code>in-range.scpt</code> (btw requiring <code>.scpt</code> in stead of `.applescript or allowing any extension is one of my pet peeves with Proximity):</p>

<pre><code>-- Backup data and sync phone
tell application "iSync"
    -- if it's been &gt;15 min since last sync
    if last sync is less than ((current date) - 900) then
        -- Dump backups files with the refactored scripts
        do shell script "/usr/bin/osascript /opt/local/bin/ical2vcal.applescript"
        do shell script "/usr/bin/osascript /opt/local/bin/address_book2vcards.applescript"
        -- backup the documents folder
        do shell script "/sw/bin/rdiff-backup ~/Documents/ ~/rdiff/Documents/"
        -- Launch sync (this will be done on background so the call returns immediately)
        synchronize
    end if
end tell
-- hide the isync window from cluttering our view
tell application "System Events" to set visible of process "iSync" to false
</code></pre>

<p>The <code>/opt/local/bin/ical2vcal.applescript</code> referred above:</p>

<pre><code>-- Backup ical as vcals
tell application "iCal" to activate
delay 2
tell application "System Events"
    tell process "iCal"
        select row 1 of outline 1 of scroll area 2 of window "iCal"
        select text field 1 of row 1 of outline 1 of scroll area 2 of window "iCal"
        try
            tell text field 1 of row 1 of outline 1 of scroll area 2 of window "iCal"
                set {xPosition, yPosition} to position
                set {xSize, ySize} to size
            end tell
            -- modify offsets if hot spot is not centered:
            click at {xPosition + (xSize div 2), yPosition + (ySize div 2)}
        end try
        try
            click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1
            set value of text field 1 of sheet 1 of window "iCal" to "calendar_home"
            (* crashes 
            click pop up button 1 of sheet 1 of window "iCal"
            sleep 2
            click menu item "Documents" of menu 1 of pop up button 1 of sheet 1 of window "iCal"
            sleep 2
            *)
            click button "Export" of sheet 1 of window "iCal"
            try
                click button "Replace" of window 1
            end try
        end try
    end tell
end tell
tell application "System Events" to set visible of process "iCal" to false
</code></pre>

<p>The <code>/opt/local/bin/address_book2vcards.applescript</code> referred above:</p>

<pre><code>-- Backup ical as vcals
tell application "iCal" to activate
delay 2
tell application "System Events"
    tell process "iCal"
        select row 1 of outline 1 of scroll area 2 of window "iCal"
        select text field 1 of row 1 of outline 1 of scroll area 2 of window "iCal"
        try
            tell text field 1 of row 1 of outline 1 of scroll area 2 of window "iCal"
                set {xPosition, yPosition} to position
                set {xSize, ySize} to size
            end tell
            -- modify offsets if hot spot is not centered:
            click at {xPosition + (xSize div 2), yPosition + (ySize div 2)}
        end try
        try
            click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1
            set value of text field 1 of sheet 1 of window "iCal" to "calendar_home"
            (* crashes 
            click pop up button 1 of sheet 1 of window "iCal"
            sleep 2
            click menu item "Documents" of menu 1 of pop up button 1 of sheet 1 of window "iCal"
            sleep 2
            *)
            click button "Export" of sheet 1 of window "iCal"
            try
                click button "Replace" of window 1
            end try
        end try
    end tell
end tell
tell application "System Events" to set visible of process "iCal" to false
</code></pre>

<p>I haven't tried <a href="http://www.salling.com/Clicker/mac/">Salling clicker</a> (my N93 wasn't supported at the time) but do know it exists.</p>

<h2>Update</h2>

<p><a href="http://metaquark.de/homezone/">Home Zone</a> Looks very promising for this and many other uses (much, much more flexible), I'll have to play around with it sometime in the near(ish) future.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>I finally took the time to polish a bit more a few <a href="http://reduxcomputing.com/proximity.php">Proximity</a> scripts that I have used. Inspiration and code to get started from <a href="http://www.technocrat.ca/?p=44">this post</a>.</p>

<p>Since in my experience the proximity detection can be bit flaky if you put it to scan very often (for the screensaver use as outlined in <a href="http://www.technocrat.ca/?p=44">the post</a>) and there is battery to be considered and also I have had some issues with Bluetooth mouse those times, I now only use the in-range script (polling at 10mins) and even that to only do backup of my address book and calendar and then run iSync.</p>

<p>While Proximity does not have the handy "open at login" right at preferences/settings, you can easily enough add it via "System Preferences" -&gt; "Accounts" -&gt; "Login items".</p>

<p>Here are the scripts</p>

<p><code>in-range.scpt</code> (btw requiring <code>.scpt</code> in stead of `.applescript or allowing any extension is one of my pet peeves with Proximity):</p>

<pre><code>-- Backup data and sync phone
tell application "iSync"
    -- if it's been &gt;15 min since last sync
    if last sync is less than ((current date) - 900) then
        -- Dump backups files with the refactored scripts
        do shell script "/usr/bin/osascript /opt/local/bin/ical2vcal.applescript"
        do shell script "/usr/bin/osascript /opt/local/bin/address_book2vcards.applescript"
        -- backup the documents folder
        do shell script "/sw/bin/rdiff-backup ~/Documents/ ~/rdiff/Documents/"
        -- Launch sync (this will be done on background so the call returns immediately)
        synchronize
    end if
end tell
-- hide the isync window from cluttering our view
tell application "System Events" to set visible of process "iSync" to false
</code></pre>

<p>The <code>/opt/local/bin/ical2vcal.applescript</code> referred above:</p>

<pre><code>-- Backup ical as vcals
tell application "iCal" to activate
delay 2
tell application "System Events"
    tell process "iCal"
        select row 1 of outline 1 of scroll area 2 of window "iCal"
        select text field 1 of row 1 of outline 1 of scroll area 2 of window "iCal"
        try
            tell text field 1 of row 1 of outline 1 of scroll area 2 of window "iCal"
                set {xPosition, yPosition} to position
                set {xSize, ySize} to size
            end tell
            -- modify offsets if hot spot is not centered:
            click at {xPosition + (xSize div 2), yPosition + (ySize div 2)}
        end try
        try
            click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1
            set value of text field 1 of sheet 1 of window "iCal" to "calendar_home"
            (* crashes 
            click pop up button 1 of sheet 1 of window "iCal"
            sleep 2
            click menu item "Documents" of menu 1 of pop up button 1 of sheet 1 of window "iCal"
            sleep 2
            *)
            click button "Export" of sheet 1 of window "iCal"
            try
                click button "Replace" of window 1
            end try
        end try
    end tell
end tell
tell application "System Events" to set visible of process "iCal" to false
</code></pre>

<p>The <code>/opt/local/bin/address_book2vcards.applescript</code> referred above:</p>

<pre><code>-- Backup ical as vcals
tell application "iCal" to activate
delay 2
tell application "System Events"
    tell process "iCal"
        select row 1 of outline 1 of scroll area 2 of window "iCal"
        select text field 1 of row 1 of outline 1 of scroll area 2 of window "iCal"
        try
            tell text field 1 of row 1 of outline 1 of scroll area 2 of window "iCal"
                set {xPosition, yPosition} to position
                set {xSize, ySize} to size
            end tell
            -- modify offsets if hot spot is not centered:
            click at {xPosition + (xSize div 2), yPosition + (ySize div 2)}
        end try
        try
            click menu item "Export…" of menu 1 of menu bar item "File" of menu bar 1
            set value of text field 1 of sheet 1 of window "iCal" to "calendar_home"
            (* crashes 
            click pop up button 1 of sheet 1 of window "iCal"
            sleep 2
            click menu item "Documents" of menu 1 of pop up button 1 of sheet 1 of window "iCal"
            sleep 2
            *)
            click button "Export" of sheet 1 of window "iCal"
            try
                click button "Replace" of window 1
            end try
        end try
    end tell
end tell
tell application "System Events" to set visible of process "iCal" to false
</code></pre>

<p>I haven't tried <a href="http://www.salling.com/Clicker/mac/">Salling clicker</a> (my N93 wasn't supported at the time) but do know it exists.</p>

<h2>Update</h2>

<p><a href="http://metaquark.de/homezone/">Home Zone</a> Looks very promising for this and many other uses (much, much more flexible), I'll have to play around with it sometime in the near(ish) future.</p>
]]></summary>
    </entry>
    <entry>
        <title>Goint Nutchy</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/1194508141/"/>
        <published>2007-11-08T07:49:01+00:00</published>
        <updated>2007-11-08T07:49:01+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-11db5f968dcf11dc84c8218669d0ee44ee44</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>I've been meaning to write a "note to self" about this for a while but been just too busy...</p>

<p>Anyways, recently there was a need to have non-MidCOM sites searchable via midcom.helper.search, merging results on style level would have been too ugly a hack (though it also works, or making an iframe for a separate set of results from some other indexer), so on to find a spider that we could use to feed data to Solr.</p>

<p><a href="http://lucene.apache.org/nutch/">Apache Nutch</a> was already using Lucene, but used it internally, luckily <a href="http://blog.foofactory.fi/2007/02/online-indexing-integrating-nutch-with.html">this page</a> explained a way to make Nutch talk with a Solr backend.</p>

<p>I got it working with 0.9 release of Nutch and a combined Nutch+MidCOM Solr schema (get it from <a href="https://svn.midgard-project.org/midgard/trunk/external-tools/indexer-backends/solr/schema-wnutch.xml">Midgard SVN</a>). However since Nutch builds the abstracts or summaries at result display time in stead of storing them in index we don't have those available, it should be possible to hook a generic summarizer to the index phase but I didn't have the time to look into that at the time, also my Java skills are very rusty...</p>

<p>As <a href="http://blog.foofactory.fi/2007/02/online-indexing-integrating-nutch-with.html">linked page</a> states, the implementation is a bit naive and stub, but it works for the basic need of getting stuff to the index and searchable, during this I also got an idea of making a Nutch backend to MidCOM indexer service (Nutch has RSS output of the results as well), though that would work only for 100% public sites the result time summarizing is rather nice.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>I've been meaning to write a "note to self" about this for a while but been just too busy...</p>

<p>Anyways, recently there was a need to have non-MidCOM sites searchable via midcom.helper.search, merging results on style level would have been too ugly a hack (though it also works, or making an iframe for a separate set of results from some other indexer), so on to find a spider that we could use to feed data to Solr.</p>

<p><a href="http://lucene.apache.org/nutch/">Apache Nutch</a> was already using Lucene, but used it internally, luckily <a href="http://blog.foofactory.fi/2007/02/online-indexing-integrating-nutch-with.html">this page</a> explained a way to make Nutch talk with a Solr backend.</p>

<p>I got it working with 0.9 release of Nutch and a combined Nutch+MidCOM Solr schema (get it from <a href="https://svn.midgard-project.org/midgard/trunk/external-tools/indexer-backends/solr/schema-wnutch.xml">Midgard SVN</a>). However since Nutch builds the abstracts or summaries at result display time in stead of storing them in index we don't have those available, it should be possible to hook a generic summarizer to the index phase but I didn't have the time to look into that at the time, also my Java skills are very rusty...</p>

<p>As <a href="http://blog.foofactory.fi/2007/02/online-indexing-integrating-nutch-with.html">linked page</a> states, the implementation is a bit naive and stub, but it works for the basic need of getting stuff to the index and searchable, during this I also got an idea of making a Nutch backend to MidCOM indexer service (Nutch has RSS output of the results as well), though that would work only for 100% public sites the result time summarizing is rather nice.</p>
]]></summary>
    </entry>
    <entry>
        <title>MidCOM QB optimizations</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/1188546036/"/>
        <published>2007-08-31T07:40:36+00:00</published>
        <updated>2007-08-31T07:40:36+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-76bbfc10579511dca94f6548b07bc49ec49e</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>Yesterday was the MidCOM performance sprint, I did some optimization and cleanup to MidCOM QB and Collector, here are some numbers (as seen on #midgard @irg.freenode.net)</p>

<pre>
[09:50am] mashiara: some numbers for effects of the QB limit/offset stuff backported to 2.8 branch
[09:50am] mashiara: <a href="http://rambo.pbt-unknown.org/photos/list/all/?org_openpsa_qbpager_org_routamc_photostream_photo_page=6"> http://rambo.pbt-unknown.org/photos/list/all/?org_openpsa_qbpager_org_routamc_photostream_photo_page=6</a>
[09:50am] mashiara: LORI time-to-first-byte (==midcom page generation time)
[09:50am] mashiara: ## Before QB backport:
[09:50am] mashiara: 4.316
[09:50am] mashiara: 4.301
[09:50am] mashiara: 4.285
[09:50am] mashiara: 4.334
[09:50am] mashiara: 4.707
[09:50am] mashiara: ## After QB backport
[09:50am] mashiara: 4.192
[09:50am] mashiara: 3.404
[09:50am] mashiara: 3.061
[09:50am] mashiara: 2.991
[09:50am] mashiara: 3.039
[09:50am] mashiara: 3.181
[09:52am] mashiara: all caches etc are on, without ACL cache the hit from
 fetching ACL for all photos in the stream (as opposed to just the set required
 to get this far) would be much higher
</pre>

<p>These optimizations have been backported to 2.8 branch and the numbers are from there.</p>

<p>Also yesterday (in trunk) I added to dbclassloader (that autogenerates the DBA base classes) reflection based code generation for <code>get_parent_guid_uncached</code> and <code>get_parent_guid_uncached_static</code> which uses collector to resolve the values, should be fairly fast, though in compound it might slow some components a bit when their objects previously did not resolve parent chains at all (by default <code>get_parent_guid_uncached</code> returned null...)  and now they do, components that overloaded said methods to provide the functionality should review those and either drop the overload or make a better collector based implementation than the reflection based code generator has.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>Yesterday was the MidCOM performance sprint, I did some optimization and cleanup to MidCOM QB and Collector, here are some numbers (as seen on #midgard @irg.freenode.net)</p>

<pre>
[09:50am] mashiara: some numbers for effects of the QB limit/offset stuff backported to 2.8 branch
[09:50am] mashiara: <a href="http://rambo.pbt-unknown.org/photos/list/all/?org_openpsa_qbpager_org_routamc_photostream_photo_page=6"> http://rambo.pbt-unknown.org/photos/list/all/?org_openpsa_qbpager_org_routamc_photostream_photo_page=6</a>
[09:50am] mashiara: LORI time-to-first-byte (==midcom page generation time)
[09:50am] mashiara: ## Before QB backport:
[09:50am] mashiara: 4.316
[09:50am] mashiara: 4.301
[09:50am] mashiara: 4.285
[09:50am] mashiara: 4.334
[09:50am] mashiara: 4.707
[09:50am] mashiara: ## After QB backport
[09:50am] mashiara: 4.192
[09:50am] mashiara: 3.404
[09:50am] mashiara: 3.061
[09:50am] mashiara: 2.991
[09:50am] mashiara: 3.039
[09:50am] mashiara: 3.181
[09:52am] mashiara: all caches etc are on, without ACL cache the hit from
 fetching ACL for all photos in the stream (as opposed to just the set required
 to get this far) would be much higher
</pre>

<p>These optimizations have been backported to 2.8 branch and the numbers are from there.</p>

<p>Also yesterday (in trunk) I added to dbclassloader (that autogenerates the DBA base classes) reflection based code generation for <code>get_parent_guid_uncached</code> and <code>get_parent_guid_uncached_static</code> which uses collector to resolve the values, should be fairly fast, though in compound it might slow some components a bit when their objects previously did not resolve parent chains at all (by default <code>get_parent_guid_uncached</code> returned null...)  and now they do, components that overloaded said methods to provide the functionality should review those and either drop the overload or make a better collector based implementation than the reflection based code generator has.</p>
]]></summary>
    </entry>
    <entry>
        <title>2008.07.13: End of an era</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/1186553825/"/>
        <published>2007-08-08T06:17:05+00:00</published>
        <updated>2007-08-08T06:17:05+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-fc316da2457611dc969cc589a2e8b09db09d</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>Yeah, it's almost a month ago but I never got around to writing about it.</p>

<p>On that fateful date me and JVG-13 <a href="http://rambo.pbt-unknown.org/photos/photo/9ac4dc16314411dc8ac8e57e90c24d5e4d5e/">parted ways</a>, the buyer is a friend of friend and we agreed should he ever decide to sell it he'll give me call first. For the uninitiated: JVG-13 is 1962 Land Rover 2A and has been instrumental force in many legendary trips.</p>

<p>This was my first car, one learns to predict the traffic and keep proper safety distances when brakes are unassisted drum brakes, never crashed on anyone though once I really had to use all my weight when some idiot decided to cut in front and then the light changed to red... Naturally no power steering either, keep the car moving ever so slowly if you want to turn the tires or you'll soon be tired. The experience gained helped a lot when getting my C (truck) license.</p>

<p>I drove it summer and winter (only a bit of snow got in) until 2000 when I bought JKT-35 at which point JVG-13 was "demoted" to a summer car and spent the winters in hibernation in a shed, as the years passed I drove it less and less but old cars need active use and maintenance to keep in shape so after two years of "I'll sell it after the summer" and getting a genuinely interested buyer I decided to sell it.</p>

<p>I will try to collect some of the most legendary stories from the collective memory of me and my friends from the time and post them here (If you have a story about this car, email it me to my iki.fi address).</p>

<h2>Update 2007.08.09</h2>

<p><a href="http://bergie.iki.fi/">Bergie</a> reminded me to tell that this is the car that was behind the name <a href="http://www.midgard-project.org/updates/view/a-bit-of-midgard-community-history.html">"Land Rover"</a> for the <a href="http://www.midgard-project.org/">Midgard</a> 1.0 release (and in some user interfaces error messages were accompanied by a picture of said car with the hood open).</p>
]]></content>
        <summary type="html"><![CDATA[
<p>Yeah, it's almost a month ago but I never got around to writing about it.</p>

<p>On that fateful date me and JVG-13 <a href="http://rambo.pbt-unknown.org/photos/photo/9ac4dc16314411dc8ac8e57e90c24d5e4d5e/">parted ways</a>, the buyer is a friend of friend and we agreed should he ever decide to sell it he'll give me call first. For the uninitiated: JVG-13 is 1962 Land Rover 2A and has been instrumental force in many legendary trips.</p>

<p>This was my first car, one learns to predict the traffic and keep proper safety distances when brakes are unassisted drum brakes, never crashed on anyone though once I really had to use all my weight when some idiot decided to cut in front and then the light changed to red... Naturally no power steering either, keep the car moving ever so slowly if you want to turn the tires or you'll soon be tired. The experience gained helped a lot when getting my C (truck) license.</p>

<p>I drove it summer and winter (only a bit of snow got in) until 2000 when I bought JKT-35 at which point JVG-13 was "demoted" to a summer car and spent the winters in hibernation in a shed, as the years passed I drove it less and less but old cars need active use and maintenance to keep in shape so after two years of "I'll sell it after the summer" and getting a genuinely interested buyer I decided to sell it.</p>

<p>I will try to collect some of the most legendary stories from the collective memory of me and my friends from the time and post them here (If you have a story about this car, email it me to my iki.fi address).</p>

<h2>Update 2007.08.09</h2>

<p><a href="http://bergie.iki.fi/">Bergie</a> reminded me to tell that this is the car that was behind the name <a href="http://www.midgard-project.org/updates/view/a-bit-of-midgard-community-history.html">"Land Rover"</a> for the <a href="http://www.midgard-project.org/">Midgard</a> 1.0 release (and in some user interfaces error messages were accompanied by a picture of said car with the hood open).</p>
]]></summary>
    </entry>
    <entry>
        <title>Got a new PMR radio</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/1186551869/"/>
        <published>2007-08-08T05:44:30+00:00</published>
        <updated>2007-08-08T05:44:30+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-6eb3023c457211dc9fffa180b96f23e123e1</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>On monday I bit the bullet and decided I'm not going to get my misplaced Kenwood TK3101 back (longtime followers may remember this case, in short I borrowed it to someone and never got it back, I can't remember exactly to whom of the about 15 likely people and none of them have it laying around [so likely whoever borrowed it lost it]), these are professional quality units and simply cannot be compared  with the stuff you get from supermarkets (also: you pay a price for that quality).</p>

<p>So I got myself a Yaesu/Vertex VX-146 from <a href="http://www.radio-tele.com/">Uudenmaan Radio-Tele Oy</a> which offers a very competetive price on the unit and is a nice little home-business run by a HAM-radio operator.</p>

<p>The unit is sturdy and has much nicer interface for setting the channel and "subchannel" (CTCSS/DCS) and fixes my major annoyance with the Kenwood which must always use subchannel (incredibly annoying, one would like to have at least channel 8 without any "subchannel" filter). Also with the PC software the seller had various more internal parameters can be tweaked (like transmit power, but naturally I wouldn't increase it even a bit as that would make the radio illegal [though the increase from 500mW to 1W is not really measurable outside RF labs]), while at it the guy also set the channel/subschannel settings to same as the Kenwoood defaults (much faster to do in bulk for 15 channels...).</p>

<p>I haven't really used it yet but we'll we leaving for a shortish (7-9 days) trip to Lapland with Taru and I'd guess I have more to write after that.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>On monday I bit the bullet and decided I'm not going to get my misplaced Kenwood TK3101 back (longtime followers may remember this case, in short I borrowed it to someone and never got it back, I can't remember exactly to whom of the about 15 likely people and none of them have it laying around [so likely whoever borrowed it lost it]), these are professional quality units and simply cannot be compared  with the stuff you get from supermarkets (also: you pay a price for that quality).</p>

<p>So I got myself a Yaesu/Vertex VX-146 from <a href="http://www.radio-tele.com/">Uudenmaan Radio-Tele Oy</a> which offers a very competetive price on the unit and is a nice little home-business run by a HAM-radio operator.</p>

<p>The unit is sturdy and has much nicer interface for setting the channel and "subchannel" (CTCSS/DCS) and fixes my major annoyance with the Kenwood which must always use subchannel (incredibly annoying, one would like to have at least channel 8 without any "subchannel" filter). Also with the PC software the seller had various more internal parameters can be tweaked (like transmit power, but naturally I wouldn't increase it even a bit as that would make the radio illegal [though the increase from 500mW to 1W is not really measurable outside RF labs]), while at it the guy also set the channel/subschannel settings to same as the Kenwoood defaults (much faster to do in bulk for 15 channels...).</p>

<p>I haven't really used it yet but we'll we leaving for a shortish (7-9 days) trip to Lapland with Taru and I'd guess I have more to write after that.</p>
]]></summary>
    </entry>
    <entry>
        <title>Connecting Vertex/Yaesu VX-146 to Autocom</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/connecting_vertex-yaesu_vx-146_to_autocom/"/>
        <published>2007-08-08T05:09:16+00:00</published>
        <updated>2007-08-08T05:09:16+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-82f4eec2456d11dc8f1a67f6361c3c433c43</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>
I recently got a <a href="http://rambo.pbt-unknown.org/midcom-permalink-6eb3023c457211dc9fffa180b96f23e123e1">new VX-146 radio</a> and needed to get it working with my <a href="http://autocom.co.uk/">Autocom</a> unit
</p>

<ol><li>Get a proper connector lead, I stronly suggest getting one mean with this radio with (thumb)screw locking, the connector is "standard" 4-pole 3.5mm jack but on the radio end it's recessed a bit so if using generic part you may need to use destructive editing to make it fit properly (and unless you hot-glue it to place water will leak inside you precious radio since it doesn't seal properly).</li>
    <li>Get 5-pole 60° DIN connector (references to positions on this will be on the <strong>solder</strong> side).</li>
    <li>Get 1-2k resistor, small enough to fit inside your DIN connector housing</li>
    <li>Establish which lead corresponds to which pole, I use pole numbers counting from the tip towards base, so pinout is as follows: tip is pole #1 and base is pole #4. The signals are as follows: #4 is shield/ground, #1 is speaker and #3 is mic.</li>
    <li>Solder ground signal (#4) to 12:00</li>
    <li>Solder speaker signal (#1) to 14:00 (the Autocom provided cable [at least for Kenwood TK31xx radios] has a small capacitator here to filter DC, not actually needed here or there)</li>
    <li>Solder mic signal (#3) to 10:00</li>
    <li>Solder the resistor across 10:00 and 16:00</li>
    <li>Test and if you realize you read the DIN clock incorrectly, reverse connections accordingly</li>
</ol>]]></content>
        <summary type="html"><![CDATA[
<p>
I recently got a <a href="http://rambo.pbt-unknown.org/midcom-permalink-6eb3023c457211dc9fffa180b96f23e123e1">new VX-146 radio</a> and needed to get it working with my <a href="http://autocom.co.uk/">Autocom</a> unit
</p>

<ol><li>Get a proper connector lead, I stronly suggest getting one mean with this radio with (thumb)screw locking, the connector is "standard" 4-pole 3.5mm jack but on the radio end it's recessed a bit so if using generic part you may need to use destructive editing to make it fit properly (and unless you hot-glue it to place water will leak inside you precious radio since it doesn't seal properly).</li>
    <li>Get 5-pole 60° DIN connector (references to positions on this will be on the <strong>solder</strong> side).</li>
    <li>Get 1-2k resistor, small enough to fit inside your DIN connector housing</li>
    <li>Establish which lead corresponds to which pole, I use pole numbers counting from the tip towards base, so pinout is as follows: tip is pole #1 and base is pole #4. The signals are as follows: #4 is shield/ground, #1 is speaker and #3 is mic.</li>
    <li>Solder ground signal (#4) to 12:00</li>
    <li>Solder speaker signal (#1) to 14:00 (the Autocom provided cable [at least for Kenwood TK31xx radios] has a small capacitator here to filter DC, not actually needed here or there)</li>
    <li>Solder mic signal (#3) to 10:00</li>
    <li>Solder the resistor across 10:00 and 16:00</li>
    <li>Test and if you realize you read the DIN clock incorrectly, reverse connections accordingly</li>
</ol>]]></summary>
    </entry>
    <entry>
        <title>Midgard backups with rdiff-backup (and Amazon S3)</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/midgard_backups_with_rdiff-backup-and_amazon_s3/"/>
        <published>2007-07-31T07:10:26+00:00</published>
        <updated>2007-07-31T07:10:26+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-1cafcf083f3511dc8e4f8f2310faf379f379</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>
    I have experimented with backing up my own Midgard blobs and database with <a href="http://www.nongnu.org/rdiff-backup/">rdiff-backup</a> and offsiting them to <a href="http://aws.amazon.com/s3">Amazon S3</a> (it will take some more days to initially upload rest of the 11GB of blobs [photos mostly], so I have more info about that part later). The examples suppose Debian Etch system with standard Midgard installation.
</p>

<p>
    Inspiration for my experiments comes from the following articles:
    </p>

<ul><li><a href="http://paulstamatiou.com/2007/07/29/how-to-bulletproof-server-backups-with-amazon-s3/">How To: Bulletproof Server Backups with Amazon S3</a></li>
        <li><a href="http://blog.eberly.org/2006/10/09/how-automate-your-backup-to-amazon-s3-using-s3sync/">How I automated my backups to Amazon S3 using s3sync</a></li>
    </ul><p>
    Lets get started:
    </p>

<ol><li>Install rdiff-backup
            <pre class="code">
apt-get install rdiff-backup
            </pre>
        </li>
        <li>Create directories to store the rdiff data in
            <pre class="code">
mkdir -p /var/backups/rdiff/midgard/blobs
mkdir -p /var/backups/rdiff/midgard/sql
            </pre>
        </li>
        <li>Create script to backup the database and blobs
            <pre class="code">
nano /var/backups/rdiff/midgard/backup.sh
            </pre>
            with the following contents (adjust mysqldump arguments for username and password)
            <pre class="code">
#!/bin/bash
# Update local rdiff directories
mysqldump --opt midgard &gt;/var/lib/midgard/backups/midgard_backup.sql
rdiff-backup /var/lib/midgard/backups /var/backups/rdiff/midgard/sql/
rdiff-backup /var/lib/midgard/blobs /var/backups/rdiff/midgard/blobs/
            </pre>
        </li>
        <li>Make sure /var/lib/midgard/backups/ doesn't have any old SQL files you don't need to backup</li>
        <li>Run the script and wait, the first run will take some time if you have lots of blobs</li>
        <li>Make a small change and run the script again, observe changes in /var/backups/rdiff/midgard/rdiff-backup-data -tree.</li>
        <li>Put the backup script to cron</li>
    </ol><p>You now have local backups running nightly, storing the latest version as plain directory tree and earlier versions as reverse diffs.</p>

<p>
    Then to the S3 stuff
    </p>

<ol><li>Get yourself an S3 account from <a href="http://aws.amazon.com/s3">Amazon</a></li>
        <li>Install ruby and ruby-openssl
            <pre class="code">
apt-get install ruby libopenssl-ruby
            </pre>
        </li>
        <li>Get and install s3sync
            <pre class="code">
mkdir -p /usr/src/s3sync
cd /usr/src/s3sync
wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
tar -xvzf s3sync.tar.gz
mv s3sync /usr/lib/ruby/1.8/
            </pre>
        </li>
        <li>Check the README and experiment a bit to make sure s3sync works for you</li>
        <li>Make shortcut scripts to /usr/local/bin, s3cmd
            <pre class="code">
#!/bin/bash
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export SSL_CERT_DIR=/etc/ssl/certs
PWD=`pwd` 
cd /usr/lib/ruby/1.8/s3sync
./s3cmd.rb --ssl $@
cd $PWD
            </pre>
            and s3sync
            <pre class="code">
#!/bin/bash
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export SSL_CERT_DIR=/etc/ssl/certs
PWD=`pwd` 
cd /usr/lib/ruby/1.8/s3sync
./s3sync.rb --ssl $@
cd $PWD
            </pre>
        </li>
        <li>Check that the scripts work by calling them with the --help argument</li>
        <li>Create a bucket for your backups, buckets must have globally unique names so I suggest using something like com.yourdomain.rdiffs but in theory any unique name is valid.
            <pre class="code">
s3cmd createbucket com.yourdomain.rdiffs
            </pre>
            If this complains something to the tune of <tt>certificate verify failed</tt> then run  <tt>apt-get install ca-certificates</tt> and if that doesn't help see <a href="http://s3.amazonaws.com/ServEdge_pub/s3sync/README.txt">S3sync README</a> for the certificate you need.
        </li>
        <li>Make initial sync to S3 (see s3sync documentation on the bucket:prefix format)
            <pre class="code">
s3sync -v -r /var/backups/rdiff/ com.yourdomain.rdiffs:machinename
            </pre>
        </li>
        <li>Make a cronjob to periodically sync you rdiff directories to S3
            <pre class="code">
s3sync --delete -r /var/backups/rdiff/ com.yourdomain.rdiffs:machinename
            </pre>
            Incidentally this will sync all directories under the /var/backups/rdiff/ so if you add more rdiff-backup directories there is no need to change this, do note that the --delete option causes anything that is not present locally be deleted from S3 (s3sync works very much like rsync)
        </li>
    </ol><p>Whew, done...</p>

<h2>Update 2007.08.01</h2>

<p>
    The initial upload finished yesterday, I didn't have the forethought to time it but in any case it was basically bound to my outgoing bandwidth (with wondershaper on the FW making sure that normal browsing etc is not unduly affected). Now doing the s3sync with no changes takes a little over 8 minutes, two of which is actual CPU time (dataset is 11GB in 26.5k objects), iptraf shows only moderate burst traffic so I'd say most of the time is spent in local file I/O (to calculate hashes) and waiting for S3 to reply.
</p>

<p>
    And here's a small script one could use to sync the rdiff directory as often as seen fit, it will avoid parallel runs (S3 does not have any kind of locking so having parallel processes writing to same objects is bad idea)
    </p>

<pre class="code">
#!/bin/bash
CMD="s3sync --delete -r /var/backups/rdiff/ com.yourdomain.rdiffs:machinename"
ps ax | grep -e "$CMD" &gt;/dev/null
RET=$?
while ( [ $RET == 0 ] ); do
    date
    echo Another instance of \"$CMD\" is running, waiting for it to finish
    sleep 45
    ps ax | grep -e "$CMD" &gt;/dev/null
    RET=$?
done
$CMD
    </pre>

<h2>Update 2007.09.21</h2>

<p>The backups have been runnin smoothly for a while now, with this amount of data my monthly S3 fees are about 2.5USD / month, not bad at all...</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    I have experimented with backing up my own Midgard blobs and database with <a href="http://www.nongnu.org/rdiff-backup/">rdiff-backup</a> and offsiting them to <a href="http://aws.amazon.com/s3">Amazon S3</a> (it will take some more days to initially upload rest of the 11GB of blobs [photos mostly], so I have more info about that part later). The examples suppose Debian Etch system with standard Midgard installation.
</p>

<p>
    Inspiration for my experiments comes from the following articles:
    </p>

<ul><li><a href="http://paulstamatiou.com/2007/07/29/how-to-bulletproof-server-backups-with-amazon-s3/">How To: Bulletproof Server Backups with Amazon S3</a></li>
        <li><a href="http://blog.eberly.org/2006/10/09/how-automate-your-backup-to-amazon-s3-using-s3sync/">How I automated my backups to Amazon S3 using s3sync</a></li>
    </ul><p>
    Lets get started:
    </p>

<ol><li>Install rdiff-backup
            <pre class="code">
apt-get install rdiff-backup
            </pre>
        </li>
        <li>Create directories to store the rdiff data in
            <pre class="code">
mkdir -p /var/backups/rdiff/midgard/blobs
mkdir -p /var/backups/rdiff/midgard/sql
            </pre>
        </li>
        <li>Create script to backup the database and blobs
            <pre class="code">
nano /var/backups/rdiff/midgard/backup.sh
            </pre>
            with the following contents (adjust mysqldump arguments for username and password)
            <pre class="code">
#!/bin/bash
# Update local rdiff directories
mysqldump --opt midgard &gt;/var/lib/midgard/backups/midgard_backup.sql
rdiff-backup /var/lib/midgard/backups /var/backups/rdiff/midgard/sql/
rdiff-backup /var/lib/midgard/blobs /var/backups/rdiff/midgard/blobs/
            </pre>
        </li>
        <li>Make sure /var/lib/midgard/backups/ doesn't have any old SQL files you don't need to backup</li>
        <li>Run the script and wait, the first run will take some time if you have lots of blobs</li>
        <li>Make a small change and run the script again, observe changes in /var/backups/rdiff/midgard/rdiff-backup-data -tree.</li>
        <li>Put the backup script to cron</li>
    </ol><p>You now have local backups running nightly, storing the latest version as plain directory tree and earlier versions as reverse diffs.</p>

<p>
    Then to the S3 stuff
    </p>

<ol><li>Get yourself an S3 account from <a href="http://aws.amazon.com/s3">Amazon</a></li>
        <li>Install ruby and ruby-openssl
            <pre class="code">
apt-get install ruby libopenssl-ruby
            </pre>
        </li>
        <li>Get and install s3sync
            <pre class="code">
mkdir -p /usr/src/s3sync
cd /usr/src/s3sync
wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
tar -xvzf s3sync.tar.gz
mv s3sync /usr/lib/ruby/1.8/
            </pre>
        </li>
        <li>Check the README and experiment a bit to make sure s3sync works for you</li>
        <li>Make shortcut scripts to /usr/local/bin, s3cmd
            <pre class="code">
#!/bin/bash
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export SSL_CERT_DIR=/etc/ssl/certs
PWD=`pwd` 
cd /usr/lib/ruby/1.8/s3sync
./s3cmd.rb --ssl $@
cd $PWD
            </pre>
            and s3sync
            <pre class="code">
#!/bin/bash
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export SSL_CERT_DIR=/etc/ssl/certs
PWD=`pwd` 
cd /usr/lib/ruby/1.8/s3sync
./s3sync.rb --ssl $@
cd $PWD
            </pre>
        </li>
        <li>Check that the scripts work by calling them with the --help argument</li>
        <li>Create a bucket for your backups, buckets must have globally unique names so I suggest using something like com.yourdomain.rdiffs but in theory any unique name is valid.
            <pre class="code">
s3cmd createbucket com.yourdomain.rdiffs
            </pre>
            If this complains something to the tune of <tt>certificate verify failed</tt> then run  <tt>apt-get install ca-certificates</tt> and if that doesn't help see <a href="http://s3.amazonaws.com/ServEdge_pub/s3sync/README.txt">S3sync README</a> for the certificate you need.
        </li>
        <li>Make initial sync to S3 (see s3sync documentation on the bucket:prefix format)
            <pre class="code">
s3sync -v -r /var/backups/rdiff/ com.yourdomain.rdiffs:machinename
            </pre>
        </li>
        <li>Make a cronjob to periodically sync you rdiff directories to S3
            <pre class="code">
s3sync --delete -r /var/backups/rdiff/ com.yourdomain.rdiffs:machinename
            </pre>
            Incidentally this will sync all directories under the /var/backups/rdiff/ so if you add more rdiff-backup directories there is no need to change this, do note that the --delete option causes anything that is not present locally be deleted from S3 (s3sync works very much like rsync)
        </li>
    </ol><p>Whew, done...</p>

<h2>Update 2007.08.01</h2>

<p>
    The initial upload finished yesterday, I didn't have the forethought to time it but in any case it was basically bound to my outgoing bandwidth (with wondershaper on the FW making sure that normal browsing etc is not unduly affected). Now doing the s3sync with no changes takes a little over 8 minutes, two of which is actual CPU time (dataset is 11GB in 26.5k objects), iptraf shows only moderate burst traffic so I'd say most of the time is spent in local file I/O (to calculate hashes) and waiting for S3 to reply.
</p>

<p>
    And here's a small script one could use to sync the rdiff directory as often as seen fit, it will avoid parallel runs (S3 does not have any kind of locking so having parallel processes writing to same objects is bad idea)
    </p>

<pre class="code">
#!/bin/bash
CMD="s3sync --delete -r /var/backups/rdiff/ com.yourdomain.rdiffs:machinename"
ps ax | grep -e "$CMD" &gt;/dev/null
RET=$?
while ( [ $RET == 0 ] ); do
    date
    echo Another instance of \"$CMD\" is running, waiting for it to finish
    sleep 45
    ps ax | grep -e "$CMD" &gt;/dev/null
    RET=$?
done
$CMD
    </pre>

<h2>Update 2007.09.21</h2>

<p>The backups have been runnin smoothly for a while now, with this amount of data my monthly S3 fees are about 2.5USD / month, not bad at all...</p>
]]></summary>
    </entry>
    <entry>
        <title>Quick notes on Xen 3.1 on Debian &amp; LVM</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/quick_notes_on_xen_3-1_on_debian-_lvm/"/>
        <published>2007-07-18T11:11:57+00:00</published>
        <updated>2007-07-18T11:11:57+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-b30fff56351f11dc83bd9d298af0d7b7d7b7</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>
This is mainly to serve my own memory, though if you have questions I can try to clarify this.
</p>

<p>
The tutorial at <a href="http://www.howtoforge.com/debian_etch_xen_3.1">HowToForge</a> is good however it supposes you wish to use loopback and image files in stead of LVM partitions.
</p>

<ol><li>Install your Debian etch with LVM the way you see fit, remember to have spare space
    on your volumegroups.</li>
    <li>Follow the HowTo, use Chapter 5 to install Xen from sources, after compiling the xen0 kernel create an initrd for it with mkinitramfs -o /boot/initrd.img-2.6.18-xen0 2.6.18-xen0</li>
    <li>Continue with tutorial</li>
    <li>When configuring xen-tools in /etc/xen-tools/xen-tools.conf use lvm in stead of dir, I use reiserfs as the filesystem type since it allows online resizing if neccessary.
    </li>
</ol>]]></content>
        <summary type="html"><![CDATA[
<p>
This is mainly to serve my own memory, though if you have questions I can try to clarify this.
</p>

<p>
The tutorial at <a href="http://www.howtoforge.com/debian_etch_xen_3.1">HowToForge</a> is good however it supposes you wish to use loopback and image files in stead of LVM partitions.
</p>

<ol><li>Install your Debian etch with LVM the way you see fit, remember to have spare space
    on your volumegroups.</li>
    <li>Follow the HowTo, use Chapter 5 to install Xen from sources, after compiling the xen0 kernel create an initrd for it with mkinitramfs -o /boot/initrd.img-2.6.18-xen0 2.6.18-xen0</li>
    <li>Continue with tutorial</li>
    <li>When configuring xen-tools in /etc/xen-tools/xen-tools.conf use lvm in stead of dir, I use reiserfs as the filesystem type since it allows online resizing if neccessary.
    </li>
</ol>]]></summary>
    </entry>
    <entry>
        <title>Photostream now has feeds support</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/photostream_now_has_feeds_support/"/>
        <published>2007-07-11T06:24:53+00:00</published>
        <updated>2007-07-11T06:24:53+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-6f78ceba2f7711dcbbf4f5de8ba4eca0eca0</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>
Actually the baseline feeds support was done <a href="http://trac.midgard-project.org/changeset/11036">two weeks</a> <a href="http://trac.midgard-project.org/changeset/11037">ago</a>, but last weekend I added support for enclosing the thumbnails in the feeds and just a moment ago I <a href="http://trac.midgard-project.org/changeset/11172">committed a change</a> that adds the &lt;link rel="alternate"...&gt; tags to page headers where feeds are supported so that one does not have to guess the feed URLs. Unfortunately <a href="http://jaiku.com/">Jaiku</a> has feed thumbnails support only for Flickr at the moment, but they are working to make it generic.
</p>

<p>
In other news: I replaced the broken indicator switch assembly on my bike and re-epoxied the control unit underneat, there's hope that I don't have to break it off again anytime soon. 
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
Actually the baseline feeds support was done <a href="http://trac.midgard-project.org/changeset/11036">two weeks</a> <a href="http://trac.midgard-project.org/changeset/11037">ago</a>, but last weekend I added support for enclosing the thumbnails in the feeds and just a moment ago I <a href="http://trac.midgard-project.org/changeset/11172">committed a change</a> that adds the &lt;link rel="alternate"...&gt; tags to page headers where feeds are supported so that one does not have to guess the feed URLs. Unfortunately <a href="http://jaiku.com/">Jaiku</a> has feed thumbnails support only for Flickr at the moment, but they are working to make it generic.
</p>

<p>
In other news: I replaced the broken indicator switch assembly on my bike and re-epoxied the control unit underneat, there's hope that I don't have to break it off again anytime soon. 
</p>
]]></summary>
    </entry>
    <entry>
        <title>Meet Mr Murphy</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/meet_mr_murphy/"/>
        <published>2007-06-18T18:49:48+00:00</published>
        <updated>2007-06-18T18:49:48+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-b09d4da61dcc11dc8e15eb3f7a33e897e897</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>
Figures, just as I get something <a href="http://oldmidgard.hurttakallio.net/photos/photo/74c320ba1ce811dc84ab4f507b7a9a539a53/">mounted (with epoxy..)</a>, the turn signal switch dies on me so that the left-hand signal won't turn on. To see what the problem is the whole thing must be opened (in worst case the whole thing must be replaced) which means breaking of the newly epoxied part.
</p>

<p>
It's not a huge deal, the expoxy should break cleanly of with a slight tap of a hammer (though before re-mounting I need sand the rest of it away), but the timing is just about the most annoying it can be
</p>

<h2>Update</h2>

<p>
The whole multi-switch assembly needs to be changed, one can't get just one of the switches as spare, this will set me back about 180EUR, damn, it would have been already (the people at Hailac we're proactive and ordered the part beforehand) but DHL misplaced the package that contained the part (along with a locking pin for the left side-fairing that I seem to have misplaced and ordered earlier). 
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
Figures, just as I get something <a href="http://oldmidgard.hurttakallio.net/photos/photo/74c320ba1ce811dc84ab4f507b7a9a539a53/">mounted (with epoxy..)</a>, the turn signal switch dies on me so that the left-hand signal won't turn on. To see what the problem is the whole thing must be opened (in worst case the whole thing must be replaced) which means breaking of the newly epoxied part.
</p>

<p>
It's not a huge deal, the expoxy should break cleanly of with a slight tap of a hammer (though before re-mounting I need sand the rest of it away), but the timing is just about the most annoying it can be
</p>

<h2>Update</h2>

<p>
The whole multi-switch assembly needs to be changed, one can't get just one of the switches as spare, this will set me back about 180EUR, damn, it would have been already (the people at Hailac we're proactive and ordered the part beforehand) but DHL misplaced the package that contained the part (along with a locking pin for the left side-fairing that I seem to have misplaced and ordered earlier). 
</p>
]]></summary>
    </entry>
    <entry>
        <title>Photostream now supports moblogging</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/photostream_now_supports_moblogging/"/>
        <published>2007-06-16T18:57:45+00:00</published>
        <updated>2007-06-16T18:57:45+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-7818d91a1c3b11dc8924f9454208bf23bf23</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>
This morning I fixed the last issues in org.routamc.photostream new email API that enables moblogging, it's very similar to the way net.nehmer.blog handles emailed in entries however it also supports forcing a default tag (or set of tags) for the imported entries, by default all are tagged moblog.
</p>

<p>
My <a href="http://rambo.pbt-unknown.org/photos/tag/all/moblog/">photos from the road</a> can he seen <a href="http://rambo.pbt-unknown.org/photos/tag/all/moblog/">here</a>, I hope I make a habit of it even though the N93 (if I haven't mentioned, I got the hardware replaced and since then it hasn't been crashing) is really slow to generate the email with attachment.
</p>

<p>
Now the photostream component only needs RSS feeds for all the list views it has...
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
This morning I fixed the last issues in org.routamc.photostream new email API that enables moblogging, it's very similar to the way net.nehmer.blog handles emailed in entries however it also supports forcing a default tag (or set of tags) for the imported entries, by default all are tagged moblog.
</p>

<p>
My <a href="http://rambo.pbt-unknown.org/photos/tag/all/moblog/">photos from the road</a> can he seen <a href="http://rambo.pbt-unknown.org/photos/tag/all/moblog/">here</a>, I hope I make a habit of it even though the N93 (if I haven't mentioned, I got the hardware replaced and since then it hasn't been crashing) is really slow to generate the email with attachment.
</p>

<p>
Now the photostream component only needs RSS feeds for all the list views it has...
</p>
]]></summary>
    </entry>
    <entry>
        <title>Blog moved</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/blog_moved/"/>
        <published>2007-06-16T18:32:46+00:00</published>
        <updated>2007-06-16T18:32:46+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-fa4929b61c3711dcb15861a8437d33613361</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <content type="html"><![CDATA[
<p>I finally got around to doing it, moved<a href="http://rambo.pbt-unknown.org/blog//"></a> using the RSS export/import trick so all URLs/GUIDs got changed (I would have liked to avoid that but I finally grew tired of not bothering to play with exorcist to do it and not being able to use midgard_replicator since the old server is running too old versions).</p>
]]></content>
        <summary type="html"><![CDATA[
<p>I finally got around to doing it, moved<a href="http://rambo.pbt-unknown.org/blog//"></a> using the RSS export/import trick so all URLs/GUIDs got changed (I would have liked to avoid that but I finally grew tired of not bothering to play with exorcist to do it and not being able to use midgard_replicator since the old server is running too old versions).</p>
]]></summary>
    </entry>
    <entry>
        <title>Memories from 2005</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/98c6155da1703b0299560590239c1b9c/"/>
        <published>2006-11-29T20:15:22+00:00</published>
        <updated>2006-11-29T20:15:22+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9c8951ba1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    During the weekend I got and watched the <a href="http://rammstein.com/">Rammstein</a> <a href="http://rammstein.com/_Voelkerball/Voelkerball/">Völkerball
    DVD</a> (from the 2005 "Reise, Reise" tour), it brought back
    some nice <a href="http://www.routamc.org/journal/tour2005/a-night-at-wuhlheide.html">
    memories</a> from our <a href="http://www.routamc.org/journal/tour2005/">trip to europe</a>
    on the same year.
</p>

<p>
    I also got yesterday a <a href="http://www.telit.co.it/product.asp?productId=105">Telit
    GM862-GPS</a> module, <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=477">
    breakout board</a> (and antennas) I had gotten earlier. This
    morning I had little time to look at it and managed to read GPS
    position and time data, and both send and receive SMS using the
    serial interface. Next I'll try to write a small
    proof-of-concept program to reply to incoming SMS with the GPS
    time to test the built-in <a href="http://www.python.org/">Python</a> interpreter.
</p>

<p>
    Also on the electronics front I've been trying to get gcc-arm
    working on my OSX to make some improvements to the firmware for
    <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=657">
    this datalogger</a>, the problem is that the firmware is built
    with <a href="http://www.rowley.co.uk/arm/index.htm">Rowley
    crossworks</a> (while thankfully not Windows only, "tested on
    RedHat 9" does not exactly sound like the bleeding edge of
    Linux support) which doesn't use Makefiles. So I dug around a
    bit for an example of a Makefile and the standard header files
    for LPC21xx uCs and got the original firmware source to
    compile, however when I program the uC with that hex file it
    won't boot.
    <br /></p>

<p>
    Now this may simply be because I made some stupid mistake while
    tweaking the Makefile I found, if you have experience in
    writing Makefiles for LPC21xx take <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/d9fdcda2c82fa07ca4f75a1d7b0fac73/logger_gcc_makefiles.tar.bz2">
    take a look</a> (extract that to the directory where you
    already have extracted the firmware found behind the datalogger
    link) and let me know what is my mistake.
    <br /></p>

<p><strong>GM862-GPS update:</strong> the command reference manual is <em>very</em> thorough, without thinking I let it print on my big printer (LJ 8000DN) and some 600 pages later I noticed that all the command tables (syntax, description, output and example for each) are listed in full for each flavour or version of the interface (older ones are selectable for backwards compatibly on newer HW revisions), even when there is absolutely no difference. To add insult to injuru I ran out of toner so the last 100 or so pages are hard to read, and of course they're the ones that contain the important info for the latest and greatest version of the interface...</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    During the weekend I got and watched the <a href="http://rammstein.com/">Rammstein</a> <a href="http://rammstein.com/_Voelkerball/Voelkerball/">Völkerball
    DVD</a> (from the 2005 "Reise, Reise" tour), it brought back
    some nice <a href="http://www.routamc.org/journal/tour2005/a-night-at-wuhlheide.html">
    memories</a> from our <a href="http://www.routamc.org/journal/tour2005/">trip to europe</a>
    on the same year.
</p>

<p>
    I also got yesterday a <a href="http://www.telit.co.it/product.asp?productId=105">Telit
    GM862-GPS</a> module, <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=477">
    breakout board</a> (and antennas) I had gotten earlier. This
    morning I had little time to look at it and managed to read GPS
    position and time data, and both send and receive SMS using the
    serial interface. Next I'll try to write a small
    proof-of-concept program to reply to incoming SMS with the GPS
    time to test the built-in <a href="http://www.python.org/">Python</a> interpreter.
</p>

<p>
    Also on the electronics front I've been trying to get gcc-arm
    working on my OSX to make some improvements to the firmware for
    <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=657">
    this datalogger</a>, the problem is that the firmware is built
    with <a href="http://www.rowley.co.uk/arm/index.htm">Rowley
    crossworks</a> (while thankfully not Windows only, "tested on
    RedHat 9" does not exactly sound like the bleeding edge of
    Linux support) which doesn't use Makefiles. So I dug around a
    bit for an example of a Makefile and the standard header files
    for LPC21xx uCs and got the original firmware source to
    compile, however when I program the uC with that hex file it
    won't boot.
    <br /></p>

<p>
    Now this may simply be because I made some stupid mistake while
    tweaking the Makefile I found, if you have experience in
    writing Makefiles for LPC21xx take <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/d9fdcda2c82fa07ca4f75a1d7b0fac73/logger_gcc_makefiles.tar.bz2">
    take a look</a> (extract that to the directory where you
    already have extracted the firmware found behind the datalogger
    link) and let me know what is my mistake.
    <br /></p>

<p><strong>GM862-GPS update:</strong> the command reference manual is <em>very</em> thorough, without thinking I let it print on my big printer (LJ 8000DN) and some 600 pages later I noticed that all the command tables (syntax, description, output and example for each) are listed in full for each flavour or version of the interface (older ones are selectable for backwards compatibly on newer HW revisions), even when there is absolutely no difference. To add insult to injuru I ran out of toner so the last 100 or so pages are hard to read, and of course they're the ones that contain the important info for the latest and greatest version of the interface...</p>
]]></summary>
    </entry>
    <entry>
        <title>In case of Exorcist mysql problem with MidgardImporter</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/f3a8a7f409d7b8a8732e9623a69c0277/"/>
        <published>2006-10-20T15:27:24+00:00</published>
        <updated>2006-10-20T15:27:24+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9bf2727c1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>Break the glass... :)</p>

<p>and then to the issue: if with Exorcist you run into 

</p><pre>
net.sf.exorcist.api.ContentException: java.sql.SQLException: No suitable driver
        at net.sf.exorcist.midgard.MidgardImporter.importContent(MidgardImporter.java:445)
        at net.sf.exorcist.core.Exorcist.main(Exorcist.java:127)
Caused by: java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getConnection(DriverManager.java:545)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at net.sf.exorcist.midgard.MidgardImporter.importContent(MidgardImporter.java:405)
        ... 1 more
</pre>

add <tt>-Djdbc.drivers=com.mysql.jdbc.Driver</tt> to the java options in <tt>bin/exorcist.sh</tt>

<p>That's all for now, I just needed to write this down so I can find it the next time I run into it.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>Break the glass... :)</p>

<p>and then to the issue: if with Exorcist you run into 

</p><pre>
net.sf.exorcist.api.ContentException: java.sql.SQLException: No suitable driver
        at net.sf.exorcist.midgard.MidgardImporter.importContent(MidgardImporter.java:445)
        at net.sf.exorcist.core.Exorcist.main(Exorcist.java:127)
Caused by: java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getConnection(DriverManager.java:545)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at net.sf.exorcist.midgard.MidgardImporter.importContent(MidgardImporter.java:405)
        ... 1 more
</pre>

add <tt>-Djdbc.drivers=com.mysql.jdbc.Driver</tt> to the java options in <tt>bin/exorcist.sh</tt>

<p>That's all for now, I just needed to write this down so I can find it the next time I run into it.</p>
]]></summary>
    </entry>
    <entry>
        <title>in the mixxx</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/2f957da2798a0a70a16d00376fc31b15/"/>
        <published>2006-10-18T07:13:16+00:00</published>
        <updated>2006-10-18T07:13:16+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9b3ada861c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>I downloaded <a href="http://mixxx.sourceforge.net/">mixxx</a> for my Mac some time ago (I've played around with it on linux a few times in the past as well), but for some reason the sound quality was disappointing, yesterday I realized this was due to the default settings being, to put it nicely, less than optimal. So when you try it out check the preferences and adjust as needed.</p>

<p>I've also been working on the <a href="http://pear.midcom-project.org/index.php?package=net_nemein_tag">tag library</a> bergie <a href="http://bergie.iki.fi/blog/midgard-s-new-tagging-library.html">mentioned</a>, if someone has spare time and good hand with JS a <a href="http://del.icio.us/">del.icio.us</a> workalike widget for tag input would be cool, the search backend is already in exec.</p>

<p>The <tt>org.routamc.photosgtream component</tt>, (to replace <tt>net.siriux.photos</tt> in 2.6 MidCOM), is still very much a work in progress due to lack of time, hopefully this weekend sees some progress in that front.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>I downloaded <a href="http://mixxx.sourceforge.net/">mixxx</a> for my Mac some time ago (I've played around with it on linux a few times in the past as well), but for some reason the sound quality was disappointing, yesterday I realized this was due to the default settings being, to put it nicely, less than optimal. So when you try it out check the preferences and adjust as needed.</p>

<p>I've also been working on the <a href="http://pear.midcom-project.org/index.php?package=net_nemein_tag">tag library</a> bergie <a href="http://bergie.iki.fi/blog/midgard-s-new-tagging-library.html">mentioned</a>, if someone has spare time and good hand with JS a <a href="http://del.icio.us/">del.icio.us</a> workalike widget for tag input would be cool, the search backend is already in exec.</p>

<p>The <tt>org.routamc.photosgtream component</tt>, (to replace <tt>net.siriux.photos</tt> in 2.6 MidCOM), is still very much a work in progress due to lack of time, hopefully this weekend sees some progress in that front.</p>
]]></summary>
    </entry>
    <entry>
        <title>N93 software</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/a153ab6f599ade8691a78eae25be2be2/"/>
        <published>2006-10-01T16:12:16+00:00</published>
        <updated>2006-10-01T16:12:16+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9abe252c1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    Some handy pieces of software for the N93:
</p>

<ul><li>
        <a href="http://s2putty.sourceforge.net/">PuTTY</a>
    </li>
    <li>
        <a href="http://www.opera.com/">Opera</a>, either the mini
        (java based, free to use) or the Mobile (better, costs
        money)
    </li>
    <li>
        <a href="http://www.allaboutsymbian.com/software/item/KeypadLock.php">
        KeyPadLock</a>, since the device itself has no provision
        for automatic keypad locking
    </li>
</ul><h2>
    Beverages revisited
</h2>

<p>
    I redesigned the thermostat circuit, reduced some complexity
    and made the sensor to be connected via a 3.5mm jack (signal on
    hot [the tip] , supply voltage on cold [middle] and ground on
    sleeve). The new circuit is attached as <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/eb6dbcce1092cb21881850905473000f/termostaatti.tar.gz">
    termostaatti.tar.gz</a>.
</p>

<p>
    And then some pictures from making a version of the circuit (it
    got then revised a few times with "green wire" [red in this
    case, but anyways]):
    <br /><a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/c69ad4a66da6a54a5c079c37541b0647/20060930026.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/c69ad4a66da6a54a5c079c37541b0647/20060930026.jpg" alt="20060930026.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/8466c75a20969560cca7c8f214e960cb/20060930028.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/8466c75a20969560cca7c8f214e960cb/20060930028.jpg" alt="20060930028.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/174c852738f498aafd4cc319c25001d8/20060930029.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/174c852738f498aafd4cc319c25001d8/20060930029.jpg" alt="20060930029.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/d01a50dc7491331421cc54f83d23cede/20060930030.jpg">
    <img width="133" height="110" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/d01a50dc7491331421cc54f83d23cede/20060930030.jpg" alt="20060930030.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/a414340f3efe4bbc7aeb29664101f7bb/20060930032.jpg">
    <img height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/a414340f3efe4bbc7aeb29664101f7bb/20060930032.jpg" alt="20060930032.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/e36e1f85af57034cd2f819f2598f0f7b/20060930033.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/e36e1f85af57034cd2f819f2598f0f7b/20060930033.jpg" alt="20060930033.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/5094cbc353f9313f346c64d61e860e7f/20060930034.jpg">
    <img height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/5094cbc353f9313f346c64d61e860e7f/20060930034.jpg" alt="20060930034.jpg" /></a>
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    Some handy pieces of software for the N93:
</p>

<ul><li>
        <a href="http://s2putty.sourceforge.net/">PuTTY</a>
    </li>
    <li>
        <a href="http://www.opera.com/">Opera</a>, either the mini
        (java based, free to use) or the Mobile (better, costs
        money)
    </li>
    <li>
        <a href="http://www.allaboutsymbian.com/software/item/KeypadLock.php">
        KeyPadLock</a>, since the device itself has no provision
        for automatic keypad locking
    </li>
</ul><h2>
    Beverages revisited
</h2>

<p>
    I redesigned the thermostat circuit, reduced some complexity
    and made the sensor to be connected via a 3.5mm jack (signal on
    hot [the tip] , supply voltage on cold [middle] and ground on
    sleeve). The new circuit is attached as <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/eb6dbcce1092cb21881850905473000f/termostaatti.tar.gz">
    termostaatti.tar.gz</a>.
</p>

<p>
    And then some pictures from making a version of the circuit (it
    got then revised a few times with "green wire" [red in this
    case, but anyways]):
    <br /><a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/c69ad4a66da6a54a5c079c37541b0647/20060930026.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/c69ad4a66da6a54a5c079c37541b0647/20060930026.jpg" alt="20060930026.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/8466c75a20969560cca7c8f214e960cb/20060930028.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/8466c75a20969560cca7c8f214e960cb/20060930028.jpg" alt="20060930028.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/174c852738f498aafd4cc319c25001d8/20060930029.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/174c852738f498aafd4cc319c25001d8/20060930029.jpg" alt="20060930029.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/d01a50dc7491331421cc54f83d23cede/20060930030.jpg">
    <img width="133" height="110" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/d01a50dc7491331421cc54f83d23cede/20060930030.jpg" alt="20060930030.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/a414340f3efe4bbc7aeb29664101f7bb/20060930032.jpg">
    <img height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/a414340f3efe4bbc7aeb29664101f7bb/20060930032.jpg" alt="20060930032.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/e36e1f85af57034cd2f819f2598f0f7b/20060930033.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/e36e1f85af57034cd2f819f2598f0f7b/20060930033.jpg" alt="20060930033.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/5094cbc353f9313f346c64d61e860e7f/20060930034.jpg">
    <img height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/5094cbc353f9313f346c64d61e860e7f/20060930034.jpg" alt="20060930034.jpg" /></a>
</p>
]]></summary>
    </entry>
    <entry>
        <title>N93 Update</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/f8408d313d5f0e657b0683e6e2cd2d38/"/>
        <published>2006-09-29T17:32:54+00:00</published>
        <updated>2006-09-29T17:32:54+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9a94a3641c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    It's deeb a week since I finally got my phone back from
    service, they had upgraded the firmware and run some tests, or
    so they say, at least it was reset to factory defaults...
</p>

<p>
    But still it was about as stable as Windows PC in a microwave,
    I decided to try and switch SIM card to a newer one in case it
    would help, in theory it should not have any effect as long as
    the card is not ancient, but I was running out of easy options
    and after making the minor monetary sacrifice things were in
    fact running much smoother.
</p>

<p>
    This is not to say that it would be exceptionally solid, but
    when you start at the bottom all improvements seem major...
</p>

<p>
    I have noticed that the camera optics and sensor are definitely
    optimized for video, and in fact I dropped the still image size
    to 1600x1200 since the largest size is just a waste of storage,
    the image stabilizer in the video mode OTOH works very well.
</p>

<h2>
    Fixing the car
</h2>

<p>
    Last saturday when going to lure coursing Taru noticed that the
    headlights, parking lights and meter lights were all out, and
    all fuses and realys were ok... So I got in contact with an
    aquitance who told me that the problem must be the actual light
    switch then (and that those were very "english" in their
    construction), he also told me that the official spare part is
    hideously expensive.
</p>

<p>
    He came over to demonstrate the correct way to dismantle the
    instrument board, a quick test with a multimeter proved that
    the switch is indeed the problem. So I got one with a more
    sound design and a large diode.
</p>

<p>
    Here's some photos (taken with the N93)
</p>

<p>
    <br />
    The original switch (not dismantled, it indeed is open like
    that):
</p>

<p>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/74b412de82a992d8073a41d638c1608e/20060929015.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/74b412de82a992d8073a41d638c1608e/20060929015.jpg" alt="20060929015.jpg" /></a>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/0da9728ac91e9ce9de44eaa4e9a6f3e8/20060929018.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/0da9728ac91e9ce9de44eaa4e9a6f3e8/20060929018.jpg" alt="20060929018.jpg" /></a>
</p>

<p>
    The new switch, without and with collar and in place:
</p>

<p>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/11b97062700a64365b6efd325fb967dd/20060929019.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/11b97062700a64365b6efd325fb967dd/20060929019.jpg" alt="20060929019.jpg" /></a>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/eb3277da984988eaa5d3cb7cd43041ca/20060929021.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/eb3277da984988eaa5d3cb7cd43041ca/20060929021.jpg" alt="20060929021.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/1b538aa63133b315bb342352000b5684/20060929022.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/1b538aa63133b315bb342352000b5684/20060929022" alt="20060929022" /></a>
</p>

<p>
    This land rover belongs to the guy in question:
</p>

<p>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/027b3dc1c4a3f94c80c8cdf9da3cb4de/20060927013.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/027b3dc1c4a3f94c80c8cdf9da3cb4de/20060927013.jpg" alt="20060927013.jpg" /></a>
</p>

<h2>
    Rebuilding the lab
</h2>

<p>
    The computer (10yr old Compaq Armada) finally gave up, so I
    took one of the old "spare" pc-laptops from the office, it
    already had Xubuntu installed and Eagle is available on Linux
    as well so I was happy, untill I found out that the Canon
    _LBP-800 I had for printing circuit boards is a true
    "WinPrinter" and it was not possible to get it working under
    linux. I took the HD from the old laptop but it wouldn't boot
    properly. Luckily we also had just laying around and old
    LaserJet 2100M which works just beatifully under Linux.
</p>

<p>
    While getting the switch mentioned above I noticed that the
    electronics supplier had a soldering station on sale, I quick
    phone call to consult with my brother later it was decided that
    the family business definitely needs one of them...
</p>

<p>
    "Design workstation", "The lab" (exposure box, development
    solution and acid) and the "Soldering workstation"
    <br /><a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/f9572a9f8d38e697c170328709d34672/20060929023.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/f9572a9f8d38e697c170328709d34672/20060929023.jpg" alt="20060929023.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/70edb7f92cbdd1cec879db4f8ef81897/20060929024.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/70edb7f92cbdd1cec879db4f8ef81897/20060929024.jpg" alt="20060929024.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/604c3ac37ee1aa0007c84742621ef405/20060929025.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/604c3ac37ee1aa0007c84742621ef405/20060929025.jpg" alt="20060929025.jpg" /></a>
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    It's deeb a week since I finally got my phone back from
    service, they had upgraded the firmware and run some tests, or
    so they say, at least it was reset to factory defaults...
</p>

<p>
    But still it was about as stable as Windows PC in a microwave,
    I decided to try and switch SIM card to a newer one in case it
    would help, in theory it should not have any effect as long as
    the card is not ancient, but I was running out of easy options
    and after making the minor monetary sacrifice things were in
    fact running much smoother.
</p>

<p>
    This is not to say that it would be exceptionally solid, but
    when you start at the bottom all improvements seem major...
</p>

<p>
    I have noticed that the camera optics and sensor are definitely
    optimized for video, and in fact I dropped the still image size
    to 1600x1200 since the largest size is just a waste of storage,
    the image stabilizer in the video mode OTOH works very well.
</p>

<h2>
    Fixing the car
</h2>

<p>
    Last saturday when going to lure coursing Taru noticed that the
    headlights, parking lights and meter lights were all out, and
    all fuses and realys were ok... So I got in contact with an
    aquitance who told me that the problem must be the actual light
    switch then (and that those were very "english" in their
    construction), he also told me that the official spare part is
    hideously expensive.
</p>

<p>
    He came over to demonstrate the correct way to dismantle the
    instrument board, a quick test with a multimeter proved that
    the switch is indeed the problem. So I got one with a more
    sound design and a large diode.
</p>

<p>
    Here's some photos (taken with the N93)
</p>

<p>
    <br />
    The original switch (not dismantled, it indeed is open like
    that):
</p>

<p>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/74b412de82a992d8073a41d638c1608e/20060929015.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/74b412de82a992d8073a41d638c1608e/20060929015.jpg" alt="20060929015.jpg" /></a>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/0da9728ac91e9ce9de44eaa4e9a6f3e8/20060929018.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/0da9728ac91e9ce9de44eaa4e9a6f3e8/20060929018.jpg" alt="20060929018.jpg" /></a>
</p>

<p>
    The new switch, without and with collar and in place:
</p>

<p>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/11b97062700a64365b6efd325fb967dd/20060929019.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/11b97062700a64365b6efd325fb967dd/20060929019.jpg" alt="20060929019.jpg" /></a>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/eb3277da984988eaa5d3cb7cd43041ca/20060929021.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/eb3277da984988eaa5d3cb7cd43041ca/20060929021.jpg" alt="20060929021.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/1b538aa63133b315bb342352000b5684/20060929022.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/1b538aa63133b315bb342352000b5684/20060929022" alt="20060929022" /></a>
</p>

<p>
    This land rover belongs to the guy in question:
</p>

<p>
    <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/027b3dc1c4a3f94c80c8cdf9da3cb4de/20060927013.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/027b3dc1c4a3f94c80c8cdf9da3cb4de/20060927013.jpg" alt="20060927013.jpg" /></a>
</p>

<h2>
    Rebuilding the lab
</h2>

<p>
    The computer (10yr old Compaq Armada) finally gave up, so I
    took one of the old "spare" pc-laptops from the office, it
    already had Xubuntu installed and Eagle is available on Linux
    as well so I was happy, untill I found out that the Canon
    _LBP-800 I had for printing circuit boards is a true
    "WinPrinter" and it was not possible to get it working under
    linux. I took the HD from the old laptop but it wouldn't boot
    properly. Luckily we also had just laying around and old
    LaserJet 2100M which works just beatifully under Linux.
</p>

<p>
    While getting the switch mentioned above I noticed that the
    electronics supplier had a soldering station on sale, I quick
    phone call to consult with my brother later it was decided that
    the family business definitely needs one of them...
</p>

<p>
    "Design workstation", "The lab" (exposure box, development
    solution and acid) and the "Soldering workstation"
    <br /><a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/f9572a9f8d38e697c170328709d34672/20060929023.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/f9572a9f8d38e697c170328709d34672/20060929023.jpg" alt="20060929023.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/70edb7f92cbdd1cec879db4f8ef81897/20060929024.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/70edb7f92cbdd1cec879db4f8ef81897/20060929024.jpg" alt="20060929024.jpg" /></a> <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/604c3ac37ee1aa0007c84742621ef405/20060929025.jpg">
    <img width="133" height="100" src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/604c3ac37ee1aa0007c84742621ef405/20060929025.jpg" alt="20060929025.jpg" /></a>
</p>
]]></summary>
    </entry>
    <entry>
        <title>Midgard MySQL optimization tricks</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/d34decefd6008150c3b876db0bec4bea/"/>
        <published>2006-09-14T09:42:21+00:00</published>
        <updated>2006-09-14T09:42:21+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9a1ad28c1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    Bergie asked me to write some things here as well on how to
    make Midgard faster by making the underlying MySQL faster.
</p>

<p><strong>Update 2006-09-20</strong>: I've put some of this and some more to <a href="http://www.midgard-project.org/documentation/performance-tuning/">Midgard documentation</a>, another page there also covers the <a href="http://www.midgard-project.org/documentation/setting-up-squid-reverse-proxy/">Squid setup</a> I promised.</p>

<h3>
    Quick and Dirty things
</h3>

<p>
    in <tt>my.cnf</tt> make sure query cache is enabled:
</p>

<pre>
query_cache_type = 1
query_cache_size = 10M
query_cache_limit = 1M
</pre>

<p>
    There are other caches to consider as well, see the example
    <tt>my-xxx.cnf</tt> -files, usually included in the install.
    Also tuning the caches to your specific situation may require
    some work.
</p>

<p>
    Especially if your filesystem is slow for some reason, make
    sure the <tt>atime</tt> doesn't get stored for MySQL database
    files, if you have MySQL datadir as it's own partition (you
    should), then in <tt>/etc/mtab</tt> add <tt>noatime</tt> to the
    mount options and remount. If not you can use <tt>chattr</tt>
    to set the flags on the files via the following command
    <tt>chatttr +A -R /path/to/mysql</tt>.
</p>

<h3>
    More about it
</h3>

<p>
    Here's a few articles on optimizing mysql, O'Reilly has a good
    book about it as well.
</p>

<ul><li>
        <a href="http://www.databasejournal.com/features/mysql/article.php/10897_1402311_1">
        Optimizing MySQL: Hardware and the Mysqld Variables</a>
        (esp the variables part)
    </li>
    <li>
        <a href="http://www.databasejournal.com/features/mysql/article.php/3110171">
        MySQL's Query Cache</a>
    </li>
    <li>
        <a href="http://dev.mysql.com/tech-resources/presentations/presentation-oscon2000-20000719/index.html">
        MySQL Presentations: Optimizing MySQL</a>
    </li>
</ul><p>
    With 1.8 a lot of things have changed so we should rethink the
    indexes Midgard uses, I and Piotras have this under work but
    suggestions on the dev list are welcome.
</p>

<p>
    As a side note, if it's a public site you can also run Squid as
    reverse proxy in front of it making things a lot faster, I'll
    try to find time to write about it while I still remember the
    issues I ran into when doing it on two occasions in the last
    few weeks.
</p>

<h2>
    Other things
</h2>

<p>
    My N93 has been in repair for slightly over a week now, I guess
    it really had faulty memory (though the repair people have not
    yet confirmed anything else than that they had to send it to
    central repair, which suggests a difficult-to-fix HW problem),
    I cursed this on monday when going to training I saw a true
    classic parked next to the F-Secure office:
    <br /></p>

<p>
    <br /></p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/75dbd7ceae1ff77c8d985007a0617d4d/68AE0019.jpg" alt="68AE0019.jpg" /><br /></p>

<p>
    <br /></p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/3f5200cfdf76309140e28283fd897240/68AE0020.jpg" alt="68AE0020.jpg" /></p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    Bergie asked me to write some things here as well on how to
    make Midgard faster by making the underlying MySQL faster.
</p>

<p><strong>Update 2006-09-20</strong>: I've put some of this and some more to <a href="http://www.midgard-project.org/documentation/performance-tuning/">Midgard documentation</a>, another page there also covers the <a href="http://www.midgard-project.org/documentation/setting-up-squid-reverse-proxy/">Squid setup</a> I promised.</p>

<h3>
    Quick and Dirty things
</h3>

<p>
    in <tt>my.cnf</tt> make sure query cache is enabled:
</p>

<pre>
query_cache_type = 1
query_cache_size = 10M
query_cache_limit = 1M
</pre>

<p>
    There are other caches to consider as well, see the example
    <tt>my-xxx.cnf</tt> -files, usually included in the install.
    Also tuning the caches to your specific situation may require
    some work.
</p>

<p>
    Especially if your filesystem is slow for some reason, make
    sure the <tt>atime</tt> doesn't get stored for MySQL database
    files, if you have MySQL datadir as it's own partition (you
    should), then in <tt>/etc/mtab</tt> add <tt>noatime</tt> to the
    mount options and remount. If not you can use <tt>chattr</tt>
    to set the flags on the files via the following command
    <tt>chatttr +A -R /path/to/mysql</tt>.
</p>

<h3>
    More about it
</h3>

<p>
    Here's a few articles on optimizing mysql, O'Reilly has a good
    book about it as well.
</p>

<ul><li>
        <a href="http://www.databasejournal.com/features/mysql/article.php/10897_1402311_1">
        Optimizing MySQL: Hardware and the Mysqld Variables</a>
        (esp the variables part)
    </li>
    <li>
        <a href="http://www.databasejournal.com/features/mysql/article.php/3110171">
        MySQL's Query Cache</a>
    </li>
    <li>
        <a href="http://dev.mysql.com/tech-resources/presentations/presentation-oscon2000-20000719/index.html">
        MySQL Presentations: Optimizing MySQL</a>
    </li>
</ul><p>
    With 1.8 a lot of things have changed so we should rethink the
    indexes Midgard uses, I and Piotras have this under work but
    suggestions on the dev list are welcome.
</p>

<p>
    As a side note, if it's a public site you can also run Squid as
    reverse proxy in front of it making things a lot faster, I'll
    try to find time to write about it while I still remember the
    issues I ran into when doing it on two occasions in the last
    few weeks.
</p>

<h2>
    Other things
</h2>

<p>
    My N93 has been in repair for slightly over a week now, I guess
    it really had faulty memory (though the repair people have not
    yet confirmed anything else than that they had to send it to
    central repair, which suggests a difficult-to-fix HW problem),
    I cursed this on monday when going to training I saw a true
    classic parked next to the F-Secure office:
    <br /></p>

<p>
    <br /></p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/75dbd7ceae1ff77c8d985007a0617d4d/68AE0019.jpg" alt="68AE0019.jpg" /><br /></p>

<p>
    <br /></p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/3f5200cfdf76309140e28283fd897240/68AE0020.jpg" alt="68AE0020.jpg" /></p>
]]></summary>
    </entry>
    <entry>
        <title>N93 - First impressions</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/ee5e3d6d90a79d8eceab74a0ed3fffea/"/>
        <published>2006-08-24T19:04:15+00:00</published>
        <updated>2006-08-24T19:04:15+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-99ff5ffc1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    I finally picked the device up on wednesday, it's kind of
    large, but so was the P900 and the user interface is pretty
    nice.
</p>

<p>
    I had to get a third party plugin to get iSync to recognize it
    and after that I ran into the main annoyance so far:
</p>

<p>
    I'm not sure if it's hardware or software(/firmware) issue but
    "heavy" memory access to the phones internal memory freezes the
    device...
</p>

<p>
    It took a ton of reboots (by removing battery) and retries to
    get my contacts list synced over bluetooth but finally I
    managed, first I thought the bluetooth stack had issues but
    later when I tried to transfer a 6MB file to the internal
    memory via the USB cable it froze as well but transferring to
    the MiniSD card worked fine.
</p>

<p>
    I got the nokia portable bluetooth keyboard paired with the
    phone but so far I haven't figured out how to get it actually
    working, the downloadable "drivers" (it's a software you need
    to leave running in the background) do not yet support N93.
</p>

<p>
     
</p>

<h3>
    Update
</h3>

<p>
    While playing around with the "Catalog" software (which is a
    software catalog system) I found out that it did have N93
    compatible version of the wireless keyboard software, it's has
    some latency but is very usable, especially since I havent used
    "morse code" in years (my previous phone, P900 had touchscreen
    and on-screen keyboard, plus handwriting recognition...)
    <br /></p>

<h2>
    In other news
</h2>

<p>
    I finally got rid of the thing that has been choking my bike,
    the catalysator is gone and the injection system is loaded with
    more feisty software, the difference is certainly noticeable,
    especially at lower revs.
</p>

<p>
    I also have been finalizing the so called universal chooser
    widget for datamanager2. this chooser is a generalized version
    of the contactchooser widget I made for datamanager1 and it
    also supports creating new objects if the target component
    provides handler for it, tomorrow I'll try to make a sample
    implementation of the creation handler to org.openpsa.contacts
    (for persons and groups).
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    I finally picked the device up on wednesday, it's kind of
    large, but so was the P900 and the user interface is pretty
    nice.
</p>

<p>
    I had to get a third party plugin to get iSync to recognize it
    and after that I ran into the main annoyance so far:
</p>

<p>
    I'm not sure if it's hardware or software(/firmware) issue but
    "heavy" memory access to the phones internal memory freezes the
    device...
</p>

<p>
    It took a ton of reboots (by removing battery) and retries to
    get my contacts list synced over bluetooth but finally I
    managed, first I thought the bluetooth stack had issues but
    later when I tried to transfer a 6MB file to the internal
    memory via the USB cable it froze as well but transferring to
    the MiniSD card worked fine.
</p>

<p>
    I got the nokia portable bluetooth keyboard paired with the
    phone but so far I haven't figured out how to get it actually
    working, the downloadable "drivers" (it's a software you need
    to leave running in the background) do not yet support N93.
</p>

<p>
     
</p>

<h3>
    Update
</h3>

<p>
    While playing around with the "Catalog" software (which is a
    software catalog system) I found out that it did have N93
    compatible version of the wireless keyboard software, it's has
    some latency but is very usable, especially since I havent used
    "morse code" in years (my previous phone, P900 had touchscreen
    and on-screen keyboard, plus handwriting recognition...)
    <br /></p>

<h2>
    In other news
</h2>

<p>
    I finally got rid of the thing that has been choking my bike,
    the catalysator is gone and the injection system is loaded with
    more feisty software, the difference is certainly noticeable,
    especially at lower revs.
</p>

<p>
    I also have been finalizing the so called universal chooser
    widget for datamanager2. this chooser is a generalized version
    of the contactchooser widget I made for datamanager1 and it
    also supports creating new objects if the target component
    provides handler for it, tomorrow I'll try to make a sample
    implementation of the creation handler to org.openpsa.contacts
    (for persons and groups).
</p>
]]></summary>
    </entry>
    <entry>
        <title>Hit the ground running</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/7e99384e71ca478f58ca16c8eb2590e2/"/>
        <published>2006-08-21T11:58:28+00:00</published>
        <updated>2006-08-21T11:58:28+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-998376da1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>I was planning on starting work today, but since I hadn't remembered to update my calendar the boys had already booked stuff for me right from last wednesday (I returned to Finland on tuesday...)</p>

<p>The nokia bluetooth keyboard I had ordered ages ago had finally arrived so I picked that up and after installing the <a href="http://770.fs-security.com/maemo-bt-plugin/">plugin</a> it worked like a charm, since it folds just in two parts it's kind of largish compared to mechanically more complex solutions (like the old Palm keyboard), but not too large and the feeling of it is very nice for such a keyboard.</p>

<p>Also arrived just before me is the <a href="www.nokia.com/N93">N93</a> which I haven't yet picked up but will as soon as I can, I'll post my experiences here.</p>

<h2><a href="http://www.dragonbane.org/">Dragonbane</a></h2>

<p>As you can see I didn't have any spare time for diaries at all, in fact due to various problems the SFX team was very short-handed and I didn't get to play that much either (two nights and a day in between, though the day was a very nice "enjoy the atmosphere of cinderhill" one).</p>

<p>But it was quite fun doing the FX as well (though you might consider hauling a ton of gear and pyrotechnics/explosives around in dark, rocky forest with hills less than that), and of course there's always something special in pressing that red button on the detonator.</p>

<p>Most importantly I didn't think of work at all, and thought of IT things only very little (compared to my normal time usage)</p>

<p>I met a lot of new interesting people, and can't wait to meet them again someday</p>

<p>For photos check out <a href="http://www.kuvateko.com/peek/index.html">http://www.kuvateko.com/peek/</a> (some selected photos) and <a href="www.kuvateko.com/db/index.html">www.kuvateko.com/db/</a> (more photos organized by subject), all photos taken by <a href="http://www.kuvateko.com/">Janne Björklunds</a> team of professional photographers.</p>

<p>I only took photos from the return trip, which I still need to download from camera, sort out and then upload, I'll let you know when it's done.</p>

<p>The thing I missed most during all this was training (though in Timos wedding in the early hours me and Towo discussed many things related to it), but today is training again...</p>
]]></content>
        <summary type="html"><![CDATA[
<p>I was planning on starting work today, but since I hadn't remembered to update my calendar the boys had already booked stuff for me right from last wednesday (I returned to Finland on tuesday...)</p>

<p>The nokia bluetooth keyboard I had ordered ages ago had finally arrived so I picked that up and after installing the <a href="http://770.fs-security.com/maemo-bt-plugin/">plugin</a> it worked like a charm, since it folds just in two parts it's kind of largish compared to mechanically more complex solutions (like the old Palm keyboard), but not too large and the feeling of it is very nice for such a keyboard.</p>

<p>Also arrived just before me is the <a href="www.nokia.com/N93">N93</a> which I haven't yet picked up but will as soon as I can, I'll post my experiences here.</p>

<h2><a href="http://www.dragonbane.org/">Dragonbane</a></h2>

<p>As you can see I didn't have any spare time for diaries at all, in fact due to various problems the SFX team was very short-handed and I didn't get to play that much either (two nights and a day in between, though the day was a very nice "enjoy the atmosphere of cinderhill" one).</p>

<p>But it was quite fun doing the FX as well (though you might consider hauling a ton of gear and pyrotechnics/explosives around in dark, rocky forest with hills less than that), and of course there's always something special in pressing that red button on the detonator.</p>

<p>Most importantly I didn't think of work at all, and thought of IT things only very little (compared to my normal time usage)</p>

<p>I met a lot of new interesting people, and can't wait to meet them again someday</p>

<p>For photos check out <a href="http://www.kuvateko.com/peek/index.html">http://www.kuvateko.com/peek/</a> (some selected photos) and <a href="www.kuvateko.com/db/index.html">www.kuvateko.com/db/</a> (more photos organized by subject), all photos taken by <a href="http://www.kuvateko.com/">Janne Björklunds</a> team of professional photographers.</p>

<p>I only took photos from the return trip, which I still need to download from camera, sort out and then upload, I'll let you know when it's done.</p>

<p>The thing I missed most during all this was training (though in Timos wedding in the early hours me and Towo discussed many things related to it), but today is training again...</p>
]]></summary>
    </entry>
    <entry>
        <title>Going to Dragonbane</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/de73eb879e4bbfca76e0034d9e3e9ffd/"/>
        <published>2006-07-23T14:59:51+00:00</published>
        <updated>2006-07-23T14:59:51+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-98fba9c61c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    In case your're not familiar with this particular piece of
    megalomania, check out <a href="http://www.dragonbane.org">www.dragonbane.org</a>.
</p>

<p>
    I'm now on a ship headed to stockholm, from there I ride to
    Älvdalen to prepare for the actual event.
</p>

<p>
    True to traditions I finished my gear only this morning and
    good chunk of last night was spent making some of� it.
</p>

<p>
    In case I have time to write down my musings about the pre-game
    hustle-bustle you can read about them in <a href="http://www.dragonbane.org/en/updates/diary/">D Diaries</a>.
</p>

<p>
    This is also the start of my summer vacation, <a href="http://www.routamc.org/bikes/ducati-monster-620.html">Taru</a>
    will join me after the game and we'll go to a friends wedding
    nearby, then we'll probably start heading back to Finland via
    Ahvenanmaa and the archipelago (which I must to my shame I have
    never done before this, such beatiful nature and so near [it
    must be the "too near" syndrome, you just don't appreciate it
    properly unless you have to travel far to see it]).
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    In case your're not familiar with this particular piece of
    megalomania, check out <a href="http://www.dragonbane.org">www.dragonbane.org</a>.
</p>

<p>
    I'm now on a ship headed to stockholm, from there I ride to
    Älvdalen to prepare for the actual event.
</p>

<p>
    True to traditions I finished my gear only this morning and
    good chunk of last night was spent making some of� it.
</p>

<p>
    In case I have time to write down my musings about the pre-game
    hustle-bustle you can read about them in <a href="http://www.dragonbane.org/en/updates/diary/">D Diaries</a>.
</p>

<p>
    This is also the start of my summer vacation, <a href="http://www.routamc.org/bikes/ducati-monster-620.html">Taru</a>
    will join me after the game and we'll go to a friends wedding
    nearby, then we'll probably start heading back to Finland via
    Ahvenanmaa and the archipelago (which I must to my shame I have
    never done before this, such beatiful nature and so near [it
    must be the "too near" syndrome, you just don't appreciate it
    properly unless you have to travel far to see it]).
</p>
]]></summary>
    </entry>
    <entry>
        <title>Mutilating the voice modem</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/867693e333d3a20a6b66fa3c9361d6cc/"/>
        <published>2006-07-11T19:59:30+00:00</published>
        <updated>2006-07-11T19:59:30+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-983b46681c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    Today I took it (the Diamond SupraExpress 56e PRO) apart and
    put a switch between the speaker and the mainboard to avoid the
    annoying noices the thing insists on making, crappy cell-phone
    pics below
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/854033bfb0e08abd48f74af3d8e5d209/66AE0014_marked.jpg" alt="66AE0014_marked.jpg" /><br /></p>

<p>
    The board, the speaker is attached directly to it (marked in
    red).
    <br /><br /><img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/7b7f7bc92716f5d1237358dab05d9a78/66AE0015_marked.jpg" alt="66AE0015_marked.jpg" /><br /></p>

<p>
    Backside of the board, the connectors of the speaker located.
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/d31064bdf8202aa2117b16efc8a0c074/66AF0016.jpg" alt="66AF0016.jpg" /><br /></p>

<p>
    Switch in place and speaker hot-glued to where it was (the
    contacts were insulated once the jumper wires were soldered in
    place), a few mm higher of the board (though there is plenty of
    space inside the case).
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/0476b57c3f581e4bd8213a58897821cf/66AF0017.jpg" alt="66AF0017.jpg" /><br /></p>

<p>
    The thing back together.
    <br /></p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    Today I took it (the Diamond SupraExpress 56e PRO) apart and
    put a switch between the speaker and the mainboard to avoid the
    annoying noices the thing insists on making, crappy cell-phone
    pics below
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/854033bfb0e08abd48f74af3d8e5d209/66AE0014_marked.jpg" alt="66AE0014_marked.jpg" /><br /></p>

<p>
    The board, the speaker is attached directly to it (marked in
    red).
    <br /><br /><img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/7b7f7bc92716f5d1237358dab05d9a78/66AE0015_marked.jpg" alt="66AE0015_marked.jpg" /><br /></p>

<p>
    Backside of the board, the connectors of the speaker located.
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/d31064bdf8202aa2117b16efc8a0c074/66AF0016.jpg" alt="66AF0016.jpg" /><br /></p>

<p>
    Switch in place and speaker hot-glued to where it was (the
    contacts were insulated once the jumper wires were soldered in
    place), a few mm higher of the board (though there is plenty of
    space inside the case).
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/0476b57c3f581e4bd8213a58897821cf/66AF0017.jpg" alt="66AF0017.jpg" /><br /></p>

<p>
    The thing back together.
    <br /></p>
]]></summary>
    </entry>
    <entry>
        <title>Playing with voice modem</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/e85792e9bdc57dd6219b32dfa65199fc/"/>
        <published>2006-07-10T12:01:37+00:00</published>
        <updated>2006-07-10T12:01:37+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-97b41aee1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>As <a href="http://www.nemein.com/people/rambo/how-busy-can-one-get--.html">reported earlier</a>, I have been playing around with <a href="http://www.vocpsystem.com/index.php">VOCP</a>.</p>

<p>Last week I got the new modem (Diamond SupraExpress 56e PRO) and started experimenting, more than slightly troubling was that under no settings of <tt>pvftormd</tt> could I get the modem to play voice files trough its speaker. Looking trough the mailing list archives I found out that this is "normal" for the modem and found settings that work in real usage.</p>

<p>Armed with that knowledge I got the default installation going nice (event the text-to-speech function work) and now I'm experimenting with the phoned-in-podcast idea with the sparse free time I have.</p>

<p>An annoyance is that it seems it's not possible to turn of the modem speaker even with m/vgetty <tt>post-init-chat</tt>, stuff does not work properly and sooner or later it gets re-enabled, I think that I'm going to take the modem apart and install a mechanical switch (so in case I need to debug something I still can hear all the lovely <a href="http://en.wikipedia.org/wiki/DTMF">DTMF</a>/data sounds and my own voice trough it).</p>

<p>Also I need to record new menu messages (the distribution ones have been recorded with too high sample rate for my modem [and while rate conversion is simple it also pitches down the sound]), for which I need a microphone (the one I thought I had lives no more...), I'll see if the USB headset we have at the office can be made to co-operate with my <a href="http://www.ubuntu.com/">Ubuntu</a> test box.</p>

<p>For people interested here is the (CLI PHP) script I made to test the various settings of <tt>pvftormd</tt> (not finalized in any way, almost certainly will need editing for your particular setup [for example, check the available settings or <em>modes</em>  as the script refers to them with <tt>pvftormd -L</tt>]):</p>

<pre>
#!/usr/bin/php
&lt;?php
echo "\n";
if (   !file_exists($argv[1])
    || !preg_match('/\.pvf$/i', $argv[1])
   )
{
    echo "Give valid .pvf file as argument\n\n";
    exit();
}

if (!$argv[2])
{
    $samplespeed = 8000;
}
else
{  
    $samplespeed = $argv[2];
}

$modes = array();
$modes['Digi'] = array(4,5);
$modes['Elsa'] = array(2,3,4);
$modes['ISDN4Linux'] = array(2,3,4,5,6);
$modes['Lucent'] = array(1,2,3,4,5);
$modes['MT_2834'] = array(4); 
$modes['MT_5634'] = array(4);
$modes['Rockwell'] = array(2,3,4,8);
$modes['UMC'] = array(4);
$modes['US_Robotics'] = array(1,4);
$modes['V253modem'] = array(2,4,5,6,7,8,9,12,13);
$modes['ZyXEL_1496'] = array(2,3,4);
$modes['ZyXEL_2864'] = array(2,3,4,81);
$modes['ZyXEL_Omni56K'] = array(4);

foreach($modes as $mainmode =&gt; $subs)
{
    foreach($subs as $submode)
    {
        echo "\n*** MODE: {$mainmode} {$submode}\n";
        //$convert = "pvfspeed -s {$samplespeed} {$argv[1]} | pvftormd {$mainmode} {$submode} &gt;test.rmd";
        $convert = "pvftormd {$mainmode} {$submode} {$argv[1]} test.rmd";
        echo "Executing: {$convert}\n";
        passthru($convert, $stat1);
        if ($stat1)
        {
            // Non-zero return value means failure
            if (file_exists('test.rmd'))
            {
            system('rm test.rmd');
            }
            continue;
        }
        /*
        $audio = "rmdtopvf test.rmd | pvfspeed -s 8000 | pvftobasic &gt; /dev/audio";
        echo "Executing: {$audio}\n";
        passthru($audio);
        */
        $modem = "vm play -s -v test.rmd";
        echo "Executing: {$modem}\n";
        passthru($modem, $stat2);
        system('rm test.rmd');
        sleep(1);
    }
}
echo "*** Done\n";

?&gt;
</pre>

<p>It will be given a path to a .pvf file as argument, it will then convert that file for each setting combination and try to play it trough the modem speaker, see your <tt>vm</tt> log, even if no sound is heard if no error is reported in the log then those settings <em>might</em> work, write them down for further investigation.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>As <a href="http://www.nemein.com/people/rambo/how-busy-can-one-get--.html">reported earlier</a>, I have been playing around with <a href="http://www.vocpsystem.com/index.php">VOCP</a>.</p>

<p>Last week I got the new modem (Diamond SupraExpress 56e PRO) and started experimenting, more than slightly troubling was that under no settings of <tt>pvftormd</tt> could I get the modem to play voice files trough its speaker. Looking trough the mailing list archives I found out that this is "normal" for the modem and found settings that work in real usage.</p>

<p>Armed with that knowledge I got the default installation going nice (event the text-to-speech function work) and now I'm experimenting with the phoned-in-podcast idea with the sparse free time I have.</p>

<p>An annoyance is that it seems it's not possible to turn of the modem speaker even with m/vgetty <tt>post-init-chat</tt>, stuff does not work properly and sooner or later it gets re-enabled, I think that I'm going to take the modem apart and install a mechanical switch (so in case I need to debug something I still can hear all the lovely <a href="http://en.wikipedia.org/wiki/DTMF">DTMF</a>/data sounds and my own voice trough it).</p>

<p>Also I need to record new menu messages (the distribution ones have been recorded with too high sample rate for my modem [and while rate conversion is simple it also pitches down the sound]), for which I need a microphone (the one I thought I had lives no more...), I'll see if the USB headset we have at the office can be made to co-operate with my <a href="http://www.ubuntu.com/">Ubuntu</a> test box.</p>

<p>For people interested here is the (CLI PHP) script I made to test the various settings of <tt>pvftormd</tt> (not finalized in any way, almost certainly will need editing for your particular setup [for example, check the available settings or <em>modes</em>  as the script refers to them with <tt>pvftormd -L</tt>]):</p>

<pre>
#!/usr/bin/php
&lt;?php
echo "\n";
if (   !file_exists($argv[1])
    || !preg_match('/\.pvf$/i', $argv[1])
   )
{
    echo "Give valid .pvf file as argument\n\n";
    exit();
}

if (!$argv[2])
{
    $samplespeed = 8000;
}
else
{  
    $samplespeed = $argv[2];
}

$modes = array();
$modes['Digi'] = array(4,5);
$modes['Elsa'] = array(2,3,4);
$modes['ISDN4Linux'] = array(2,3,4,5,6);
$modes['Lucent'] = array(1,2,3,4,5);
$modes['MT_2834'] = array(4); 
$modes['MT_5634'] = array(4);
$modes['Rockwell'] = array(2,3,4,8);
$modes['UMC'] = array(4);
$modes['US_Robotics'] = array(1,4);
$modes['V253modem'] = array(2,4,5,6,7,8,9,12,13);
$modes['ZyXEL_1496'] = array(2,3,4);
$modes['ZyXEL_2864'] = array(2,3,4,81);
$modes['ZyXEL_Omni56K'] = array(4);

foreach($modes as $mainmode =&gt; $subs)
{
    foreach($subs as $submode)
    {
        echo "\n*** MODE: {$mainmode} {$submode}\n";
        //$convert = "pvfspeed -s {$samplespeed} {$argv[1]} | pvftormd {$mainmode} {$submode} &gt;test.rmd";
        $convert = "pvftormd {$mainmode} {$submode} {$argv[1]} test.rmd";
        echo "Executing: {$convert}\n";
        passthru($convert, $stat1);
        if ($stat1)
        {
            // Non-zero return value means failure
            if (file_exists('test.rmd'))
            {
            system('rm test.rmd');
            }
            continue;
        }
        /*
        $audio = "rmdtopvf test.rmd | pvfspeed -s 8000 | pvftobasic &gt; /dev/audio";
        echo "Executing: {$audio}\n";
        passthru($audio);
        */
        $modem = "vm play -s -v test.rmd";
        echo "Executing: {$modem}\n";
        passthru($modem, $stat2);
        system('rm test.rmd');
        sleep(1);
    }
}
echo "*** Done\n";

?&gt;
</pre>

<p>It will be given a path to a .pvf file as argument, it will then convert that file for each setting combination and try to play it trough the modem speaker, see your <tt>vm</tt> log, even if no sound is heard if no error is reported in the log then those settings <em>might</em> work, write them down for further investigation.</p>
]]></summary>
    </entry>
    <entry>
        <title>Selling some old stuff</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/6075584d915160c4cd7a41ab69d9449f/"/>
        <published>2006-07-02T17:13:40+00:00</published>
        <updated>2006-07-02T17:13:40+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9790998e1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>I finally got around to do something about the stuff I have had in the "get rid of this but don't just throw it away" -pile, and spent good part of the day putting them up for sale in the finnish equivalent of eBay: <a href="http://huuto.net/">Huuto.net</a>.</p>

<p>It's mostly some VHSs I've since gotten on DVD, some duplicates (due to getting presents or special boxed sets) etc, notably one good CD-player is included. In case you live in Finland <a href="http://huuto.net/fi/showlist.php3?cat=%25&amp;lcat=X&amp;seller=mashiara&amp;status=N">check out the list</a>, (you may need to live near Helsinki though, otherwise the shipping is likely going to cost more than the actual items you want).</p>

<p>Tomorrow is training again, and this time we're training outside the stuff that requires a lot of space (which the inside of the HTC gym does not have), ie long weapons (even the sword is a long weapon inside the gym, there just isn't headroom...), I hope the weather stays good (at least the forecast is promising). In case you want to check us out we're somewhere around <a href="http://www.f-secure.com/corporate/contact-info/finmap.shtml">F-Secure office</a> (<a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;ie=UTF8&amp;om=1&amp;ll=60.161481,24.90725&amp;spn=0.002616,0.007478&amp;t=h">Google maps</a>) in Ruoholahti, but please do not disturb the training (there will be flyers and hopefully someone to explain to interested looking people who hang around).</p>
]]></content>
        <summary type="html"><![CDATA[
<p>I finally got around to do something about the stuff I have had in the "get rid of this but don't just throw it away" -pile, and spent good part of the day putting them up for sale in the finnish equivalent of eBay: <a href="http://huuto.net/">Huuto.net</a>.</p>

<p>It's mostly some VHSs I've since gotten on DVD, some duplicates (due to getting presents or special boxed sets) etc, notably one good CD-player is included. In case you live in Finland <a href="http://huuto.net/fi/showlist.php3?cat=%25&amp;lcat=X&amp;seller=mashiara&amp;status=N">check out the list</a>, (you may need to live near Helsinki though, otherwise the shipping is likely going to cost more than the actual items you want).</p>

<p>Tomorrow is training again, and this time we're training outside the stuff that requires a lot of space (which the inside of the HTC gym does not have), ie long weapons (even the sword is a long weapon inside the gym, there just isn't headroom...), I hope the weather stays good (at least the forecast is promising). In case you want to check us out we're somewhere around <a href="http://www.f-secure.com/corporate/contact-info/finmap.shtml">F-Secure office</a> (<a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;ie=UTF8&amp;om=1&amp;ll=60.161481,24.90725&amp;spn=0.002616,0.007478&amp;t=h">Google maps</a>) in Ruoholahti, but please do not disturb the training (there will be flyers and hopefully someone to explain to interested looking people who hang around).</p>
]]></summary>
    </entry>
    <entry>
        <title>Support your local deathmonkeys</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/82d9a9966eaceea0a21b22704371f2c3/"/>
        <published>2006-07-01T19:09:14+00:00</published>
        <updated>2006-07-01T19:09:14+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9713fbd61c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>Today in the morning I got to watch the <a href="http://imdb.com/title/tt0078243/">36th chamber of Shaolin</a> in relative peace until <em><a href="http://www.deathmonkey.org/team">the boys</a></em> started to find bugs in the SMS location report system for <a href="http://www.deathmonkey.org/">their trip</a>.</p>

<p>First one was charset problem, the import did not check the charset of the incoming city name and thus LATIN-1 (sms) vs UTF-8 (server) lead to not finding locations with accented characters, also I imported the rest of the swedish locations from <a href="http://www.geonames.org/">Geo-Names</a> (<a href="http://bergie.iki.fi/">Bergie</a> had used some sort of population filter in his previous import).</p>

<p>Second one manifested as failed deletions but was in fact much more fundamental, the location report runs in midcom-exec, however Bergie had failed to 1. specify domain on request_sudo (required when in exec) 2. check the result (though I admit I also often forget to check the result of request_sudo). Fixed by specifying the domain and added some sanity checks.</p>

<p>Incidentally the Mail_Mime issue from <a href="http://www.nemein.com/people/rambo/how-busy-can-one-get--.html">yesterday</a>, was found due to them as well.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>Today in the morning I got to watch the <a href="http://imdb.com/title/tt0078243/">36th chamber of Shaolin</a> in relative peace until <em><a href="http://www.deathmonkey.org/team">the boys</a></em> started to find bugs in the SMS location report system for <a href="http://www.deathmonkey.org/">their trip</a>.</p>

<p>First one was charset problem, the import did not check the charset of the incoming city name and thus LATIN-1 (sms) vs UTF-8 (server) lead to not finding locations with accented characters, also I imported the rest of the swedish locations from <a href="http://www.geonames.org/">Geo-Names</a> (<a href="http://bergie.iki.fi/">Bergie</a> had used some sort of population filter in his previous import).</p>

<p>Second one manifested as failed deletions but was in fact much more fundamental, the location report runs in midcom-exec, however Bergie had failed to 1. specify domain on request_sudo (required when in exec) 2. check the result (though I admit I also often forget to check the result of request_sudo). Fixed by specifying the domain and added some sanity checks.</p>

<p>Incidentally the Mail_Mime issue from <a href="http://www.nemein.com/people/rambo/how-busy-can-one-get--.html">yesterday</a>, was found due to them as well.</p>
]]></summary>
    </entry>
    <entry>
        <title>How busy can one get ?</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/8ff5b14446597b536675a4dbd53f92a4/"/>
        <published>2006-06-30T20:18:37+00:00</published>
        <updated>2006-06-30T20:18:37+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-96fbe2b21c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>It's summer and traditionally Finland is "closed" (as in almost literally everybody is on vacation) and  there's time to do all sorts of cool R'n'D stuff, but especially with <a href="http://www.deathmonkey.org/"><em>the boys</em> gone</a> until my actual summer vacation begins I'm fully booked with real work.</p>

<p>I've also been busy as hell the whole spring and early summer, thus no meaningful updates, I didn't even remember to mention that I have most (but not yet all) of <a href="http://rambo.pbt-unknown.org/photos/taikai_finland_06/">the photos</a> I took in <a href="http://www.shinden.pp.fi/Taikai/taikai_2006_eng.html">Taikai Finland 2006</a> up.</p>

<p>Then there's the "small matter" of getting a house built (which has been brewing for a while but now things need to start moving for real), but you'll hear more about that either when it's done (slightly over a year from now) or I feel too much like ranting about how difficult/hectic some things can get.</p>

<h2>Mail_Mime</h2>

<p>Today I found an interesting bug in <a href="http://pear.php.net/package/Mail_Mime">Mail_Mime</a>, mail_mimedecode specifically, if the MIME boundary contains single quote in the (in this case doublequote limited) value mail_mimedecode will thinks that is the closing quote and thus cannot properly resolve the boundary. The way we ran into this is that Epoc mail uses date somehow in generating the boundary it uses, yesterday things (send photo via email from phone, get in imported to the blog) worked, today two different phones using Epoc mail and emails sent from both started failing the import. For some reason today all mails sent from those contained a single quote in the boundary thus breaking the decode.</p>

<p>Due to time constraints I did not fix this in mail_mimedecode (but I need to remember mail a few pointers to the developers), in stead org.openpsa.mail I look for the boundary and check for the quote inside, if found I generate a new boundary (making sure it's not found inside the message) and do a replace.</p>

<h2>Voice modem fun</h2>

<p>&lt;</p>

<p>p&gt;I've also been playing around with <a href="http://alpha.greenie.net/vgetty/">vgetty</a> and <a href="http://vocp.sourceforge.net/">VOCP</a>, though so far it has been mostly about vgetty and getting to the final realization that the modem I had laying around wouldn't cut it, so I got from the Finnish equivalent of ebay another one, when it arrives and provided I have any anough time to play with it there should be some interesting things coming (first thing we had in mind was to allow the boys to phone in podcasts <a href="http://www.deathmonkey.org/">from the road</a>.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>It's summer and traditionally Finland is "closed" (as in almost literally everybody is on vacation) and  there's time to do all sorts of cool R'n'D stuff, but especially with <a href="http://www.deathmonkey.org/"><em>the boys</em> gone</a> until my actual summer vacation begins I'm fully booked with real work.</p>

<p>I've also been busy as hell the whole spring and early summer, thus no meaningful updates, I didn't even remember to mention that I have most (but not yet all) of <a href="http://rambo.pbt-unknown.org/photos/taikai_finland_06/">the photos</a> I took in <a href="http://www.shinden.pp.fi/Taikai/taikai_2006_eng.html">Taikai Finland 2006</a> up.</p>

<p>Then there's the "small matter" of getting a house built (which has been brewing for a while but now things need to start moving for real), but you'll hear more about that either when it's done (slightly over a year from now) or I feel too much like ranting about how difficult/hectic some things can get.</p>

<h2>Mail_Mime</h2>

<p>Today I found an interesting bug in <a href="http://pear.php.net/package/Mail_Mime">Mail_Mime</a>, mail_mimedecode specifically, if the MIME boundary contains single quote in the (in this case doublequote limited) value mail_mimedecode will thinks that is the closing quote and thus cannot properly resolve the boundary. The way we ran into this is that Epoc mail uses date somehow in generating the boundary it uses, yesterday things (send photo via email from phone, get in imported to the blog) worked, today two different phones using Epoc mail and emails sent from both started failing the import. For some reason today all mails sent from those contained a single quote in the boundary thus breaking the decode.</p>

<p>Due to time constraints I did not fix this in mail_mimedecode (but I need to remember mail a few pointers to the developers), in stead org.openpsa.mail I look for the boundary and check for the quote inside, if found I generate a new boundary (making sure it's not found inside the message) and do a replace.</p>

<h2>Voice modem fun</h2>

<p>&lt;</p>

<p>p&gt;I've also been playing around with <a href="http://alpha.greenie.net/vgetty/">vgetty</a> and <a href="http://vocp.sourceforge.net/">VOCP</a>, though so far it has been mostly about vgetty and getting to the final realization that the modem I had laying around wouldn't cut it, so I got from the Finnish equivalent of ebay another one, when it arrives and provided I have any anough time to play with it there should be some interesting things coming (first thing we had in mind was to allow the boys to phone in podcasts <a href="http://www.deathmonkey.org/">from the road</a>.</p>
]]></summary>
    </entry>
    <entry>
        <title>License plate woes</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/9fee324f186b809fbea2073cfee5a9a4/"/>
        <published>2006-06-12T13:58:24+00:00</published>
        <updated>2006-06-12T13:58:24+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9687c68e1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    This morning when returning from one of our clients I noticed
    my bikes license plate was no longer there, below is what was
    left of it (crappy cell-phone pic).
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/c5d0203d282fdc4a58c9f09b1749d308/rek_jama.jpg" alt="rek_jama.jpg" /></p>

<p>
    So a couple of phone calls to determine what to do next I was
    at the police station filing a report on lost license plate,
    and unless someone comes across it and returns it to the police
    in the next few days (not very likely as the likely place for
    it to have broken of is the Länsiväylä freeway, not a place
    to go looking for lost stuff smaller than A4 paper), I will
    have to go and get a completely new registration number (all
    plates for valid numbers must be accounted for) for the bike,
    which will cause all sorts of headaches since I have to inform
    the insurance company and various other parties about it.
</p>

<p>
    Even more annoying I lost my hard earned <a href="http://www.ironbutt.com/">Iron Butt Association</a> license
    plate back.
    <br /></p>

<p>
    In other news I'm looking forward to the <a href="http://www.midgard-project.org/community/events/e4f69dcc5fa78db88a9396a8f300dbad.html">
    Midgard developer</a> meeting and also flashed my N770 to the
    OS2006, though haven't actually tested any of the features yet
    but it looks very good.
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    This morning when returning from one of our clients I noticed
    my bikes license plate was no longer there, below is what was
    left of it (crappy cell-phone pic).
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/c5d0203d282fdc4a58c9f09b1749d308/rek_jama.jpg" alt="rek_jama.jpg" /></p>

<p>
    So a couple of phone calls to determine what to do next I was
    at the police station filing a report on lost license plate,
    and unless someone comes across it and returns it to the police
    in the next few days (not very likely as the likely place for
    it to have broken of is the Länsiväylä freeway, not a place
    to go looking for lost stuff smaller than A4 paper), I will
    have to go and get a completely new registration number (all
    plates for valid numbers must be accounted for) for the bike,
    which will cause all sorts of headaches since I have to inform
    the insurance company and various other parties about it.
</p>

<p>
    Even more annoying I lost my hard earned <a href="http://www.ironbutt.com/">Iron Butt Association</a> license
    plate back.
    <br /></p>

<p>
    In other news I'm looking forward to the <a href="http://www.midgard-project.org/community/events/e4f69dcc5fa78db88a9396a8f300dbad.html">
    Midgard developer</a> meeting and also flashed my N770 to the
    OS2006, though haven't actually tested any of the features yet
    but it looks very good.
</p>
]]></summary>
    </entry>
    <entry>
        <title>Coding binge</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/da897028121875495abf49efed767a1e/"/>
        <published>2006-05-13T18:05:36+00:00</published>
        <updated>2006-05-13T18:05:36+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-960e71d01c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>Last week I and Bergie have been doing long inspired days coding <a href="http://www.openpsa.org/">OpenPSA2</a>, getting it ready for 2.0.0 release (which should be on monday), Taru was away with <a href="http://www.fernmark.net/justus.html">Justus</a> (<a href="http://www.fernmark.net/kuvagalleriat/juoksukuvia/157_5762">photo</a>) in a lure coursing competition (<a href="http://www.suomenvinttikoiraliitto.fi/">SVKL</a> Suomi Cup, invite-only for previous years best runners, he even won [a small miracle considering females are a lot lighter and thus faster than males]) so I had the friday evening and most of this day as well to finalize a few things.</p>

<p>In other news I was two weeks ago at the <a href="http://www.kaigousuru.com/k2006/">Kaigosuru 2006</a>, which was great (I'm really looking forward to seeing Arnaud again on <a href="http://www.shinden.pp.fi/Taikai/taikai_2006_eng.html">Taikai Finland</a>), unfortunately I didn't have much opportunities to take photographs (I wanted to train too...) but the ones I took can be seen <a href="http://rambo.pbt-unknown.org/midcom-permalink-0487f93fefef604d5199cf60bfc821b8">on my home server</a>.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>Last week I and Bergie have been doing long inspired days coding <a href="http://www.openpsa.org/">OpenPSA2</a>, getting it ready for 2.0.0 release (which should be on monday), Taru was away with <a href="http://www.fernmark.net/justus.html">Justus</a> (<a href="http://www.fernmark.net/kuvagalleriat/juoksukuvia/157_5762">photo</a>) in a lure coursing competition (<a href="http://www.suomenvinttikoiraliitto.fi/">SVKL</a> Suomi Cup, invite-only for previous years best runners, he even won [a small miracle considering females are a lot lighter and thus faster than males]) so I had the friday evening and most of this day as well to finalize a few things.</p>

<p>In other news I was two weeks ago at the <a href="http://www.kaigousuru.com/k2006/">Kaigosuru 2006</a>, which was great (I'm really looking forward to seeing Arnaud again on <a href="http://www.shinden.pp.fi/Taikai/taikai_2006_eng.html">Taikai Finland</a>), unfortunately I didn't have much opportunities to take photographs (I wanted to train too...) but the ones I took can be seen <a href="http://rambo.pbt-unknown.org/midcom-permalink-0487f93fefef604d5199cf60bfc821b8">on my home server</a>.</p>
]]></summary>
    </entry>
    <entry>
        <title>Quick ones</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/639301ab7153c39bf3d740874c7e0580/"/>
        <published>2006-04-20T11:31:35+00:00</published>
        <updated>2006-04-20T11:31:35+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-956e4bb01c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<h2>Motorcycling</h2>

<p>The riding season is open, last thursday I got <a href="http://www.routamc.org/bikes/ducati-multistrada.html">my bike</a> back from the shop where they were installing side panniers, friday and saturday I made some shortish rides (It's cold and my weatherproof riding pants are undergoing maintenance [re-proofing etc]) then the weather got sour and I spent my easter playing God of War in stead. Anyways if weather is not intolerable I ride to work.</p>

<h2>Linux tips &amp; tricks</h2>

<p>The main reason to write this entry is not to forget I nifty thing I finally figured how to do with <a href="http://netcat.sourceforge.net/">NetCat</a>, in debugging the new <a href="http://www.openpsa.org/documentation/funambol-syncml-setup/">SyncML</a> connector for <a href="http://www.openpsa.org/">OpenPSA 2</a> we need to see what the device and server are really sending each other, NetCat is the obvious choice but making a logging proxy with it is not as simple as one might think at first (the first time I tried to figure it out by myself I didn't succeed).</p>

<p>Anyways here is a shell script to set a logging proxy up (some ideas blatantly ripped from <a href="http://www.securitydocs.com/library/3376">NetCat tutorial here</a> (use <tt>tail -F inflow outflow</tt> [preferably in another window] to view the traffic after starting the proxy):
</p><pre>
#!/bin/bash
FROMPORT=8081;
TOPORT=8080;
TOHOST=localhost;

mknod backpipe p
STATUS=0;
while [ $STATUS -eq 0 ];
do
    echo "$FROMPORT -&gt; $TOHOST:$TOPORT"
    nc -l -p $FROMPORT 0&lt;backpipe | tee -a inflow | nc $TOHOST $TOPORT | tee -a outflow 1&gt;backpipe
    STATUS=$?;
done
rm backpipe
</pre>


<p>We use the <tt>mknod</tt> to create a FIFO we can use to pass data between the tees and NetCats (at first I also tried with pipes but soon realized that they are uni-directional and thus do not work for this), use ctrl-c to exit the loop (also happens if NetCat terminates abnormally), the FIFO is cleared then but the inflow and outflow logs are left in place.</p>

<p><strong>Update</strong>, this can of course be adapted to SSL/TLS services as well using <a href="http://www.stunnel.org/">stunnel</a>, the one below makes local plaintext socket and connects to remote SSL/TLS service (in the example case LDAP)</p>

<pre>
#!/bin/bash
FROMPORT=389;
TOPORT=636;
TOHOST=;

mknod backpipe p
STATUS=0;
while [ $STATUS -eq 0 ];
do
    echo "$FROMPORT -&gt; $TOHOST:$TOPORT"
    nc -l -p $FROMPORT 0&lt;backpipe | tee -a inflow | stunnel -c -r $TOHOST:$TOPORT | tee -a outflow 1&gt;backpipe
    STATUS=$?;
done
rm backpipe
</pre>

<p>Converting this the other way around (listening on local secure socket and connecting to remote plaintext service) is left as an exercise to the reader (hint: use <tt>-d</tt> instead <tt>-c</tt> and switch the command places, then you still need to configure the certificate, see <tt>stunnel</tt> manual)</p>

<h2>Electronics</h2>

<p>I've also been playing around with this <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=657">GPS datalogger</a> on my spare time, trying to get it to work with any serial NMEA source, so far the "easy ways" have been shown not to work, next I need to try a <a href="http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1798">MAX232/233</a> based solution for changing the signalling from RS232 to 3.3V TTL (I sure hope I have not friend the corresponding input pins on the controller with my earlier experiments but I live in the belief that if something would be fried it would be the whole uC).</p>

<p>I also have some ideas on improving the firmware of the same (check it out, it's dead simple, even for my very limited "may understand what he reads" C skills), but first I need to figure out how to compile (this should be doable with <a href="http://gcc.gnu.org/">GNU gcc</a>) my changes and then flash (in circuit, this is the hard part) them onto the chip, without paying trough the nose for "professional" tools.</p>
]]></content>
        <summary type="html"><![CDATA[
<h2>Motorcycling</h2>

<p>The riding season is open, last thursday I got <a href="http://www.routamc.org/bikes/ducati-multistrada.html">my bike</a> back from the shop where they were installing side panniers, friday and saturday I made some shortish rides (It's cold and my weatherproof riding pants are undergoing maintenance [re-proofing etc]) then the weather got sour and I spent my easter playing God of War in stead. Anyways if weather is not intolerable I ride to work.</p>

<h2>Linux tips &amp; tricks</h2>

<p>The main reason to write this entry is not to forget I nifty thing I finally figured how to do with <a href="http://netcat.sourceforge.net/">NetCat</a>, in debugging the new <a href="http://www.openpsa.org/documentation/funambol-syncml-setup/">SyncML</a> connector for <a href="http://www.openpsa.org/">OpenPSA 2</a> we need to see what the device and server are really sending each other, NetCat is the obvious choice but making a logging proxy with it is not as simple as one might think at first (the first time I tried to figure it out by myself I didn't succeed).</p>

<p>Anyways here is a shell script to set a logging proxy up (some ideas blatantly ripped from <a href="http://www.securitydocs.com/library/3376">NetCat tutorial here</a> (use <tt>tail -F inflow outflow</tt> [preferably in another window] to view the traffic after starting the proxy):
</p><pre>
#!/bin/bash
FROMPORT=8081;
TOPORT=8080;
TOHOST=localhost;

mknod backpipe p
STATUS=0;
while [ $STATUS -eq 0 ];
do
    echo "$FROMPORT -&gt; $TOHOST:$TOPORT"
    nc -l -p $FROMPORT 0&lt;backpipe | tee -a inflow | nc $TOHOST $TOPORT | tee -a outflow 1&gt;backpipe
    STATUS=$?;
done
rm backpipe
</pre>


<p>We use the <tt>mknod</tt> to create a FIFO we can use to pass data between the tees and NetCats (at first I also tried with pipes but soon realized that they are uni-directional and thus do not work for this), use ctrl-c to exit the loop (also happens if NetCat terminates abnormally), the FIFO is cleared then but the inflow and outflow logs are left in place.</p>

<p><strong>Update</strong>, this can of course be adapted to SSL/TLS services as well using <a href="http://www.stunnel.org/">stunnel</a>, the one below makes local plaintext socket and connects to remote SSL/TLS service (in the example case LDAP)</p>

<pre>
#!/bin/bash
FROMPORT=389;
TOPORT=636;
TOHOST=;

mknod backpipe p
STATUS=0;
while [ $STATUS -eq 0 ];
do
    echo "$FROMPORT -&gt; $TOHOST:$TOPORT"
    nc -l -p $FROMPORT 0&lt;backpipe | tee -a inflow | stunnel -c -r $TOHOST:$TOPORT | tee -a outflow 1&gt;backpipe
    STATUS=$?;
done
rm backpipe
</pre>

<p>Converting this the other way around (listening on local secure socket and connecting to remote plaintext service) is left as an exercise to the reader (hint: use <tt>-d</tt> instead <tt>-c</tt> and switch the command places, then you still need to configure the certificate, see <tt>stunnel</tt> manual)</p>

<h2>Electronics</h2>

<p>I've also been playing around with this <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=657">GPS datalogger</a> on my spare time, trying to get it to work with any serial NMEA source, so far the "easy ways" have been shown not to work, next I need to try a <a href="http://www.maxim-ic.com/quick_view2.cfm/qv_pk/1798">MAX232/233</a> based solution for changing the signalling from RS232 to 3.3V TTL (I sure hope I have not friend the corresponding input pins on the controller with my earlier experiments but I live in the belief that if something would be fried it would be the whole uC).</p>

<p>I also have some ideas on improving the firmware of the same (check it out, it's dead simple, even for my very limited "may understand what he reads" C skills), but first I need to figure out how to compile (this should be doable with <a href="http://gcc.gnu.org/">GNU gcc</a>) my changes and then flash (in circuit, this is the hard part) them onto the chip, without paying trough the nose for "professional" tools.</p>
]]></summary>
    </entry>
    <entry>
        <title>Hot beverages</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/9bc6df19d62afc24142dc1d1d73bc4ab/"/>
        <published>2006-04-10T12:51:19+00:00</published>
        <updated>2006-04-10T12:51:19+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-94d4a9741c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    Today I firstly finished the deluxe thermostat circuit for our
    samovar, secondly got us an espresso machine as well.
</p>

<p>
    The "deluxe thermostat" is a circuit that controls a relay, it
    keep the relay engaged until a set temperature (controlled with
    a trimmer on the board) is reached and then allows the
    temperature to drop until another set (controlled with another
    trimmer) is reached, then engages the relay again until the
    higher temperature is reached. lather, rinse, repeat.
</p>

<p>
    The circuit works just fine, however the fast-setting epoxy I
    used to glue the sensor to the wall of the samovar apparently
    isn't designed to handle temperatures over 80C and when the
    water got to boiling the epoxy became goo not suitable for
    holding a sensor in place, so I had to scrape it off and before
    we can actually use it and tune the temperatures I need to find
    better epoxy.
</p>

<p>
    Meanwhile enjoy these (low quality) pictures from my "lab" (the
    circuit manufacturing side, computer, printer, board cutter,
    development solution, exposure unit, plain water and acid). Not
    seen (behind the camera), is the "drilling station" (dremel
    with a vertical mount) and "soldeting/prototyping station"
    (just a table with mess of parts, function generator, ancient
    oscilloscope and a prototping board, I use Weller Pyropen Piezo
    for soldering work).
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/c7d88138de58e2aeefd74d3827abe2f7/638F0009.jpg" alt="638F0009.jpg" /><br /></p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/56732c31dc35035b600aa45ba67897a0/638F0010.jpg" alt="638F0010.jpg" /><br /></p>

<p>
    But for the benefit of the world find the <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/418f7ab50bbaa7e76483e8165d530110/termostatti_eagle.tar.gz">
    circuit attahced</a>, in <a href="http://www.cadsoft.de/">Eagle</a> (a nice electronics CAD
    package, the free version is more than enough for most
    hobbyists) format. The temperature sensor (LM35DZ) I used was
    not available in the shipping libraries and I was too lazy to
    create it as component so I used another sensor, but it had
    different pin assignments, thus the weird connections. the
    smaller MOSFET can be just about any N-type one, same should go
    for the power transistor used with the relay.
</p>

<p>
    Power the circuit with whatever DC your relay requires, as long
    it's over +5V, I used Kawamisawa(?) JS-12-N relay, which runs
    on 12V/1A (and can easily handle 10A of 220V AC) and the power
    supply is 12V/1.5A generic supply.
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    Today I firstly finished the deluxe thermostat circuit for our
    samovar, secondly got us an espresso machine as well.
</p>

<p>
    The "deluxe thermostat" is a circuit that controls a relay, it
    keep the relay engaged until a set temperature (controlled with
    a trimmer on the board) is reached and then allows the
    temperature to drop until another set (controlled with another
    trimmer) is reached, then engages the relay again until the
    higher temperature is reached. lather, rinse, repeat.
</p>

<p>
    The circuit works just fine, however the fast-setting epoxy I
    used to glue the sensor to the wall of the samovar apparently
    isn't designed to handle temperatures over 80C and when the
    water got to boiling the epoxy became goo not suitable for
    holding a sensor in place, so I had to scrape it off and before
    we can actually use it and tune the temperatures I need to find
    better epoxy.
</p>

<p>
    Meanwhile enjoy these (low quality) pictures from my "lab" (the
    circuit manufacturing side, computer, printer, board cutter,
    development solution, exposure unit, plain water and acid). Not
    seen (behind the camera), is the "drilling station" (dremel
    with a vertical mount) and "soldeting/prototyping station"
    (just a table with mess of parts, function generator, ancient
    oscilloscope and a prototping board, I use Weller Pyropen Piezo
    for soldering work).
</p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/c7d88138de58e2aeefd74d3827abe2f7/638F0009.jpg" alt="638F0009.jpg" /><br /></p>

<p>
    <img src="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/56732c31dc35035b600aa45ba67897a0/638F0010.jpg" alt="638F0010.jpg" /><br /></p>

<p>
    But for the benefit of the world find the <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/418f7ab50bbaa7e76483e8165d530110/termostatti_eagle.tar.gz">
    circuit attahced</a>, in <a href="http://www.cadsoft.de/">Eagle</a> (a nice electronics CAD
    package, the free version is more than enough for most
    hobbyists) format. The temperature sensor (LM35DZ) I used was
    not available in the shipping libraries and I was too lazy to
    create it as component so I used another sensor, but it had
    different pin assignments, thus the weird connections. the
    smaller MOSFET can be just about any N-type one, same should go
    for the power transistor used with the relay.
</p>

<p>
    Power the circuit with whatever DC your relay requires, as long
    it's over +5V, I used Kawamisawa(?) JS-12-N relay, which runs
    on 12V/1A (and can easily handle 10A of 220V AC) and the power
    supply is 12V/1.5A generic supply.
</p>
]]></summary>
    </entry>
    <entry>
        <title>And now for something completely different</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/604d274c5cd950f8cdfc4b26160fff58/"/>
        <published>2006-03-30T10:58:48+00:00</published>
        <updated>2006-03-30T10:58:48+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-942149e21c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>Last weekend Taru was away, so among <a href="nemein.com/people/rambo/from-worse-to-afu.html#update20060328">other things</a> I watched a couple of movies:</p>

<ul><li><a href="http://imdb.com/title/tt0318649/">Sahara</a>, not unexpectedly was not that deep on the plot end, however it was very well executed and immensely entertaining adventure/action movie.</li>
  <li><a href="http://imdb.com/title/tt0342258/">Danny the Dog</a>, while the main plot (emotionally FUBARred guy meets blind piano tuner and his pianist daughter and becomes a human being again) is cliche to say the best the movies is still really good, I especially liked the editing combined with fabulous music by <a href="www.massiveattack.co.uk/">Massive Attack</a></li>
  <li><a href="http://imdb.com/title/tt0337945/">Coronado</a> had less action and more adventure than Sahara, but was not as much fun. Quite entertaining but nothing out of the ordinary. Nice settings though.</li>
  <li><a href="http://imdb.com/title/tt0369301/">Bugi Fiction</a>, not Finlands greatest gift to the world of movies, a small budget independent parody production. It has it's moments but... Be drunk (I couldn't be, though I still finished the movie).
</li></ul><p>Recently I finished watching <a href="http://imdb.com/title/tt0105946/">Babylon 5</a> (there is a story involved with this as well but I'll write it down another day) again, and on sunday evening when Taru got back we decided to check out the <a href="http://imdb.com/title/tt0149437/">Crusade</a>, now I've heard it doesn't exactly measure up to the predecessor, but based on the pilot episode that is understatement of the year. We'll check out a few more episodes to decide whether we try to endure it any further.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>Last weekend Taru was away, so among <a href="nemein.com/people/rambo/from-worse-to-afu.html#update20060328">other things</a> I watched a couple of movies:</p>

<ul><li><a href="http://imdb.com/title/tt0318649/">Sahara</a>, not unexpectedly was not that deep on the plot end, however it was very well executed and immensely entertaining adventure/action movie.</li>
  <li><a href="http://imdb.com/title/tt0342258/">Danny the Dog</a>, while the main plot (emotionally FUBARred guy meets blind piano tuner and his pianist daughter and becomes a human being again) is cliche to say the best the movies is still really good, I especially liked the editing combined with fabulous music by <a href="www.massiveattack.co.uk/">Massive Attack</a></li>
  <li><a href="http://imdb.com/title/tt0337945/">Coronado</a> had less action and more adventure than Sahara, but was not as much fun. Quite entertaining but nothing out of the ordinary. Nice settings though.</li>
  <li><a href="http://imdb.com/title/tt0369301/">Bugi Fiction</a>, not Finlands greatest gift to the world of movies, a small budget independent parody production. It has it's moments but... Be drunk (I couldn't be, though I still finished the movie).
</li></ul><p>Recently I finished watching <a href="http://imdb.com/title/tt0105946/">Babylon 5</a> (there is a story involved with this as well but I'll write it down another day) again, and on sunday evening when Taru got back we decided to check out the <a href="http://imdb.com/title/tt0149437/">Crusade</a>, now I've heard it doesn't exactly measure up to the predecessor, but based on the pilot episode that is understatement of the year. We'll check out a few more episodes to decide whether we try to endure it any further.</p>
]]></summary>
    </entry>
    <entry>
        <title>FC3, MySQL and Midgard (with QB)</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/58326a635811a5fead201e7e909e5305/"/>
        <published>2006-03-24T14:59:37+00:00</published>
        <updated>2006-03-24T14:59:37+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-94032dfe1c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>
    Today I found a nasty issue with QueryBuilder set_offset()
    method, the SQL is generates is not valid for MySQL 3.23
    (default in FC3), upgrading to FC4 (which provides MySQL4)
    didn't seem very safe since Yum doesn't exactly compare to apt
    when it comes to doing something like dist-upgrade.
</p>

<p>
    So I needed to upgrade just the database, preferably so that I
    don't have to rebuild each package that uses the MySQL client
    library again.
</p>

<p>
    After more than should be neccessary searching I found <a href="http://fedoranews.org/contributors/tony_smith/mysql/">this
    article on building MysQL4 for FC3</a>, it involved a bit older
    versions of the source packages and there were some other
    issues as well leading me to recompile the package (no small
    operation even on quite fast machine) numerous times before
    getting all the kinks out, but finally I got it to build
    cleanly.
</p>

<p>
    The  <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/9a3ebbd51ec7a2c1f0be19efa85a06f2/fc3_mysql4.tar.gz">
    fc3_mysql4.tar.gz</a> file contains the binaries I built and my
    versions of the SPEC files, tested to work with out of the box
    Midgard 1.7.4 from the <a href="http://www.midgard-project.org/documentation/installation-distros-fedora">
    Midgard YUM repository</a>.
</p>
]]></content>
        <summary type="html"><![CDATA[
<p>
    Today I found a nasty issue with QueryBuilder set_offset()
    method, the SQL is generates is not valid for MySQL 3.23
    (default in FC3), upgrading to FC4 (which provides MySQL4)
    didn't seem very safe since Yum doesn't exactly compare to apt
    when it comes to doing something like dist-upgrade.
</p>

<p>
    So I needed to upgrade just the database, preferably so that I
    don't have to rebuild each package that uses the MySQL client
    library again.
</p>

<p>
    After more than should be neccessary searching I found <a href="http://fedoranews.org/contributors/tony_smith/mysql/">this
    article on building MysQL4 for FC3</a>, it involved a bit older
    versions of the source packages and there were some other
    issues as well leading me to recompile the package (no small
    operation even on quite fast machine) numerous times before
    getting all the kinks out, but finally I got it to build
    cleanly.
</p>

<p>
    The  <a href="http://oldmidgard.hurttakallio.net/attachment/99f88029c7ff03aa4ce8835c680587c7/9a3ebbd51ec7a2c1f0be19efa85a06f2/fc3_mysql4.tar.gz">
    fc3_mysql4.tar.gz</a> file contains the binaries I built and my
    versions of the SPEC files, tested to work with out of the box
    Midgard 1.7.4 from the <a href="http://www.midgard-project.org/documentation/installation-distros-fedora">
    Midgard YUM repository</a>.
</p>
]]></summary>
    </entry>
    <entry>
        <title>Influenza</title>
        <link rel="alternate" type="text/html" href="http://oldmidgard.hurttakallio.net/rambo/blog/ad485eb470e4699493a4508c10e89681/"/>
        <published>2006-02-24T11:47:10+00:00</published>
        <updated>2006-02-24T11:47:10+00:00</updated>
        <id>http://oldmidgard.hurttakallio.net/rambo/midcom-permalink-9313b8141c3311dc8cc27db01825f06ff06f</id>
        <author>
            <name>eero.afheurlin@pbt-unknown.org (Eero af Heurlin)</name>
        </author>
        <category  term="feed:e2bb32a90a1523916571f089c7f807eb" />
        <content type="html"><![CDATA[
<p>It's been ages since I've been this under the weather without having pneunomia, acute bronchitis or some other infection that requires heavy dose of antibiotics to get rid of (and in earlier times would have been almost certainly fatal)</p>

<p>It started last sunday (in retrospect attending the mini-seminar on saturday might not have been such a good idea), and while I could do stuff on computer then by monday morning I was bedridden.</p>

<p>The next few days were spent quite firmly in bed (apart from a visit to the doctors), too tired to even write about my past exploits (in general being sick at home offers a good time for such reflections)</p>

<p>Today I came to the office to check the snailmail and handle some urgent matters, now that they're done I think I'll head back to bed so I have more time to recover for monday.</p>
]]></content>
        <summary type="html"><![CDATA[
<p>It's been ages since I've been this under the weather without having pneunomia, acute bronchitis or some other infection that requires heavy dose of antibiotics to get rid of (and in earlier times would have been almost certainly fatal)</p>

<p>It started last sunday (in retrospect attending the mini-seminar on saturday might not have been such a good idea), and while I could do stuff on computer then by monday morning I was bedridden.</p>

<p>The next few days were spent quite firmly in bed (apart from a visit to the doctors), too tired to even write about my past exploits (in general being sick at home offers a good time for such reflections)</p>

<p>Today I came to the office to check the snailmail and handle some urgent matters, now that they're done I think I'll head back to bed so I have more time to recover for monday.</p>
]]></summary>
    </entry>
</feed>
