Posts on tag: source
Table of contents
Adafruit Lerning PDFs Downloaden
Wir besitzen ja seit Neuestem eines dieser Tabs. Eigentlich für die Beifahrerin angeschafft, liegt es meistens nur herum. Gestern abend wollte ich im Bett noch ein paar Sachen auf der Adafruit Learning Seite lesen. Allerdings stellte sich heraus, dass unser WLAN nicht bis ins Schlafzimmer reicht!
Was tun?
Zum Glück gibts die Anleitungen dort auch als PDF Version. Ich habe mir also ein Script geschrieben, das die alle herunterlädt. Dann kann ich die bequem auf dem Galaxy Tab ohne WLAN lesen.
Hier ist das Script:
#!/usr/local/bin/bashbase=http://learn.adafruit.com
tmp=“tmp.$$”
wget -O - $base/guides > $tmp
max=
grep -A 1 last-page $tmp | grep href | awk -F \" '{print $2}' | awk -F= '{print $2}'
echo -n > $tmp
for N in
jot $max 1
; do wget -O - “$base/guides?guide_page=$N” >> $tmp donefor guide in
grep -A 1 details $tmp | grep href | awk -F\" '{print $2}'
; do echo “${base}${guide}” pdfuri=wget -O - "${base}${guide}" | grep "downloads/pdf" | head -1 | awk -F\" '{print $2}'
pdffile=basename $pdfuri
wget -N “${base}${pdfuri}” donerm -f $tmp
Das Script ist allerdings mit Vorsicht zu genießen: es lädt ALLE PDFs herunter, das sind (im Moment) 133 MB. Allerdings habe ich es so geschrieben, dass man es mehrmals ausführen kann. Wenn ein PDF schon da ist, lädt er es nicht nochmal herunter, aber wenn es auf dem Server eine neue Version gibt, dann schon. Somit kann man das Script regelmäßig ausführen und die Sammlung aktualisieren. Voraussetzung ist natürlich, dass man die PDFs dort liegen lässt, wo man sie heruntergeladen hat.
Eine Einschränkung gibt es noch: das Script ist nur unter FreeBSD mit Bash lauffähig, weil es jot(1) verwendet. Eventuell fällt mir noch eine portable Methode ein, eine Liste von Zahlen zu erzeugen.
Kinder mit kdialog zum Essen rufen
Einer der Vorteile, wenn man seinen Kids Linux installiert hat, ist dass man sich remote auf deren Rechner einloggen kann. Nicht zum Spionieren, sondern um ihnen mitzuteilen, dass das Essen fertig ist. Mit diesem kurzen Script, das als der User ausgeführt werden muss, mit dem das Kind eingeloggt ist, kann man das machen:
#!/bin/sh ok="Ok, ich komme" no="Nein, kein Hunger" msg="Mitteilung von Papa:&lr;br><font color=red size=20>Essen ist fertig</font>" export DISPLAY=:0 kdialog --yes-label "$ok" --no-label "$no" --yesno "$msg" if test $? -eq 0; then echo $ok else echo $no fi
Und wenn er/sie sich entschieden hat, bekommt man die Entscheidung in der Shellausgabe mitgeteilt.
Äusserst praktisch. Und spart die Herumbrüllerei quer durchs Haus.
Xmonad Tastaturbelegung anzeigen
Da ich xmonad erst seit zwei Tagen benutze, habe ich die diversen Tastaturbelegungen noch nicht im Kopf und brauche hin und wieder einen Hinweis. Bisher habe ich immer in der Config nachgeschaut. Aber blöd ist das ja schon irgendwie.
Jetzt hab ich mir ein kleines Script gebaut, das mir aus den Kommentaren in der Config ein Popup erzeugt, wo die Belegung dann dokumentiert ist. Ich hab es mir einfach gemacht und die Belegungen immer in den Kommentar geschrieben, anstatt den eigentlichen Haskell Code parsen zu wollen. Das macht es einfacher.
So sehen die Tastaturbelegungen in der Config bei mir aus.
Und das hier ist das Script, mit dem ich die Hilfe erzeuge.
Anbei sieht man das Popup, wenn ich Alt-h gedrückt habe.
Latexdatei aus Dolphin zu PDF umwandeln
Mein altes Macbook ist ja schon seit längerem kaputt, um genau zu sein, der Akku ist hinüber. Und ein neuer Akku ist mir zu teuer. Ausserdem will ich schon geraume Zeit von Apple weg. Jetzt habe ich ein gutes gebrauchtes Thinkpad T400 erstanden und FreeBSD installiert. Es funktioniert alles, bis aus Suspend-to-Disk (bzw der resume), aber das krieg ich auch noch hin.
Wie üblich, verwende ich CTWM als Fenstermanager. Da ich aber schon alt bin (Muhaha) und für die eine oder andere Sache doch den Finder benutzt hatte, benutze ich jetzt den Filemanager von KDE4, Dolphin. Im Grunde ist der besser als der Finder und ich bin sehr zufrieden damit.
Ich hatte aber ein Problem: irgendwann vor vielen Jahren habe ich die schwerwiegende Entscheidung getroffen, auf dem Macbook Dokumente mit Pages zu erstellen. Auch heute, wo ich ihn nun nicht mehr benutze, kann ich eines sagen: Pages IST eine geniale Software. Was Wysiwyg Wordprocessing betrifft, ist Pages der Meister. Meiner Meinung nach jedenfalls. Schwerwiegend deshalb, weil das Speicherformat von Pages natürlich proprietär ist. Zunächst habe ich mir ein Applescript erstellt, der meine ganzen Pages-Dokumente zu PDF und RTF konvertiert hat:
on open theFiles tell application "Pages" repeat with aFile in theFiles open aFile set docName to name of front document -- Remove .pages extension. set prevTIDs to AppleScript's text item delimiters set AppleScript's text item delimiters to ".pages" -- Add .pdf extension. set docName to first text item of docName & ".rtf" set AppleScript's text item delimiters to prevTIDs -- Get folder that dropped end tell -- Finder -- Save file to folder that dropped file exists in. set docPathAndName to sourceFolder & docName save front document as "SLDocumentTypeRTF" in docPathAndName close front document end repeat end tel
Einfach als pages2pdf.applescript speichern, doppelklicken, als .app speichern und unten ins Dock ziehen. Dann kann man im Finder seine Pagesdateien markieren und gesammelt auf das Icon von der neuen App ziehen und er konvertiert es dann alles.
Somit komme ich noch an meine alten Dokumente heran, aber wie erstelle ich neue? Ich habe mich für das gute alte LaTex entschieden. Ich habe mir eine Vorlage für scrlttr2 von Koma-Script erstellt. Die resultate sind wie immer ein Traum. Und damit ich meine Latex-Briefe auch bequem aus direkt im Dolphin Konvertieren kann, habe ich mir einen Service geschrieben:
[Desktop Entry] Type=Service X-KDE-ServiceTypes=KonqPopupMenu/Plugin MimeType=application/x-tex Actions=briefpdf;[Desktop Action briefpdf] Name=Convert TEX Letter to PDF Icon=tools-wizard.png Exec=~/bin/briefpdf %f
In ~/.kde4/share/kde4/services/ServiceMenus/TexBrief.desktop speichern und schon kann man fröhlich PDFs aus Latex erzeugen:
Ein Träumsche!
Der Service selber ruft übrigens nur ein Perlscript auf, das kann man sich hier anschauen. Im gleichen Verzeichnis befindet sich auch meine Briefvorlage und ein Beispielbrief.
Update 2012-11-25:
Hach, ich muss sagen, das war eine weise Entscheidung, den Apple abzuschaffen. Ich liebe es, wieder unter FreeBSD zu arbeiten. Heute habe ich Drucken eingerichtet. Ehrlich gesagt, hat es mir davor gegraut. Drucken unter Linux/FreeBSD ist immer so eine Sache. Dachte ich. "Drucker Hinzufügen" => "Drucker aussuchen" => "Speichern" => Fertig. Datei geöffnet, Drucken, Druckt. Einfach so! Wie geil ist das denn?!Quietly Confident - Static Website Generator
Sodele. Für die Beifahrerin brauchte ich einen Static Site Generator, das heisst, ein Tool mit dem man aus Textseiten und Verzeichnissen eine Webseite generieren kann. Der Benutzer (also die Beifahrerin) soll dabei mit möglichst wenig bis nichts technischem belästigt werden.
Ich habe eine Menge Tools ausprobiert, es gibt da ja eine Menge. Aber ich fand keins, das den Anforderungen genügte. Entweder zu kompliziert oder altmodisch oder in Ruby geschrieben. Langer Rede, kurzer Sinn: hab ich mir eben meinen eigenen geschrieben. Man hat ja sonst nichts zu tun.
Das Teil heisst Quietly Confident. Der Name ist eventuell erklärungsbedürftig. Es war so, dass mir halt nichts gescheites eingefallen ist. Und als ein Geek, der etwas auf sich hält, bin ich natürlich Science Fiction Fan. Ach was - Freak! Und als ein solcher liebe ich die Bücher der Kultur-Reihe von Ian Banks. In diesen Büchern gibt es auch Raumschiffe und diese gelten in der Kultur als vollwertige Bürger. Sie haben eine Persönlichkeit und Namen. Die Namen der Schiffe in der Kultur-Reihe sind legendär. Nun ja, eines davon ist die "Sleeper Service", ein sogenanntes "Allgemeines System Fahrzeug". Dieses Schiff mochte ich ziemlich gerne. Witziger Typ sozusagen. Das Schiff hatte jedenfalls früher mal anders geheissen und hat sich selbst umbenannt nach: Quietly Confident. Daher kommt also der Name für meinen Sitegenerator. Hat freilich rein gar nichts mit Perl, Webseiten oder git zu tun. Und? Mir doch Latte.
Quietly Confident oder abgekürzt qc versteht Markdown, Perl POD, HTML (auch von MS Word erzeugtes HTML) und Plain Text. Er wandelt alles in HTML um. Unterverzeichnisse werden zu Menüs mit einem Untermenüpunkt pro Datei dort drinnen. Sortieren kann man in dem man einem Namen eine Zahl voranstellt. Bilder tut man irgendwo rein, qc kümmert sich darum, dass die nachher alle dort landen wo sie sollen. Es gibt ein Blogfeature und das Tool unterstützt Git. Man kann es als Daemon laufen lassen. Dabei beobachtet es ein Git Repository und wenn sich da was geändert hat, aktualisiert er es und baut die Seite neu. Geht aber auch alles ohne Git. Und zum schnell mal eben Testen ist auch ein Webserver eingebaut.
Wie üblich bei meinen Perlsachen ist der primäre Download beim CPAN. Den Source verwalte ich bei Github.
Hier hab ich mal eine Beispielseite laufen, die mit Quietly Confident erzeugt wurde.
Update 2012-11-11:
Ein Demo Video gibts jetzt auch bei LUpdate 2012-11-05:
Ich habe jetzt ein Synchronisationsscript LDamit das klappt, muss man auf dem Windows-Client-Rechner L
Anschliessend muss man das Teil noch bearbeiten, so dass die Parameter passen wie Username, Hostname und Verzeichnisse. Und dann als Service installieren:
cygrunsrv -I websync -d "Sync Static Web Source" -p /bin/bash.exe -a /home/$USER/bin/websync-serviceUnd danach Starten:
cygrunsrv -S websyncDas wars auch schon. Der Service loggt nach /var/log/websync.log bzw in das rsync.log File, das im Script angegeben ist (den Pfad muss man anpassen).
Im Ergebnis ist das die maximal komfortabelste Möglichkeit, eine statische Website zu pflegen, ohne sich mit irgendwelchen Online-Editoren, CMS-Kram, manuellen Uploads und dergleichen Dingen herum zu plagen.