WordPress “twenty twelve” and Rich Snippets Testing Tool

While playing around with my Google+ profile I noticed a posting about Google Authorship, i.e. linking postings from various web sites to your profile. Search results show your profile photo, if activated. This was nothing new for me. But nonetheless I tested the mentioned Google Rich Snippets Testing Tool with my web site and it threw the following error message multiple times:

Rich Snippets Error Missing required field "updated"

I quickly found out that the culprit was my theme “twenty twelve”. Its predecessor “twenty eleven” also led to this error messages, but other themes didn’t. So I dug myself into the PHP code (Appearance -> Editor) and narrowed it down to a single class definition in functions.php (ca. line 326) that had to be changed from “entry-date” to “updated”:

$date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="updated" datetime="%3$s" pubdate>%4$s</time></a>',

I have not checked what the difference between “entry-date” and “updated” is, but I have not yet observed any negative consequences; so I will stick to the change. The code in the “twenty eleven” theme looks similar, so if you want to adapt it search for “entry-date” (only one occurrence) in the functions.php file.

Stellaris LaunchPad LM4F120 unboxing

I was lucky to be in the first group of people to receive two TI Stellaris Launchpad LM4F120 Evaluation Kits. Hurray! 🙂

I bought both kits for 9,98 US $ directly from TI. Here some photos from the unboxing. I will update this post as soon as I get a development environment up and running. For everyone who can’t wait: there is a nice “Getting Started” page from TI with video tutorials and tons of information.

P.S. I like the comment of the Stellaris MCU Team in the box: “Happy Coding!” 😉

My new Raspberry Pi

I just received my Raspberry Pi board from Farnell (element14). It’s the new Model B, Revision 2.0. 🙂 I originally wanted to use the board as a cheap always-running gateway. But the more I’m playing around with it, the more I enjoy its multimedia capabilities.

By the way, I’ve attached the Raspberry Pi to a power meter. According to it, the board consumes 3.1 Watt when idling and 3.4 Watt when compiling code or installing new packages. The attached mouse, keyboard and the network cable connection (wireless connection is planned) also drain some power. When being shut down, it still consumes 1.0 Watt (which might be due to the cheap USB power supply).

Exposing a Chip on Board (COB)

In a previous post I had described my efforts to build (or should I say extract) a DCF77 clock radio receiver from an old radio clock. The remaining part of the board has undergone another surgery to take a look at the chip on board (COB) technology (German Wikipedia entry). The process of removing the covering epoxy resin with a scalpel was rather destructing, but I did not want to use aggressive chemicals. As a result, the bonding wires (between the silicon chip and the conductor tracks) were destroyed.

The following video shows the process of removing the epoxy resin using a scalpel and a heat gun (fired up to 200°C). The whole process took about 10 Minutes. The last minute of the video also shows some close-ups done with a cheap webcam, which was modified for magnification.

I also added some close-up pictures of the exposed silicon die, taken with my DSLR and a reverse-mounted lens.

Homemade DCF77 receiver [FAIL]

A few weeks ago our old clock radio broke. Out of curiosity I’ve disassembled it: I wanted to remove the DCF77 clock radio signal receiver. Unfortunately, the clock contained a single board, but the receiver part was clearly distinguishable from the rest.

The circuit board of my broken clock radio. The radio signal receiver is marked with a yellow frame.

For fun, I cut out the relevant part of the board and replaced/refreshed the solder joints. I also added four connections for 1.5 Volt (power supply), the clock signal and a power-on line. (At least I think that’s what the last two lines should be).

My low cost self made DCF77 clock signal receiver.

I have not yet managed to get a stable time signal. On my digital storage oscilloscope I get occasional spikes with a distance of one second (what you would expect), but only a few of them and then nothing… The problem is probably the correct initialization of the chip under the black blob (a so called chip-on-board, by the way). Maybe, I also damaged a part of the receiver while cutting out the board, or when resoldering the two joints on the 77.5 kHz antenna.

