<?xml version="1.0" encoding="iso-8859-1"?>

<rss version="2.0"
 xmlns:blogChannel="http://backend.userland.com/blogChannelModule"
 xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel>
<title>idlebox.net - Timo&#x27;s Weblog</title>
<link>http://idlebox.net</link>
<description>idlebox.net - RSS 2.0 Feed</description>
<language>de</language>
<copyright>Copyright 2007, idlebox.net</copyright>
<pubDate>Wed, 31 Aug 2011 20:12:00 +0200</pubDate>
<lastBuildDate>Wed, 31 Aug 2011 20:12:00 +0200</lastBuildDate>
<webMaster>tbrss@idlebox.net (Timo Bingmann)</webMaster>
<atom:link href="http://idlebox.net/xmlfeed/weblog-rss20.xml" rel="self" title="idlebox.net Weblog Feed RSS 2.0" type="application/rss+xml"/>

<item>
<title>Vervollst&#xE4;ndigung meiner Seminararbeit in Diskreter Mathematik</title>
<link>http://idlebox.net/2011/0831-Seminararbeit-Singer-Differenzenmengen/</link>
<description>&#x3C;span style=&#x22;float: right; clear: right; margin: 0em 0em 1.5em 1.5em; font-size: 10pt; text-align: center&#x22;&#x3E;&#x3C;a href=&#x22;http://idlebox.net/2011/0831-Seminararbeit-Singer-Differenzenmengen/&#x22;&#x3E;&#x3C;img src=&#x22;http://idlebox.net/2011/0831-Seminararbeit-Singer-Differenzenmengen/thumb.jpg&#x22; width=&#x22;300&#x22; height=&#x22;274&#x22; alt=&#x22;Drawing of PG(2,3)&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/span&#x3E;&#x3C;p&#x3E;Heute habe ich meine Seminararbeit in Diskreter Mathematik an der FernUni Hagen vervollst&#xE4;ndigt. Ich m&#xF6;chte mich bei Prof. Hochst&#xE4;ttler bedanken f&#xFC;r die erfahrene Leitung und planvolle Einf&#xFC;hrung in die interessanten Gebiete der Design Theorie und endlicher Geometrien. Die Arbeit ist auf deutsch und unter folgendem Link downloadbar.&#x3C;/p&#x3E;

&#x3C;p&#x3E;Download PDF: &#x3C;a href=&#x22;http://idlebox.net/2011/0831-Seminararbeit-Singer-Differenzenmengen/Seminararbeit-Singer-Differenzenmengen.pdf&#x22;&#x3E;Seminararbeit-Singer-Differenzenmengen.pdf&#x3C;/a&#x3E; (2,8 MB)&#x3C;/p&#x3E;

&#x3C;div class=&#x22;cite&#x22;&#x3E;
&#x3C;h2&#x3E;Zusammenfassung&#x3C;/h2&#x3E;
&#x3C;p&#x3E;Die Entwicklung von Differenzenmengen in der Design Theorie begann 1938 mit einer algebraischen Untersuchung endlicher projektiver Geometrien von James Singer. Nach Einf&#xFC;hrung der wichtigsten Grundbegriffe der Design Theorie und projektiver Geometrien werden in dieser Ausarbeitung die beiden Resultate von Singer entwickelt. Die Existenz einer Kollineation mit Periode &#x3C;img src=&#x22;http://idlebox.net/img/latex/lbA2Tr4MRa-YaZ+uzl5V5vHJGAcM3fa3N8oIUNKyKVA.png&#x22; alt=&#x22;frac{n^{d+1}-1}{n-1}&#x22; width=&#x22;47&#x22; height=&#x22;24&#x22; class=&#x22;ltximg&#x22; /&#x3E; f&#xFC;hrt zur Definition von Differenzenmengen und beide Ergebnisse liefern elegante Konstruktionsverfahren f&#xFC;r &#x3C;img src=&#x22;http://idlebox.net/img/latex/yC+CDZt0Xk0ZnL6g+bD7ZFz5v3nH42n-Xo-Bv9-cMnc.png&#x22; alt=&#x22;PG(d,p^k)&#x22; width=&#x22;69&#x22; height=&#x22;20&#x22; class=&#x22;ltximg&#x22; /&#x3E;.&#x3C;/p&#x3E;
&#x3C;/div&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2011/0831-Seminararbeit-Singer-Differenzenmengen/</guid>
<pubDate>Wed, 31 Aug 2011 20:12:00 +0200</pubDate>
</item>
<item>
<title>Update Release of STX B+ Tree 0.8.6</title>
<link>http://idlebox.net/2011/0518-STX-B+Tree-0.8.6-Update.blog</link>
<description>&#x3C;span style=&#x22;float: right; clear: right; margin: 0em 0em 1.5em 1.5em; font-size: 10pt; text-align: center&#x22;&#x3E;&#x3C;a href=&#x22;http://idlebox.net/2007/stx-btree/&#x22;&#x3E;&#x3C;img src=&#x22;http://idlebox.net/2007/stx-btree/btree-thumb-border.png&#x22; width=&#x22;252&#x22; height=&#x22;193&#x22; alt=&#x22;Small drawing of a B+ tree&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/span&#x3E;&#x3C;p&#x3E;After four years I have decided to release an updated version 0.8.6 of the &#x3C;a href=&#x22;http://idlebox.net/2007/stx-btree/&#x22;&#x3E;STX B+ Tree C++ Template Classes&#x3C;/a&#x3E; package. The updated release contains all patches that have accumulated in my inbox over the years. So yes, please send me patches for this project, it is not in vain! Below the highlights on the changes in this release:&#x3C;/p&#x3E;

