Kategorie: IT

Markdown Files zu PDF konvertieren

Markdown ist eine sehr einfache „Markup“ Sprache, um Texte schnell und einfach zu formatieren. Mit einem entsprechenden Markdown Konverter kann man ein einfaches Markdown File in kurzer Zeit ins HTML Format konvertieren.

In der Vorlesung Programmieren 2 der Universität Bern erhalten wir wöchentlich unsere Programmiere Aufgaben in einem in Markdown geschriebenen File. In der Übungsstunde habe ich festgestellt, dass man mit TextMate eine schöne Vorschau generieren kann. Leider ist TextMate nur für den Mac verfügbar, so musste ich mich unter Linux eine andere Lösung finden.

Nach einigen Webrecherchen bin ich auf das Markup Konvertierungstool Pandoc gestossen, welches unter anderem auch das Markdown Format unterstützt.

Pandoc kann man unter Ubuntu via

sudo apt-get install pandoc

installieren.

Pandoc biete eine separates Skript, welches Markdown Dokumente in ein PDF File konvertieren kann (markdown2pdf).

Da mir beim ersten Versuch die PDF Ausgabe noch nicht gefallen hat, habe ich mich daran versucht die Ausgabe zu ändern. Glücklicherweise arbeitet das Skript mit pdflatex, somit war es möglich einen eigenen Latex Header zu erstellen und einzubinden.

Das Programm muss für einen alternativen Header mit folgenden Parametern aufgerufen werden:

markdown2pdf -C head.sty document.mdown -o document.pdf

Das Resultat lässt sich sehen, die Problemstellungen sind nun viel angenehmer zu lesen.

Anbei mein erstelltes Headerfile head.sty

\documentclass[a4paper,10pt,leqno]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{marvosym}

%Seitenlayout%
\usepackage{vmargin}
\setmarginsrb{2.0cm}{2.0cm}{2.0cm}{2.0cm}{0.6cm}{0.6cm}{0.6cm}{0.5cm}

%Schriftart%
\usepackage{mathptmx,charter,courier}
\usepackage[scaled]{helvet}

%Header %
\usepackage{fancyhdr}
\pagestyle{fancy} %eigener Seitenstil
\fancyhf{} %alle Kopf- und Fußzeilenfelder bereinigen
\fancyhead[L]{P2 problemset} %Kopfzeile links
\fancyhead[C]{} %zentrierte Kopfzeile
\fancyhead[R]{markdown2pdf} %Kopfzeile rechts
\renewcommand{\headrulewidth}{0.4pt} %obere Trennlinie
\fancyfoot[C]{\thepage} %Seitennummer
\renewcommand{\footrulewidth}{0.4pt} %untere Trennlinie

Giggle das praktische Git GUI

Auf der Suche nach einem GUI Programm mit dem man die Änderungen einzelner commits praktisch zurückverfolgen kann, bin ich auf das Gnome-Programm Giggle gestossen.

Giggle bietet eine sehr simple und übersichtliche Oberfläche auf der sämtliche Commits in einem Repository sichtbar sind. Man kann diese einzelnen commits anwählen und die gemachten Änderungen sowohl im Textformat wie auch in der Dateistruktur zurückverfolgen.

 

Quelle: http://live.gnome.org/giggle

Giggle ist in den Quellen von (k)ubuntu enthalten und lässt sich leicht via

sudo apt-get install giggle

installieren.

PDF drucken mit Okular

Seit einiger Zeit hatte ich beim Vorlesungsfolien ausdrucke mit dem Druckerspeicher zu kämpfen, die Datenmenge war immer so gross, dass der Speicher bereits nach 1 – 2 Seite Folien mit einigen Grafiken zu klein war.
Die Druckaufträge konnten so nicht ausgeführt werden und es war jedes mal ein mühsames Unterfangen alle Folien einzeln zu drucken.

Nach einigen Tests stelle sich heraus, die Fehlerquelle muss der Adobe Reader sein, denn nur mit dem Adobe Reader wurden die Druckaufträge auf riesige Werte aufgebläht.
Alternativ dazu bietet sich unter Kubuntu der bereits in KDE integrierte PDF-Reader Okular an, welcher die Druckaufträge Speicher sparend ausführt.

Leider ist jedoch das Druckmenu für mehrseitigen Druck pro Blatt nicht so intuitiv wie beim Adobe Reader.
Nach mehreren Versuchen haben sich aber folgende Einstellungen bewährt:

  • 4 Seiten pro Blatt, Querformat: von unten nach oben, links nach rechts mit Duplex Printing: Long-Side
  • 6 Seiten pro Blatt, Hochformat: von unten nach oben, links nach rechts mit Duplex Printing: Long-Side