Update: Well, after playing a bit more with the receiver I’m pretty sure I damaged it while cutting it out. I used common initialization sequences and did not manage to get it work. Too bad…

Logitech M705: How to fix a defective mouse button

After cleaning and reassembling...

I’m a big fan of Logitech mice, or at least was until a few days ago. My wireless Logitech M705 started to behave strangely: Pressing down the left mouse button resulted in multiple clicks (i.e. double-clicking) and dragging became impossible due to random interruptions when holding down the button.

Without a warranty (which had expired three months ago) I did not feel guilty when opening the mouse to look for the cause. The culprit was quickly found: the microswitch of the left mouse button. Luckily, I had spare microswitches as I’m currently playing around with the optical sensors from other spare/defective mice. I will cover this in another post. To come to the point: after replacing the microswitch, the mouse works again as usual. I’ve made a few photos (a picture is worth a thousand words 😉 ) to help others during disassembly of the housing. Screws are marked red, and I have also marked (in yellow) two tiny springs that can easily be lost.

This fix has a bad aftertaste: at least in Germany, there is much talk about “planned obsolescence”, and I’m wondering if Logitech (and other manufacturers) use cheap microswitches that only survive a certain number of clicks. Especially after my mouse showed the previously mentioned defect so soon after the expiry of the warranty… On the other hand Logitech kept its promise regarding the battery life – I’m still using the first set.

Update (2014-11-22): Just as a brief clarification, after I got some feedback on the M705. (Apparently several users have had similar experiences.) Logitech uses Omron switches that actually seem to be pretty good. So I want to point to posts from Kogos and Ralf  below: First you should try what is recommended in a Logitech forum post. After that you might try resoldering the joints. If that doesn’t help an exchange might be the best option…

HowTo: Running Eagle CAD 6.2 on Ubuntu 12.04/12.10/13.04

Update: Eagle CAD version 6.4 is available which runs fine on Ubuntu 12.04., Ubuntu 12.10 and Ubuntu 13.04. I’ve made a small tutorial on how to fix possible dependency problems with this new version.

Ubuntu 12.04 only provides an older version of Eagle CAD, version 5.12.0 to be exact. A newer version 6.2 (32 bit) is available for download, but the installation fails due to the lack of a 32 bit libpng-1.4 library:

error while loading shared libraries: libpng14.so.14: cannot open shared object file: No such file or directory.

Luckily, I found a detailed post at raek’s blog which covers older Ubuntu versions. Great parts of the following instruction were taken from this post and adapted for Ubuntu 12.04. Thanks!

First of all you need to install some packages to build the missing png library. Open a terminal window and enter on a 32 bit Ubuntu 12.04:

sudo apt-get install build-essential perl
sudo apt-get install zlib1g zlib1g-dev

On a 64 bit Ubuntu 12.04:

sudo apt-get install build-essential perl gcc-multilib
sudo apt-get install ia32-libs lib32z1 lib32z1-dev

Then you need to fetch the libpng source code and the Eagle CAD 6.2 installer, either with “wget” (as I have done it) or directly from the respective webpages. A current version of Eagle CAD is available for download here: http://www.cadsoftusa.com/download-eagle/
libpng 1.4 can be found on this page: http://www.libpng.org/pub/png/libpng.html
I will use the “/tmp/libpng-eagle” directory for building the library:

mkdir /tmp/libpng-eagle
cd /tmp/libpng-eagle
wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng14/libpng-1.4.12.tar.gz
tar xvfz libpng-1.4.12.tar.gz
cd libpng-1.4.12/
./configure --prefix=/tmp/libpng-eagle/install CFLAGS=-m32
make check
make install

At this point I assume that your Eagle CAD installation will be located at “/home/$USER/eagle-6.2.0“. If not, simply adjust the location in the text below:

cd /tmp/libpng-eagle/install/lib/
mkdir -p /home/$USER/eagle-6.2.0/lib
cp -a libpng14.so* /home/$USER/eagle-6.2.0/lib/

Now the installer should run…