&#x3C;ul&#x3E;
  &#x3C;li&#x3E;Implemented a missing function: &#x3C;code&#x3E;erase(iterator iter)&#x3C;/code&#x3E; by recursively searching for the referenced leaf node inside the subtree containing equal keys.&#x3C;/li&#x3E;
  &#x3C;li&#x3E;Applied a patch which adds support for STL allocators as template parameters.&#x3C;/li&#x3E;
  &#x3C;li&#x3E;Corrected limits of a &#x3C;code&#x3E;for&#x3C;/code&#x3E; loop when shifting pairs from left to right leaf nodes during deletion.&#x3C;/li&#x3E;
&#x3C;/ul&#x3E;

&#x3C;p&#x3E;I also reran the speed test done back in 2007 on my new hardware and compared the results with the old data. Due to the larger L2 cache sizes in my new Intel Core i7, the B-tree speed-up first starts to show at about 100,000 integer items, rather than 16,000 items with my older Pentium 4. This might also have something to do with the new CPU using 64-bit pointers and thus requiring larger nodes for child references. &#x3C;a href=&#x22;http://idlebox.net/2007/stx-btree/stx-btree-0.8.6/doxygen-html/a00001.html&#x22;&#x3E;Read the complete speed test here.&#x3C;/a&#x3E;&#x3C;/p&#x3E;

&#x3C;p style=&#x22;text-align: center&#x22;&#x3E;&#x3C;a href=&#x22;http://idlebox.net/2007/stx-btree/stx-btree-0.8.6/doxygen-html/a00001.html&#x22;&#x3E;&#x3C;img src=&#x22;http://idlebox.net/2007/stx-btree/stx-btree-0.8.6/doxygen-html/speedtest-2011-03.png&#x22; alt=&#x22;result plot from new speedtest&#x22; width=&#x22;750&#x22; height=&#x22;525&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/p&#x3E;

&#x3C;p&#x3E;The updated source code package is available &#x3C;a href=&#x22;http://idlebox.net/2007/stx-btree/&#x22;&#x3E;for download from this webpage&#x3C;/a&#x3E;.&#x3C;/p&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2011/0518-STX-B+Tree-0.8.6-Update.blog</guid>
<pubDate>Wed, 18 May 2011 12:44:00 +0200</pubDate>
</item>
<item>
<title>Yet Another Release of digup 0.6.40 - A Digest Updating Tool</title>
<link>http://idlebox.net/2011/0130-digup-0.6.40.blog</link>
<description>&#x3C;p&#x3E;This is yet another release entry of &#x3C;a href=&#x22;http://idlebox.net/2009/digup/&#x22;&#x3E;digup&#x3C;/a&#x3E;. This time, however, it is a major release with lots of new improvements and some old fixes:&#x3C;/p&#x3E;

