<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Carlo Hamalainen</title>
	<atom:link href="http://carlo-hamalainen.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://carlo-hamalainen.net/blog</link>
	<description></description>
	<lastBuildDate>Sun, 13 May 2012 10:11:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>insserv: warning: script &#8216;K01vmware&#8217; missing LSB tags and overrides</title>
		<link>http://carlo-hamalainen.net/blog/2012/05/13/insserv-warning-script-k01vmware-missing-lsb-tags-and-overrides/</link>
		<comments>http://carlo-hamalainen.net/blog/2012/05/13/insserv-warning-script-k01vmware-missing-lsb-tags-and-overrides/#comments</comments>
		<pubDate>Sun, 13 May 2012 10:11:10 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=843</guid>
		<description><![CDATA[Note to self: if apt-get dist-upgrade explodes on Debian Squeeze with the error Setting up initscripts (2.88dsf-13.1+squeeze1) ... insserv: warning: script 'K01vmware' missing LSB tags and overrides insserv: warning: script 'S50vmware-USBArbitrator' missing LSB tags and overrides insserv: warning: script 'vmware-USBArbitrator' missing LSB tags and overrides insserv: warning: script 'vmware' missing LSB tags and overrides insserv: [...]]]></description>
			<content:encoded><![CDATA[<p> Note to self: if <code>apt-get dist-upgrade</code> explodes on Debian Squeeze with the error</p>
<pre>
Setting up initscripts (2.88dsf-13.1+squeeze1) ...
insserv: warning: script 'K01vmware' missing LSB tags and overrides
insserv: warning: script 'S50vmware-USBArbitrator' missing LSB tags and overrides
insserv: warning: script 'vmware-USBArbitrator' missing LSB tags and overrides
insserv: warning: script 'vmware' missing LSB tags and overrides
insserv: There is a loop between service rmnologin and mountnfs if started
insserv:  loop involving service mountnfs at depth 8

(more output snipped)
</pre>
<p> Then follow the instructions of post rldleblanc at <a href="http://communities.vmware.com/thread/337769">http://communities.vmware.com/thread/337769</a>: </p>
<pre>
rldleblanc
35 posts since
05-Aug-2005

7. 05-Dec-2011 11:14   in response to: SamSpade
Re: Vmware Player Prevents Aptitude from Installing Debian Packages
Probably a cleaner way to approach this is to use /etc/insserv/overrides.
Do the following:

Create /etc/insserv/overrides/vmware with the following:

### BEGIN INIT INFO
# Provides:          vmware
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 5
# Default-Stop:      2 3 5
# Short-Description: VMware VMX service for virtual machines
# Description:       Allows running of VMware virtual machines.
### END INIT INFO

Create /etc/insserv/overrides/vmware-USBArbitrator with the following:

### BEGIN INIT INFO
# Provides:          vmware-USBArbitrator
# Required-Start:    $remote_fs $syslog vmware
# Required-Stop:     $remote_fs $syslog vmware
# Default-Start:     2 3 5
# Default-Stop:      2 3 5
# Short-Description: Start daemon when vmware starts
# Description:       Enable service provided by daemon.
### END INIT INFO

Then run 'chmod +x /etc/insserv/overrides/vmware*

This prevents the fix from being broken with an update to the shipped init.d
script and my fix your USB problem. Since I don't use USB in a VM, I can't
test it.

Robert
</pre>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2012/05/13/insserv-warning-script-k01vmware-missing-lsb-tags-and-overrides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>R, MAKEFLAGS, rpath, and building packages</title>
		<link>http://carlo-hamalainen.net/blog/2012/05/11/r-makeflags-rpath-and-building-packages/</link>
		<comments>http://carlo-hamalainen.net/blog/2012/05/11/r-makeflags-rpath-and-building-packages/#comments</comments>
		<pubDate>Thu, 10 May 2012 23:39:52 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=804</guid>
		<description><![CDATA[On our HPC at work we need to build various libraries and packages from source, and install them to custom locations. Putting everything in /usr/local is not an option because of dependencies on particular versions of various libraries (and many of these packages are not available through the distro&#8217;s package manager). While building RODBC for [...]]]></description>
			<content:encoded><![CDATA[<p> On our HPC at work we need to build various libraries and packages from source, and install them to custom locations. Putting everything in /usr/local is not an option because of dependencies on particular versions of various libraries (and many of these packages are not available through the distro&#8217;s package manager). While building RODBC for a colleague I encountered a problem with library paths: </p>
<pre>
library(RODBC)
Error in dyn.load(file, DLLpath = DLLpath, ...) :
   unable to load shared object
'/opt/RODBC/RODBC_1.3-5/RODBC/libs/RODBC.so':
   libodbc.so.1: cannot open shared object file: No such file or directory
Error: package/namespace load failed for ‘RODBC’
</pre>
<p> The author of the package claimed that the solution is in the documentation, but I disagree. For the benefit of anyone who comes across this problem, here&#8217;s a log of how I debugged the problem.</p>
<p> First try to build with no options at all. Fails because it can&#8217;t find sql.h, as expected:</p>
<pre>
carlo@r500:/opt/src/RODBC> R CMD INSTALL -l /opt/RODBC/RODBC_1.3-5 RODBC_1.3-5.tar.gz
* installing *source* package ‘RODBC’ ...
** package ‘RODBC’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sql.h usability... no
checking sql.h presence... no
checking for sql.h... no
checking sqlext.h usability... no
checking sqlext.h presence... no
checking for sqlext.h... no
configure: error: "ODBC headers sql.h and sqlext.h not found"
ERROR: configuration failed for package ‘RODBC’
* removing ‘/opt/RODBC/RODBC_1.3-5/RODBC’
* restoring previous ‘/opt/RODBC/RODBC_1.3-5/RODBC’
</pre>
<p>Now set location for ODBC library, using environment variables, as per the documentation:</p>
<pre>
export ODBC_INCLUDE=$ODBC_ROOT/include
export ODBC_LIBS=$ODBC_ROOT/lib

carlo@r500:/opt/src/RODBC> R CMD INSTALL -l /opt/RODBC/RODBC_1.3-5 RODBC_1.3-5.tar.gz
* installing *source* package ‘RODBC’ ...
** package ‘RODBC’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sql.h usability... yes
checking sql.h presence... yes
checking for sql.h... yes
checking sqlext.h usability... yes
checking sqlext.h presence... yes
checking for sqlext.h... yes
checking for library containing SQLTables... -lodbc
checking for SQLLEN... yes
checking for SQLULEN... yes
checking for long... yes
checking size of long... configure: error: cannot compute sizeof (long), 77
See `config.log' for more details.
ERROR: configuration failed for package ‘RODBC’
* removing ‘/opt/RODBC/RODBC_1.3-5/RODBC’
* restoring previous ‘/opt/RODBC/RODBC_1.3-5/RODBC’
</pre>
<p> This error is an error itself; the problem is actually with linking against libodbc. The usual Unix way is to set LDFLAGS, so let&#8217;s try that:</p>
<pre>
export LDFLAGS="-L/opt/odbc/odbc-2.3.0/lib\ -Wl,-rpath\ /opt/odbc/odbc-2.3.0/lib"
R CMD INSTALL -l /opt/RODBC/RODBC_1.3-5 RODBC_1.3-5.tar.gz

* installing *source* package ‘RODBC’ ...
** package ‘RODBC’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking for C compiler default output file name... configure: error: C compiler cannot create executables
See `config.log' for more details.
ERROR: configuration failed for package ‘RODBC’
* removing ‘/opt/RODBC/RODBC_1.3-5/RODBC’
* restoring previous ‘/opt/RODBC/RODBC_1.3-5/RODBC’
</pre>
<p> Perhaps not. After reading more, I found that &#8220;R CMD INSTALL&#8221; can make use of the MAKEFLAGS environment variable, in which  <a href="https://stat.ethz.ch/pipermail/r-help/2002-June/022393.html">whitespaces have to be escaped</a> (how odd). So let&#8217;s turn off LDFLAGS and try with that:</p>
<pre>
unset LDFLAGS
MAKEFLAGS='LDFLAGS=-L/opt/odbc/odbc-2.3.0/lib\ -Wl,-rpath\ /opt/odbc/odbc-2.3.0/lib' R CMD INSTALL -l /opt/RODBC/RODBC_1.3-5 RODBC_1.3-5.tar.gz

carlo@r500:/opt/src/RODBC> MAKEFLAGS='LDFLAGS=-L/opt/odbc/odbc-2.3.0/lib\ -Wl,-rpath\ /opt/odbc/odbc-2.3.0/lib' R CMD INSTALL -l /opt/RODBC/RODBC_1.3-5 RODBC_1.3-5.tar.gz
* installing *source* package ‘RODBC’ ...
** package ‘RODBC’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sql.h usability... yes
checking sql.h presence... yes
checking for sql.h... yes
checking sqlext.h usability... yes
checking sqlext.h presence... yes
checking for sqlext.h... yes
checking for library containing SQLTables... -lodbc
checking for SQLLEN... yes
checking for SQLULEN... yes
checking for long... yes
checking size of long... configure: error: cannot compute sizeof (long), 77
See `config.log' for more details.
ERROR: configuration failed for package ‘RODBC’
* removing ‘/opt/RODBC/RODBC_1.3-5/RODBC’
* restoring previous ‘/opt/RODBC/RODBC_1.3-5/RODBC’
</pre>
<p> This still fails, so maybe we can try the LD_LIBRARY_PATH?</p>
<pre>
MAKEFLAGS='LD_LIBRARY_PATH=/opt/gcc/4.4.2/lib64:/opt/gcc/4.4.2/lib:/opt/odbc/odbc-2.3.0/lib\ LDFLAGS=-L/opt/odbc/odbc-2.3.0/lib\ -Wl,-rpath\ /opt/odbc/odbc-2.3.0/lib' R CMD INSTALL -l /opt/RODBC/RODBC_1.3-5 RODBC_1.3-5.tar.gz

* installing *source* package ‘RODBC’ ...
** package ‘RODBC’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sql.h usability... yes
checking sql.h presence... yes
checking for sql.h... yes
checking sqlext.h usability... yes
checking sqlext.h presence... yes
checking for sqlext.h... yes
checking for library containing SQLTables... -lodbc
checking for SQLLEN... yes
checking for SQLULEN... yes
checking for long... yes
checking size of long... configure: error: cannot compute sizeof (long), 77
See `config.log' for more details.
ERROR: configuration failed for package ‘RODBC’
* removing ‘/opt/RODBC/RODBC_1.3-5/RODBC’
* restoring previous ‘/opt/RODBC/RODBC_1.3-5/RODBC’
</pre>
<p> Nope, LD_LIBRARY_PATH is ignored when it&#8217;s inside MAKEFLAGS. Let&#8217;s be psychic and set it as a shell environment variable instead:</p>
<pre>
export LD_LIBRARY_PATH=/opt/gcc/4.4.2/lib64:/opt/gcc/4.4.2/lib:/opt/odbc/odbc-2.3.0/lib
MAKEFLAGS='LDFLAGS=-L/opt/odbc/odbc-2.3.0/lib\ -Wl,-rpath\ /opt/odbc/odbc-2.3.0/lib' R CMD INSTALL -l /opt/RODBC/RODBC_1.3-5 RODBC_1.3-5.tar.gz
* installing *source* package ‘RODBC’ ...
** package ‘RODBC’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sql.h usability... yes
checking sql.h presence... yes
checking for sql.h... yes
checking sqlext.h usability... yes
checking sqlext.h presence... yes
checking for sqlext.h... yes
checking for library containing SQLTables... -lodbc
checking for SQLLEN... yes
checking for SQLULEN... yes
checking for long... yes
checking size of long... 8
configure: creating ./config.status
config.status: creating src/Makevars
config.status: creating src/config.h
** libs
gcc -std=gnu99 -I/opt/R/2.14.0/lib64/R/include -I. -I/opt/odbc/odbc-2.3.0/include -I/usr/local/include    -fpic  -g -O2 -c RODBC.c -o RODBC.o
gcc -std=gnu99 -shared -L/opt/odbc/odbc-2.3.0/lib -Wl,-rpath /opt/odbc/odbc-2.3.0/lib -o RODBC.so RODBC.o -lodbc -L/opt/odbc/odbc-2.3.0/lib -L/opt/R/2.14.0/lib64/R/lib -lR
installing to /opt/RODBC/RODBC_1.3-5/RODBC/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices ...
*** tangling vignette sources ...
   ‘RODBC.Rnw’
** testing if installed package can be loaded

* DONE (RODBC)
</pre>
<p> Success. Note the &#8220;-Wl,-rpath&#8221; option which lets RODBC.so know where libodbc.so is, so that the end user running R doesn&#8217;t need to set any environment variables before loading RODBC. </p>
<p> In summary:</p>
<pre>
export ODBC_INCLUDE=$ODBC_ROOT/include
export ODBC_LIBS=$ODBC_ROOT/lib
export LD_LIBRARY_PATH=/opt/gcc/4.4.2/lib64:/opt/gcc/4.4.2/lib:/opt/odbc/odbc-2.3.0/lib
MAKEFLAGS='LDFLAGS=-L/opt/odbc/odbc-2.3.0/lib\ -Wl,-rpath\ /opt/odbc/odbc-2.3.0/lib' R CMD INSTALL -l /opt/RODBC/RODBC_1.3-5 RODBC_1.3-5.tar.gz
</pre>
<p> Further reading: <a href="http://www.eyrie.org/~eagle/notes/rpath.html">http://www.eyrie.org/~eagle/notes/rpath.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2012/05/11/r-makeflags-rpath-and-building-packages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1975 VW Beetle</title>
		<link>http://carlo-hamalainen.net/blog/2012/04/27/1975-vw-beetle/</link>
		<comments>http://carlo-hamalainen.net/blog/2012/04/27/1975-vw-beetle/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 20:39:12 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=826</guid>
		<description><![CDATA[My friend Karen just got her fully restored 1975 VW Beetle back from her father. He did an amazing job. Karen&#8217;s dad writes: This is a brief account of the complete restoration of a 1975 VW Beetle affectionately known as TOOT TOOT. It was bought new in Canberra by a Mrs Ngbyet of 39 National [...]]]></description>
			<content:encoded><![CDATA[<p> My friend Karen just got her fully restored 1975 VW Beetle back from her father. He did an amazing job. </p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-14-40.jpg"alt="[photo]"></center></p>
<p></p>
<p> Karen&#8217;s dad writes: </p>
<blockquote>
<p>This is a brief account of the complete restoration of a 1975 VW Beetle affectionately known as TOOT TOOT. It was bought new in Canberra by a Mrs Ngbyet of 39 National Crt, Forrest (most probably a diplomat&#8217;s wife as this is a diplomatic area of Canberra). My daughter, Karen, bought the car in 1998 (rego YFJ645) from a lady in Kambah (another suburb in Canberra) and I drove to Brisbane where she used it as her car until she departed from Brisbane to work in Bonn, Germany in 2007. It was not used then for some 6 months and as I could not bear to see the car deteriorate I agreed to restore the car since it had given Karen such a wonderful reliable service.</p>
<p>Restoration was started in Canberra in 2008 and completed in 2012. Engine and transmission were removed and complete reconditioned and a new carburettor and distributor fitted. The engine cylinders were upgraded from a 1300 to 1600. The engine bay was restored with new sound proofing and seals. The front axle and suspension was then removed and completely reconditioned as were the brakes both front and rear. The interior was stripped and rusted floor panels cut out and replaced with new panels. At the same time the under bonnet was restored, followed by a bare metal restoration of the body then ducoed in 2 Pak white duco, the underbody being treated with underbody sound sealant and new German running boards fitted. A new headline, as per original, was fitted and the windows replaced with all new rubber seals. The interior was reupholstered with new door trim panels and floor carpet. Lights and external trim all replated or replaced with new S/S trim. Wheels were powder coated and new tyres fitted.</p>
<p> Every nut and bolt has been cleaned and restored. A difficult part of the restoration was removing and replacing the door hinge pins. This is very important as badly fitting doors can ruin a good restoration. A plus has been the relative availability of most parts via the internet at this time.</p>
</blockquote>
<p>Karen adds:</p>
<blockquote>
<p>She did many a journey with my daughter Isabelle, a beautiful black furry companion named &#8220;Boo&#8221;, and a cattle dog named Neal. She never ever let me down! She has, is and hopefully will always remain by my side. She will forever embody the passion, love and skill of my father for restoring cars. He did a wonderful job, and I will always be grateful.</p>
</blockquote>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-14-49.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-15-07.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-15-18.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-15-28.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-15-39.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-15-55.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-16-02.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-16-08.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-16-23.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-16-44.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-17-13.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-17-21.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-17-34.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-17-41.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-17-48.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-17-56.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-18-09.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-18-38.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-19-13.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-19-48.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-19-59.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-04-20++13-20-13.jpg"alt="[photo]"></center></p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2012/04/27/1975-vw-beetle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Home brew fridge thermostat</title>
		<link>http://carlo-hamalainen.net/blog/2012/04/05/home-brew-fridge-thermostat/</link>
		<comments>http://carlo-hamalainen.net/blog/2012/04/05/home-brew-fridge-thermostat/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 21:18:32 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=819</guid>
		<description><![CDATA[I picked up a cheap thermostat on eBay for controlling the temperature in my brewing fridge. The model number is BY-LOX 15A. You can run the thermostat wire inside the door on the hinged side so there is no need to modify the fridge at all. I set the thermostat to 23C and the temperature [...]]]></description>
			<content:encoded><![CDATA[<p> I picked up a cheap thermostat <a href="http://myworld.ebay.com.au/aus_best_bargain/?_trksid=p4340.l2559">on eBay</a> for controlling the temperature in my brewing fridge. The model number is <a href="https://duckduckgo.com/?q=BY-LOX+15A">BY-LOX 15A</a>. </p>
<p> You can run the thermostat wire inside the door on the hinged side so there is no need to modify the fridge at all. I set the thermostat to 23C and the temperature sticker on the side of the tub stayed at about 24C throughout the brewing process. (By default it shows the current temp.)</p>
<p><center><img border=0 src="/blogdata/medium/2012-03-17++09-25-33.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-03-17++09-25-42.jpg"alt="[photo]"></center></p>
<p></p>
<p> The thermostat turns the fridge on when the temperature goes above the preset value. It doesn&#8217;t get very cold at night in Brisbane so I haven&#8217;t bothered with a dual control thermostat that can turn on a cooling and heating source.</p>
<p> Brewing at a constant 23-24C temperature has made a huge difference to the quality of my home brew. </p>
<p> I usually get my home brew gear from <a href="http://maps.google.com/maps/place?cid=18386885248970706355&#038;q=Annerley+Home+Brew,+428+Ipswich+Road,+Annerley,+Queensland,+Australia&#038;hl=en&#038;dtab=2&#038;ie=UTF8&#038;ll=-27.508463,153.03424&#038;spn=0.007974,0.013937&#038;t=m&#038;z=17&#038;vpsrc=0">Annerley Home Brew</a>, a fantastic store on the south side of Brisbane.</p>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2012/04/05/home-brew-fridge-thermostat/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kool stop salmon pads</title>
		<link>http://carlo-hamalainen.net/blog/2012/03/29/kool-stop-salmon-pads/</link>
		<comments>http://carlo-hamalainen.net/blog/2012/03/29/kool-stop-salmon-pads/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 12:53:56 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=814</guid>
		<description><![CDATA[Top: original (from 2007!) rear brake pads on my Avanti Blade flatbar road bike. Bottom: new Kool Stop salmon pads. They&#8217;re huge!]]></description>
			<content:encoded><![CDATA[<p> Top: original (from 2007!) rear brake pads on my Avanti Blade flatbar road bike. </p>
<p> Bottom: new Kool Stop salmon pads. They&#8217;re huge!</p>
<p><center><img border=0 src="/blogdata/medium/2012-03-18++07-59-30.jpg"alt="[photo]"></center></p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2012/03/29/kool-stop-salmon-pads/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bike Week brekkie</title>
		<link>http://carlo-hamalainen.net/blog/2012/03/29/bike-week-brekkie/</link>
		<comments>http://carlo-hamalainen.net/blog/2012/03/29/bike-week-brekkie/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 12:53:00 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=810</guid>
		<description><![CDATA[I went to the Bicycle Queensland / Scody Ride to Work event in King George Square earlier this month. It was drizzling but I didn&#8217;t mind&#8230; Heaps of people turned up. My mate Tony won a bike light in the raffle. I was pleased with the free (healthy!) breakfast. Naturally there were some interesting bikes [...]]]></description>
			<content:encoded><![CDATA[<p> I went to the <a href="http://bikeweek.bq.org.au/whats-on/events/scody-ride-to-work-day/">Bicycle Queensland / Scody Ride to Work</a> event in King George Square earlier this month.</p>
<p> It was drizzling but I didn&#8217;t mind&#8230; </p>
<p><center><img border=0 src="/blogdata/medium/2012-03-14++07-06-40.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-03-14++07-15-06.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-03-14++07-15-13.jpg"alt="[photo]"></center></p>
<p></p>
<p> Heaps of people turned up. My mate Tony won a bike light in the raffle. I was pleased with the free (healthy!) breakfast.</p>
<p><center><img border=0 src="/blogdata/medium/2012-03-14++07-26-11.jpg"alt="[photo]"></center></p>
<p></p>
<p> Naturally there were some interesting bikes around. One guy had a compass on his handlebars:</p>
<p><center><img border=0 src="/blogdata/medium/2012-03-14++07-46-48.jpg"alt="[photo]"></center></p>
<p></p>
<p> Must be fun to ride in a headwind. Or side-wind.</p>
<p><center><img border=0 src="/blogdata/medium/2012-03-14++07-47-41.jpg"alt="[photo]"></center></p>
<p></p>
<p><center><img border=0 src="/blogdata/medium/2012-03-14++08-35-21.jpg"alt="[photo]"></center></p>
<p></p>
<p> Friday night was <a href="http://bikeweek.bq.org.au/whats-on/events/film-night/">Film Night</a>: </p>
<p> Where Are You Go:</p>
<p><center><object width="560" height="315"><param name="movie" value="http://www.youtube.com/v/7NpubbAzKSY?version=3&amp;hl=en_GB"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7NpubbAzKSY?version=3&amp;hl=en_GB" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
<p><center>    <iframe src="http://player.vimeo.com/video/6771122" width="400" height="300" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></center></p>
<p> And the last one was <a href="http://www.bluebikedoc.com/">The Blue Bike</a> (sorry, no embeddable trailer).</p>
<p> I won the tshirt for Tokyo to Osaka <img src='http://carlo-hamalainen.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2012/03/29/bike-week-brekkie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few dissections of order 18</title>
		<link>http://carlo-hamalainen.net/blog/2012/03/17/a-few-dissections-of-order-18/</link>
		<comments>http://carlo-hamalainen.net/blog/2012/03/17/a-few-dissections-of-order-18/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 05:55:27 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=769</guid>
		<description><![CDATA[A triangle dissection of an equilateral triangle is a way of dividing up a original triangle into smaller equilateral triangles, such that none of the smaller triangles overlap (for a few examples, scroll down in this post). Due to a known link between spherical latin bitrades and triangle dissections, we are able to enumerate triangle [...]]]></description>
			<content:encoded><![CDATA[<p> A <i>triangle dissection</i> of an equilateral triangle is a way of dividing up a original triangle into smaller equilateral triangles, such that none of the smaller triangles overlap (for a few examples, scroll down in this post). Due to a <a href="http://arxiv.org/abs/0910.5199">known link</a> between spherical latin bitrades and triangle dissections, we are able to enumerate triangle dissections exhaustively up to a certain size. </p>
<p> One way to calculate a <i>canonical signature</i> for each dissection is to take the list of triangles, the vertices of which live in <img src='http://s.wordpress.com/latex.php?latex=%5Cmathbb%7BQ%7D%28%5Csqrt%7B3%7D%29%20%5Ctimes%20%5Cmathbb%7BQ%7D%28%5Csqrt%7B3%7D%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\mathbb{Q}(\sqrt{3}) \times \mathbb{Q}(\sqrt{3})' title='\mathbb{Q}(\sqrt{3}) \times \mathbb{Q}(\sqrt{3})' class='latex' />, and take the sorted minimum sequence of sorted triples. We can write down a convenient representation (avoiding irrational numbers) by noting that elements of <img src='http://s.wordpress.com/latex.php?latex=%5Cmathbb%7BQ%7D%28%5Csqrt%7B3%7D%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\mathbb{Q}(\sqrt{3})' title='\mathbb{Q}(\sqrt{3})' class='latex' /> have the form <img src='http://s.wordpress.com/latex.php?latex=a%20%2B%20b%5Cmathbb%7BQ%7D%28%5Csqrt%7B3%7D%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='a + b\mathbb{Q}(\sqrt{3})' title='a + b\mathbb{Q}(\sqrt{3})' class='latex' /> where <img src='http://s.wordpress.com/latex.php?latex=a%2C%5C%2Cb%20%5Cin%20%5Cmathbb%7BQ%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='a,\,b \in \mathbb{Q}' title='a,\,b \in \mathbb{Q}' class='latex' />. For example, the first dissection shown below has the following signature:</p>
<p>
<pre>
0 0 0 0 1/1 2 0 0 1/12 1/6 0 0 0 1/12 0 0 1/12 1/6 0 0 0 1/4 0 0 1/12 1/12 0 0 1/12
1/6 0 0 1/6 1/4 0 0 1/12 1/6 0 0 0 1/4 0 0 1/12 1/3 0 0 0 1/6 0 0 1/6 1/4 0 0 1/12
1/3 0 0 1/6 1/6 0 0 1/6 1/4 0 0 1/4 1/3 0 0 1/6 1/4 0 0 1/12 1/3 0 0 0 5/12 0 0 1/12
1/4 0 0 1/12 5/12 0 0 1/4 7/12 0 0 1/12 1/4 0 0 1/4 1/3 0 0 1/6 5/12 0 0 1/4 1/4 0
0 1/4 1/3 0 0 1/3 5/12 0 0 1/4 1/3 0 0 0 5/12 0 0 1/12 1/2 0 0 0 1/3 0 0 1/3 1/2 0
0 1/6 2/3 0 0 1/3 1/3 0 0 1/3 1/2 0 0 1/2 2/3 0 0 1/3 5/12 0 0 1/12 1/2 0 0 0 7/12 0
0 1/12 1/2 0 0 0 7/12 0 0 1/12 2/3 0 0 0 1/2 0 0 1/6 2/3 0 0 0 5/6 0 0 1/6 1/2 0 0
1/6 2/3 0 0 1/3 5/6 0 0 1/6 2/3 0 0 0 5/6 0 0 1/6 1 0 0 0
</pre>
</p>
<p> (This signature can be converted to a PDF by echoing it as a single line to the Python script <a href="https://github.com/carlohamalainen/triangle_dissections/blob/master/plot/draw_dissection.py">draw_dissection.py</a>) </p>
<p> While double-checking my C++ implementation I found that my old Python code was finding 5 fewer dissections of order 18, when counting both separated and nonseparated dissections (separated dissections have interior vertices of degree 4, while nonseparated dissections have interior vertices of degree 4 or 6). It turned out to be the way that I was calculating a canonical signature. In the interest of saving space, my old Python code just stored a list of vertices, so naturally it lost information about whether a vertex was of degree 4 or 6. Surprisingly this caused no problems until order 18. The 5 pairs of vertex-equivalent dissections are shown below:</p>
<p><center><a href="/stuff/dissections_18/n18_sig_0.pdf"><img src="/stuff/dissections_18/n18_sig_0.png">  &nbsp;&nbsp;&nbsp;&nbsp; </a><a href="/stuff/dissections_18/n18_sig_1.pdf"><img src="/stuff/dissections_18/n18_sig_1.png"></a></center></p>
<p><center><a href="/stuff/dissections_18/n18_sig_2.pdf"><img src="/stuff/dissections_18/n18_sig_2.png">  &nbsp;&nbsp;&nbsp;&nbsp; </a><a href="/stuff/dissections_18/n18_sig_3.pdf"><img src="/stuff/dissections_18/n18_sig_3.png"></a></center></p>
<p><center><a href="/stuff/dissections_18/n18_sig_4.pdf"><img src="/stuff/dissections_18/n18_sig_4.png">  &nbsp;&nbsp;&nbsp;&nbsp; </a><a href="/stuff/dissections_18/n18_sig_5.pdf"><img src="/stuff/dissections_18/n18_sig_5.png"></a></center></p>
<p><center><a href="/stuff/dissections_18/n18_sig_6.pdf"><img src="/stuff/dissections_18/n18_sig_6.png">  &nbsp;&nbsp;&nbsp;&nbsp; </a><a href="/stuff/dissections_18/n18_sig_7.pdf"><img src="/stuff/dissections_18/n18_sig_7.png"></a></center></p>
<p><center><a href="/stuff/dissections_18/n18_sig_8.pdf"><img src="/stuff/dissections_18/n18_sig_8.png">  &nbsp;&nbsp;&nbsp;&nbsp; </a><a href="/stuff/dissections_18/n18_sig_9.pdf"><img src="/stuff/dissections_18/n18_sig_9.png"></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2012/03/17/a-few-dissections-of-order-18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SciPy, _ZNSt8ios_base4InitD1Ev, and link flags</title>
		<link>http://carlo-hamalainen.net/blog/2012/03/14/scipy-_znst8ios_base4initd1ev-and-link-flags/</link>
		<comments>http://carlo-hamalainen.net/blog/2012/03/14/scipy-_znst8ios_base4initd1ev-and-link-flags/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 04:32:37 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=795</guid>
		<description><![CDATA[I recently tried to build SciPy 0.10.1 on a system with both the GNU and Intel compilers. Everything went find except that import scipy bombed out with: ImportError: /opt/scipy/0.10.1/lib/python2.7/site-packages/scipy/ sparse/sparsetools/_csr.so: undefined symbol: _ZNSt8ios_base4InitD1Ev The fix is to add &#8220;-lstdc++&#8221; to the link flags. I found a post on the SciPy mailing list where someone had [...]]]></description>
			<content:encoded><![CDATA[<p> I recently tried to build SciPy 0.10.1 on a system with both the GNU and Intel compilers. Everything went find except that <code>import scipy</code> bombed out with:</p>
<p><pre>ImportError: /opt/scipy/0.10.1/lib/python2.7/site-packages/scipy/
sparse/sparsetools/_csr.so: undefined symbol: _ZNSt8ios_base4InitD1Ev</pre>
</p>
<p> The fix is to add &#8220;-lstdc++&#8221; to the link flags. I found a post on the <a href="http://mail.scipy.org/pipermail/scipy-user/2010-March/024523.html">SciPy mailing list</a> where someone had the same problem and asked &#8220;Could someone please advise me how to ensure that the &#8220;-lstdc++&#8221; is successfully passed to the linker as and when I build scipy.&#8221;</p>
<p> The answer is to use the build_ext target to enable the link flag:</p>
<pre>
python setup.py config --compiler=intel --cc=icc --fcompiler=intelem build_ext -lstdc++
python setup.py config --compiler=intel --fcompiler=intelem install --prefix=/opt/scipy/0.10.1
</pre>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2012/03/14/scipy-_znst8ios_base4initd1ev-and-link-flags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Myths and debunking</title>
		<link>http://carlo-hamalainen.net/blog/2011/12/09/myths-and-debunking/</link>
		<comments>http://carlo-hamalainen.net/blog/2011/12/09/myths-and-debunking/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 04:14:05 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=758</guid>
		<description><![CDATA[Quoting Skeptical Science on debunking myths: Common wisdom is that the more counter-arguments you provide, the more successful you’ll be in debunking a myth. It turns out that the opposite can be true. When it comes to refuting misinformation, less can be more. Debunks that offered three arguments, for example, are more successful in reducing [...]]]></description>
			<content:encoded><![CDATA[<p> Quoting <a href="http://www.skepticalscience.com/Debunking-Handbook-Part-3-Overkill-Backfire-Effect.html">Skeptical Science</a> on debunking myths:</p>
<blockquote><p>
Common wisdom is that the more counter-arguments you provide, the more successful you’ll be in debunking a myth. It turns out that the opposite can be true. When it comes to refuting misinformation, less can be more. Debunks that offered three arguments, for example, are more successful in reducing the influence of misinformation, compared to debunks that offered twelve arguments which ended up reinforcing the myth.
</p></blockquote>
<p> For more information, read <a href="http://carlo-hamalainen.net/stuff/04_14_09_Schwarz.pdf">Schwarz, Sanna, Skurnik, Yoon: Metacognitive experiences and the intricacies of setting people straight: implications for debiasing and public information campaigns</a>.</p>
<p> For commentary on how scientists should respond to denialists, read <a href="http://carlo-hamalainen.net/stuff/Eur%20J%20Public%20Health-2009-Diethelm-2-4.pdf">Diethelm and McKee: Denialism: what is it and how should scientists respond?</a></p>
<p> Another interesting paper: <a href="http://carlo-hamalainen.net/stuff/Reber_Schwarz_Perceptual_fluency.pdf">Reber and Schwarz: Effects of Perceptual Fluency on Judgments of Truth</a></p>
<p> See also:</p>
<p> <a href="http://rationalwiki.org/wiki/Denialism">http://rationalwiki.org/wiki/Denialism</a></p>
<p> <a href="http://www.skepticalscience.com/Debunking-Handbook-Part-3-Overkill-Backfire-Effect.html">Debunking Handbook Part 3: The Overkill Backfire Effect</a></p>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2011/12/09/myths-and-debunking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crabgrass Frontier vs Regurgitator&#8217;s Superstraight</title>
		<link>http://carlo-hamalainen.net/blog/2011/10/07/crabgrass-frontier-vs-regurgitators-superstraight/</link>
		<comments>http://carlo-hamalainen.net/blog/2011/10/07/crabgrass-frontier-vs-regurgitators-superstraight/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 01:15:05 +0000</pubDate>
		<dc:creator>carlo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://carlo-hamalainen.net/blog/?p=745</guid>
		<description><![CDATA[If you could put a video clip to the book Crabgrass frontier: the suburbanization of the United States, it would have to be Regurgitator&#8217;s Superstraight: Lyrics: gimme love gimme good good times here in suburbia the best you can buy this is my home i keep my family inside i&#8217;m late for work now honey [...]]]></description>
			<content:encoded><![CDATA[<p> If you could put a video clip to the book <a href="http://books.google.com/books/about/Crabgrass_frontier.html?id=lwave_qPlYUC">Crabgrass frontier: the suburbanization of the United States</a>, it would have to be Regurgitator&#8217;s Superstraight:</p>
<p><center><iframe width="560" height="315" src="http://www.youtube.com/embed/I2t4tEOqido" frameborder="0" allowfullscreen></iframe></center></p>
<p></p>
<p> Lyrics:</p>
<p>
<blockquote>
gimme love gimme good good times<br />
here in suburbia the best you can buy<br />
this is my home i keep my family inside<br />
i&#8217;m late for work now honey i got to fly<br />
he&#8217;s superstraight yeah he&#8217;s superstraight<br />
i push my big sedan through the traffic jam<br />
like salmon spawning to get into a can<br />
i sing along to the pop radio<br />
it&#8217;s propaganda but i know how it goes<br />
you know i work all day and im out of my mind<br />
i go man, im only human man i gotta unwind<br />
i love my baby yeah shes number one<br />
work girl means nothin i just bang her for fun<br />
and when the weekend comes it&#8217;s time for my drugs<br />
i suck em down count it two by one<br />
help me remember to forget who i am<br />
and when it&#8217;s over babe<br />
that&#8217;s when it starts up again
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://carlo-hamalainen.net/blog/2011/10/07/crabgrass-frontier-vs-regurgitators-superstraight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