Gegebenen falls lassen sich auch die Seitenränder der einzelnen Folien drucken.

PDFs zusammenfügen

Zu Beginn des Semesters ist es immer wieder nötig die Vorlesungsfolien auszudrucken oder wenigstens so zusammen zu stellen, dass jede Vorlesung als einzelne PDF-Datei verfügbar ist.
Besonders kompliziert war es in diesem Semester im Fach Programmieren 2, da konnte man sich lediglich die PowerPoint Dateien herunterladen.

Grund genug also um Hand anzulegen und die Dateien selber ins praktische PDF Format zu konvertieren. Das zusammenfügen und sonstige manipulieren von PDFs unter Linux ist mit dem Tool pdftk sehr einfach durchführbar.

Der Workflow war wie folgt:

  1. Sämtliche .ppt Dateien öffnen und als PDF drucken.
  2. Sich ärgern dass alle Folien im Querformat gedruckt wurden, die PDF-Datei aber im Hochformat angezeigt wird.
  3. Gedruckte PDFs richtig nummeriert benennen, damit die Reihenfolge beim zusammenfügen stimmt.
  4. PDF Dateien mit pdfk zu einem File zusammenfügen.

    pdftk *.pdf output output_all.pdf

  5. Gesamtes PDF mit pdftk um 90° gegen Rechts drehen.

    pdftk output_all.pdf cat 1-endE output output_all_rotated.pdf

  6. Sich darüber freuen, dass die mühsame Arbeit endlich erledigt ist 😉

Kleine Linux Probleme

Heute hatte ich mit zwei kleinen Linux Probleme zu kämpfen, welche ich nicht ohne zu googlen lösen konnte.

Zum einen wollte ich die Verbindungsgeschwindigkeit meiner Netzwerkverbindung herausfinden, da dies seit KDE 4 nicht mehr im Netzwerkmanager angezeigt wird.
Anscheinend gibt es verschiedene Varianten, die einfachste war folgende:

sudo ethtool eth0

Zum andern wollte ich Anwendungen auf dem Server mit grafischer Oberfläche via ssh auf meinem Rechner starten.
Voraussetzung dafür ist, dass die Option X11Forwarding yes in der Konfigurationsdatei /etc/ssh/sshd_config gesetzt ist.
Zum benutzen des X11Forwarding muss die Verbindung mit dem Startparameter -X gestartet werden, also wie folgt:

ssh -X hostname

Erstes Google Handy – Nexus One

Google Nexus One

Google Nexus One Quelle: wirelessandmobilenews.com

Nachdem im Vorfeld viel spekuliert wurde, hat der Suchmaschinenriese Google heute sein erstes Android Smartphone „Nexus One“ präsentiert.
Das Smartphone wird, wie auch das erste Android-Smartphone „G1 Magic“ , vom taiwanesischen Handyhersteller HTC hergestellt.
Die technischen Daten sprechen für sich, insbesondere da das Gerät lediglich 130g wiegt.

 

Leider müssen wir Europäer uns noch in Geduld üben, das Handy wird vorerst nur in den USA lanciert, laut diversen Medienberichten soll es aber bereits Mitte Jahr auch in Europa in den Handel kommen.

Die wichtigsten Eckdaten kurz aufgelistet:

Size and weight
Size h x w x d
119 x 59.8 x 11.5mm
Weight
130 grams w/battery

Display
3.7-inch (diagonal) widescreen WVGA AMOLED touchscreen
800 x 480 pixels

Camera & Flash
5 megapixels
Autofocus from 6cm to infinity
2X digital zoom
Video captured at 720×480 pixels@20fps

Cellular & Wireless
UMTS Band 1/4/8 (2100/AWS/900)
HSDPA 7.2Mbps
HSUPA 2Mbps
GSM/EDGE (850, 900, 1800, 1900 MHz)
Wi-Fi (802.11b/g/n)
Bluetooth 2.1 + EDR

Power and battery
Removable 1400 mAH battery
Talk time
Up to 10 hours on 2G
Up to 7 hours on 3G
Standby time
Up to 290 hours on 2G Up to 250 hours on 3G

Processor
Qualcomm QSD 8250 1 GHz

Operating system
Android Mobile Technology Platform 2.1 (Eclair)

Capacity
512MB Flash
512MB RAM
4GB Micro SD Card (Expandable to 32 GB)

