diff mit eclipse

Man mag es kaum glauben, aber Eclipse hat doch die ein oder andere nutzliche Funktion (von Haus aus) dabei. Man kann 2 Dateien sehr einfach miteinander vergleichen. Einfach die Dateien markieren dann Rechtsklick -> „Compare With“ -> „Each Other“ -> 🙂 .

Advertisements

Google Keep in Thunderbird

Google Keep ist eine relativ neue Notiz App von Google (offensichtlich 😉 ). Böse Zungen behaupten Google will Evernote damit aus dem Markt drängen, aber Fakt ist, dass Google Keep bei weitem nicht den Funktionsumfang bietet wie Evernote. Allerdings ist es ein sehr schöner Ersatz für die 100 Zettel die man an den Monitor klebt. Viel mehr kann Google Keep auch nicht: Notizen erstellen, Notiz in Listenform erstellen, Bild an Notiz anhängen, Notizen farbig markieren. Das ist im Großen und Ganzen ein paar Post-It Blöcke und ein Kuli….

Für mich ist das allerding völlig ausreichend, und da ich die Googel Applikationen gerne benutze habe ich mich auch für Google Keep entschieden. Leider teilt Google nicht meine Vorlibe von „klassischen“ Desktop Apps. Wenn ich Google Keep im Browser verwende, kommt es nicht selten vor, dass ich es in meinen gefühlten 600 Tabs nicht finde und ständig neu öffnen muss. Das empfinde ich als nicht praktikabel denn wenn „man mal schnell“ was aufschreiben muss fange ich nicht an die Tabs zu durchsuchen ….

Also bin ich auf die Idee gekommen wie bei ThunderCal einen Butten in Thunderbird einzubauen. Mit einem Klick auf den button öffnet sich in Thunderbird ein neuer Tab der Googel Keep öffnet. Dadurch benutzt man direkt die von Google bereitgestellte WebApp aber in einem schnell erreichbaren Tab. Dadurch erweitert sich Thunderbird auch wieder ein Stück in Richtung Selbstorga-App.

Man muss dazu sagen, dass ich eigenlicht keine Ahnung von AddOn Entwicklung habe. Deswegen habe ich einfach die ThunderCal App so modifizerit, dass sie Google Keep aufruft und dem eigentlichen Thundercal nicht in die Quere kommt (hoffe ich). Die Qualität des Codes ist meines erachtens recht gut. Wenn ich mal etwas mehr Zeit habe, überarbeitet ich die App nochmal aber bis dahin gibt es sie hier als Beta zum download.

Viel Spass damit 😉

ThunderKeep

Links:
Download ThunderCal 1.1 und ThunderKeep 0.6 (auf Basis von ThunderCal 1.1)

Raspberry Pi als „Audiosink“

Ich arbeite momentan an einem kleine Zoneplayer System. Während der Recherche nach geeigneter Software ist mir Airplay und UPNP AV aufgefallen. Frisch motiviert hab ich gleich etwas gebastelt um im Tanzverein dem Trainer einen Airplay Renderer anzubieten. Jetzt bin ich bei den Feinheiten.

Die Sache ist eigentlich ganz einfach wenn man weiss wie es get 😉 XBMC und damit alle XBMC-Ditributionen für das Raspberry Pi unterstützt von Haus aus Airplay und UPNP AV. Und zwar das ganze für Audio UND Video. Sehr cooles Feature muss ich sagen.

Wer Android hat, sollte sich die App BubbleUPNP mal ansehen. Die App ist kostenlos und funktioniert super. Bei Apple kann man mit Boardmitteln loslegen (Stichwor „Airplay“).

Was mich nun interessiert ist die Performance. Bedingt durch das Streaming der Daten und die Latenzen im Netz, die schwachen Prozessoren im Handy/Tablet und im Pi gibt es leider ein paar Delays. Ich versuche nun das Delay auf der Pi Seite zu minimieren und probiere deswegen jede XBMC-Distribution durch 😉

Folgende Daten konnte ich ermitteln:

Xbian:
UPNP Start / Stop: ca. 0,3s
UPNP neues Lied: ca. 5,2s
Airplay Start / Stop: ca. 3,5-4s
Airplay neues Lied: ca. 6 – 10s
Boot Dauer: ca. 47s

Raspbmc:
UPNP Start / Stop: ca. 0,4s
UPNP neues Lied: ca. 5,6s
Airplay Start / Stop: ca. 10,3s
Airplay neues Lied: ca. 11 – 15s
Boot Dauer: ca. 46s

OpenELEC:
UPNP Start / Stop: ca. 0,3s
UPNP neues Lied: ca. 6-9s
Airplay Start / Stop: ca. 3,3s (aber Aussetzer! -> zu kleiner Puffer)
Airplay neues Lied: ca. 5,5s (aber Aussetzer! -> zu kleiner Puffer)
Boot Dauer: ca. 46s