export LD_LIBRARY_PATH=/home/$USER/eagle-6.2.0/lib/
cd /tmp/libpng-eagle/
wget ftp://ftp.cadsoft.de/eagle/program/6.2/eagle-lin-6.2.0.run
chmod 755 eagle-lin-6.2.0.run
./eagle-lin-6.2.0.run

After the installation finishes, Eagle CAD will still not run unless you tell it where to find the png library we have just created. The easiest way to do this is by creating an executable start-up shell script (e.g. /home/$USER/eagle-6.2.0/eagle.sh) which contains the following commands:

#!/bin/sh
export LD_LIBRARY_PATH=/home/$USER/eagle-6.2.0/lib
/home/$USER/eagle-6.2.0/bin/eagle

Additionally, you could create a Unity/Gnome menu entry, for example “/home/$USER/.local/share/applications/eagle.desktop
(do not forget to adapt the $USER):

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/home/$USER/eagle-6.2.0/bin/eagleicon50.png
Name=Eagle
Exec=/home/$USER/eagle-6.2.0/eagle.sh
Comment=Eagle CAD

Update: A friend told me that the installation procedure also works with Ubuntu 11.10.

My Erdős number: 3

Okay, it might be a joke among mathematicians – but it is nice to know that one has a finite Erdős Number. Wolfram MathWorld describes it as…

…the number of “hops” needed to connect the author of a paper with the prolific late mathematician Paul Erdős. An author’s Erdős number is 1 if he has co-authored a paper with Erdős, 2 if he has co-authored a paper with someone who has co-authored a paper with Erdős, etc. (Hoffman 1998, p. 13).

In my case, the following collaboration path results in an Erdős number of 3… 🙂

  • Kai C. Bader and Mikhail J. Atallah and Christian Grothoff “Efficient relaxed search in hierarchically clustered sequence datasets”, ACM J. Exp. Algorithmics, 17(1):1.4:1.1–1.4:1.18. 2012.
  • Mikhail J. Atallah and Samuel S. Wagstaff, “Watermarking Data Using Quadratic Residues”, Proc. of SPIE Workshop on Electronic Imaging (SPIE 99), SPIE – The International Society for Optical Engineering, SPIE Vol. 3657, pages 283-288, 1999.
  • Paul Erdos and Samuel S. Wagstaff, “The Fractional Parts of the Bernoulli Numbers”, Illinois J. Math. 24, pages 104-112, 1980.

Dissecting a PICO-C USB flash drive

The Super Talent PICO-C is a really tiny USB flash drive. Ever since I bought mine about a year ago I always wondered how it might look like inside the neat metal housing.

About a month ago, the drive was not accessible anymore. A short search on Google showed that in many cases a bug in the firmware rendered the flash memory inaccessible. There are tools available to revive faulty firmwares, especially for this kind of stick – if at least the controller is still recognized, which was not given in my case. Nevertheless, I tried the tools. As expected, they did not work. Luckily, nothing important was stored on the drive…

Being not that expensive, I did not exchange it (in spite of still having a warranty). Instead, I dissected it. 🙂 Removing the front cover with a screw driver was not complicated.

I first tried to also remove the metal back with a screw driver, but it was firmly glued together. I only managed to break of a piece of the black epoxy (?) housing. Ouch… The solution was to use a hot air gun to melt the glue. The black interior fell out by itself after 10-15 seconds.

Sadly, the black block containing all the logic is rather unspectacular. It does contain a labelling which was only readable after some photoshopping:

BXB08GMBH54UD or BXBO8GMBH54UD
4010 C024L0WAA or CO24LOWAA
MADE IN KOREA

At this point I gave up. Without any further possibilities to dissect the part and without any clues from the caption I put the remains aside. I thought about dissolving it in acetone or a similar solvent but I suspect it would work.

By the way: I bought the same drive again. I hope the new one lasts longer… 😉

Update: I’ve found a nice blog post about the build process of these USB sticks (bunnie’s blog): Where USB Memory Sticks are Born