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

<channel>
	<title>miscellaneous.debris</title>
	<atom:link href="http://www.miscdebris.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.miscdebris.net/blog</link>
	<description>A blog about my research work, computer and internet stuff, personal life.</description>
	<pubDate>Fri, 12 Dec 2008 21:43:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MinGW (3.4.5) binaries of GNU Scientific Library 1.11 for use with MinGW and Visual C</title>
		<link>http://www.miscdebris.net/blog/2008/12/12/mingw-345-binaries-of-gnu-scientific-library-111/</link>
		<comments>http://www.miscdebris.net/blog/2008/12/12/mingw-345-binaries-of-gnu-scientific-library-111/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 10:05:37 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[Research]]></category>

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

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

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

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

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

		<guid isPermaLink="false">http://www.miscdebris.net/blog/?p=85</guid>
		<description><![CDATA[&#8220;The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite&#8221;.
GSL is quite Unix centric but one might want to use [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;The <a href="http://www.gnu.org/software/gsl/" target="_blank">GNU Scientific Library (GSL)</a> is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite&#8221;.</p>
<p>GSL is quite Unix centric but one might want to use the library at least with <a href="http://www.mingw.org/" target="_blank">MinGW</a> on Windows. I didn&#8217;t find any MinGW binaries of GSL apart from the <a href="http://ascendwiki.cheme.cmu.edu/Binary_installer_for_GSL-1.11_on_MinGW" target="_blank">one provided by the Ascend package</a> or the <a href="http://gnuwin32.sourceforge.net/packages/gsl.htm" target="_blank">binaries from GNUWin32</a> (which is only at version 1.8), but I don&#8217;t like graphical installers for libraries and I needed the static library. Therefore I compiled my own library with <a href="http://www.mingw.org/wiki/msys" target="_blank">MSYS</a> (I updated MSYS according to this link) and provide here the tarred binary package, which can also be used with the MinGW compiler without MSYS and with Visual C (import libraries for the shared library are provided).</p>
<p><span id="more-85"></span>There are no makefiles for the MinGW compiler but it is possible to compile the GSL in the MSYS development environment. I wrote a little bash script which downloads the GSL source package (with the help of <a title="curl for windows package" href="http://curl.haxx.se/download/curl-7.18.0-win32-nossl-sspi.zip">curl</a>), untars the package, compiles the source and assembles the binaries and necessary files for development in a tar.gz package using <a href="http://downloads.sourceforge.net/sevenzip/7za457.zip" target="_blank">7zip</a>. Curl and 7zip need to be in the path or in the same directory as the script. The script will create a gsl_mingw directory where the source package is downloaded to and all compilation steps will take place. The tar.gz package will be created in gsl_mingw/package and copied to the directory where the script was run. Below you can download the binary package of GSL 1.11 for the MinGW 3.4.5 compiler toolset (to be used in MSYS and in native Windows CLI) and the script I wrote to compile GSL in MSYS yourself if you want. I also added the import libraries for Visual C (only for the shared GSL) according <a href="http://gnuwin32.sourceforge.net/msimport.html" target="_blank">GNUWin32 descriptions</a>.</p>
<p>Download: <a href="http://www.miscdebris.net/upload/gsl-1.11_mingw-3.4.5.tar.gz" target="_self">GSL 1.11 Binary for MinGW 3.4.5</a> (with Visual C import libraries)</p>
<p>The script will create a directory &#8220;gsl_mingw&#8221; in the same directory where the script is run. Before the scripts starts downloading the GSL package, it shows some informations and waits for user input.</p>
<pre name="code" class="jscript">

#######################################################################
# This MSYS/bash batch file will download, compile and make a package
# of the GNU scientific library for the MinGW compiler. You need to
# have Msys and MinGW already installed.
#
# You need curl.exe and 7za.exe for this script to work
# correctly:
#   - curl 7.18.0 no SSL download location:
# http://curl.haxx.se/download/curl-7.18.0-win32-nossl-sspi.zip
#   - 7-zip 4.57 command line version:
# http://downloads.sourceforge.net/sevenzip/7za457.zip
#######################################################################

#######################################################################
# determine directories and set variables
# source package will be downloaded to $MAINDIR
# source will be compiled in $BUILDDIR
# binary package will be created in $ROOTDIR
#######################################################################
export GSL_VERSION=1.11
export GSL_URL=ftp://ftp.gnu.org/gnu/gsl/gsl-${GSL_VERSION}.tar.gz
export MINGW_VERSION=`gcc -dumpversion`

export ROOTDIR=`pwd`
export MAINDIR=$ROOTDIR/gsl_mingw
export BUILDDIR=$MAINDIR/gsl-${GSL_VERSION}
export PACKAGEDIR=$MAINDIR/package

#######################################################################
# show user the settings and ask if he wants to continue
#######################################################################
echo
echo ==============================================================
echo == Please check the settings
echo ==============================================================
echo
echo Directories
echo ===========
echo ROOTDIR=$ROOTDIR
echo MAINDIR=$MAINDIR
echo BUILDDIR=$BUILDDIR
echo PACKAGEDIR=$PACKAGEDIR
echo
echo Other
echo =====
echo GSL_URL=$GSL_URL
echo GSL_VERSION=$GSL_VERSION
echo MINGW_VERSION=$MINGW_VERSION
echo

echo &quot;Should the build process be continued? Type y to continue!&quot;
read -n 1 -s
if [ &quot;$REPLY&quot; != &quot;y&quot; ]; then
echo &quot;Shell script stopped ...&quot;
exit -1;
fi

#######################################################################
# create directories
#######################################################################
mkdir $MAINDIR
mkdir $PACKAGEDIR

#######################################################################
# download and unpack gsl source code
#######################################################################
echo +++ Downloading gsl from $GSL_URL +++
curl $GSL_URL -o $MAINDIR/gsl-${GSL_VERSION}.tar.gz
pushd $MAINDIR
tar xzf gsl-${GSL_VERSION}.tar.gz
popd

#######################################################################
# configure and build library
#######################################################################
mkdir $BUILDDIR/buildstatic
pushd $BUILDDIR/buildstatic
../configure --enable-static=yes --enable-shared=no --prefix=$PACKAGEDIR/gsl-${GSL_VERSION}-static
make
make install
popd

mkdir $BUILDDIR/buildshared
pushd $BUILDDIR/buildshared
# CFLAGS=-DGSL_DLL ../configure --enable-static=no --enable-shared=yes  --prefix=$PACKAGEDIR/gsl-${GSL_VERSION}
../configure --enable-static=no --enable-shared=yes --prefix=$PACKAGEDIR/gsl-${GSL_VERSION}-shared
make
make install
popd

#######################################################################
# make package for website
#######################################################################
if [ 1 == 1 ]
then
pushd $PACKAGEDIR
mkdir -p gsl-${GSL_VERSION}/lib-static
mkdir -p gsl-${GSL_VERSION}/lib-shared
mkdir -p gsl-${GSL_VERSION}/bin
mkdir -p gsl-${GSL_VERSION}/include

cp -r gsl-${GSL_VERSION}-static/include/* gsl-${GSL_VERSION}/include
cp -r gsl-${GSL_VERSION}-static/lib/* gsl-${GSL_VERSION}/lib-static
cp -r gsl-${GSL_VERSION}-shared/lib/* gsl-${GSL_VERSION}/lib-shared
cp -r gsl-${GSL_VERSION}-shared/bin/* gsl-${GSL_VERSION}/bin

echo &#039;This GNU Scientific Library DLL was generated using MingW/Msys.&#039; &gt; gsl-${GSL_VERSION}/README.txt
echo &#039;configure settings:&#039; &gt;&gt; gsl-${GSL_VERSION}/README.txt
echo &#039;../configure --enable-static=yes --enable-shared=no&#039; &gt;&gt; gsl-${GSL_VERSION}/README.txt
echo &#039;../configure --enable-static=no --enable-shared=yes&#039; &gt;&gt; gsl-${GSL_VERSION}/README.txt
echo &#039;&#039; &gt;&gt; gsl-${GSL_VERSION}/README.txt
echo &#039;To create Visual C import libraries open a VC command line&#039; &gt;&gt; gsl-${GSL_VERSION}/README.txt
echo &#039;and in lib-shared run:&#039; &gt;&gt; gsl-${GSL_VERSION}/README.txt
echo &#039;lib /machine:i386 /def:libgsl-0.def&#039; &gt;&gt; gsl-${GSL_VERSION}/README.txt
echo &#039;lib /machine:i386 /def:libgslcblas-0.def&#039; &gt;&gt; gsl-${GSL_VERSION}/README.txt
pushd gsl-${GSL_VERSION}/bin
strip gsl-histogram.exe gsl-randist.exe libgsl-0.dll libgslcblas-0.dll
pexports.exe libgsl-0.dll &gt; ../lib-shared/libgsl-0.def
pexports.exe libgslcblas-0.dll &gt; ../lib-shared/libgslcblas-0.def
popd
tar -cf gsl-${GSL_VERSION}_mingw-${MINGW_VERSION}.tar gsl-${GSL_VERSION}
gzip gsl-${GSL_VERSION}_mingw-${MINGW_VERSION}.tar
mv gsl-${GSL_VERSION}_mingw-${MINGW_VERSION}.tar.gz $ROOTDIR
popd
fi

exit 1
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/12/12/mingw-345-binaries-of-gnu-scientific-library-111/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installing a NTFS driver (NTFS-3g) on Mac OS X to get read and write access</title>
		<link>http://www.miscdebris.net/blog/2008/11/24/installing-a-ntfs-driver-ntfs-3g-on-mac-os-x-to-get-read-and-write-access/</link>
		<comments>http://www.miscdebris.net/blog/2008/11/24/installing-a-ntfs-driver-ntfs-3g-on-mac-os-x-to-get-read-and-write-access/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 15:27:14 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[MacOSX]]></category>

		<guid isPermaLink="false">http://www.miscdebris.net/blog/?p=76</guid>
		<description><![CDATA[The installation of a NTFS driver on Mac OS X for read and write access is actually covered on many websites, so I just write this entry to summarize the installation process and to write about my experience with the driver.
First, you need to install MacFUSE, which &#8220;makes it possible to implement a fully functional [...]]]></description>
			<content:encoded><![CDATA[<p>The installation of a NTFS driver on Mac OS X for read and write access is actually covered on many websites, so I just write this entry to summarize the installation process and to write about my experience with the driver.</p>
<p><span id="more-76"></span>First, you need to install <a href="http://code.google.com/p/macfuse/" target="_blank">MacFUSE</a>, which &#8220;makes it possible to implement a fully functional file system in a user-space program on Mac OS X&#8221;. Download the dmg file from the <a href="http://code.google.com/p/macfuse/" target="_blank">website</a> (<a href="http://macfuse.googlecode.com/files/MacFUSE-1.7.dmg" target="_self">Version 1.7</a> at the time of writing), open it and run MacFUSE.pkg.</p>
<p>Second, download the actual <a href="http://macntfs-3g.blogspot.com/" target="_blank">NTFS-3g driver for OSX</a> - there are two version:</p>
<ul>
<li><a href="http://downloads.sourceforge.net/catacombae/NTFS-3G_1.5012-ublio-catacombae.dmg" target="_blank">NTFS-3G 1.5012</a> (from ublio), which is fast but unsafe</li>
<li><a href="http://downloads.sourceforge.net/catacombae/NTFS-3G_1.5012-stable-catacombae.dmg" target="_blank">NTFS-3G 1.5012</a> (stable), which is slow for USB drives but safe</li>
</ul>
<p>Open the dmg file and run NTFS-3G.pkg. Reboot is required. Read the <a href="http://hem.bredband.net/catacombae/ntfs-3g/macntfs-3g_userguide.pdf" target="_self">NTFS-3G User Guide</a> about disabling the (unsafe) ublio caching overall or only for some drives. I&#8217;ll do some tests about speed later.</p>
<p>Links:</p>
<ul>
<li><a href="http://macntfs-3g.blogspot.com/" target="_blank">NTFS-3G for Mac OS X</a></li>
<li><a href="http://www.ntfs-3g.org/" target="_blank">NTFS-3G Stable Read/Write Driver</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/11/24/installing-a-ntfs-driver-ntfs-3g-on-mac-os-x-to-get-read-and-write-access/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Instructions on how to create DevPak packages</title>
		<link>http://www.miscdebris.net/blog/2008/10/07/instructions-on-how-to-create-devpak-packages/</link>
		<comments>http://www.miscdebris.net/blog/2008/10/07/instructions-on-how-to-create-devpak-packages/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 07:55:50 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[Miscellaneous debris]]></category>

		<guid isPermaLink="false">http://www.miscdebris.net/blog/?p=61</guid>
		<description><![CDATA[I&#8217;m in the process of writing a DevPak for the libharu libary. These are actually tar.bz2 packages of whatever you think is a good idea to install into the Dev-C++, Code::Blocks or wxDev-C++ IDEs. E.g. precompiled libraries and necessary header files. In addition one adds a so called DevPackage file, which tells the IDEs where [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in the process of writing a DevPak for the <a href="http://www.libharu.org" target="_blank">libharu</a> libary. These are actually tar.bz2 packages of whatever you think is a good idea to install into the <a href="http://www.bloodshed.net/dev/" target="_blank">Dev-C++</a>, <a href="http://www.codeblocks.org/" target="_blank">Code::Blocks</a> or <a href="http://wxdsgn.sourceforge.net/" target="_blank">wxDev-C++</a> IDEs. E.g. precompiled libraries and necessary header files. In addition one adds a so called DevPackage file, which tells the IDEs where to put all the files. Since you are also allowed to install files into the windows directory, these packages are also quite dangerous - you should check the package content first (rename xxx.DevPak to xxx.tar.bz2). The DevPackage file format is more or less straight forward, but first I couldn&#8217;t find a documentation for that. In the cvs repository of Dev-C++ there was actually a documentation (<a href="http://dev-cpp.cvs.sourceforge.net/viewvc/dev-cpp/V5/source/packman/File%20Format.txt?view=log" target="_blank">File Format.txt</a>), but it contained some errors. So I updated the file and make it available in this post.<span id="more-61"></span></p>
<pre>                           Dev-C++ Package File Format
                         Version 1 - March the 15th, 2002
                           Update October the 7th, 2008

General Information
-------------------
The content of a DevPak package is described using a package description file,
which has the extension .DevPackage. The file is really a simple INI file.
This is an updated version of the original "File Format.txt" file found
in the cvs repository of Dev C++:
http://dev-cpp.cvs.sourceforge.net/viewvc/dev-cpp/V5/source/packman/File%20Format.txt?view=log
or in the svn repository of wxDev-C++ (or wxDesigner)
http://wxdsgn.svn.sourceforge.net/viewvc/wxdsgn/trunk/packman/File%20Format.txt?view=log

Sections
--------
The .DevPackage file contains three sections:
[Setup]
This section contains information about the package, such as package name,
version, description, readme, license, etc.

[Files]
This section contains information about files, and where they should be
installed to.

[Icons]
This section contains information about links to documentation or webpages
which are added to the Dev-C++ start menu.

The [Setup] section
-------------------
This section *must* contain at least the following keys:
Version     The package format's version number. A higher version number means
            that this package is not compatible with older package managers.
AppName     A name for the package. Example: MyApp
AppVerName  The package's name and the version together.
            Example: MyApp Version 1.0
AppVersion  The package's version number. Example: 1.0
MenuName    A name for a menu group for this package.

The following keys are optional:
Url           An URL to the library's website.
Picture       A filename to a logo/picture/whatever that will be displayed.
Description   A desription for the package.
Readme        A filename to the Readme file, relative to the .DevPackage file.
              Example: README.TXT
License       A filename to the license file, relative to the .DevPackage file.
              Example: COPYING.TXT
Reboot        Wether the package requires a reboot or not in order to function
              properly. The value can be either 1 (true) or 0 (false).
Dependencies  A comma-seperated list of package names that this package
              depends on.

The [Files] section
-------------------
Keys in the Files section are composed in the following format:

Source=Destdir\[FileName][;Flags]

Source (required):
The name of the source file, relative to the .DevPackage file.
This can be a directory, in which case all files inside that directory will be
copied.

Destdir (required):
The destination directory. Please note that Destdir must *always* end with a
backslash (\). Otherwise it will be interpreted as FileName.

FileName (optional):
If this is specified, the copied file will be renamed to the specified filename.

Flags (optional):
An extra set of options.
recursive   If Source is a directory, the installer will recurse into any
            subdirectories and copy the files inside those subdirectories too.
            This doesn't work in Dev-C++, since one one hand the directories
            are copied recursively by default and on the other hand the ";"
            is used in DestDir corrupting the destination filename.

Constants:
Sourcedir and Destdir can contain constants. A constant will be replaced to
their literal value, depending on the user's configuration. The constants'
names are not case sensitive.
&lt;app&gt;  Dev-C++'s root directory (usually C:\Dev-C++).
&lt;src&gt;  The source directory (the directory where the .DevPackage file is
       located).
&lt;win&gt;  The system's Windows directory (usually C:\WINDOWS).
&lt;sys&gt;  The system's Windows System directory (usually C:\WINDOWS\SYSTEM).

Examples:
Foo.txt=&lt;app&gt;\                         Installs to C:\Dev-C++\Foo.txt
Bar.h=&lt;app&gt;\include\FooBar.h           Installs to C:\Dev-C++\include\FooBar.h
L33t.dll=&lt;sys&gt;\                        Installs to C:\WINDOWS\System\L33t.dll
WindowsSucks.exe=&lt;win&gt;\Explorer.exe    Installs to C:\WINDOWS\Explorer.exe
BigFolder=C:\;recursive                Installs all files in BigFolder,
                                       including all files inside any
                                       subfolders, to C:\

The [Icons] section
-------------------
This section is ignored if MenuName (in the Setup section) is not given.

Entries in this section describe what menu items should be created.
Each entry has the following format:

Name=Target[,Icon Filename]

Target can contain constants as described in the Files section.

Examples:
[Setup]
MenuName=GTK
[Icons]
Website=http://www.gtk.org/

This will create the menu group "Start-&gt;Programs-&gt;Bloodshed Dev-C++-&gt;GTK",
with 1 menu item, called Website, which points to http://www.gtk.org/

[Setup]
MenuName=FLTK
[Icons]
UI Designer=&lt;app&gt;\bin\Fluid.exe,&lt;app&gt;\Icons\Fluid.ico
Website=http://www.fltk.org/

Let's assume that Dev-C++ is installed in C:\Dev-C++. This will create the
menu group "Start-&gt;Programs-&gt;Bloodshed Dev-C++-&gt;FLTK", with 2 menu items:
- Website, which points to http://www.gtk.org/
- UI Designer, which points to C:\Dev-C++\bin\fluid.exe, and use the icon
  file C:\Dev-C++\Icons\Fluid.ico</pre>
<p>The file can also be downloaded: <a href="http://www.miscdebris.net/blog/wp-content/uploads/2008/10/devpak-format.txt">devpak-format</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/10/07/instructions-on-how-to-create-devpak-packages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Use Mercurial for easy local revision backup</title>
		<link>http://www.miscdebris.net/blog/2008/09/30/use-mercurial-for-easy-local-revision-backup/</link>
		<comments>http://www.miscdebris.net/blog/2008/09/30/use-mercurial-for-easy-local-revision-backup/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 10:07:10 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[Miscellaneous debris]]></category>

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

		<guid isPermaLink="false">http://www.miscdebris.net/blog/2008/09/30/use-mercurial-for-easy-local-revision-backup/</guid>
		<description><![CDATA[I regularly make backups of all my data, it&#8217;s also synchronized on several computers and hard disks. But since I backup only once a week, I don&#8217;t really have several revisions from files available between the backups. This is espacially necessary if you work on some code of a small project, which is not revisioned [...]]]></description>
			<content:encoded><![CDATA[<p>I regularly make backups of all my data, it&#8217;s also synchronized on several computers and hard disks. But since I backup only once a week, I don&#8217;t really have several revisions from files available between the backups. This is espacially necessary if you work on some code of a small project, which is not revisioned via svn or cvs - and you don&#8217;t want to or have no access to svn. Also you don&#8217;t want to set up a local svn or cvs repository. You could use <a href="http://www.apple.com/macosx/features/timemachine.html" target="_blank">Time Machine</a> on Mac OS X and there are some other tools available on Windows, like <a href="http://www.mogware.com/FileHamster/" target="_blank">FileHamster</a>. But FileHamster wasn&#8217;t always trouble free and by coincidence I found another solution which is rather appealing: <a href="http://www.selenic.com/mercurial/wiki/" target="_blank">Mercurial</a>.</p>
<p>The nice thing about Mercurial is, that it is a fast, distributed, lightweight Source Control Management system - you don&#8217;t need a server for it. The revisions are save to the local .hg folder. In this post I just explain some basics to get started (on Windows - but apart from the installation process, it&#8217;s the same for Mac OS X and Linux).</p>
<p><span id="more-48"></span>First download the binary distribution of Mercurial at the <a href="http://mercurial.berkwood.com/" target="_blank">download page</a>. Download the latest installer and let the installer change the system PATH variable, so that hg.exe (chemical symbol for Mercurial) is found in all opened CLIs. There is also a GUI Mercurial client available (<a href="http://tortoisehg.sourceforge.net/" target="_blank">TortoiseHg</a>), but since I already have TortoiseCSV and TortoiseSVN installed, I didn&#8217;t want to bloat my contect menu any further.<br />
Open a Windows CLI (Start-&gt;Run&#8230;, enter cmd.exe) and cd into the directory where your files are which need to be revisioned. You create now a repository with</p>
<pre>hg init</pre>
<p>A .hg directory will be created and the repository initialized. Now we add files we want to be in the revision with e.g.</p>
<pre>hg add *.php</pre>
<p>Adding a folder will add also the content of that folder. After that you need to commit the files to the repository with</p>
<pre>hg commit -m "Adding files"</pre>
<p>You can check which files were changed or need to be commited with</p>
<pre>hg status</pre>
<p>A log will be shown with</p>
<pre>hg log</pre>
<p>In order to ignore files you need to create a .hgignore text file in the same directory where the .hg directory is and add something like</p>
<pre>syntax: glob
.hgignore
*.m4</pre>
<p>If you didn&#8217;t commit your changes to a file you can revert to the revision in the repository with</p>
<pre>hg revert file</pre>
<p>In order to go back to a special revision of a file use the</p>
<pre>hg backout</pre>
<p>command (see the help (hg help backout) for the exact use).</p>
<p>As said, these are only the basic features. For further information head to the <a href="http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial">tutorial </a>or the <a href="http://www.selenic.com/mercurial/wiki/index.cgi/QuickReferenceCardsAndCheatSheets" target="_blank">quick reference cards</a>. Extensive documentation about all features can be found in the freely available book <a href="http://hgbook.red-bean.com/">&#8220;Distributed revision control with Mercurial&#8221;</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/09/30/use-mercurial-for-easy-local-revision-backup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iSync 3.0 plugin for Nokia 3110c</title>
		<link>http://www.miscdebris.net/blog/2008/06/20/isync-30-plugin-for-nokia-3110c/</link>
		<comments>http://www.miscdebris.net/blog/2008/06/20/isync-30-plugin-for-nokia-3110c/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 13:36:11 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[MacOSX]]></category>

		<guid isPermaLink="false">http://www.miscdebris.net/blog/?p=46</guid>
		<description><![CDATA[I got a new shiny Nokia 3110c phone, nice and simple. But iSync has no plugin to sync the address book and the calendar on my iMac with the phone&#8217;s memory. But searching the web I found James Lloyd&#8217;s website, where plugins are provided for the Nokia Series 40 phones (3110c is one of them).
 [...]]]></description>
			<content:encoded><![CDATA[<p>I got a new shiny Nokia 3110c phone, nice and simple. But iSync has no plugin to sync the address book and the calendar on my iMac with the phone&#8217;s memory. But searching the web I found <a href="http://www.james-lloyd.com/scripts/nokia-series-40-isync-plugin/" target="_blank">James Lloyd&#8217;s website</a>, where plugins are provided for the Nokia Series 40 phones (3110c is one of them).</p>
<p><span id="more-46"></span> There is no plugin directly for the 3110c, but it works if you take the 3109 plugin and replace &#8216;3109&#8242; with &#8216;3110&#8242; in this file. For your convenience I attached the whole code at the end of this post. Quit iSync and right click (or ctrl+click) on iSync in the Application folder and select &#8220;Show package contents&#8221;. Then go to Contents\Plugins\ApplePhoneConduit.syncdevice\Contents\Plugins. Right click (or ctrl+click) again on Nokia-6131.phoneplugin and go to \Contents\Resource. Rename the &#8220;MetaClasses.plist&#8221; file to e.g. &#8220;MetaClasses_old.plist&#8221;, save the text below into a file, call it &#8220;MetaClasses.plist&#8221; and save it into the folder. Restart iSync and it should be able to connect to your phone.</p>
<p>Syncing of contacts and calendar worked fine for me. In one of the comments of the post of James Lloyd it is stated that you need to delete your contacts in the phone first. Since I hadn&#8217;t any in the phone&#8217;s memory, this was no problem for me. Although this instructions look rather lengthy it was very easy to do and it worked for me. Thanks a lot to James for the plugins!</p>
<pre name="code" class="xml">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;dict&gt;
&lt;key&gt;family.com.nokia.6131&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;InheritsFrom&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;family.com.apple.external.all-phones.usb-bt&lt;/string&gt;
&lt;/array&gt;
&lt;key&gt;Services&lt;/key&gt;
&lt;array&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.synchro&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHSyncMLSyncTransportServiceObexClient&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;IPHEnginePlist&lt;/key&gt;
&lt;string&gt;SyncEngine.plist&lt;/string&gt;
&lt;key&gt;SyncProperties2&lt;/key&gt;
&lt;string&gt;PhoneConduit.plist&lt;/string&gt;
&lt;key&gt;SyncMLVersion&lt;/key&gt;
&lt;string&gt;SyncML11&lt;/string&gt;
&lt;key&gt;SyncMLLargeObjectSupport&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;SyncMLNumberOfChangesSupport&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;SyncMLRefreshFromServerSupport&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;SyncMLRemoteNeedsRelativePaths&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;SyncMLBusySignalingSupport&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;SyncMLOnlyOneBusySignaling&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;SyncMLBusySignalingInterval&lt;/key&gt;
&lt;integer&gt;60&lt;/integer&gt;
&lt;key&gt;SyncMLSimulateBusySignalingWithEmptySync&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;SyncDataClasses&lt;/key&gt;
&lt;plist&gt;
&lt;array&gt;
&lt;string&gt;com.apple.pimsync.contacts&lt;/string&gt;
&lt;string&gt;com.apple.pimsync.calendars&lt;/string&gt;
&lt;/array&gt;
&lt;/plist&gt;
&lt;key&gt;DontSyncEventsAfterDateValue.visible&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;DontSyncEventsAfterDateValue.default-value&lt;/key&gt;
&lt;string&gt;1month&lt;/string&gt;
&lt;key&gt;OnlySyncContactsWithPhoneNumber.visible&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;OnlySyncContactsWithPhoneNumber.default-value&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;SyncAllDayEventsKey.visible&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;SyncAllDayEventsKey.default-value&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;DontSyncEventsPriorToDateValue.visible&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;DontSyncEventsPriorToDateValue.default-value&lt;/key&gt;
&lt;string&gt;1week&lt;/string&gt;
&lt;key&gt;DontSyncEventsPriorToDateIsEnabled.visible&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;DontSyncEventsPriorToDateIsEnabled.default-value&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;DontSyncEventsAfterDateIsEnabled.visible&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;DontSyncEventsAfterDateIsEnabled.default-value&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;SyncMLLocalSource&lt;/key&gt;
&lt;string&gt;iSync&lt;/string&gt;
&lt;key&gt;SyncMLCodec&lt;/key&gt;
&lt;string&gt;SyncMLCodecLibWBXML&lt;/string&gt;
&lt;key&gt;BTProtocolService&lt;/key&gt;
&lt;string&gt;com.nokia.6131.protocol.bt.obex.syncml&lt;/string&gt;
&lt;key&gt;USBProtocolService&lt;/key&gt;
&lt;string&gt;com.nokia.6131.protocol.usb.obex.syncml&lt;/string&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.nokia.6131.protocol.usb.obex.syncml&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHObexService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;ObexTargetUUID&lt;/key&gt;
&lt;string&gt;53 59 4e 43 4d 4c 2d 53 59 4e 43&lt;/string&gt;
&lt;key&gt;ObexTimeOut&lt;/key&gt;
&lt;integer&gt;60&lt;/integer&gt;
&lt;key&gt;TransportService&lt;/key&gt;
&lt;string&gt;com.nokia.6131.transport.usb.syncml&lt;/string&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.nokia.6131.protocol.bt.obex.syncml&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHObexService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;ObexTargetUUID&lt;/key&gt;
&lt;string&gt;53 59 4e 43 4d 4c 2d 53 59 4e 43&lt;/string&gt;
&lt;key&gt;ObexTimeOut&lt;/key&gt;
&lt;integer&gt;60&lt;/integer&gt;
&lt;key&gt;TransportService&lt;/key&gt;
&lt;string&gt;com.nokia.6131.transport.rfcomm.syncml&lt;/string&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.protocol.usb.AT&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHSerialATService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict/&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.nokia.6131.transport.rfcomm.syncml&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHRFCOMMChannelService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;RFCOMMChannelUUID&lt;/key&gt;
&lt;string&gt;000000020000100080000002ee000002&lt;/string&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.transport.usb.modem&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHUSBCDCChannelService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict/&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.nokia.6131.transport.usb.syncml&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHUSBObexChannelService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict/&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.pimsync.parser.vCal&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHSyncParserService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;ParserType&lt;/key&gt;
&lt;string&gt;vCal&lt;/string&gt;
&lt;key&gt;Encoding&lt;/key&gt;
&lt;string&gt;QUOTED-PRINTABLE&lt;/string&gt;
&lt;key&gt;FoldingStyle&lt;/key&gt;
&lt;string&gt;FoldingNG&lt;/string&gt;
&lt;key&gt;Charset&lt;/key&gt;
&lt;string&gt;UTF-8&lt;/string&gt;
&lt;key&gt;AllDayEventFormat&lt;/key&gt;
&lt;string&gt;AllDayEventCategories&lt;/string&gt;
&lt;key&gt;vCalRecDailyInterval&lt;/key&gt;
&lt;array&gt;
&lt;integer&gt;1&lt;/integer&gt;
&lt;/array&gt;
&lt;key&gt;vCalRecWeeklyInterval&lt;/key&gt;
&lt;array&gt;
&lt;integer&gt;1&lt;/integer&gt;
&lt;integer&gt;2&lt;/integer&gt;
&lt;/array&gt;
&lt;key&gt;vCalRecWeeklyWithWeekDay&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;vCalRecMonthlyInterval&lt;/key&gt;
&lt;array&gt;
&lt;integer&gt;1&lt;/integer&gt;
&lt;/array&gt;
&lt;key&gt;vCalRecMonthlyByPos&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;vCalRecMonthlyByDayWithMonthDay&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;vCalRecYearlyByMonthInterval&lt;/key&gt;
&lt;array&gt;
&lt;integer&gt;1&lt;/integer&gt;
&lt;/array&gt;
&lt;key&gt;vCalRecYearlyByMonthWithMonthNumber&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;EscapeBackslash&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;IgnoreProperties&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;X-IRMC-LUID&lt;/string&gt;
&lt;/array&gt;
&lt;key&gt;AllDayCategories&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;MISCELLANEOUS&lt;/string&gt;
&lt;string&gt;SPECIAL OCCASION&lt;/string&gt;
&lt;string&gt;REMINDER&lt;/string&gt;
&lt;/array&gt;
&lt;key&gt;TimedCategories&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;MEETING&lt;/string&gt;
&lt;string&gt;PHONE CALL&lt;/string&gt;
&lt;/array&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.pimsync.parser.vCard&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHSyncParserService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;ParserType&lt;/key&gt;
&lt;string&gt;vCard&lt;/string&gt;
&lt;key&gt;Encoding&lt;/key&gt;
&lt;string&gt;QUOTED-PRINTABLE&lt;/string&gt;
&lt;key&gt;FoldingStyle&lt;/key&gt;
&lt;string&gt;FoldingNG&lt;/string&gt;
&lt;key&gt;Charset&lt;/key&gt;
&lt;string&gt;UTF-8&lt;/string&gt;
&lt;key&gt;EscapeBackslash&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;IgnoreProperties&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;X-IRMC-LUID&lt;/string&gt;
&lt;/array&gt;
&lt;key&gt;IgnoreSubTypesForThisMainTypes&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;CELL&lt;/string&gt;
&lt;/array&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.pimsync.contacts&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHSyncDataClassService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;MimeType&lt;/key&gt;
&lt;string&gt;text/x-vcard&lt;/string&gt;
&lt;key&gt;ParserService&lt;/key&gt;
&lt;string&gt;com.apple.pimsync.parser.vCard&lt;/string&gt;
&lt;key&gt;RemoteName&lt;/key&gt;
&lt;string&gt;&lt;/string&gt;
&lt;key&gt;needsCompanyNameInFirstName&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;needsFullAddressInStreetField&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;DataClassName&lt;/key&gt;
&lt;string&gt;Contacts&lt;/string&gt;
&lt;key&gt;nokiaSeries40ContactMaxDetails&lt;/key&gt;
&lt;integer&gt;5&lt;/integer&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.pimsync.calendars&lt;/string&gt;
&lt;key&gt;ServiceClass&lt;/key&gt;
&lt;string&gt;IPHSyncDataClassService&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;MimeType&lt;/key&gt;
&lt;string&gt;text/x-vcalendar&lt;/string&gt;
&lt;key&gt;ParserService&lt;/key&gt;
&lt;string&gt;com.apple.pimsync.parser.vCal&lt;/string&gt;
&lt;key&gt;hasEvent&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;RemoteName&lt;/key&gt;
&lt;string&gt;&lt;/string&gt;
&lt;key&gt;hasAllDayEvents&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;setAllDayTimeWithAlarmTime&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;hasVCalRecurrence&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;needsToFormatCountToUntilDate&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;needsToFormatUntilDateToCount&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;hasOneAlarmType&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;hasTimeZone&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;hasTask&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;handleAllDayRecurrent&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;doNotSyncAlarmIfAfterStartDateTime&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;DataClassName&lt;/key&gt;
&lt;string&gt;Calendars&lt;/string&gt;
&lt;key&gt;needsDeleteAddOnModify&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;dontSyncEventBeforeDate&lt;/key&gt;
&lt;string&gt;1980-01-01 23:59:59 +0000&lt;/string&gt;
&lt;key&gt;untilDateIsDateOnly&lt;/key&gt;
&lt;true/&gt;
&lt;key&gt;exDatesAreDateOnly&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;defaultDueDateWhenMissing&lt;/key&gt;
&lt;string&gt;2020-01-01 00:00:00 +0000&lt;/string&gt;
&lt;key&gt;dueDateIsDateOnly&lt;/key&gt;
&lt;false/&gt;
&lt;key&gt;allDayHaveNoLocation&lt;/key&gt;
&lt;true/&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;/array&gt;
&lt;/dict&gt;
&lt;key&gt;com.nokia.6131&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;Identification&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;com.apple.usb.vendorid-modelid&lt;/key&gt;
&lt;string&gt;0x0421/0x047B&lt;/string&gt;
&lt;key&gt;com.apple.gmi+gmm&lt;/key&gt;
&lt;string&gt;Nokia+Nokia 6131&lt;/string&gt;
&lt;/dict&gt;
&lt;key&gt;InheritsFrom&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;family.com.nokia.6131&lt;/string&gt;
&lt;/array&gt;
&lt;key&gt;Services&lt;/key&gt;
&lt;array&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.model&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;ModelName&lt;/key&gt;
&lt;string&gt;6131&lt;/string&gt;
&lt;key&gt;CompanyName&lt;/key&gt;
&lt;string&gt;Nokia&lt;/string&gt;
&lt;key&gt;ModelIcon&lt;/key&gt;
&lt;string&gt;com.nokia.6131.tiff&lt;/string&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;/array&gt;
&lt;/dict&gt;
&lt;key&gt;com.nokia.3110&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;Identification&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;com.apple.cgmi+cgmm&lt;/key&gt;
&lt;string&gt;Nokia+Nokia 3110&lt;/string&gt;
&lt;key&gt;com.apple.gmi+gmm&lt;/key&gt;
&lt;string&gt;Nokia+Nokia 3110&lt;/string&gt;
&lt;key&gt;com.apple.usb.vendorid-modelid&lt;/key&gt;
&lt;string&gt;0x0421/0x045A&lt;/string&gt;
&lt;/dict&gt;
&lt;key&gt;InheritsFrom&lt;/key&gt;
&lt;array&gt;
&lt;string&gt;family.com.nokia.series40.3rdEd.bus.usb-bt&lt;/string&gt;
&lt;/array&gt;
&lt;key&gt;Services&lt;/key&gt;
&lt;array&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.model&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;ModelIcon&lt;/key&gt;
&lt;string&gt;NOK3110.tiff&lt;/string&gt;
&lt;key&gt;ModelName&lt;/key&gt;
&lt;string&gt;3110&lt;/string&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;dict&gt;
&lt;key&gt;ServiceName&lt;/key&gt;
&lt;string&gt;com.apple.synchro&lt;/string&gt;
&lt;key&gt;ServiceProperties&lt;/key&gt;
&lt;dict&gt;
&lt;key&gt;MaxCityLength&lt;/key&gt;
&lt;integer&gt;50&lt;/integer&gt;
&lt;key&gt;MaxEMailLength&lt;/key&gt;
&lt;integer&gt;60&lt;/integer&gt;
&lt;key&gt;MaxEventLocationLength&lt;/key&gt;
&lt;integer&gt;150&lt;/integer&gt;
&lt;key&gt;MaxPhoneNumberLength&lt;/key&gt;
&lt;integer&gt;48&lt;/integer&gt;
&lt;key&gt;MaxPostalCodeLength&lt;/key&gt;
&lt;integer&gt;50&lt;/integer&gt;
&lt;key&gt;MaxStateLength&lt;/key&gt;
&lt;integer&gt;50&lt;/integer&gt;
&lt;key&gt;MaxStreetLength&lt;/key&gt;
&lt;integer&gt;50&lt;/integer&gt;
&lt;key&gt;MaxURLLength&lt;/key&gt;
&lt;integer&gt;60&lt;/integer&gt;
&lt;/dict&gt;
&lt;/dict&gt;
&lt;/array&gt;
&lt;/dict&gt;

&lt;/dict&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/06/20/isync-30-plugin-for-nokia-3110c/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MinGW binaries of NetCDF 3.6.2</title>
		<link>http://www.miscdebris.net/blog/2008/05/02/mingw-binaries-of-netcdf-362/</link>
		<comments>http://www.miscdebris.net/blog/2008/05/02/mingw-binaries-of-netcdf-362/#comments</comments>
		<pubDate>Fri, 02 May 2008 06:38:59 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[Research]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.miscdebris.net/blog/2008/05/02/mingw-binaries-of-netcdf-362/</guid>
		<description><![CDATA[&#8220;netCDF (network Common Data Form) is a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data&#8221;. On its homepage you&#8217;ll find a lot of precompiled libraries for Unix derivates but only a binary of netCDF 3.6.1 compiled with Visual C++. It&#8217;s possible to use this [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<a title="NetCDF Homepage" href="http://www.unidata.ucar.edu/software/netcdf/" target="_blank">netCDF</a> (network Common Data Form) is a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data&#8221;. On its homepage you&#8217;ll find a lot of precompiled libraries for Unix derivates but only a binary of netCDF 3.6.1 compiled with Visual C++. It&#8217;s possible to use this binary in MinGW also, but I prefer to use libraries compiled with the same compiler toolkit I&#8217;m working with. <span id="more-44"></span>There are no makefiles for the MinGW compiler but it is possible to compile the netCDF library in the MSys development ennvironment. I wrote a bash little script which downloads the netCDF source package (with the help of <a title="curl for windows package" href="http://curl.haxx.se/download/curl-7.18.0-win32-nossl-sspi.zip">curl</a>), untars the package, compiles the source and assembles the binaries and necessary files for development in a tar.gz package. Curl needs to be in the path or in the same directory as the script. The script will create a netcdf_mingw directory where the source package is downloaded to and all compilation steps will take place. The tar.gz package will be created in netcdf_mingw/package. Below you can download the binary package of netCDF 3.6.2 for the MinGW compiler toolset (to be used in MSys and in native Windows CLI) and the script I wrote to compile netCDF in MSys yourself if you want.</p>
<p>netCDF 3.6.2 Binary for MinGW 3.4.5: <a href="http://www.miscdebris.net/blog/wp-content/uploads/2008/05/netcdf-362_mingwtar.gz">Download</a> (rename the file to netcdf-3.6.2_mingw.tar.gz)</p>
<p>The script will create a directory netcdf_mingw in the same directory where the script is run. Before the scripts starts downloading the netCDF package, it shows some informations and waits for user input.</p>
<pre name="code" class="jscript">

#######################################################################
# This batch file will download, compile and make a package of
# the netcdf library for the MinGW compiler. You need to have Msys
# and MinGW already installed.
#
# You need curl.exe and 7za.exe for this script to work
# correctly:
#   - curl 7.18.0 no SSL download location:
# http://curl.haxx.se/download/curl-7.18.0-win32-nossl-sspi.zip
#   - 7-zip 4.57 command line version:
# http://downloads.sourceforge.net/sevenzip/7za457.zip
#######################################################################

#######################################################################
# determine directories
# source package will be downloaded into and compiled in $MAINDIR
# binary package will be created in $PACKAGEDIR
#######################################################################
export ROOTDIR=`pwd`
export MAINDIR=$ROOTDIR/netcdf_mingw
export BUILDDIR=$MAINDIR/netcdf-3.6.2
export PACKAGEDIR=$MAINDIR/package

#######################################################################
# show user the settings and ask if he wants to continue
#######################################################################
echo
echo ==============================================================
echo == Please check the settings
echo ==============================================================
echo
echo Directories
echo ===========
echo ROOTDIR=$ROOTDIR
echo MAINDIR=$MAINDIR
echo BUILDDIR=$BUILDDIR
echo PACKAGEDIR=$PACKAGEDIR
echo
echo Type y to continue!

read -n 1 ANSWER
if [ $ANSWER != &quot;y&quot; ]
then
exit -1;
fi

#######################################################################
# remove and create directories
#######################################################################
mkdir $MAINDIR
mkdir $PACKAGEDIR

#######################################################################
# download and unpack netcdf-3.6.2 package
#######################################################################
echo +++ Downloading netcdf library from http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-3.6.2.tar.gz +++
curl http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-3.6.2.tar.gz -o $MAINDIR/netcdf-3.6.2.tar.gz
pushd $MAINDIR
tar xzf netcdf-3.6.2.tar.gz
popd

#######################################################################
# configure and build library
#######################################################################
pushd $BUILDDIR
./configure --enable-shared --disable-separate-fortram --disable-cxx --disable-f90
make

#######################################################################
# make package for website
#######################################################################
if [ 1 == 1 ]
then
echo &#039;This netCDF DLL was generated using MingW/Msys.&#039; &gt; $PACKAGEDIR/README_DLL.txt
echo &#039;&#039; &gt;&gt; $PACKAGEDIR/README_DLL.txt
echo &#039;./configure --enable-shared --disable-separate-fortram --disable-cxx --disable-f90&#039; &gt;&gt; $PACKAGEDIRREADME_DLL.txt
echo &#039;To use the DLL from C, include netcdf.h.&#039; &gt;&gt; $PACKAGEDIR/README_DLL.txt
echo &#039;To use the DLL from Fortran, include netcdf.inc.&#039; &gt;&gt; $PACKAGEDIR/README_DLL.txt
cp libsrc/.libs/libnetcdf.a $PACKAGEDIR
cp libsrc/.libs/libnetcdf.dll.a $PACKAGEDIR
cp libsrc/.libs/libnetcdf-4.dll $PACKAGEDIR
cp libsrc/netcdf.h $PACKAGEDIR
cp fortran/netcdf.inc $PACKAGEDIR
cp ncgen/.libs/ncgen.exe $PACKAGEDIR
cp ncdump/.libs/ncdump.exe $PACKAGEDIR
pushd $PACKAGEDIR
tar -cf netcdf-3.6.2_mingw.tar netcdf.h libnetcdf.a libnetcdf.dll.a libnetcdf-4.dll README_DLL.txt netcdf.inc ncgen.exe ncdump.exe
gzip netcdf-3.6.2_mingw.tar
popd
fi

popd

exit 1
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/05/02/mingw-binaries-of-netcdf-362/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Create a movie file from single image files (png, jpegs)</title>
		<link>http://www.miscdebris.net/blog/2008/04/28/create-a-movie-file-from-single-image-files-png-jpegs/</link>
		<comments>http://www.miscdebris.net/blog/2008/04/28/create-a-movie-file-from-single-image-files-png-jpegs/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 11:49:29 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

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

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

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

		<guid isPermaLink="false">http://www.miscdebris.net/blog/?p=42</guid>
		<description><![CDATA[In research sometimes you want to make a movie from single images, like plots from experimental data or from calculation to visualize changes or so on. In order to achieve this you can use ffmpeg. First you have to create the images and save them, where the images need to have a continuous number in [...]]]></description>
			<content:encoded><![CDATA[<p>In research sometimes you want to make a movie from single images, like plots from experimental data or from calculation to visualize changes or so on. In order to achieve this you can use <a href="http://ffmpeg.mplayerhq.hu/" target="_blank">ffmpeg</a>. First you have to create the images and save them, where the images need to have a continuous number in the filename, e.g. img0001.png, img0002.png, &#8230;, &#8230;img5467.png. Take care that there is no image missing and that you have enough zeroes in front of the image number, so that the files are in the correct order.<span id="more-42"></span></p>
<p>After you have all the images in a folder, install ffmpeg, in Ubuntu/Debian Linux e.g.</p>
<pre>sudo apt-get install ffmpeg</pre>
<p>In order to make a movie (mp4 quicktime) out of the images you need to issue the following command</p>
<pre>ffmpeg -qscale 5 -r 20 -b 9600 -i img%04d.png movie.mp4</pre>
<p>The options are</p>
<ul>
<li>-qscale 5 &#8230; define fixed video quantizer scale (VBR) where 1 is the best and 31 the worst. Since mpeg/jpeg has problems to compress line graphics it&#8217;s a good idea to set this variable close to 1. You get a big movie file, but otherwise the movie doesn&#8217;t look, well, that good.</li>
<li>-r &#8230; framerate</li>
<li>-b &#8230; video bitrate</li>
<li>-i input files, %04d says that we have four numbers in the filename where the number is filled with zeros left of it.</li>
<li>movie.mp4 is the filename, the extension says that it is a quicktime movie. You can also create a Macromedia Flash movie by using the .flv extension.</li>
</ul>
<p>Links:</p>
<ul>
<li>Homepage, where I found most of these instructions: <a href="http://electron.mit.edu/~gsteele/ffmpeg/" target="_blank">http://electron.mit.edu/~gsteele/ffmpeg/</a></li>
<li>ffmpeg Homepage: <a href="http://ffmpeg.mplayerhq.hu/" target="_blank">http://ffmpeg.mplayerhq.hu/</a></li>
<li>ffmpeg Documentation: <a href="http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html" target="_blank">http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/04/28/create-a-movie-file-from-single-image-files-png-jpegs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Changing the php file upload limit in Ubuntu Linux</title>
		<link>http://www.miscdebris.net/blog/2008/04/14/changing-the-php-file-upload-limit-in-ubuntu-linux/</link>
		<comments>http://www.miscdebris.net/blog/2008/04/14/changing-the-php-file-upload-limit-in-ubuntu-linux/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 13:46:17 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

		<category><![CDATA[ubuntu server php]]></category>

		<guid isPermaLink="false">http://www.miscdebris.net/blog/?p=34</guid>
		<description><![CDATA[If you have your own Ubuntu server running you may encounter the maximal file size upload limit in php scripts which is set to 2Mb as default. In order to change that we first have a look what the size actually is. In /var/www (standard www directory) create a file called info.php with the following [...]]]></description>
			<content:encoded><![CDATA[<p>If you have your own Ubuntu server running you may encounter the maximal file size upload limit in php scripts which is set to 2Mb as default. In order to change that we first have a look what the size actually is. In <code>/var/www</code> (standard www directory) create a file called <code>info.php</code> with the following content:</p>
<pre>
&lt;?php
// Show all information, defaults to INFO_ALL
phpinfo()&#59;
?&gt;
</pre>
<p><span id="more-34"></span>Then browse to this file via <code>http://localhost/info.php</code> (replace localhost with the servername if necessary) and look for the line</p>
<pre>upload_max_filesize 2M 2M</pre>
<p>which will show you the actual maximum file size. In order to change that open a ssh connection to your server and edit the file <code>/etc/php5/apache2/php.ini</code> with</p>
<pre>sudo nano /etc/php5/apache2/php.ini</pre>
<p>search for &#8220;upload_max_filesize&#8221; with Ctrl-W and change &#8220;2M&#8221; to &#8220;20M&#8221;. Save the file with Ctrl-O and exit with Ctrl-X. Restart the apache server with</p>
<pre>/etc/php5/apache2/php.ini</pre>
<p>and visit again <code>http://localhost/info.php</code> to check if the maximum file size was changed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/04/14/changing-the-php-file-upload-limit-in-ubuntu-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mounting directory from Mac OS X host in Ubuntu Gutsy Gibbon guest in VirtualBox</title>
		<link>http://www.miscdebris.net/blog/2008/02/29/mounting-directory-from-mac-os-x-host-in-ubuntu-gutsy-gibbon-guest-in-virtualbox/</link>
		<comments>http://www.miscdebris.net/blog/2008/02/29/mounting-directory-from-mac-os-x-host-in-ubuntu-gutsy-gibbon-guest-in-virtualbox/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 14:30:41 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[Linux]]></category>

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

		<guid isPermaLink="false">http://www.miscdebris.net/blog/2008/02/29/mounting-directory-from-mac-os-x-host-in-ubuntu-gutsy-gibbon-guest-in-virtualbox/</guid>
		<description><![CDATA[There is a new beta version of VirtualBox for Mac OS X available and installing Ubuntu Gutsy Gibbon worked like a charm (in opposition to Parallels). The only problem I encountered was, that it was not possible to mount a directory from the Mac OS X host in the guest system with either the internal [...]]]></description>
			<content:encoded><![CDATA[<p>There is a <a href="http://www.virtualbox.org/wiki/Downloads" target="_blank">new beta version</a> of VirtualBox for Mac OS X available and installing Ubuntu Gutsy Gibbon worked like a charm (in opposition to Parallels). The only problem I encountered was, that it was not possible to mount a directory from the Mac OS X host in the guest system with either the internal mechanism (Folder sharing) and just directly via samba. In the latter case I could mount the host directory and could view it once, but than the mount was always busy and I had no access anymore. But I found another solution: sshfs. Here is a short introduction how to do that:</p>
<p><span id="more-32"></span></p>
<ul>
<li>Install sshfs via &#8220;sudo apt-get install sshfs&#8221;</li>
<li>Add your user to the fuse group &#8220;sudo adduser user fuse&#8221; and logout/login to become member of this group.</li>
<li>On the Mac OS X host allow ssh access: System Preferences-&gt;Sharing, Service &#8220;Remote Login&#8221;. Make sure your user is allowed to access via ssh</li>
<li> Make a directory where you want to mount the host directory, e.g. &#8220;mkdir ~/MacDocs&#8221;</li>
<li>Than mount a directory from the host with &#8220;sshfs -o uid=1000,gid=1000 username@server:/Users/username/ ~/MacDocs&#8221;. Here the uid and gid should be of your username, have a look in /etc/passwd. That&#8217;s it.</li>
<li>Unmount the directory with fusermount -u MacDocs.</li>
</ul>
<p>Links: <a href="http://wiki.ubuntuusers.de/FUSE/sshfs" target="_blank">http://wiki.ubuntuusers.de/FUSE/sshfs</a> (German), <a href="http://ubuntu.wordpress.com/2005/10/28/how-to-mount-a-remote-ssh-filesystem-using-sshfs/" target="_blank">http://ubuntu.wordpress.com/2005/10/28/how-&#8230;&#8230;&#8230;-sshfs/</a>, <a href="http://wiki.ubuntuusers.de/SSH" target="_blank">http://wiki.ubuntuusers.de/SSH</a> (German)</p>
<p>It&#8217;s also possible to have the directory <a href="http://wiki.ubuntuusers.de/SSH" target="_blank">automounted at system start</a>, but I never managed to not enter my password or passphrase, so I just run a script with the &#8220;sshfs &#8230;&#8221; command if I need access to the host.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/02/29/mounting-directory-from-mac-os-x-host-in-ubuntu-gutsy-gibbon-guest-in-virtualbox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Install gnuplot on Ubuntu Gutsy Gibbon</title>
		<link>http://www.miscdebris.net/blog/2008/01/23/install-gnuplot-on-ubuntu-gutsy-gibbon/</link>
		<comments>http://www.miscdebris.net/blog/2008/01/23/install-gnuplot-on-ubuntu-gutsy-gibbon/#comments</comments>
		<pubDate>Wed, 23 Jan 2008 15:50:20 +0000</pubDate>
		<dc:creator>Werner</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.miscdebris.net/blog/2008/01/23/install-gnuplot-on-ubuntu-gutsy-gibbon/</guid>
		<description><![CDATA[Some months ago I wrote a small Howto about installing Gnuplot on Ubuntu Feisty Fawn with readline, pdf and wxWidgets terminal support. It turned out, that this howto was of interest for many people, since this blog post was the most visited until Gutsy Gibbon came out - and the readline problem was obviously solved, [...]]]></description>
			<content:encoded><![CDATA[<p>Some months ago I wrote a small <a href="http://www.miscdebris.net/blog/2007/04/27/install-gnuplot-on-ubuntu/">Howto</a> about installing <a href="http://www.gnuplot.info/" target="_blank">Gnuplot</a> on Ubuntu Feisty Fawn with readline, pdf and wxWidgets terminal support. It turned out, that this howto was of interest for many people, since this blog post was the most visited until Gutsy Gibbon came out - and the readline problem was obviously solved, since it works now if you install the standard Gnuplot package. Still the pdf and wxWidgets terminal are not compiled in by default, therefore I wrote a new (shorter) howto about including this terminals.</p>
<p>So here are the instructions:<span id="more-31"></span></p>
<p>Instead of compiling wxWidgets on our own, we just get the libwxgtk2.8-dev package. The version number is only at 2.8.4 (and wxWidgets already reached 2.8.7) but there shouldn&#8217;t be much problems.</p>
<p>Than we are going to install the PDFlib lite</p>
<ul>
<li>Download <a href="http://www.pdflib.com/en/download/free-software/pdflib-lite/" target="_blank">PDFlib Lite</a></li>
<li>tar xzf PDFlib-Lite-7.0.2.tar.gz</li>
<li>cd PDFlib-Lite-7.0.2</li>
<li>./configure</li>
<li>make</li>
<li>sudo paco -lD make install (or just sudo make install if you don&#8217;t use paco)</li>
<li>sudo ldconfig</li>
</ul>
<p>Then we compile gnuplot</p>
<ul>
<li>Download <a href="http://sourceforge.net/project/showfiles.php?group_id=2055" target="_blank">gnuplot 4.2.2</a></li>
<li>tar xzf gnuplot-4.2.2.tar.gz</li>
<li>cd gnuplot-4.2.2</li>
<li>./configure &#8211;with-readline=gnu (check if we have the lines &#8220;pdf terminal: yes&#8221; and &#8220;wxt terminal: yes (EXPERIMENTAL)&#8221;, if you miss the jpeg, png and gif terminal install the libgd2-xpm-dev package; also check if you find &#8220;Readline library: GNU readline library with  -lncurses&#8221;, if it says only minimal readline support than install the libreadline5-dev package; you need also the libx11-dev and libxt-dev package for the X11 terminal - libxt-dev package is normally not installed by default (at the <a href="http://ftp.debian.org/debian/pool/main/g/gnuplot/gnuplot_4.2.0-2.dsc" target="_blank">debian page about gnuplot</a> one can find the packages necessary to build gnuplot))</li>
<li>make (if you have problems here with some latex errors than disable the latex tutorial during the configure stage with &#8220;&#8211;without-tutorial&#8221;, if you get a &#8220;103: makeinfo: not found&#8221; error message than install the texinfo package)</li>
<li>sudo paco -lD make install  (or just sudo make install if you don&#8217;t use paco)</li>
</ul>
<p>Than you have gnuplot installed with nice readline support (command line like in bash), a nice new wxWidgets terminal and a pdf terminal also on Gutsy Gibbon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.miscdebris.net/blog/2008/01/23/install-gnuplot-on-ubuntu-gutsy-gibbon/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
