As a lot of people are coming to my blog to read the installing instructions for Debian on the GuruPlug Server Plus, I shall not hide my opinion about it: It is a major design and QA fail. Don't waste your money on it.

The power supply

Although I've ordered the Guruplug pretty early with the promise, that I'd have it in April, it arrived at the end of May due to QA issues with the power supply. While I appreciate that they didn't deliver broken power supplies, I would have preferred not to receive one which was "fixed" by somebody who uses the soldering iron like an axe. Here are some macro photos to show the gory details:

GuruPlug Server Plus PSU 1 GuruPlug Server Plus PSU 2 GuruPlug Server Plus PSU 3

Software issues

The version of UBoot which shipped with the device was only able to boot from NAND and network. Booting from USB failed and ext2 support was missing, too. Didn't have a look if the community came up with a fixed UBoot version yet, but in my opinion a piece of hardware for >100 EUR should not have such flaws.

Thermal issues

Using the Guruplug with more than one 100 MBit/s connection is just not possible, as it would toast itself to death. For the details have a look at this discussion in the NewIT forum, it links to a lot of interesting photos and postings. This issue is a major design and QA failure. Even without knowing what the datasheets say, it is easy to imagine that a thin piece of alloy is not the proper way to cool a CPU and network chip. Especially not when it is mounted with cheapish pads instead of a proper paste.

GuruPlug Server Plus Cooling 1

As it seems the plan was to send the heat to the shielding of the network/USB/eSata ports (the area is marked red as my first plan was to remove that part of the alloy and reuse the heat-spreader), a strong indication for that is that this is the only area with holes for air circulation. I could imagine that it was not possible to have these holes next to the PSU, which was mounted above the heat-spreader, to avoid electrical shocks.

GuruPlug Server Plus Cooling 2

As there was no other opening for the heat to leave the case, even the microSD card became pretty hot - I've measured temperatures around 60 deg. C next to the card - while CPU and 100MB/s network were idling.

The official information from GlobalScale Technologies is that only 10/100MBit/s should be used as workaround to avoid overheating until a "Professional Upgrade Kit" is released. As mentioned here the upgrade kit announcement was removed silently from GST's website. To be honest, this doesn't make me wonder. There is no way to fix the Guruplug with an external fan or any other external magic as the only way to fix it is to cool the CPU and networking chip properly.

There are various workarounds for the cooling issues posted to the forums. I've decided to rip out the power supply and heat spreader out of the case and get a nice external PSU. The new connector is mounted, ready to supply the GuruPlug's board with power.

GuruPlug Server Plus power connector

Currently I'm waiting for the new heat sinks and glue to arrive. Then I'll give it a try to mount eveything in the small case again, probably with some additional air holes. As soon as I have a workign solution, I'll blog about it again.

Posted Sun 29 Aug 2010 12:16:43 PM CEST Tags:

During the last three months and since my last blog-post about gimp-plugin-registry a lot happened: Mainly a large number of new plugins was added, but also various enhancements and bugfixes went into the package, together with updates for various already included plugins.

The GIMP screenshot with open FX-Foundry menu

For those who don't know gimp-plugin-registry yet, it is a collection of scripts and plugins for The GIMP. The name is based on the webpage GIMP Plugin Registry, where most (new) plugins and scripts are listed. So far the package ships with 170 scripts/plugins. Most of the scripts are written in TinyScheme, but there are also several plugins in C or Python. Probably most noticeable is the inclusion of the GIMP FX Foundry, which is an awesome collection of 124 scripts.