&#x3C;ul&#x3E;
  &#x3C;li&#x3E;Added new flags &#x3C;code&#x3E;--modify-window=&#x3C;i&#x3E;number&#x3C;/i&#x3E;&#x3C;/code&#x3E; to allow larger deltas in the modification time of files. This is a fixup for checking backups copied onto FAT filesystems, because these store the time stamp with a precision of only 2 seconds. Since this is a common operation, the shortcut &#x3C;code&#x3E;-w&#x3C;/code&#x3E;/&#x3C;code&#x3E;--windows&#x3C;/code&#x3E; will set the allowed modification window to 1.&#x3C;/li&#x3E;
  &#x3C;li&#x3E;Also added a new flag &#x3C;code&#x3E;--exclude-marker=&#x3C;i&#x3E;file&#x3C;/i&#x3E;&#x3C;/code&#x3E;, which makes the recursive file system walk skip all directories (and their sub-directories) containing a special marker file usually called &#x3C;code&#x3E;.nobackup&#x3C;/code&#x3E; in other programs. This option is &#x3C;i&#x3E;persistent&#x3C;/i&#x3E; and stored in the created digest file, so it must only be specified once and then in all subsequent runs the same directory marker is used to selectively skip over special directories.&#x3C;/li&#x3E;
  &#x3C;li&#x3E;Added a &#x3C;code&#x3E;--restrict=&#x3C;i&#x3E;pattern&#x3C;/i&#x3E;&#x3C;/code&#x3E; temporary exclusion flag. If specified, all paths containing the pattern as a substring are temporarily skipped. This allows one to quickly check a specific folder or file structure for modifications. Especially useful in combination with &#x3C;code&#x3E;-c&#x3C;/code&#x3E; to perform a full digest check on only a subset of the files.&#x3C;/li&#x3E;
  &#x3C;li&#x3E;One more smaller fixup: using 64-bit file offsets on Window, which allows files larger than 2GB to work correctly.
&#x3C;/ul&#x3E;

&#x3C;p&#x3E;For more information and the new version see the &#x3C;a href=&#x22;http://idlebox.net/2009/digup/&#x22;&#x3E;digup web page&#x3C;/a&#x3E;.&#x3C;/p&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2011/0130-digup-0.6.40.blog</guid>
<pubDate>Mon, 31 Jan 2011 20:25:00 +0100</pubDate>
</item>
<item>
<title>Bugfix Release: digup 0.6.30 - A Digest Updating Tool</title>
<link>http://idlebox.net/2010/1003-digup-0.6.30.blog</link>
<description>&#x3C;p&#x3E;Fixed another severe bug in the &#x3C;a href=&#x22;http://idlebox.net/2009/digup/&#x22;&#x3E;digup&#x3C;/a&#x3E; tool: on the amd64 architecture the tool crashed when writing the digest file, thanks goes to Daniel D. for reporting and fixing this bug.&#x3C;/p&#x3E;

&#x3C;p&#x3E;The bug was caused by the variable arguments lists &#x3C;code&#x3E;va_list&#x3C;/code&#x3E; used twice in the &#x3C;code&#x3E;fprintfcrc()&#x3C;/code&#x3E; function. Apparently, on the amd64 platform &#x3C;code&#x3E;va_start()&#x3C;/code&#x3E; and &#x3C;code&#x3E;va_end()&#x3C;/code&#x3E; must be called twice even when passed the list to &#x3C;code&#x3E;vsprintf()&#x3C;/code&#x3E;.&#x3C;/p&#x3E;

&#x3C;p&#x3E;For more information and the new version see the &#x3C;a href=&#x22;http://idlebox.net/2009/digup/&#x22;&#x3E;digup web page&#x3C;/a&#x3E;.&#x3C;/p&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2010/1003-digup-0.6.30.blog</guid>
<pubDate>Sun, 03 Oct 2010 16:12:00 +0200</pubDate>
</item>
<item>
<title>Bugfix Release: digup 0.6.27 - A Digest Updating Tool</title>
<link>http://idlebox.net/2010/0820-digup-0.6.27.blog</link>
<description>&#x3C;p&#x3E;Fixed a two bugs in the &#x3C;a href=&#x22;http://idlebox.net/2009/digup/&#x22;&#x3E;digup&#x3C;/a&#x3E; tool: added large file support when compiling the program and fixed a string allocation bug.&#x3C;/p&#x3E;

&#x3C;p&#x3E;This new version enables large file support by using &#x3C;code&#x3E;long long&#x3C;/code&#x3E; variables for size. Furthermore, a string allocation bug was fixed which occured when using &#x3C;code&#x3E;-t&#x3C;/code&#x3E; and &#x3C;code&#x3E;-f&#x3C;/code&#x3E; command line parameters.&#x3C;/p&#x3E;

