Categories
Consumer Electronics

Kurztest SanDisk Sansa Clip Zip

Meine Frau gehört scheinbar zu den Wenigen, die noch “normale” MP3-Player (statt eines völlig überdimensionierten 700 EUR-Handys) benutzen. Da ihr altes Gerät (etwa zehn Jahre alt, Preis damals 10 EUR bei Plus!) mittlerweile nicht mehr wirklich gut funktionierte, habe ich ihr zu Weihnachten einen neuen Player geschenkt, einen SanDisk “Sansa Clip Zip” mit 4 GB in rot zum Preis von knapp 40 EUR.

Im Folgenden werde ich einen kurzen Erfahrungsbericht abgeben, vielleicht hilft das ja dem einen oder anderen…

Positive Eigenschaften des SanDisk “Sansa Clip Zip” sind:

  • extrem kompakte Bauweise
  • trotzdem farbiges, gut lesbares Grafikdisplay (96×96 Pixel)
  • absolut rauschfreier Betrieb auch auf kleinster Lautstärke
  • gut bedien- und konfigurierbares Gerätemenü
  • Ideal für Hörbücher/-spiele: fängt nach Wiedereinschalten exakt an der Stelle wieder an an der man ihn ausgeschaltet hatte
  • Einschlaffunktion: schaltet sich nach einstellbarer Verzögerung von selbst aus
  • Gerät besitzt einen Mikro-USB-Anschluss (statt Mini-USB), wie ihn mittlerweile fast jedes Handy hat. Das hat den Vorteil dass man das Gerät bei Bedarf “überall” laden kann.
  • Akkulaufzeit sehr gut
  • Micro-SD-Slot für Erweiterung um max. 32 GB, so dass dann insgesamt 36 GB zur Verfügung stehen, was wirklich üppig ist.
  • Kompatibel zur Open Source-Firmware “Rockbox” (im Status “stabil”). Das ist eine sehr wertvolle Eigenschaft da man dadurch Chancen hat, in Zukunft Unterstützung für neue Dateiformate oder Fehler-/Problembehebungen zu erhalten, die man vom Hersteller eines solch günstigen Geräts in der Regel nicht erwarten kann und auch nicht erhält.
  • Keine extra Software für Befüllung notwendig. Es reicht der Standard-Dateimanager des jeweiligen Betriebssystems, da das Gerät als USB-Mass Storage-Device an jedem PC (ab Windows XP, natürlich auch unter Linux) oder Mac erscheint.

Nachteile hat meine Frau bisher keine entdeckt, sorry. 😉

Hier noch der Link zum Hersteller für etwaige Firmware-Updates und zur Unterstützung bei Problemen…

Categories
Photography

Übersicht Yongnuo Systemblitzgeräte

Da ich mir für mein gerade neu eingerichtetes kleines Fotostudio noch einen zusätzlichen Systemblitz kaufen wollte und mir die Marke “Yongnuo” als preiswert, aber dennoch sehr leistungsfähig aufgefallen war, habe ich mir die diversen Modelle des Herstellers einmal etwas genauer angeschaut.

Da es wirklich eine Vielzahl unterschiedlicher Modelle mit teilweise sehr subtilen Unterschieden gibt, habe ich mir ein Excel-Sheet mit den einzelnen Modellen und deren Eigenschaften erstellt. Dieses Sheet kann als Attachment dieses Blogbeitrages herunter geladen werden.

Wichtig: Für die Genauigkeit kann ich leider keine Haftung übernehmen. Ich habe das Sheet nach bestem Wissen und Gewissen erstellt, teilweise waren Informationen aber nur sehr “verklausuliert” oder angedeutet, so dass ich sie interpretieren musste. Dabei können natürlich Fehler entstanden sein.

Categories
Cell Phones

iPhone 4 Battery Repair

If you follow my blog you know that my old iPhone 4 suffered from the well-known issue of a swollen battery. I didn’t want to throw it away before checking the actual extent of the damage — maybe it could be repaired with little effort?!

So I spent 15 EUR and ordered a Pentalobe screwdriver and plastic opening tools from iFixIt Europe. Only a few days later I received the tools, and using the instructions they have on their website how to open the iPhone 4 and replace the battery it took me only 5 minutes to find out that there was no damage whatsoever to the inner of the iPhone: It was only the battery itself that was damaged (swollen), and the glass back cover that was glued into a plastic frame had become loose.

Here’s a picture of the old battery:

SwollenBattery

You can clearly see that the battery was not “flat”, but strongly swollen.

