PDF Dateien unter Linux verkleinern

Janina hatte Bedarf, eine PDF Datei zu verkleinern, ohne den Inhalt zu ändern. Ich habe ein bißchen recherchiert und es geht unter Linux ganz einfach mit ein paar Shellbefehlen.

Ziel ist es, eine PDF Datei, die 6 MB groß ist etwas zusammenzuschrumpfen, z.B. um Bandbreite beim Emailversand zu sparen, oder um sie in Systeme mit Größenbeschränkung hochzuladen wie im Fall von Janina.

$ pdf2ps Dokument.pdf tmp.ps
$ ps2pdf tmp.ps Dokument_neu.pdf
$ rm tmp.ps

Die temporäre Datei im Postscriptformat (tmp.ps) kann sehr groß werden. Hier hat eine 6MB PDF-Datei Datei 140MB erzeugt, sie kann nach der Konvertierung gelöscht werden.

Danach hat man in vielen Fällen eine kleinere PDF Datei, mit nur geringfügig oder nicht merkbarem Qualitätsverlust. Diese Datei belegt aber auf der Platte entsprechend weniger Platz.

Das USB Gamepad Dilemma gelöst

In der Vergangenheit hatte ich öfters schon Probleme mit schönen USB Joypads bzw Adaptern, die dann unter Linux keine ordentlichen Achsenevents abgeben. Das Problem kann man zumindest entschärfen, in dem man ein passendes Programm dazwischen mogelt, welches die Joypadeingaben in Tastendrücke umwandelt.

Vorgemacht hat es ZeHa gestern abend beim VSTBO unter Windows. Danach habe ich mir überlegt, ob es ähnliche Tools unter Linux gibt. Ich wurde dann bei einem Programm namens QJoypad fündig.

Schnell übersetzt, es fehlte nur eine X11 Development Library und das Tool lief. Mit wenig Aufwand gab danach das Pad entsprechende Tastendrücke von sich. So konnte ich z.B. mit dem blauen Speedlink Pad jetzt unter VICE eine Runde IO zocken.

QJoypad verkleinert sich in den Tray unter GNOME bzw KDE, dadurch fällt es nicht weiter auf. Nur dadurch, daß man plötzlich im Editor mit dem Gamepad scrollen kann.

Für Gamer ein unentbehrliches Tool, damit werden auch plötzlich Spiele, die nie für Joystick bzw Pad ausgelegt waren, Gamepad tauglich.

Homepage von QJoypad: http://qjoypad.sourceforge.net/

How to configure PySVN to use Kdiff3 as the Diff tool

PySVN is a nice graphical client for Subversion. Unfortunately the builtin Diff tools are pretty awkward to use, esp. if the user (like me) is rather well known with Kdiff3.

How to configure PySVN to use Kdiff3
How to configure PySVN to use Kdiff3

I figured a bit with the settings and now PySVN diffs gracefully with Kdiff3 for me.

The settings are simple:

Set “External GUI Diff Command”, “Diff Tool” to kdiff3 and the “Tool Arguments” to -L1 %tl -L2 %tr %nl %nr

Happy Diffing!

Tuxfamily steigt auf Gopher um

Ich wundere mich ja immer wieder. Eben kam über die Hatari Mailingliste von Thothy der Hinweis, die Hatari Webseiten müssten auf Gopher umgestellt werden, da der Hoster Tuxfamily umsteigt: http://tuxfamily.org/en/news/2012040100

Viele werden sich erstmal fragen, was ist eigentlich Gopher? Gopher ist ein Übertragungsprotokoll ähnlich wie HTTP, es ist etwas älter und war Anfang der 1990er Jahre der Vorläufer des Hypertextes, bevor HTTP und damit das bekannte WWW den Siegeszug antrat. Gopher ist hierarchisch mit Menüstrukturen aufgebaut und meistens textbasiert.

Mehr zu Gopher bei Wikipedia: http://de.wikipedia.org/wiki/Gopher

Meine Meinung ist da sehr geteilt. Ich persönlich bin eigentlich ein Fan von Gopher und seiner Effizienz. Während meines Studiums habe ich mich mit Gopher beschäftigt und auch einen eigenen Gopherserver in Bash geschrieben. Aber es gibt natürlich auch ein ABER. Gopherclients sind praktisch ausgestorben und moderne Webbrowser unterstützen das Gopherprotokoll nicht mehr nativ.