Man muss dazu sagen, dass die Liedlänge Auswirkungen auf die Zeiten hat. Desweiteren ist mein IPod Touch mit erheblich schlechterer Hardware ausgestattet als mein Android Handy. Nichts desto trotz sind die Airplay Zeiten doch etwas enttäuschend. Ich hoffe dass sich das in der Zukunft bessert. Ich denke es gibts noch etwas Tuning potienzial wenn man Puffergröße und ähnliches umstellt. Allerdings suche ich mehr eine „out of the box“ Lösung. Und hier muss man sehen das Xbian die besten Werte liefert. Ich werde das mal eine Weile beobachten 😉

Network Scanner mit dem Raspberry Pi

Heute habe ich dringend meinen alten Scanner gebraucht und musste leider feststellen, dass es keinen Windows 8 Treiber mehr gibt -.-

Abhilfe schafft da ein Raspberry Pi. Ich habe beim kauf darauf geachtet, dass der Scanner von der SANE Bibliothek unterstützt wird 🙂 Jetzt kann ich mit meinem guten alten Scanner über Netzwerk scannen.

Eine Schritt für Schritt Anleitung gibt es hier:

Raspberry Pi: Sharing a scanner with the Network – even Windows!

Alternativ kann man das Pi so einstellen, dass es über einen Knopfdruck mit dem Scan beginnt und das Bild als PDF in die Dropbox kopiert. Das ist vllt die einfachere Lösung 😀

Hier noch ein paar weitere Infos:

Scannen mit dem Raspberry Pi und Canon Scannern

Packer Bash Script

Und hier der besagte Script aus dem letzten Post. Unter Linux wird „packer testscript.sh script.sh daten.tgz“ aufgerufen und man bekommt einen Script namens „testscript.sh“ der die datei „daten.tgz“ enthält.

#!/bin/bash
#
# Creates an script with bundled data
#
# Author: Jens Heuschkel <jens@3und20.eu>
#

BANNER="packer v0.1"

PROG=`basename "$0"`
if [ $# -ne 3 -o "$1" == "--help" -o "$1" == "-h" ]; then
  echo $BANNER
  echo "Usage: ${PROG} NEWSCRIPT SCRIPT DATA_TAR"
  echo "       Creates a wrapper called NEWSCRIPT that wraps the"
  echo "       specified SCRIPT and appends the DATA_TAR"
  echo ""
  echo "   or: ${PROG} -h|--help"
  echo "       Prints this message."
  exit 0
fi

NEWSCRIPT=$1
SCRIPT=$2
DATA_TAR=$3

echo $BANNER
echo "Checking files.."

if [ ! -e ${SCRIPT} ]
then
 echo "Script \"${SCRIPT}\" not found." >&2
 exit 1
fi

if [ ! -e ${DATA_TAR} ]
then
 echo "Data \"${DATA_TAR}\" not found." >&2
 exit 1
fi

touch $NEWSCRIPT
if [ ! -e ${NEWSCRIPT} ]
then
 echo "Can't write \"${NEWSCRIPT}\". Check rights." >&2
 exit 1
fi

# Get size
TAR_SIZE=`stat -c %s ${DATA_TAR}`

#SPLIT_CMD="tail -c ${TAR_SIZE} \$0 | tar -xz ${DATA_TAR}"
SPLIT_CMD="tail -c ${TAR_SIZE} \$0 > ${DATA_TAR}"

# Write untar part
cat > ${NEWSCRIPT} <> $NEWSCRIPT

cat >> ${NEWSCRIPT} <<'EOF' exit # Data goes here EOF cat $DATA_TAR >> $NEWSCRIPT

chmod +x $NEWSCRIPT
echo "done"
exit 0

Der Script funktioniert nach dem Vorbild von jar2sh von martiansoftware

Quelle:
http://www.martiansoftware.com/lab/jar2sh.html

More Bash

Uns schon wieder eine kleine Bash Weisheit….
Ich bastel gerade an einem Script der Scripte und Tar-Daten in eine Datei packt. Ist ganz praktisch für install Scripte die eigene Daten mitbringen sollen.

Das Ganze funktioniert so:

  • Der Script schreibt ein paar Zeilen um die Daten weg zu splitten
  • Dann wird der eigentlich Script geschrieben
  • Dann die Tar-Daten (einfach mit cat)

Beim ausführen werden die Daten einfach vom Ende weg kopiert und dann verhält sich der Script die der Ursprungsscript.

Und in dem Zusammnhang habe ich eine spielerei mit cat entdeckt:

  • cat > ZIELDATEI <<EOF schreibt die folgenden Zeilen bis EOF kommt.
  • cat > ZIELDATEI <<‚EOF‘ macht das gleiche 😀

Ich hab mich jetzt gefragt wo der unterschied ist, weil ich beides in einem Script gesehen habe.
Bei der version mit ‚EOF‘ werden Variablen nicht aufgelöst und bei EOF schon. Gut zu wissen 🙂