Below follows a list of all scripts and plugins as shown in the long description of the Debian package. New plugins are marked with a bold fontface.

  • Add Film Grain (2.4): Helps adding realistic film grain to BW images.
  • btn4ws (0.8.0.1): Generates a series of buttons in three states (passive, active, pressed) with various selectable effects on them, as well as XHTML, CSS and JavaScript code for using the buttons.
  • Black and White Film Simulation (1.1): Converts the selected layer into Black and White using the channel mixer. Tries to produce results resembling tonal qualities of film.
  • CMYK Tiff 2 PDF for Gimp (20090321): This plugin completes the prepress workflow of using Separate+ to generate CMYK Tiff images by allowing you to convert the saved CMYK Tiff image into a PDF file.
  • Contact Sheet (2.02): Generates a contact sheet(s) for a directory of images.
  • David's Batch Processor (1.1.9): A simple batch processing plugin for The Gimp - it allows the user to automatically perform operations (such as resize) on a collection of image files.
  • Diana-Holga2 (c): Diana/Holga Toys Cameras effect simulator.
  • El Samuko GIMP Scripts:
    • Antique Photo Border Script: This script simulates a yellowed and slightly jagged border like these of old photographies.
    • Che Guevara Script: This script generates a poster like the famous Che Guevara one from Jim Fitzpatrick.
    • Cyanotype Script: This script simulates the Cyanotype printing process.
    • Difference Layer Script This script generates two difference layers from the two layers on the top. It's similar to GIMP's built-in Grain Extract/Merge function, but the tonal range is bigger. Now you can apply further editing and "switch on/off" the adjustment by switching the visibility of the subtractive and the additive layer. Also you can change the modification intensity by changing the intensity of these two layers.
    • Escape Line Script: This script creates escaping lines from any point. It's similar in function to the built-in Line-Nova Script, but much more flexible. So you can chose the center, the thickness, the angle, the length, the offset and the randomness.
    • Film Grain Script: This is yet another script which simulates the typical film grain of high ISO pictures.
    • First Photo Border Script: This script simulates the cut-off of the first picture of a film roll of cheap cameras like Lomo.
    • Lomo Script with Old Style Colors This script simulates the Lomo effect.
    • Movie 300 Script: This script simulates the color style of the movie "300".
    • National Geographic Script: This script simulates a high quality (portrait) photo like these from the National Geographic.
    • Obama "HOPE" Script: This script generates a poster like the famous Obama "HOPE" one from Shepard Fairey.
    • Rainy Landscape Script: This script changes a dry landscape to a wet one.
    • Photochrom Script: This script simulates a photochrom image, a lithographic printing process from the 1890's.
    • Sprocket Hole Script: This script simulates complete exposed 35mm film strips with frame numbers, lettering, overexposed sprocketholes and DX film edge barcodes.
    • Sunny Landscape Script: This script changes a rainy landscape to a sunny one.
    • Technicolor 2 Color Script: This script simulates the 2 Color Technicolor effect.
    • Technicolor 3 Color Script: This script simulates the 3 Color Technicolor effect.
    • Vintage Look Script: This script simulates a 70s vintage look.
  • EZ Perspective: Specialized tool for easily correcting or changing perspective.
  • Fix-CA (3.0.2): Corrects chromatic aberration in photos
  • Focus-Blur (3.2.5): This plugin tries to simulate an out-of-focus blur
  • GIMP FX Foundry (r111): Probably the largest script collection available for The GIMP.
  • GIMP-Mask: Do and undo several popular image masking (that is, censoring) methods (CP, FL, Q0, MEKO).
  • Warming and Cooling Filters (May 24, 2010): Warm or cool an image using one of several methods: Wratten, Roy's Warm, Brauer's Warm, Pasty Cadaveric Look
  • Layer-Effects (2.4): This is a series of scripts that implement various layer effects: Drop Shadow, Inner Shadow, Outer Glow, Inner Glow, Bevel and Emboss, Satin, Color Overlay, Gradient Overlay, Pattern Overlay, Stroke
  • Liquid Rescale (0.7.0): Content-aware rescaling. Keeps the features of the image while rescaling along a single direction.
  • Normalmap (1.2.2): Allows you to convert images into RGB normal maps for use in per-pixel lighting applications.
  • Planet Render (1-2): Creates a planet. Color, size and sun orientation can be set.
  • Refocus (0.9.1): The GIMP plugin to refocus images using FIR Wiener filtering. During image processing operations such as scanning and scaling, images tend to get blurry. The blurred impression of these images is due to the fact that image pixels are averaged with their neighbors. Blurred images don't have sharp boundaries and look as though they have been taken with an unfocused camera.
  • Save for Web (0.29.0): Allows to experiment with various popular web format options. It shows an automatically updated preview and file size statistics.
  • Separate+ (0.5.6): Separate+ is a plug-in that generates color separations from an RGB image, proofs CMYK colors on the monitor and exports the CMYK TIFF file.
  • Smart Sharpen (redux) (2.4): This script implements the redux version of smart sharpening. It utilizes the Unsharp Mask or Refocus plugin to sharpen the image.
  • Streak-Camera simulation (0.6): A streak camera images an object through a slit - thus getting a "one dimensional image". This image is propagated along the second dimension of the image plane at a constant speed. The result is a picture of the time dependency of the object.
  • Traditional Orton: This is an effect invented by Michael Orton in the 1990’s, which consists of taking two copies of an image, one blurred, and one sharp, and mixing them to produce an image with a dreamy quality. It is especially well suited to landscape and flower photography.
  • Wavelet Decompose (0.1.2): The wavelet decompose plugin decomposes a layer of an image into layers of wavelet scales. This means that you can edit the image on different detail scales (frequencies). The trivial recomposition of the image can be done by GIMP's layer modes so you can see the results of your modifications instantly. Among the applications are retouching, noise reduction, and enhancing global contrast.
  • Wavelet Denoise (0.3.1): The wavelet denoise plugin is a tool to selectively reduce noise in individual channels of an image with optional RGB<->YCbCr conversion. It has a user interface to adjust the amount of denoising applied. The wavelet nature of the algorithm makes the processing quite fast.
  • X11 Mouse Cursor (XMC) plug-in (2.0.6): Enables GIMP to import and export X11 mouse cursor files.