&#x3C;p&#x3E;For more information and the new version see the &#x3C;a href=&#x22;http://idlebox.net/2009/digup/&#x22;&#x3E;digup web page&#x3C;/a&#x3E;.&#x3C;/p&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2010/0820-digup-0.6.27.blog</guid>
<pubDate>Fri, 20 Aug 2010 23:05:00 +0200</pubDate>
</item>
<item>
<title>Bugfix Release: stx-execpipe 0.7.1 - STX Execution Pipe C++ Library</title>
<link>http://idlebox.net/2010/0730-stx-execpipe-0.7.1.blog</link>
<description>&#x3C;p&#x3E;Fixed a small bug in the &#x3C;a href=&#x22;http://idlebox.net/2010/stx-execpipe/&#x22;&#x3E;stx-execpipe&#x3C;/a&#x3E; library: add large file support when compiling the library.&#x3C;/p&#x3E;

&#x3C;p&#x3E;This bug switches on the large file support functions. Without this fix a pipeline reading or writing files &#x26;gt;2GB will not function properly. The fix is to &#x3C;code&#x3E;#define _FILE_OFFSET_BITS 64&#x3C;/code&#x3E; when compiling the library&#x27;s code.&#x3C;/p&#x3E;

&#x3C;p&#x3E;For more information and the source code see the &#x3C;a href=&#x22;http://idlebox.net/2010/stx-execpipe/&#x22;&#x3E;stx-execpipe web page&#x3C;/a&#x3E;.&#x3C;/p&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2010/0730-stx-execpipe-0.7.1.blog</guid>
<pubDate>Fri, 30 Jul 2010 17:13:00 +0200</pubDate>
</item>
<item>
<title>Published stx-execpipe 0.7.0 - STX Execution Pipe C++ Library</title>
<link>http://idlebox.net/2010/0718-stx-execpipe-0.7.0.blog</link>
<description>&#x3C;span style=&#x22;float: right; clear: right; margin: 0em 0em 1.5em 1.5em; font-size: 10pt; text-align: center&#x22;&#x3E;&#x3C;a href=&#x22;http://idlebox.net/2010/stx-execpipe/&#x22;&#x3E;&#x3C;img src=&#x22;http://idlebox.net/2010/stx-execpipe/thumb.jpg&#x22; width=&#x22;300&#x22; height=&#x22;186&#x22; alt=&#x22;execution pipe with exec() bubbles&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/span&#x3E;&#x3C;p&#x3E;The STX C++ library series has been extended today with a new installation: the STX Execution Pipe library, in short STX ExecPipe. It is the solution to an issue that I encountered in writing a small backup application. This backup tool collects some file to backup and then calls &#x3C;code&#x3E;tar&#x3C;/code&#x3E; and &#x3C;code&#x3E;xz&#x3C;/code&#x3E; followed by &#x3C;code&#x3E;ncftpput&#x3C;/code&#x3E;.&#x3C;/p&#x3E;

&#x3C;p&#x3E;However, I could not find any useful C++ library that allows convenient chaining of external programs like used in everyday shell piping. This pipe line functionality is based on the system calls &#x3C;code&#x3E;fork()&#x3C;/code&#x3E;, &#x3C;code&#x3E;exec()&#x3C;/code&#x3E; and &#x3C;code&#x3E;pipe()&#x3C;/code&#x3E;, which are not easy to use correctly. After writing some ad-hoc functions to call one or two external programs, I decided to tackle this basic problem once and for all. The result is the &#x3C;a href=&#x22;http://idlebox.net/2010/stx-execpipe/&#x22;&#x3E;stx-execpipe&#x3C;/a&#x3E; library.&#x3C;/p&#x3E;

&#x3C;p&#x3E;Using the library a C++ program can build a sequence of external programs with command line parameters. These programs are connected by the library just like a shell pipe: stdout of the preceding stage goes into stdin of the next one. The input and output of the whole pipeline can be redirected to a plain fd, a file or saved in a std::string.&#x3C;/p&#x3E;

&#x3C;p&#x3E;One very interesting feature of the library is to insert intermediate processing functions into a pipe line. The data can be intercepted and passed back to the parent process for manipulation or just inspection. This was necessary to calculate the SHA1 digest of a backup tarball simultaneously to uploading it.&#x3C;/p&#x3E;