Therefore I decided to order a new battery. This time I ordered from eBay since a new battery could be had from there for only 12 EUR, while iFixIt would have charged me 30 EUR (both incl. shipping).

The actual repair was extremely easy: Just unplug the damaged one (after removing a tiny Philips screw that secured the battery plug), and then insert the new one into the iPhone, plugging in the battery cord into its socket, and secure it with the tiny Philips screw.

I also “repaired” the back cover by firmly pressing the glass plate onto the plastic frame. Luckily the glue was still strong enough to firmly hold the glass.

I then assembled the iPhone again, and plugged the charger in. After a couple of seconds, it started booting, and the charging process started, so the new battery seemed to at least not be D. O. A. 🙂

Since I had read comments on Amazon that obviously some people had received used batteries as replacement parts (some had already around 200 charge cycles!), I decided that I wanted to check my battery stats. There’s a tool in Cydia Store called BatteryInfoLite that will display extensive information about your iPhone’s battery, so I decided to jailbreak my phone (that still had iOS 5.0.1 installed) to get Cydia. I used redsn0w 0.9.13dev4, and within only a couple of minutes my device was jailbroken, and Cydia was installed.

Here’s a screenshot of what BatteryInfoLite displayed about my battery:

BatteryInfoLite

 The serial number that was displayed by the tool was identical to the one printed on the battery, which I regard as another indication of reasonable quality. The last 4 digits are obviously an indication of the battery’s design capacity.

I felt happy when the phone was working again. I will now use it as an MP3 player (which it essentially is, after all… ;-))

Categories
Security

Nagios check for Avira AntiVirus definitions

I wrapped up a quick script to check whether my Avira AntiVirus definitions are current. Since it might be useful to other people I thought I’d just publish it here:

#!/bin/bash