Die Masse der Anwender, auch gerade im Bereich Emulatoren, ist einfach an das multimediale WWW gewöhnt und wird reine Gopherseiten eher nicht mehr nach Informationen durchsuchen oder gar auffinden.

Es bleibt abzuwarten, wie sich das entwickelt. Aus Geeksicht sage ich “Daumen hoch”, aus Anwender- und Nutzersicht schlage ich die Hände über dem Kopf zusammen.

*EDIT* Da mir gerade beim Posten das Datum ins Auge sticht…ich hoffe mal ganz stark es handelt sich bei der Umschaltung auf Gopher um einen Aprilscherz…nachher gibts hoffentlich Entwarnung.

Nachtrag 2.4.2012: Gottlob ein Aprilscherz, aber ein ziemlich heftiger, der auch  durchaus wahr hätte sein können. Manche FOSS Propheten sind mir einfach doch zu radikal…

ParadizeLib – meine Abstraktionsschicht für die Abstraktionsschicht

Toller Titel, ich weiss ;)

Im Jahr 2009 habe ich mir ja eine Opensource Handheld, einen GP2X Wiz zugelegt. Natürlich wollte ich dafür auch programmieren. Mit Quadromania war auch irgendwann mein erstes Spiel in C fertig und auch schrittweise erweitert.

In Zuge dessen fiel mir dann auf, daß SDL nicht gleich SDL ist. Auch wenn man SDL benutzt, muss man leider gerade was Joystickabfrage angeht immer noch Softwareweichen vorsehen, je nach Target. Beim GP2X Wiz zum Beispiel ist der SDL Joystick zwar vorhanden, aber er bietet keinen Achsenevents, da er digital arbeitet. Also muss man im Code ummappen.

Irgendwann dachte ich dann über eine Abstraktionsschicht nach und die ParadizeLib war das Ergebnis. Hier wird grundlegendes Einstellen des Bildschirms über SDL, Einsammeln von Tastendrücken, Joystick und Mauseingabe auf plattformunabhängige Aufrufe gelegt. Das Benutzerprogramm benutzt nur die ParadizeLib, die dann sich danach richtet, ob für einen GP2X Wiz oder eben ein normales Linux compiliert wird.

Die ParadizeLib abstrahiert zum Beispiel einen Joystick mit 2 Achsen und bis zu 4 Tasten. Am PC kann das dann ein USB Gamepad sein, am GP2X Wiz ist es aber das Steuerkreuz und die zugehörigen Tasten.

Lange Rede, kurzer Sinn, das Projekt gammelte seit 2 Jahren auf meiner Platte rum, und ich dachte mir, bevor ich es vergesse, mache ich es lieber OpenSource und arbeite vielleicht daran ab und an weiter.

Ich habe hier eine kurze Seite eingerichtet, vgl. im Menu, aber das eigentlich Repository liegt bei Google Code und ist per Mercurial abrufbar. Die Projektseite lautet http://code.google.com/p/paradizelib/

Wer Spass daran hat, kann sich die Library ja mal ansehen und vielleicht weiter daran entwickeln. Ich stehe gerne für Diskussion zur Verfügung. Irgendwann schreibe ich auch hoffentlich mal ein Spiel, welches diese Library auch verwendet.

Tortoise HG mit kdiff3 benutzen

Im Büro verwende ich seit über 2 Jahren kdiff3 als Tool um Sourcedateien zu vergleichen und zu mergen. Man kann kdiff3 auch relativ einfach für die Verwendung mit Mercurial konfigurieren. Dann kann man z.B. auch mit dem grafischen Aufsatz Tortoise HG sehr komfortabel vergleichen, mergen und Details betrachten.

Dazu muss in die Mercurialkonfiguration under $HOME/.hgrc eigentlich nur folgendes eingetragen werden:

[extensions]
hgext.extdiff =

[extdiff]
cmd.kdiff3 =

[merge-tools]
kdiff3.args = $base $local $other -o $output

Danach reicht es, im Tortoise HG entsprechend kdiff3 and Diff- und Mergetool auszuwählen.

XBox 360 Controller unter Linux ausprobiert

Xbox 360 Controller
Xbox 360 Controller

Ich habe mir heute von einem Kollegen mal neugierigerweise einen Xbox 360 Controller ausgeliehen. (Danke Ralf!)