&#x3C;p&#x3E;For more information and the source code see the &#x3C;a href=&#x22;http://idlebox.net/2010/stx-execpipe/&#x22;&#x3E;stx-execpipe web page&#x3C;/a&#x3E;.&#x3C;/p&#x3E;

&#x3C;p&#x3E;The following small code snippet exemplifies the flexibility of the stx-execpipe solution:&#x3C;/p&#x3E;
&#x3C;div class=&#x22;codesnippet&#x22; style=&#x22;font-size: 10pt; font-family: monospace&#x22;&#x3E;&#x3C;tt&#x3E;stx::ExecPipe ep;&#x3C;br /&#x3E;&#x3C;br /&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;// first stage calls tar&#x3C;/span&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;&#x3C;br /&#x3E;&#x3C;/span&#x3E;std::vector&#x26;lt;std::string&#x26;gt; tarargs;&#x3C;br /&#x3E;tarargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;tar&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;tarargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;--create&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;tarargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;--verbose&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;tarargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;--no-recursion&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;tarargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;/path/to/some/files&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;tarargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;/path/to/more/files&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;ep.add_execp(&#x26;amp;tarargs);&#x3C;br /&#x3E;&#x3C;br /&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;// second stage compresses the tarball&#x3C;/span&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;&#x3C;br /&#x3E;&#x3C;/span&#x3E;ep.add_execp(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;xz&#x22;&#x3C;/span&#x3E;, &#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;-9&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;&#x3C;br /&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;// third stage intercepts data for a SHA1 digest&#x3C;/span&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;&#x3C;br /&#x3E;&#x3C;/span&#x3E;Sha1Function sha1tar;&#x3C;br /&#x3E;ep.add_function(&#x26;amp;sha1tar);&#x3C;br /&#x3E;&#x3C;br /&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;// fourth stage sends the tarball via FTP&#x3C;/span&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;&#x3C;br /&#x3E;&#x3C;/span&#x3E;std::vector&#x26;lt;std::string&#x26;gt; ftpargs;&#x3C;br /&#x3E;ftpargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;ncftpput&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;ftpargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;-c&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;ftpargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;ftp.upload-to-host.net&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;ftpargs.push_back(&#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;/path/to/ftpfile.tar.gz&#x22;&#x3C;/span&#x3E;);&#x3C;br /&#x3E;ep.add_execp(&#x26;amp;ftpargs);&#x3C;br /&#x3E;&#x3C;br /&#x3E;&#x3C;span class=&#x22;kwa&#x22;&#x3E;if&#x3C;/span&#x3E; (ep.run().all_return_codes_zero()) {&#x3C;br /&#x3E;&#x26;nbsp; &#x26;nbsp; std::cout &#x26;lt;&#x26;lt; &#x3C;span class=&#x22;str&#x22;&#x3E;&#x22;Backup upload complete.&#x22;&#x3C;/span&#x3E; &#x26;lt;&#x26;lt; std::endl&#x3C;br /&#x3E;}&#x3C;br /&#x3E;&#x3C;span class=&#x22;kwa&#x22;&#x3E;else&#x3C;/span&#x3E; {&#x3C;br /&#x3E;&#x26;nbsp; &#x26;nbsp; &#x3C;span class=&#x22;com&#x22;&#x3E;// error processing...&#x3C;/span&#x3E;&#x3C;span class=&#x22;com&#x22;&#x3E;&#x3C;br /&#x3E;&#x3C;/span&#x3E;}&#x3C;br /&#x3E;&#x3C;/tt&#x3E;&#x3C;/div&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2010/0718-stx-execpipe-0.7.0.blog</guid>
<pubDate>Sun, 18 Jul 2010 23:31:00 +0200</pubDate>
</item>
<item>
<title>Published stx-cbtreedb 0.7.0 - STX Constant B-Tree Database Template Classes</title>
<link>http://idlebox.net/2010/0414-stx-cbtreedb-0.7.0.blog</link>
<description>&#x3C;span style=&#x22;float: right; clear: right; margin: 0em 0em 1.5em 1.5em; font-size: 10pt; text-align: center&#x22;&#x3E;&#x3C;a href=&#x22;http://idlebox.net/2010/stx-cbtreedb/&#x22;&#x3E;&#x3C;img src=&#x22;http://idlebox.net/2010/stx-cbtreedb/thumb.jpg&#x22; width=&#x22;300&#x22; height=&#x22;185&#x22; alt=&#x22;drawing of cbtreedb tree index structure&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/span&#x3E;&#x3C;p&#x3E;Published yet another C++ template library using a B-tree. This time the solution is a disk-based read-only key-value mapping using a &#x22;packed, sequential&#x22; B-tree as index structure.&#x3C;/p&#x3E;

&#x3C;p&#x3E;All applications mapping a large number of constant, integral keys to string or data blobs can benefit from this library. The database structure is highly compact and contains self-verification checksums over both key and value areas.&#x3C;/p&#x3E;

&#x3C;p&#x3E;stx-cbtreedb is a direct contender with &#x3C;a class=&#x22;exp&#x22; href=&#x22;http://cr.yp.to/cdb.html&#x22;&#x3E;cdb&#x3C;/a&#x3E; and &#x3C;a class=&#x22;exp&#x22; href=&#x22;http://www.corpit.ru/mjt/tinycdb.html&#x22;&#x3E;tinycdb&#x3C;/a&#x3E;, which however are based on hash tables and do not retain key proximity. Compared to other full-fledged B-tree implementations like &#x3C;a class=&#x22;exp&#x22; href=&#x22;http://www.oracle.com/technology/products/berkeley-db/&#x22;&#x3E;BerkeleyDB&#x3C;/a&#x3E; or &#x3C;a class=&#x22;exp&#x22; href=&#x22;http://1978th.net/tokyocabinet/&#x22;&#x3E;TokyoCabinet&#x3C;/a&#x3E;, the stx-cbtreedb is very small, faster and the database files have much less overhead due to read-only optimizations.&#x3C;/p&#x3E;

&#x3C;p&#x3E;For more information and the source code see the &#x3C;a href=&#x22;http://idlebox.net/2010/stx-cbtreedb/&#x22;&#x3E;stx-cbtreedb web page&#x3C;/a&#x3E;.&#x3C;/p&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2010/0414-stx-cbtreedb-0.7.0.blog</guid>
<pubDate>Wed, 14 Apr 2010 13:34:00 +0200</pubDate>
</item>
<item>
<title>New LibriVox Recording: &#x22;Double Take&#x22; by Richard Wilson</title>
<link>http://idlebox.net/2010/0201-librivox-Wilson-Double-Take/</link>
<description>&#x3C;span style=&#x22;float: right; clear: right; margin: 0em 0em 1.5em 1.5em; font-size: 10pt; text-align: center&#x22;&#x3E;&#x3C;a href=&#x22;http://idlebox.net/2010/0201-librivox-Wilson-Double-Take/&#x22;&#x3E;&#x3C;img src=&#x22;http://idlebox.net/2010/0201-librivox-Wilson-Double-Take/thumb.jpg&#x22; width=&#x22;242&#x22; height=&#x22;375&#x22; alt=&#x22;Drawing from Double Take short story&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/span&#x3E;&#x3C;p&#x3E;My second &#x3C;a class=&#x22;exp&#x22; href=&#x22;http://www.librivox.org&#x22;&#x3E;LibriVox&#x3C;/a&#x3E; recording is finished! The basic idea behind &#x3C;a class=&#x22;exp&#x22; href=&#x22;http://www.librivox.org&#x22;&#x3E;LibriVox&#x3C;/a&#x3E; is to read public domain texts and to put the recordings back into the public domain. More about that on &#x3C;a href=&#x22;http://www.librivox.org&#x22;&#x3E;librivox.org&#x3C;/a&#x3E;.&#x3C;/p&#x3E;

&#x3C;p&#x3E;As with the last recording, my personal motivation is to practice my rusty English pronunciation. By reading and rereading the texts I believe my English will become more fluent and in the end also achieve better articulation.&#x3C;/p&#x3E;

&#x3C;p&#x3E;The second recording is &#x22;Double Take&#x22; by Richard Wilson, a science fiction short story &#x3C;a href=&#x22;http://www.gutenberg.org/etext/30063&#x22;&#x3E;available from Project Gutenberg&#x3C;/a&#x3E;. I have also made a quick LaTeX typesetted version of the Gutenberg etext for more comfortable reading and with slight corrections: &#x3C;a href=&#x22;http://idlebox.net/2010/0201-librivox-Wilson-Double-Take/doubletake_wilson_text.pdf&#x22;&#x3E;doubletake_wilson_text.pdf (369 KB)&#x3C;/a&#x3E;.&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Story Summary / Teaser&#x3C;/h2&#x3E;

