Monday, 27 February 2012

Yubico / Yubikeys

I'm impressed.

I have small keyring with a USB memory stick, 2 yubikeys and a cofee machine cashless RFID key on. Stupidly I left said key in the vending machine. The system operators at work collected it and set about finding the owner. 1st up, they discovered that they can't read any files off yubikeys (heh) but googled the image and found the manufacturers website and said they had found serial #.... and #.....

Having spend the last 2 days rummaging in car / home looking for it, I got an email from yubico saying that <email> had found my key, based on the serial no of the one I purchased. Work also got an email for the other serial no, which they traced to me.

I'm *very* impressed by this level of attention at yubico, and it means when distributing keys within the business it pays to keep track of the serial no (printed under the 2d barcode).

It does raise the question of how (if) one should notify yubico if they're passed on - especially if I overwrite the yubi profile (as I have done) to prove that I am the rightful owner of the key.

Things to consider with revocation / blocking, especially with a distributed architecture like Fedora....

Friday, 24 February 2012

apcupsd via Python to Pachube

In python, the 'default' URL accessing toolkit (urllib2) doesn't support PUT, however I've discovered requests which a) does and b) is in Fedora. So one apt-get install python-requests.noarch and you're off.

So - one trivial script (reusing much of the code for my MQTT variant) you get The only minor niggle was working out how to prepend the minimum extra json content (version and datastreams) as I'd not used the json libs before. (Hmm yet another github toy - embeddable gists with syntax highlighting. Nice) Update now I have 24h worth of data - plot attached

Cool Stuff

Things you find on the internet...

The Swiss Federal Office for the Environment (FOEN) Hydrology dept monitors the water temp at its gauging stations ( including the one downstream from Lac Leman. Soneone else is feeding these into pachube as a data feed ( which means it's trivial to generate an on demand plot of last weeks water temp:

Wednesday, 22 February 2012

Machine Tags

Flickr has had machine tags for several years now (and they are a Good Thing), but one of the problems with introducing new namespaces is the lack of any formal definition, so people are free to add as they wish (this is generally a good thing, but can lead to garbage data).

So: I propose a new namespace for the Amateur Radio community called say 'hamradio:' that would then mean an image such as could be suitably tagged. - The visual information in there shows callsign, date and position - but should it be plotted on the senders locatation, or the site that received it. Or both....

Since I don't have enough time, Someone Else (tm) should create a style QSL lookup that can integrate with or Or something.


Tuesday, 21 February 2012

Teleinfo update

I''ve been using a teleinfo shield on a nanode to try and datalog our electricity usage, but the logging to the CSV file kept truncating as if the arduino had locked up. There have been discussions elsewhere that this may be related to the code in arduino 1.0 so I decided to rewrite a step at a time to try and debug the problem.

Some observations on the way:
1) having to flip a jumper over on the shield between programming and run is *very* annoying in a cold garage, so I'm going to rewire it slightly to use SoftwareSerial on a spare input (leave JP1 open and wire from one side of it to a spare pin) - I already have a link since the shield tries to use DIG6 by default which is used by the red LED on a nanode.

2) the arduino IDE doesn't like anything other than 8N! on the serial monitor. close it and use kermit. if you can't read serial with kermit, then it's *very* broken :-)

3q) our usage is going UP not down :-( -- lowest figure I managed to get the baseline to was 340VA

With a very simple logger

I can stream the output to a kermit session log as
ADCO 040222048573 <
BASE 040912359 ,
IMAX 029 J
PAPP 00340 (
next trick is to try and get the processing organised into blocks and validate the checksum, but my code doesn't seem to detect the stx/etx properly
void loop() {
if(meter.available()>0) {
  if((c = == 02) {     // start of block
    Serial.println("DEBUG: Start Loop");
    while((c = != 03) {      // Loop until end of block
    digitalWrite(LED, LOW); // Flash LED
    digitalWrite(LED, HIGH);
so mode debugging called for. Once thats done, then I'll send the values to an emon style display over rfm12b

Plotting Lustre MDS stats

At $dayjob we have several large filesystems - for example our /scratch system has 3.1 PB of space using over 1000 HDDs. Although each vendo...