If there is any interest from other distributions to include the package, I'd be happy to help out to make an integration as easy as possible. The few interesting parts could be ripped out of debian/rules and shipped as a normal Makefile, so they could be used easily. More complicated is the generation of the package description and copyright information, but I guess instead of writing debian/coyright and debian/control, it should be possible to integrate the information into a rpm spec file template or similar files. So in case you're interested to port the package to Fedora, OpenSuSE or some other distribution, don't hesitate to contact me! The sources are available via git, see git.recluse.de for details.

For wishes, suggestions and bug reports either use the Debian BTS or Launchpad. While I prefer bugs via the BTS, it might be easier for non-Debian users to file bugs in the Ubuntu Launchpad.

Posted Mon 05 Jul 2010 12:25:46 AM CEST Tags:

ikiwiki is not yet able to create a Google sitemap internally, so I'm using google-sitemapgen. To run it automatically when the website is being updated, I've changed the git hook to run it after the ikiwiki hook.

  • In the ikiwiki setup file let git_wrapper point to a file which is not the post-update hook, so you're able to run it from your own skript. I'm using /path/to/myikiwiki.git/hooks/post-update.ikiwiki.
  • Write a skript which runs as post-update hook and executes the created hook from ikiwiki and google-sitemapgen with a proper configuration. My versions of both files are listed below.

/path/to/myikiwiki.git/hooks/post-update

#!/bin/sh

/path/to/myikiwiki.git/hooks/post-update.ikiwiki

/usr/bin/google-sitemapgen --config=/path/to/mywikiconfig/sitemap_config.xml

exec git-update-server-info

/path/to/mywikiconfig/sitemap_config.xml