&#x3C;p&#x3E;Pacing through a high-speed spy adventure, young Paul Asher finds himself going around in circles -- very peculiar circles indeed!&#x3C;/p&#x3E;

&#x3C;h2&#x3E;Audio Recording - Runtime: 26:29&#x3C;/h2&#x3E;

&#x3C;p&#x3E;MP3 encoded with standard &#x3C;a class=&#x22;exp&#x22; href=&#x22;http://lame.sourceforge.net&#x22;&#x3E;lame&#x3C;/a&#x3E; VBR preset (obviously better/smaller than CBR 128 kbps)&#x3C;/p&#x3E;

&#x3C;p style=&#x22;text-align: center&#x22;&#x3E;&#x3C;a href=&#x22;http://idlebox.net/2010/0201-librivox-Wilson-Double-Take/doubletake_wilson_tb_vbr.mp3&#x22;&#x3E;doubletake_wilson_tb_vbr.mp3 (19.1 MB)&#x3C;/a&#x3E;&#x3C;/p&#x3E;

&#x3C;p style=&#x22;text-align: center&#x22;&#x3E;
  &#x3C;object type=&#x22;application/x-shockwave-flash&#x22; data=&#x22;/img/mp3player/maxi.swf&#x22; width=&#x22;400&#x22; height=&#x22;22&#x22;&#x3E;
    &#x3C;param name=&#x22;movie&#x22; value=&#x22;/img/mp3player/maxi.swf&#x22; /&#x3E;
    &#x3C;param name=&#x22;bgcolor&#x22; value=&#x22;#ffffff&#x22; /&#x3E;
    &#x3C;param name=&#x22;FlashVars&#x22; value=&#x22;mp3=/2010/0201-librivox-Wilson-Double-Take/doubletake_wilson_tb_vbr.mp3&#x26;amp;width=400&#x26;amp;height=22&#x22; /&#x3E;
  &#x3C;/object&#x3E;
&#x3C;/p&#x3E;

&#x3C;p&#x3E;The recording is now also available on &#x3C;a href=&#x22;http://www.archive.org/details/shortscificollection_33_0210_librivox&#x22;&#x3E;archive.org&#x3C;/a&#x3E; in the &#x3C;a href=&#x22;http://librivox.org/short-science-fiction-collection-033/&#x22;&#x3E;LibriVox Short Science Fiction Collection 033&#x3C;/a&#x3E;.&#x3C;/p&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2010/0201-librivox-Wilson-Double-Take/</guid>
<pubDate>Mon, 01 Feb 2010 17:53:00 +0100</pubDate>
</item>
<item>
<title>Published digup 0.6.23 - A Digest Updating Tool</title>
<link>http://idlebox.net/2009/1110-digup-0.6.23.blog</link>
<description>&#x3C;span style=&#x22;float: right; clear: right; margin: 0em 0em 1.5em 1.5em; font-size: 10pt; text-align: center&#x22;&#x3E;&#x3C;a href=&#x22;http://idlebox.net/2009/digup/&#x22;&#x3E;&#x3C;img src=&#x22;http://idlebox.net/2009/digup/thumb200.jpg&#x22; width=&#x22;200&#x22; height=&#x22;200&#x22; alt=&#x22;digup shovel and digest list&#x22; /&#x3E;&#x3C;/a&#x3E;&#x3C;/span&#x3E;&#x3C;p&#x3E;Published a small, but very useful console tool to update md5sum or shasum digest files. It will read existing md5sum.txt files and add new files to it without rereading the whole directory tree.&#x3C;/p&#x3E;

&#x3C;p&#x3E;This makes digup very useful to update and verify incremental archives like chronological data storages or music collections, which are nowadays commonly stored and backuped on hard disks. Using a full file digest scan even slowly creeping bad blocks on old hard disks can be detected. By using a crontab entry, this check can be performed unattended and routinely.&#x3C;/p&#x3E;

&#x3C;p&#x3E;For more information, the source code and binaries for various platforms see the &#x3C;a href=&#x22;http://idlebox.net/2009/digup/&#x22;&#x3E;digup web page&#x3C;/a&#x3E;.&#x3C;/p&#x3E;</description>
<guid isPermaLink="true">http://idlebox.net/2009/1110-digup-0.6.23.blog</guid>
<pubDate>Tue, 10 Nov 2009 22:30:00 +0100</pubDate>
</item>
</channel>
</rss>