Ich wollte mal ausprobieren, ob die Teile wirklich unkompliziert unter Linux am PC laufen.

Also PC an, Linux gebootet, Controller angesteckt und es läuft einfach. Das  Pad wird mit lsusb folgendermaßen angezeigt:

Bus 003 Device 002: ID 045e:028e Microsoft Corp. Xbox360 Controller

Sichtbar ist das Pad dann als HID Gamedevice mit 8 Achsen und 10 Tasten. Die Achsen sind wie heute üblich leider ungeschickt belegt, jedenfalls für Retrogamer wie mich. Der linke analoge Nub liegt auf Achsen 0 und 1, der rechte auf 3 und 4, während die beiden Rückengashebel als Achsen 2 und 5 erscheinen. Das digitale Steuerkreuz liegt auf Achsen 6 und 7.

Wenn ein Programm unter Linux also keine konfigurierbaren Achsen zulässt (MAME und MESS kann das), dann kann man nur mit dem linken analogen Nub spielen. Es geht, aber mir persönlich sagt es nicht zu.

Fazit: es läuft, mit kleinen Einschränkungen, die jeder persönlich bewerten muss.

Rezension Speed-Link SL-6512 Hornet Pad USB

Im vergangenen Winter habe ich 2 dieser günstigen Gamepads bei Amazon erstanden, damit Janina ab und an mit mir zusammen spielen kann. Das Speed-Link SL-6512 Hornet Pad USB ist ein Gamepad mit USB Anschluss und hat kaum 5€ pro Stück gekostet, ist also preislich ein Schnäppchen.

Speed-Link SL-6512 Hornet Pad USB
Speed-Link SL-6512 Hornet Pad USB

Für den Preis verdient das Pad pauschal 5 Sterne, wenn das kleine ABER nicht wäre….

Entsprechend dem Preis ist die Verarbeitung des Gamepads eher einfach und wackelig. Für Gelegenheitsspieler wie Janina ist das ok, professionelle Spieler lassen lieber die Finger weg. Dauerzocken führt vermutlich zu wegbrechenden Kontakten und Plastikbruch, ähnlich wie schon vor über 20 Jahren bei Billigjoysticks.

Ein Stern Abzug für die billige Fernostverarbeitung, aber bei dem Preis….

Das Pad wird ohne Treiber beim Einstecken erkannt und kann sofort benutzt werden. Unter Windows funktioniert alles wie erwartet.

Unter Linux funktioniert das Pad ebenfalls. Allerdings wird das Steuerkreuz nicht auf die üblichen Joystickachsen 0 und 1 gemapped, daher funktioniert das Pad unter Linux nicht mit jedem Programm. Wenn die Achsen konfigurierbar sind (MAME und MESS z.B.), kann das Pad gemapped und gut benutzt werden, ansonsten muss der Programmcode (sofern möglich) angepasst werden. Daher ein (subjektiver) Stern Abzug, zumindest für Hatari habe ich den Code gepatcht, aber bei VICE habe ich das noch nicht getan. Vllt kann man das Problem mit einem Joypad->Keyboard Mapping Programm (gibt es auch für X) umgehen, was aber die Idee, einen Joystick bzw ein Pad zu nutzen umgeht.

Bleiben noch 3 Sterne, die aber bei dem günstigen Preis immer noch gut sind. Wer für ab und an unter Windows ein einfaches Gamepad sucht, kann hier ohne Bedenken zugreifen, Linuxuser lassen lieber die Finger weg!

Link zu Amazon: http://www.amazon.de/gp/product/B00097CQWO

Ballerburg SDL

Das gute alte Atari ST PD Spiel Ballerburg für den SM124 wurde jetzt für Linux und andere Systeme auf SDL portiert. D.h. man kann jetzt auch ohne Emulator die Burgen anderer zerstören.

Ballerburg SDL
Ballerburg SDL

Bis auf das Eingeben von Spielernamen, Burgenauswahl und eine Bestenliste sind die wichtigsten Features schon umgesetzt, die Befragung des Königs, Bauen von Fördertürmen und natürlich das Zerlegen der feindlichen Burg mittels Kanonenkugel.

Die Grafik reisst keinen vom Hocker, aber das braucht das Spiel nicht. Das glänzt durch seine Spielidee und kann ohne weiteres mit modernen Casual games für iPhone und co mithalten.

URL zu Ballerburg SDL: http://baller.tuxfamily.org/