Location
Assisted global positioning system (AGPS) receiver
Cell tower and Wi-Fi positioning
Digital compass
Accelerometer

Quelle: http://www.google.com/phone/static/en_US-nexusone_tech_specs.html

Fazit: Seit mein SonyEricsson W950i ausgestiegen ist, bin ich auf der Suche nach einem neuen kleinen und leichten Smartphone, das eine innovatives Software Verteilungssystem besitzt.
Die Android Handy bieten ähnliche Features wie das iPhone von Apple, sind aber einiges günstiger und basieren auf einem Opensource-Betriebssystem, was ich als Linux Benutzer besonders zu schätzen weiss.
Aus diesen Gründen steht das Nexus One ziemlich weit oben auf meiner Hitliste. Bis das Smartphone aber in Europa erhältlich ist, bleibt mir noch genügend Zeit, um Testbericht zu lesen und mich über Alternativen schlau zu machen.

postfix mit Bluewin als relayhost

Für diverse Webprojekte benötige ich einen Webserver, der in der Entwicklungsphase von aussen nicht erreichbar ist und auf dem diverse Serverkonfigurationen getestet werden können. Aus diesem Anlass habe ich auf meinem Fileserver einen Apache Webserver mit PHP5 und MySQL Unterstützung aufgesetzt.

Weil gewisse Skripte eine E-Mail Funktion voraussetzen, musste ich nun einen Mailserver einrichten, der zumindest E-Mails versenden kann.
Nach kurzer Recherche war klar es wird der Serverdienst postfix sein.

Zur Installation bin ich nach der Anleitung aus dem ubuntuusers Wiki vorgegangen: Postfix

Nach Anpassen von einigen Einträgen ist folgende Konfiguration entstanden, welche nun erlaubt E-Mails über den Bluewin SMTP Server zu versenden.

/etc/postfix/main.cf

#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA’s job.
append_dot_mydomain = no

# Uncomment the next line to generate „delayed mail“ warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = radonserver
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = radonserver.local, radonserver, localhost.localdomain, localhost
relayhost = [smtpauth.bluewin.ch]
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter =
inet_interfaces = all
inet_protocols = all

## By T. Schmid
sender_canonical_maps = hash:/etc/postfix/sender_canonical
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password

/etc/postfix/sasl_password

[smtpauth.bluewin.ch] user:password

/etc/postfix/sender_canonical

tobias email@adresse.tld
web email@adresse.tld
root email@adresse.tld

Witzige Übungskorrektur

 

Korrektur einer Progammierübung

Korrektur einer Programmierübung

Anscheinend hat meine Testklasse beim Korrigierenden Anklang gefunden. 😉

Effizienter Spamfilter

 

Effizienter Bluewin Spam Filter

Effizienter Bluewin Spam Filter

Der Bluewin-Spam Filter ist sehr effizient, es werden sogar die firmeneigenen Newsletter abgefangen 😉

Guitar Hero für Arme: Frets on Fire

Nach mehrmaligen Spielen des bekannten Konsolengames Guitar Hero, hat mich das Gitarrenfieber gepackt. Mangels Spielkonsole habe ich mich auf die Suche nach einer (Alternativen-)Version für den PC gemacht.
Dabei habe ich eine Substitut auf OpenSource Basis gefunden: Frets on Fire

Das Game ist eine einfach gehaltene Nachbildung von Guitar Hero, programmiert in Python.
Mitgeliefert werden nur 4 Songs, weiter können aber direkt ab einer Guitar Hero Game CD/DVD-Rom eingelesen werden.

Da man im Gegensatz zu einer Spielkonsole einen Gitarrencontroller für den PC nicht so einfach erwerben kann, haben sich die Entwickler eine interessante Steuerung ausgedacht.
Gesteuert wird die „Computer-Gitarre“ mit den F1-F5, so wie der Enter Taste der Tastatur.
Hält man die Tastatur hoch, kann man mit der linken Hand die F1-F5 Taste wie bei einem Gitarrencontroller drücken, die Enter Taste dient als Anschlag.
Mit dieser Steuerungsvariante kommt schon fast Gitarrenfeeling auf ;-).

Weitere Recherchen haben ergeben, dass es zu Frets on Fire einen Mod namens Frets on Fire X (FoFiX) gibt, welcher ausserdem einen Karrierenmodus und erweiterte Animationen enthält. Mangels Zeit und Paketquelle, konnte ich diesen Mod bisher leider noch nicht ausprobieren.