Raspberry Pi – first runs

One of the main expectations for me on this little device is to use it as a fanless media player. We’ve been using Boxee for quite some time which has a few very good features, all in all accepted by the boss (wife).

This post will be rather technical and list problems encountered and solutions (hopefully) applied in order to get it up and running.

Poor keyboard layout selection
System is configured to use sv_SE.UTF-8 as locale, yet the keyboard is en_* layout.
No solution yet. (Should be easy.)

Monitor/TV resolution not supported out of the box
The native resolution of the family TV, a Sony KDL-40V4220, is 1360×768. This is not available for selection in the xbmc settings menu.
No solution yet.
Status: well, on one of the kids’ newer TV this works just fine but some 15-ish pixels are cut off at each end by the TV(?)

No way to mount NFS shares via menu
All the family’s content is shared over NFS.
No solution yet. (Should be easy.)

Unclear if the remote will work (using LIRC)
I’ve not checked, but this is a must.
No solution yet.

No gigabit
I knew this one, but it’s still bugging me. The move from milliseconds to nanoseconds is just very appealing.
There’ll likely be no solution untill a new board comes out – the chipset/clock on the raspberry pi will not support this high speed I’ve been told.

No DVD playback – no mpeg2 decoding by GPU
According to a thread on the forum, this is because of licensing and the Pi foundation has not invested in this. (And the CPU is not powerful enough.)

Utmaning

Utifrån 12 things killer employees do before noon funderar jag på följande utmaning:

  1. Make a work to-do list the day before
    0 % – ny.
  2. Get a full night’s rest
    50 %.
  3. Avoid hitting snooze
    40 % – två dagar av fem.
  4. Exercise
    0 % – noll dagar av fem (förmiddagar), en dag av sju.
  5. Practice a morning ritual
    50 % – RSS-flöde på spårvagnen in.
  6. Eat breakfast
    100 % klart.
  7. Arrive at the office on time
    20 % – lurigt pga avlämning på förskola som kan vara skakigt, men en dag av fem.
  8. Check in with their boss and/or employees
    80 % – kan vara bättre på detta
  9. Tackle the big projects first
    ? % – oklart.
  10. Avoid morning meetings
    ? % – svårt när man jobbar förmiddagar …
  11. Allot time for following up on messages
    ? %
  12. Take a mid-morning break
    50 % – är ångan uppe hoppar jag mackan/rasten.

after install

Det händer att man möter en ren (Ubuntu-)maskin emellanåt. Och det saknas alltid en hel del, som behöver installeras. Följande postinstall-steg brukar jag lägga på.

apt-get install aptitude vim openssh-server screen curl nmap openjdk-7-jdk munin-plugins-extra munin-plugins-java meld netcat git mercurial python-concurrent.futures python-setuptools

aptitude install gnome-shell gnome-tweak-tool dconf-tools gnome-color-chooser compizconfig-settings-manager msttcorefonts
apt-get remove overlay-scrollbar liboverlay-scrollbar-0.2-0 liboverlay-scrollbar3-0.2-0
gsettings set org.gnome.desktop.wm.preferences focus-mode 'sloppy' && gsettings set org.gnome.desktop.wm.preferences auto-raise false

aptitude remove appmenu-* packages

aptitude install gimp gtk-recordmydesktop

aptitude install gadmin-openvpn-client

aptitude install pidgin-sipe

aptitude install chromium-browser

aptitude install mdadm gsmartcontrol

aptitude install python-software-properties
add-apt-repository ppa:zfs-native/stable
aptitude update
aptitude install ubuntu-zfs

Gnome Shell

gsettings set org.gnome.shell.overrides workspaces-only-on-primary false
gsettings set org.gnome.shell.overrides attach-modal-dialogs false

Eclipse

Problemet med svart bakgrundsfärg i popuper/hoverboxes väljer jag att lösa systembrett.

install the package “gnome-color-chooser”. In “specific” tab, you can choose the foreground and background color for tooltips.

Git GUI

aptitude install tk8.5
update-alternatives --config wish #make sure 8.5 is used

Alt-Tab Unity FUBAR

aptitude install compiz-plugins-extra
ccsm och inaktivera key bindings i Ubuntu Unity Plugin, aktivera t ex Static Application Switcher

More stuff

Start “ccsm“, find the Desktop section and untick “Widget Layer“. Done.

Mera Munin

Pillade med en maskin idag på EC2 där en del saknades i munin-väg. För att se vilka plugins som vill, kan eller inte vill vara med i matchen körs munin-node-configure --suggest som ger en fin lista, t ex

Plugin                     | Used | Suggestions                            
------                     | ---- | -----------
ntp_offset                 | no   | no [no ntpq program]                   
nvidia_                    | no   | no [no nvclock executable at /usr/bin/nvclock, please configure]
open_files                 | yes  | yes                                    
open_inodes                | yes  | yes                                    
postfix_mailqueue          | no   | no                                     
postfix_mailvolume         | no   | no [postfix not found]                 
postgres_bgwriter          | no   | yes

För att få med JMX (mot en miljö) så behövs paketet (under Ubuntu) munin-java-plugins, Postgres-prylarna var fortfarande inte på banan och ett litet test med perl -MDBD::Pg -e 1 säger just

Can’t locate DBD/Pg.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .).

För detta behövdes libdbd-pg-perl.

När väl allt verkar OK, kör munin-node-configure --shell | sh för att konfigurera in modulerna.

Om SSH och nycklar

Det händer att man får förklara konceptet med nyckelbaserad autentisering emellanåt. Jag sprang idag över en kort koncis sammanfattning på OpenWRT-wikin:

You generate a key pair, consisting of a public key (which everybody is allowed to know) and a private key (which you keep secret and do not give to anybody). The private key is able to generate signatures. A signature created with your private key […] cannot be forged using some other key; but anybody who has your public key can verify that a particular signature is genuine.

With the program of your choice, you generate a key pair on your own computer (which should not already be hacked…), and copy the public key to the server, in our case running OpenWrt. Then, when the server asks you to prove who you are, PuTTY can generate a signature using your private key. The server can verify that signature (since it has your public key) and allow you to log in.

Jag tänkte också att det var dags att kika på detta med att posta kod – det är ett härke med WordPress och TinyMCE (den grafiska redigeringsverktyget) som “förstör” koden varje gång man försöker göra något. Har nu installerat SyntaxHighlight Evolved (samt SH TinyMCE Buttons) som förhoppningsvis skall lösa problemet. Vi gör ett försök:

[java]public class Test <T1, T2> {
private T1 t1;
private T2 t2;
public T1 getFirst() {
return t1;
}
public T2 getSecond() {
return t2;
}
public <X, Y> Test(T1 a, T2 b) {
this.t1 = a;
this.t2 = b;
}
}[/java]

Det räcker inte med vanliga <pre>-taggar, utan det som verkar fungera är att skriva just klamrar [ sedan språk ] i ett “pre”-block.

[java]
package net.freelancer.dyu168.util;

public class Nullable<T> {

private T t;

private Nullable(T t) {
this.t = t;
}

public boolean hasValue() {
return t != null;
}

public T get() {
if (!hasValue()) {
throw new IllegalStateException("This Nullable has no value");
}
return t;
}

public static <X> Nullable<X> none() {
return new Nullable<X>(null);
}

public static <X> Nullable<X> with(X x) {
return new Nullable<X>(x);
}
}
[/java]

Det ser OK ut båda editorerna, även i preview.

Minimal munin-plugin

På jobbet används en npa201e från Ping Communications till att svara på anrop från porttelefoni, dvs någon som vill in.

Dessvärre har denna inte varit helt tillförlitlig. Den första analoga telefon vi använde drog lite ström från linan för att kunna visa en display. Detta orsakade en hel del huvudbry och bara första samtalet gick fram. För att göra en lång historia kort – nu ligger den och övervakas och en av formerna för detta är med hjälp av munin. Eftersom det är trivialt att skriva enkla munin-pluginner så dokumenterar jag här minimi med ett fungerande exempel:

#!/bin/sh

if test "x$1" = "xconfig" ; then
	echo "graph_title Ping Com IP-dosa
graph_category network
graph_info Network status on npa201e
graph_vlabel On / Off
status.label Status"
	exit 0;
fi

EXPECTED=/opt/pingcom-watch/expected-output.txt
TEMP=/tmp/pingcom-test

echo -n "" | netcat 10.20.10.11 9699 > $TEMP
diff -q $TEMP $EXPECTED > /dev/null
D=$?

echo -n "status.value "
echo $D

Not Invented Here, nu som lib!

Sprang idag över följande kanonsköna lib: NIH Utility Library (libnih). Från beskrivningen:

libnih is a small library for C application development containing functions that, despite its name, are not implemented elsewhere in the standard library set.

libnih is roughly equivalent to other C libraries such as glib, except that its focus is on a small size and intended for applications that sit very low in the software stack, especially outside of /usr.

It expressly does not reimplement functions that already exist in libraries ordinarily shipped in /lib such libc6, and does not do foolish things like invent arbitrary typedefs for perfectly good C types.

Spela in skrivbordet

Jag har tidigare använt XVidCap för att spela in (delar av) det som syns på min skärm. Det har alltid fungerat fint men idag ville det inte fungera som det skulle och jag tvingades testa något nytt. Tur var det för “Desktop Recorder” (aka recordMyDesktop) är ett kanonverktyg. Kommer garanterat användas flera gånger (vid inspelning av buggar t ex). Finns även panoreringsstöd, dvs att inspelade ytan följer med musen.

Screenshot of Record My Desktop
Desktop Recorder

Vettig Maven JSLint-plugin

Äntligen en ordentlig maven-plugin som kör jslint på javascript-koden. Version 2.0.2 har bättre dokumentation än 2.0.1. Här är en snippet från en pom:


	
		
			
				com.googlecode.jslint4java
				jslint4java-maven-plugin
				2.0.2
				
					
						lint
						compile
						
							lint
						
						
							
								${basedir}/src/main/webapp/js
							
							true
							
								true
								true
								true
								true
								true
								true
								Ext,jQuery
								true
								true
								true
							
						
					
				
			

Nordea – e-legitimation

Systemkrav: Windows XP, Vista eller 7 – med Internet Explorer 7 eller senare.

“Nordeas e-legitimation är kostnadsfri” – förutom att du behöver köpa en licens för ett operativsystem från Microsoft. Tittar vi på Dustin så går det som minst på ca 1370 kronor.

De lustiga i kråksången är att BankID som Nordea använder inte alls har dessa krav. Det fungerar fint med både Mac OS och Ubuntu/Linux. Jag menar att det är precis tvärtom – BankID är kostnadsfritt, men Nordea lägger på en kostnad om ca 1370 kronor.

Way to go, Nordea!

PS. SAML-baserad e-legitimation lanseras 1 juli 2013. DS

PS2. JavaScript-snurran som ser till att bekräftelsekoder från dosan formateras vackert “123456789” blir “123 456 789” är sådant skrivet att man måste skriva in tillräckligt långsamt för att inte fastna med “123  456  7” – way to go 2! DS