<?xml version="1.0" encoding="UTF-8"?>
<site
  base_url="http://bzed.de/"
  store_into="/path/to/bzed.de/sitemap.xml.gz"
  verbose="0"
  suppress_search_engine_notify="0"
  default_encoding="UTF-8"
  >

  <directory
    path="/path/to/bzed.de"
    url="http://bzed.de/"
    default_file="index.html"
  />

  <!-- Exclude URLs that end with a '~'   (IE: emacs backup files)      -->
  <filter  action="drop"  type="wildcard"  pattern="*~"           />

  <!-- Exclude URLs within UNIX-style hidden files or directories       -->
  <filter  action="drop"  type="regexp"    pattern="/\.*"     />

  <!-- Exclude ikiwiki directories -->
  <filter  action="drop"  type="regexp"  pattern="/helponformatting/*"           />
  <filter  action="drop"  type="regexp"  pattern="/ikiwiki/*"                    />
  <filter  action="drop"  type="regexp"  pattern="/markdown/*"                   />
  <filter  action="drop"  type="regexp"  pattern="/openid/*"                     />
  <filter  action="drop"  type="regexp"  pattern="/pagespec/*"                   />
  <filter  action="drop"  type="regexp"  pattern="/preprocessordirective/*"      />
  <filter  action="drop"  type="regexp"  pattern="/sandbox/*"                    />
  <filter  action="drop"  type="regexp"  pattern="/shortcuts/*"                  />
  <filter  action="drop"  type="regexp"  pattern="/smileys/*"                    />
  <filter  action="drop"  type="regexp"  pattern="/subpage/*"                    />
  <filter  action="drop"  type="regexp"  pattern="/templates/*"                  />
  <filter  action="drop"  type="regexp"  pattern="/theme/*"                      />
  <filter  action="drop"  type="regexp"  pattern="/wikiicons/*"                  />
  <filter  action="drop"  type="regexp"  pattern="/wikilink/*"                   />
  <filter  action="drop"  type="regexp"  pattern="/wmd/*"                        />


  <!-- Exclude css files, favicon and javascript -->
  <filter  action="drop"  type="wildcard"    pattern="*.css"                         />
  <filter  action="drop"  type="wildcard"    pattern="*favicon.ico"                  />
  <filter  action="drop"  type="wildcard"    pattern="*.js"                          />

  <!-- Exclude ikiwiki.cgi -->
  <filter  action="drop"  type="wildcard"    pattern="ikiwiki.cgi"                   />


</site>

See the examples and README files in /usr/share/doc/google-sitemapgen/ for an introduction into configuring google-sitemapgen.

So far the generated sitemaps works very well, especially for search engines which are not able to use the rss feeds like Google does.

Posted Wed 23 Jun 2010 08:36:43 PM CEST Tags:

<rant>Recently I've adopted a package, mainly as Merkaartor uses it now. It made me sad to see in which bad condition the package was. Here are just a few things I had to do to bring it into shape:

  • The former maintainer removed the documentation and added a +dfsg to the version as there were a few hints left that it is under GFDL or under no license at all. So I've mailed upstream and asked him to remove it and put the documentation under the same license as the rest of the project in an obvious way. Took a few hours and upstream responded and fixed the issue. Seems the former maintainer didn't even bother to talk to upstream about it. And he didn't bother to replace the removed manpages.
  • The Perl binding was never built. The Python extensions were only built for the default Python version instead for all supported versions. Putting gtk and non-gtk Python extensions into the same binary package also didn't make much sense.
  • Symbol files for the libraries were not in the packaging.
  • Neither the copyright file was complete, nor the description, nor the necessary dependencies for some packages.

These points were only the larger issues, a lot more were fixed by me or by QA uploads while the package was orphaned. For me it seems that the former maintainer of that package threw some stuff together just to be able to upload the package - or at least run out of spare time to maintain a package properly several years ago.

To all the people who maintain packages - and it doesn't matter if you maintain a single package or hundreds of them: Please orphan or at least RFA your packages if you don't have the proper time to maintain (all of) them. Don't open new ITPs if you obviously don't have the time to maintain the packages you have already. Talk with your upstreams, they're usually happy about it. Look at Lintian warnings and errors instead of overriding them. If you take patches from NMUs, say 'thanks' to the poor soul who had to create them for you in debian/changelog instead of taking the work without any notice.

Remember - Debian is a community effort, not a run for the highest number of maintained packages on your QA page.</rant>

Posted Sun 13 Jun 2010 02:56:02 AM CEST Tags:

Some minutes before the release of 3.20100610 we convinced Joey in #ikiwiki to commit the following changes:

  • The part of the page which is usually parallel to the sidebar lives within a new div with the id "pagebody" now. This is the proper fix for the issue and workaround described here.
  • pre elements will show a scrollbar automatically now, thanks to overflow: auto; in the CSS.

We hope that nobody wants to hit us with a bat now :-)

Posted Sat 12 Jun 2010 02:04:36 AM CEST Tags:

Merkaartor 0.16.0 was uploaded to Debian/unstable several days ago and should be available on all architectures now.

Merkaartor