YOUNGEST_FILE=$(ls -tr /usr/lib/AntiVir/guard/*.vdf|tail -1)

WARN=$1
CRIT=$2
WARN=$((${WARN:=3} * 86400))
CRIT=$((${CRIT:=7} * 86400))

function age() {
   local filename=$1
   local changed=`stat -c %Y "$filename"`
   local now=`date +%s`
   local elapsed

   let elapsed=now-changed
   echo $elapsed
}

FILEAGE=$(age "${YOUNGEST_FILE}")

if [ $FILEAGE -gt $CRIT ]; then
    echo "CRITICAL - Youngest file is $FILEAGE sec old"
    exit 2
elif [ $FILEAGE -gt $WARN ]; then
    echo "WARNING - Youngest file is $FILEAGE sec old"
    exit 1
else
    echo "OK - Youngest file is $FILEAGE sec old"
fi

The default (if you don’t supply any command-line parms) is to warn if the youngest of all virus definition files is older than 3 days, and a critical alert will be triggered if it is older than 7 days. If you supply only one parm it will change the number of days until a warning is triggered, and if you also supply the second parm it will also change the days for a critical alert.

I hope this is useful for someone!

Categories
Cell Phones WTF

Don’t neglect your iPhone, or else… :-(

I did not use my iPhone4 for a while (since I have a Samsung Galaxy S4 now, which I like much more), and when I wanted to “revive” it recently as a music player I found that it had burst (no, I didn’t drop it, it was just lying around on my desk):

20130927T100213-IMG_0106

20130927T100257-IMG_0107Obviously the battery had swollen…

I immediately called the Apple dealer closest to my home and told them about it. They said it’s normal for a battery to burst if the device hasn’t been used for a while. They said I could buy a new iPhone 4 for a “mere” 190 EUR… 🙁

If you Google for this issue you will notice that it’s pretty common, still Apple cares a sh*t about it… I’ve never seen such major battery issues on any mobile phone I’ve owned before — and I had many!!!

Thanks, Apple. This is what you get when you buy from a “premium” manufacturer…

Needless to say that I will never buy an iPhone again…

Categories
Linux

How to roll your own DynDNS…

I didn’t want to rely upon services like DynDNS.org (which obviously was a smart decision since they now pretty much closed their free service) so I rolled my own…

What you need is the following:

  1. Host your domain yourself using the popular nameserver “Bind.”
  2. Host a small CGI script that will tell you your external IP (or use one of the many free services available that do the same).
  3. Run a machine within your LAN 24×7 which can detect changes of your external IP and update your hostname accordingly.

Step 1: Setup Bind for Dynamic DNS Update

to do

Step 2: CGI Script

The CGI script that needs to be deployed somewhere in the Internet to tell you your external IP is very simple and tiny and looks like this:

#!/bin/bash
echo "Content-type: text/plain"
echo ""
echo "$REMOTE_ADDR"

Step 3: External IP Probe

Here’s the script that needs to run periodically on a machine (I use Ubuntu server) within your LAN (or on your Internet gateway, although if you have the means to run stuff on your gateway you could employ a more elegant, “proper” solution):

#!/bin/bash
lockfile="/run/extip"
lockfile-check $lockfile
if [ $? -eq 0 ]; then
    echo "Locked, bailing out..."
    exit 1
fi

lockfile-create $lockfile
filename="/var/lib/extip.txt"
logfile="/var/log/extip.log"
keyfile="/root/var/lib/dyndns/Kmyhost.dyn.example.org.+163+56719.key"
cur_ip=`curl -s http://example.org/cgi-bin/myip.sh`
prev_ip=`cat $filename`
if [ $cur_ip != $prev_ip ]; then
    echo "`date --rfc-3339=seconds` IP changed, old IP: $prev_ip, new IP: $cur_ip" >>$logfile
    echo "$cur_ip" >$filename
    # Wait 5 sec to complete, force kill if nsupdate not done after 10 sec
    timeout -k 10s 5s nsupdate -k $keyfile -v<<EOF
server example.org
zone dyn.example.org.
update delete myhost.dyn.example.org. A
update add myhost.dyn.example.org. 60 A $cur_ip
send
EOF
fi
lockfile-remove $lockfile

The above script — even though it’s pretty small — is not a quick’n’dirty hack, but even employs some sanity checks:

  • It makes sure that only one instance is running at any time, and
  • it uses the timeout command from the Linux coreutils package to enforce that the nsupdate command will be terminated if it takes longer than 10 s (e. g. due to network issues).

I run the above script once a minute as follows:

# cat /etc/cron.d/extip 
* * * * * root /usr/local/bin/pubextip.sh

That’s it!

Let me know what you think. Suggestions how to improve things are, as always, very welcome!

Categories
Security

Enabling Forward Secrecy in Apache

I tried to follow the instructions given in this article by Ivan Ristic, but somehow it seems not to be working, or the test at https://www.ssllabs.com/ssltest/ might be broken… 🙁

Unfortunately I can’t seem to comment on Ivan’s article (I even registered just to reply), so I created this blog post, hoping that my trackback will work…

This is what I have in Apache:

SSLHonorCipherOrder On
SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH

According to the output of openssl ciphers this should enable the following cipher suites (filtered by only those that contain ECDHE):

ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA256
ECDHE-RSA-RC4-SHA       SSLv3 Kx=ECDH     Au=RSA  Enc=RC4(128)  Mac=SHA1
ECDHE-ECDSA-RC4-SHA     SSLv3 Kx=ECDH     Au=ECDSA Enc=RC4(128)  Mac=SHA1
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
ECDHE-RSA-DES-CBC3-SHA  SSLv3 Kx=ECDH     Au=RSA  Enc=3DES(168) Mac=SHA1
ECDHE-ECDSA-DES-CBC3-SHA SSLv3 Kx=ECDH     Au=ECDSA Enc=3DES(168) Mac=SHA1
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(128) Mac=AEAD
ECDHE-ECDSA-AES128-SHA256 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA256
ECDHE-RSA-AES128-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
ECDHE-ECDSA-AES128-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(128)  Mac=SHA1

As far as I can tell this should include the below cipher suites which supposedly enable forward secrecy:

    TLS_ECDHE_RSA_WITH_RC4_128_SHA
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA

Unfortunately the above SSL test shows the following when running towards my Apache:

Forward Secrecy 	No

Does anyone know what that means? Is the test just broken, or am I misunderstanding anything?

Categories
Personal Navigation Devices

Erste Eindrücke vom Becker Ready 50 LMU

Äußerlichkeiten

Nachdem ich zunächst das Garmin nüvi 150T LMT und dann das Blaupunkt TravelPilot 50 CE LMU getestet und für “ungeeignet” befunden hatte haben wir uns nunmehr das Becker Ready 50 LMU bestellt, da die Kundenmeinungen auf Amazon recht positiv sind und wir einige für uns wichtige positive Aussagen gefunden haben.

Das Gerät ist etwas dicker als die beiden erst genannten Navis, jedoch keineswegs als “dick” oder “klobig” zu bezeichnen. Das Design ist “gefällig” — wobei eine solche Einschätzung natürlich subjektiv ist.

Direkt nach dem Auspacken fiel mir auf, dass das Becker — anders als die beiden anderen Geräte — über einen Micro-USB-Anschluss (anstatt eines “veralteten” Mini-USB-Anschlusses) zum Laden verfügt. Das ist insofern positiv, als die überwiegende Mehrzeit der in den letzten Jahren auf den Markt gekommenen Handys über einen eben solchen Anschluss verfügen, so dass in beinahe jedem Haushalt ein entsprechendes 230 Volt-Ladegerät existieren dürfte — mitgeliefert wird lediglich ein Autoladegerät, was aus dem vorgenannten Grund kein Problem sein dürfte.

Der Saugnapfhalter für das Becker Navi ist sehr kompakt, so dass er leicht im Handschuhfach oder in Schubladen/Fächern unter dem Sitz verstaut werden kann. Anders als viele andere Halter, bei denen das Navi per “Klemmkraft” eingerastet wird, hat der Halter des Beckers einen federunterstützten Rastmechanismus. Potenziell halte ich das für haltbarer und damit für die bessere Lösung — ob das tatsächlich so ist wird sich erst noch zeigen…

Das Becker verfügt über ein sehr ausführliches “Information”-Menü, dem man sämtliche Versionsstände für das Navigationsprogramm, Karten, Sprachdateien, TMC, POI, zeitabhängige Routinginformationen, etc. entnehmen kann. Das habe ich bisher bei keinem Navi gesehen — sehr lobenswert! Ab Werk verfügt das Gerät über die Software-Version 9.6.1.215570 (SR2). Die Deutschland-Karte vom Anbieter Navteq hatte den Stand 2011.Q1, war also mehr als zwei Jahre alt. Eigentlich schon das erste Ärgernis, denn selbst wenn man das Erscheinungsdatum des Geräts von circa 5/2012 berücksichtigt war die Karte auch damals schon älter als ein Jahr. Egal, auf Grund der kostenlosen “lebenslang” verfügbaren Kartenupdates ist das kein Problem. Mitgeliefert werden übrigens Karten von 44 europäischen Ländern — für uns wäre noch USA interessant, aber diese Karte gibt es fast nirgendwo kostenlos dabei, diese muss extra erworben werden.

Categories
Debian

Debian 6.0 to 7.0 upgrade issues…

I upgraded from Debian 6.0 (Squeeze) to Debian 7.0 (Wheezy) today. In general the upgrade was relatively painless, but as always some things went worse than they could… 🙁

My local Subversion repository is using a Berkeley DB, and the underlying BDB version went up from 4.8 to 5.1. In consequence I got an error when I wanted to check in a changed config file:

svn: DB_VERSION_MISMATCH: Database environment version mismatch
svn: bdb: Program version 5.1 doesn't match environment version 4.8

I remember that this has already been an issue with the last major Debian upgrade… Did I miss something in the release notes or package doc, or did the Debian folks miss this one?!

Anyway, here’s how to repair the above (based on instructions found here). Install packages db4.8-util and db5.1-util and execute the following commands:

# cd /path/to/repo
# db4.8_checkpoint -1
# db4.8_recover
# db4.8_archive
log.0000000024
# svnlook youngest ..
746
# db5.1_archive -d

Afterwards you can remove the two packages again.

Next thing I noticed

Categories
Personal Navigation Devices

QuickGPSfix bei TomTom

Richte gerade für meinen Vater ein neues TomTom XXL Classic ein. Dabei stolpere ich über ein nettes Feature, das sich “QuickGPSfix” nennt. Was verbirgt sich dahinter? Es handelt sich um die Offline-Aktualisierung des Navis mit A-GPS-Daten.

A-GPS ist ein Verfahren, bei dem der GPS-Chip bestimmte Informationen über Satellitenstandorte, Satellitenstatus, etc. erhält. Dadurch kann der sogenannte “Fix”, also die Posititonsbestimmung, deutlich schneller durchgeführt werden als ohne diese Informationen, oft innerhalb weniger Sekunden.

Bei Handys ist dieses Verfahren seit Jahren Standard. Diese beziehen die A-GPS-Daten online aus dem Internet. Bei den meisten Navis ist dies nicht möglich (abgesehen von denen, die eine SIM-Karte zur M2M-Kommunikation enthalten). Sehr clever ist daher die Aktualisierung über ein Programm auf dem PC. Die A-GPS-Daten werden üblicherweise für einen Zeitraum von etwa sechs Tagen in die Zukunft von einem Feed-Server herunter geladen (so ist es jedenfalls bei meinem Bluetooth-GPS-Dongle). In diesem Zeitraum steht dann A-GPS-Unterstützung zur Verfügung. Danach muss das Navi wieder an den PC, sonst kann nur reines hardwarebasiertes GPS durchgeführt werden, bei dem ein Fix durchaus mal 30-60 Sekunden dauern kann.