As usual please help testing the new version - upstream and me will try to fix all bugs as fast as possible. Below follows the long list of new features, for the full list of changes see the CHANGELOG.

  • Ramer-Douglas-Peucker simplification of ways (in Roads menu)
  • support for JOSM remote protocol on port 8111
  • support for "standard" (as in http://wiki.osgeo.org/wiki/Tile_Map_Service_Specification) TMS
  • Preliminary support for OpenStreetBugs (Refs #983)
  • POC of a Gosmore map adapter
  • Allow to delete features from the context menu of the Features dock
  • Accept mlon/mlat URLs as emitted by mkgmap logging
  • Walking Papers backgound plugin + load WP scans as geotagged images
  • Import from OSC (osmChange format)
  • Feature-Force Delete action (deletes the feature without entry in the undo nor upload list)
  • Export to OSC (osmChange format)
  • CSV POI import
  • OSGB36 to the default list of projections
  • Add SHP feature attributes as not uploadable OSM Feature tags
  • Allow to save geotagged images
  • show geotagged photos on the map (disable via 'view-Show Photos on map')
  • Templates xsd (by Jonathan Bennett) (closes #2809; closes #2707)
  • allow to re-order relation members (closes #2759)
  • add a projection editor
  • allow google maps links in goto and download dialogs
  • Allow to tile (and cache) arbitrary WMS'es (only EPSG:4326 and google projection supported)
  • Export to OSC (osmChange format)
  • CSV POI import
  • OSGB36 to the default list of projections
  • Add SHP feature attributes as not uploadable OSM Feature tags
  • Allow to save geotagged images
  • show geotagged photos on the map (disable via 'view-Show Photos on map')
  • Templates xsd (by Jonathan Bennett) (closes #2809; closes #2707)
  • allow to re-order relation members (closes #2759)
  • add a projection editor
  • allow google maps links in goto and download dialogs
  • Allow to tile (and cache) arbitrary WMS'es (only EPSG:4326 and google projection supported)
  • support for WMS-C servers (see http://wiki.openstreetmap.org/wiki/Merkaartor/Documentation#WMS-C_Servers) (closes #2598)
  • add the possibility to show a lat/lon grid
  • Allow to zoom on the location of a GeoTIFF image
  • Brazilian Portuguese translation (by Marcio Moraes)
Posted Sat 12 Jun 2010 01:19:40 AM CEST Tags:

Yesterday finally my GuruPlug Server Plus arrived. Took longer than expected, but as it seems Globalscale had some issues with the power supplies and they were replaced before shipping the GuruPlugs.

GuruPlug Server Plus and JTAG Board

The GuruPlug

Basically the GuruPlugs are an enhanced version of the well known SheevaPlugs, the biggest difference is probably the need for an external JTAG/UART<>RS232 board to access the serial console. Good thing is that the board comes with a normal JTAG connector and an additional RS232 connector and 2.5V DC power outlet, so it will be useful for other devices, too. Globalscale could have chosen different connectors with less wiggly cables, though.

As I was not able to find a useful howto about installing Debian on the Guruplug, I've written down what I did to install Debian unstable on a micro SD card using the Debian installer for the GuruPlug. I did not have a look who modified the Debian installer to work on the plug, but thanks for that! The instructions below are based on Martin Michlmayer's awesome SheevaPlug documentation, the hints from oinkzwurgl.org/guruplug and various forum posts in the plugforum.

Preparations

Please note that I'm not resposible for whatever you're doing with your plug. If you follow this tutorial and end up with a brick, it is your fault, not mine.

To install the GuruPlug you need the JTAG Board. Connect the UART port to the GuruPlug and the JTAG board to your computer, it should show up as FTDI (thanks for using good chips!) USB<>Serial converter. Serial port settings are 115200, 8-N-1, no hw/sw flow control.

The other thing you should prepare is a working tftpd, I'm using aftpd.

apt-get install atftpd

Recent versions share files from /srv/tftp/, in case you're running Lenny /var/lib/tftpboot/ should be the place to drop your files.

When everything is connected properly the boot process should show up in minicom, make sure to press some key to enter uBoot. The first thing you should do is to save the original uBoot environment in case you want to restore the factory settings later. Run

printenv

and save the output somewhere.

Upgrading uBoot

Unfortunately the uBoot version on the GuruPlug is pretty old and seems to have some issues in booting from USB devices, so the first thing you should do is to upgrade it. You might want to investigate if there is even a better, more recent uBoot version available somewhere, or build one on your own, but I didn't bother and took the uBoot.guruplug.bin from here. The main issue with that is that booting from USB still seems to be buggy (even for FAT partitions) and that ext2load is still not supported. Otherwise it works well :-). I'm mainly following Martin Michlmayer's tutorial again.

Download the uBoot.guruplug.bin and drop it into the tftpd directory. Make sure you always set the plug's IP address (ipaddr) and your server's IP address (serverip) properly. I'll use 192.168.121.253 for the plug and 192.168.121.2 for the server in all examples, make sure to change that for your own needs. Stop if something goes wrong, especially when the tftp download failed.

setenv ipaddr 192.168.121.253
setenv serverip 192.168.121.2
tftp 0x6400000 uBoot.guruplug.bin
nand erase 0x00000000 0x0100000
nand write 0x6400000 0x0000000 0x80000
reset

Enter uBoot again after the reset.

Preparing the installer

Download uImage and uInitrd to your tftpd directory.

Although I've heard that setting mainlineLinux/arcNumber in the uBoot environment is not necessary anymore for very recent kernel, lets set them to make sure the Debian kernel works:

setenv mainlineLinux yes
setenv arcNumber 2097
saveenv
reset

Again, enter uBoot after the reset.

Running the installer

Run the following in the uBoot console:

setenv ipaddr 192.168.121.253
setenv serverip 192.168.121.2
tftpboot 0x01100000 uInitrd
tftpboot 0x00800000 uImage
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
bootm 0x00800000 0x01100000

You should see the installer starting now. You might want to follow the following hints:

  • Before configuring the network, go back and set the debconf priority to low, Then continue. While chosing the Debian mirror, chose sid as the Debian version to install. If you don't have sid as choice, use a different mirror. The kernel in testing does not boot on the GuruPlug, you need 2.6.32-13 from sid.
  • You might want to load the 'network console' installer component and continue via ssh. Makes things fater and colourful.
  • Suggested partitioning: I've installed Debian to an 8GB micro SDcard. The SDcard reader is connected via USB and shows up as /dev/sdb (/dev/sda should be the internal NAND and not shown by the installer). I've used 150MB ext2 for /boot and the rest of the space for /, using ext4. You might want to use the noatime option on both filesystems to avoid unnecessary write access to the SDcard. You might choose to add a swap partition, but SDcards are so slow, so I've skipped that.

When you continue the installation, you will hit the following problem:

  • The uBoot is not able to boot from your /boot anyway. USB support is buggy and ext2load missing.

We'll work around this issue by writing the kernel and initrd into the plug's NAND. To do so, enter a shell in the installer and chroot into the install target. We'll then scp the necessary uImage and uInitrd to our tftpd directory:

chroot /target /bin/bash
cd /boot
scp uI* root@192.168.121.2:/srv/tftp

Now leave the shell, finish the installation and reboot, enter uBoot again.

Make the plug bootable

To write kernel and initrd to the NAND memory, we have to transfer it via tftp first, then erase the NAND area we want to write to and then write it to the NAND. The values I've chosen here should be fine for the current Debian kernel, but you might need to change the necessary size for the initrd. To do so have a look at the output while transferring the initrd - the transferred bytes are displayed. They have to fit into the amount of bytes you write (the last option to nand write.e).

setenv ipaddr 192.168.121.253
setenv serverip 192.168.121.2
tftp 0x6400000 uImage
nand erase 0x100000 0x400000
nand write.e 0x6400000 0x100000 0x400000
tftp 0x6400000 uInitrd
nand erase 0x500000 0x1fb00000
nand write.e 0x6400000 0x500000 0x600000

Now we need to set the necessary boot options. Make sure to change the root device if you've chosen a different layout from that I've suggested above, or if you're not using a SDcard.

setenv bootargs_debian 'console=ttyS0,115200 root=/dev/sdb2'
setenv bootcmd_nand 'nand start; nand read.e 0x00800000 0x100000 0x400000; nand read.e 0x01100000 0x500000 0x600000'
setenv bootcmd 'setenv bootargs $(bootargs_debian); run bootcmd_nand; bootm 0x00800000 0x01100000'
saveenv
run bootcmd

Finish

Your GuruPlug should boot your new Debian installation now. Have fun! I'll try to keep the howto updated for changes in uBoot and the installer, but I might not have the time to so quickly. Patches and comments are welcome!.

root@guruplug:~# uname -a
Linux guruplug 2.6.32-5-kirkwood #1 Fri May 21 05:44:29 UTC 2010 armv5tel GNU/Linux
root@guruplug:~# cat /proc/cpuinfo 
Processor   : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS    : 1192.75
Features    : swp half thumb fastmult edsp 
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part    : 0x131
CPU revision    : 1

Hardware    : Marvell GuruPlug Reference Board
Revision    : 0000
Serial      : 0000000000000000
root@guruplug:~# 
Posted Sat 29 May 2010 05:34:30 PM CEST Tags:

As announced on the Merkaartor mailing lists, version 0.16 is planned to be released on 6th June. Therefore I've uploaded a git snapshot to experimental today. Please give it a try and report all problems, either to the Debian BTS or directly in the upstream bug tracker.

Merkaartor 0.16 screenshot

Version 0.16 will contain a lot of new features and various bugfixes and enhancements. For me the most important additions are support for Walking Papers and support for OpenStreetBugs. Also Merkaartor uses libgps now, so it is able to connect to recent versions of gpsd. With thanks to Chris Browet, the upstream author of Merkaartor, the next version of gpsd will ship with libQgpsmm, a C++/QT library to connect to gpsd. It should be possible to compile libQgpsmm under most platforms which are supported by QT4, including windows. Merkaartor will use libQgpsmm when available, so even Windows users will be able to use a remote gpsd instance.

Posted Fri 21 May 2010 01:14:58 AM CEST Tags:

Although my progress in adding new features is not too fast (hint: patches and help is welcome), I'm quite happy with the progress of deb.li. As mentioned on my last post on debian-devel@l.d.o, I've spent some time to migrate it to the new, but very well written microframework Flask, which is based on Werkzeug, the probably most advanced WSGI utility module. The migration also allowed me to clean up several pieces of messy code which were necessary to work around some issues in python-bottle.

Also I've started to bring the layout and CSS into a nice shape. The templates are finished already, just a bit CSS is missing now.

Last but not least - the ciabot git script in the example clients is finished and used in a few git based projects on alioth.debian.org now. Just link /var/lib/gforge/chroot/home/users/bzed/godebian-client/ciabot.py to hooks/update and set your CIA project name by running git config hooks.cia-project your-project-name.

As usual - comments, bugreports and patches are welcome!

Posted Wed 19 May 2010 01:18:38 AM CEST Tags:

After more than a year of using ikiwiki to run bzed.de I thought it would be a good time replace the darkish-brown style by something bright. Also I wanted to get righ of the massive changes I had to do on the template files to make the old layout work.

Unfortunately I hit one of the - in my opinion - major problems in the ikiwiki templates again: You can't rely on all <div>s being available on all pages, which is quite annoying when you need them to style the page with CSS. So I had to make a tiny change to page.tmpl:

diff --git a/templates/page.tmpl b/templates/page.tmpl
index 8a9911f..dbf78a0 100644
--- a/templates/page.tmpl
+++ b/templates/page.tmpl
@@ -111,8 +111,8 @@
 <TMPL_VAR CONTENT>
 <TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>

-<TMPL_IF COMMENTS>
 <TMPL_IF HTML5><section id="comments"><TMPL_ELSE><div id="comments"></TMPL_IF>
+<TMPL_IF COMMENTS>
 <TMPL_VAR COMMENTS>
 <TMPL_IF ADDCOMMENTURL>
 <div class="addcomment">
@@ -121,8 +121,8 @@
 <TMPL_ELSE>
 <div class="addcomment">Comments on this page are closed.</div>
 </TMPL_IF>
-<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
 </TMPL_IF>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>

 <TMPL_IF HTML5><footer id="footer" class="pagefooter"><TMPL_ELSE><div id="footer" class="pagefooter"></TMPL_IF>
 <TMPL_IF HTML5><nav id="pageinfo"><TMPL_ELSE><div id="pageinfo"></TMPL_IF>

Everything else is a bit of CSS in local.css and some images. There are still various things which could be optimized, but there are more important things to do now :).

Posted Wed 19 May 2010 01:18:38 AM CEST Tags: