ubuntuusers.de

6. März 2011

Gimp ist die Bildbearbeitung für Webdesign mit Ubuntu. Jeder der Websites unter Ubuntu gestalten will braucht dazu Gimp. Wie man Gimp einrichtet so, dass keine Wünsche mehr offen bleiben, will ich euch hier zeigen.

Wer meint, er braucht auch unter Ubuntu Photoshop zum Webdesign, der kann sein Glück mit Wine versuchen. Ich bin der Meinung, das ist nicht nötig, aber, wenn man schon seit Jahr und Tag Photoshop benutzt, kann ich das verstehen.

Wir werden im Folgenden:

  1. Paketquellen für Gimp und bestimmte Plugins hinzufügen
  2. Gimp, die Plugin-Registry und den Resynthesizer installieren

Paketquellen installieren

Wir müssen nur eine PPAs installieren: und zwar die von Webup8.org, damit können wir den aktuellsten Stable-Release von Gimp und die Plugin-Registry installieren. Im Terminal eineinfach:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update

Gimp, Plugin-Registrym, Resynthesizer in Ubuntu installieren

Gimp installiert ihr denkbar einfach, im Ubuntu App-Store, ich meine natürlich Software Center, nach Gimp suchen und auf installieren klicken. Analog installiert ihr die Registry (Paketname: gimp-plugin-registry) und den Resynthesizer (Paketname: gimp-resynthesizer).

Etwas schneller könnt ihr  Gimp mit den beiden anderen Paketen natürlich auch im Terminal installieren:

sudo apt-get install gimp gimp-plugin-registry gimp-resynthesizer

Das ganze sollte dann so aussehen:

Gimp in Ubuntu mit
Plugin-Registry installiert

Gimp bringt für das Webdesign schon eine ganze Menge Funktionen mit. Mit der Plugin-Registry und dem Resythesizer sollten kaum noch Wünsche für das Webdesign mit Ubuntu mehr offen sein.

Übrigens: Wenn ihr keine Lust habt, das selbst zu machen, könnt ihr auch einfach Rockiger OS installieren.

Gimp ist die Bildbearbeitung für Webdesign mit Ubuntu. Jeder der Websites unter Ubuntu gestalten will braucht dazu Gimp. Wie man Gimp einrichtet so, dass keine Wünsche mehr offen bleiben, will ich euch hier zeigen.

Wer meint, er braucht auch unter Ubuntu Photoshop zum Webdesign, der kann sein Glück mit Wine versuchen. Ich bin der Meinung, das ist nicht nötig, aber, wenn man schon seit Jahr und Tag Photoshop benutzt, kann ich das verstehen.

Wir werden im Folgenden:

  1. Paketquellen für Gimp und bestimmte Plugins hinzufügen
  2. Gimp, die Plugin-Registry und den Resynthesizer installieren

Paketquellen installieren

Wir müssen nur eine PPAs installieren: und zwar die von Webup8.org, damit können wir den aktuellsten Stable-Release von Gimp und die Plugin-Registry installieren. Im Terminal eineinfach:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update

Gimp, Plugin-Registrym, Resynthesizer in Ubuntu installieren

Gimp installiert ihr denkbar einfach, im Ubuntu App-Store, ich meine natürlich Software Center, nach Gimp suchen und auf installieren klicken. Analog installiert ihr die Registry (Paketname: gimp-plugin-registry) und den Resynthesizer (Paketname: gimp-resynthesizer).

Etwas schneller könnt ihr  Gimp mit den beiden anderen Paketen natürlich auch im Terminal installieren:

sudo apt-get install gimp gimp-plugin-registry gimp-resynthesizer

Das ganze sollte dann so aussehen:

Gimp in Ubuntu mit
Plugin-Registry installiert

Gimp bringt für das Webdesign schon eine ganze Menge Funktionen mit. Mit der Plugin-Registry und dem Resythesizer sollten kaum noch Wünsche für das Webdesign mit Ubuntu mehr offen sein.

Übrigens: Wenn ihr keine Lust habt, das selbst zu machen, könnt ihr auch einfach Rockiger OS installieren.

The post Gimp für Webdesign appeared first on Rockiger.

5. März 2011

Um mein Spanisch zu verbessern, möchte ich nebenbei spanische Radiosender hören. Blöderweise benutzen die meisten Flash-Player und verstecken die Live-Streams dazu zwischen Java-Script und HTML. Gibt es also keine Chance, die URL zum Stream zu ermitteln, damit ich diese Radiosender auch mit dem MPlayer hören kann? Doch gibt es, man muss sich die URL nur aus dem Quellcode der Seite und der Ausgabe eines Netzwerk-Sniffers wie tcpdump zusammenpuzzeln. Vermutlich gibt es mehrere Wege, die hier zum Ziel führen, ich habe es folgendermaßen gemacht:

Zuerst bin ich auf die Hompage des Radiosenders gesurft, in diesem Fall Cadena Dial. Um den Sender zu hören, klickt man auf den Link “Escucha en directo”. Auf dieser Seite befindet sich der Flash-Player. Um sie zu analysieren, habe ich sie mit dem Befehl wget heruntergeladen:

$ wget http://www.cadenadial.com/multimedia/radios.html
--2011-03-05 14:02:58--  http://www.cadenadial.com/multimedia/radios.html
Auflösen des Hostnamen www.cadenadial.com... 194.169.201.138
Verbindungsaufbau zu www.cadenadial.com|194.169.201.138|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 6416 (6,3K) [text/html]
In »radios.html« speichern.
 
100%[===================================================================>] 6.416       --.-K/s   in 0,08s   
 
2011-03-05 14:02:58 (83,4 KB/s) - »radios.html« gespeichert [6416/6416]

Alternativ kann man sich den Quellcode der Seite natürlich auch im Browser anschauen. Der Link zum Stream befindet sich in der Regel zwischen den iframe-Tags im HTML-Code, muss aber nicht. Eventuell muss man ein grep auf callsign selbst absetzen, oder man nimmt player als Suchwort.

grep iframe radios.html
<iframe src="http://player.streamtheworld.com/_players/unionradio/?callsign=CADENADIAL" ...</iframe>

Ich habe die Ausgabe auf den wichtigsten Teil reduziert, nämlich auf den Link für den Flash-Player. Hier muss man sich den Wert hinter callsign= merken, in diesem Fall also “CADENADIAL”.

Während der Radiosender im Flash-Player des Browsers vor sich hin spielt, startet man tcpdump, um herauszufinden, von welcher IP-Adresse der Player seinen Stream eigentlich bezieht.

# tcpdump -i wlan0 -n

Man kann tcpdump nur als Root starten. Hinter der Option -i gibt man das Interface an, auf dem gesnifft werden soll, die Option -n löst keine Hostnamen auf, sondern gibt die IP-Adressen zurück. Die Ausgabe sieht dann etwa wie folgt aus:

listening on wlan0, link-type EN10MB (Ethernet), capture size 96 bytes
14:21:20.622711 IP 208.92.52.88.80 > 192.168.178.22.59240: Flags [.], seq 3400577045:3400578485, ack 2642445401, win 1723, options [nop,nop,TS val 1395385741 ecr 1233879], length 1440
14:21:20.675395 IP 192.168.178.22.59240 > 208.92.52.88.80: Flags [.], ack 1440, win 947, options [nop,nop,TS val 1233930 ecr 1395385741], length 0
14:21:20.719510 IP 208.92.52.88.80 > 192.168.178.22.59240: Flags [.], seq 1440:2880, ack 1, win 1723, options [nop,nop,TS val 1395385837 ecr 1233879], length 1440

Sie zeigt vor allem zwei IP-Adressen, nämlich 192.168.178.22, das ist in diesem Fall die eigene, und 208.92.52.88, die Adresse des Servers mit dem Live-Stream. Genau genommen steht in der Ausgabe von tcpdump ja 208.92.52.88.80. Die letzte Zahl, zeigt die Portnummer an, in diesem Fall Port 80, hinter dem HTTP als Dienst steht. Jetzt haben wir alle notwendigen Infos, um den Link für den MPlayer in der Kommandozeile zusammenzusetzen:

mplayer http://208.92.52.88/CADENADIAL

Oder im AAC-Format:

mplayer http://208.92.52.88/CADENADIALAAC

Zuerst kommt der Befehl, um den Musikplayer zu starten, mplayer, dann der Dienst, über den kommuniziert werden soll, http://, dann die IP-Adresse des Servers 208.92.52.88 und zum Schluss kommt mit CADENADIAL das Verzeichnis zum Stream.

Auf dem Server sind übrigens noch weitere Streams von spanischen Radios beheimatet. Unter anderem auch von Los40. Während Cadena Dial fast ausschließlich spanisch sprachige Musik spielt, ist bei Los40 der Mix mit aktueller Musik aus den Charts etwas internationaler.

mplayer http://208.92.52.88/LOS40

Oder im AAC-Format:

mplayer http://208.92.52.88/LOS40AAC

Update:

Willie gibt in den Kommentaren einen Hinweis auf den chilenischen Sender Futuro, den man lieben wird, wenn man auf Heavy Metal und Hard Rock steht. Es könnte der Lieblingssender von Jara aus dem Film Gigante sein, wobei der Film in Uruguay spielt, nicht in Chile, er passt aber zur Musik im Film. Etwas abgewandelt bekommt man mit der hier beschriebenen Methode dann diesen Befehl zustande:

mplayer http://208.80.54.28/FUTURO

Die Qualität ist allerdings nicht so berauschend. Der Screenshot mit Firebug von Johannes in den Kommentaren zeigt, dass zumindest Cadena Dial auch im AAC-Format gestreamt wird, was die Qualität verbessern sollte. Und potz blitz, bei Futuro funktioniert dieser Stream auch:

mplayer http://208.80.54.28/FUTUROAAC

Die Qualität hört sich richtig gut an. Die anderen MPlayer-Befehle habe ich deshalb entsprechend erweitert. Vielen Dank für diese Hinweise und viel Spaß beim Hören.

4. März 2011

Nur wenige Tage nach der letzten Aktualisierung hat Mozilla erneut Bugfixes für den Browser Firefox und das E-Mail-Programm Thunderbird freigegeben.

Mozilla Firefox LogoMozilla Thunderbird Logo

Gemäss den Veröffentlichungsnotizen wurde in Firefox 3.6.15 ein durch Java-Applets verursachter Seitenladefehler behoben.

In Thunderbird 3.1.9 wurden laut Buglist insgesamt 25 Fehler gefixt. Besonders erwähnenswert ist die Behebung des Bugs, welcher den E-Mail-Client beim Aktualisierungsvorgang bei manchen Benutzern zum Absturz brachte.

Firefox 3.6.15 und Thunderbird 3.1.9 können in fast allen Sprachen von den Mozilla- bzw. Mozilla Messaging-Seiten für die Betriebssysteme Linux, Mac OS X und Windows heruntergeladen werden.

Mozilla Seamonkey Logo
Profitieren von diesen Updates kann bestimmt auch die All-In-One-Internet-Suite Mozilla Seamonkey, welche die Funktionen beider Programme (Webbrowser und E-Mail-Client) vereint und diese um ein paar nützliche Werkzeuge erweitert.

Für Seamonkey-Benutzer dürfte Mozilla wohl bald auch ein Update auf Version 2.0.13 zur Verfügung stellen.

Die meisten Linux-User dürften die Korrekturen dieser drei Programme jedoch in kurzer Zeit über die automatische Aktualisierungsfunktion ihrer Distributionen aufgespielt bekommen.

Bookmark and Share

Wer mehrere (Linux)Betriebsysteme parallel auf einem Rechner installiert hat, wird eventuell auch schonmal das zweifelhafte Vergnügen gehabt haben, den Grub (2) Bootmanager reparieren zu müssen. Wenn gleich Grub 2 theoretisch mit den meisten Linux Live-CDs zu reparieren ist, so ist es doch schöner, wenn man dann etwas zur Hand hat, das die Wiederherstellung erleichtert und beschleunigt.

Ich kannte bisher nur Super Grub Disk (2), wobei Super Grub Disk 2 den Nachteil hatte, dass nur von der CD gebootet und keine Änderungen auf die Festplatte geschrieben wurden.

Nachdem ich jetzt mal wieder mein Grub 2 zerschossen hatte, bin ich auf Rescatux auf der selben Seite aufmerksam geworden. Im Gegensatz zu den “Vorgängern” basiert dies auf Debian und bietet die Möglichkeit, sowohl Grub 1, als auch Grub 2 mit grafischer Oberfläche wiederherzustellen. Außerdem bietet das Tool die Möglichkeit an, ein Filesystem zu überprüfen. 

Die Erkennung der installierten Distributionen klappte bei mir problemlos - Wer sich also unter Umständen einige nervtötende Momente ersparen möchte, sollte vielleicht erstmal einen Blick darauf werfen.  Ein weiteres nützliches Tool zum einfachen Anpassen (z.B. Festlegen eines Hintergrundbildes, Ändern der Einträge oder der Anzeigedauer) des Bootmanagers ist (mit grafischer Oberfläche) Grub Customizer

Schielender
Tux auf der Cebit 2011

Eigentlich wollte ich ja jetzt was Tolles über die Linux, Ubuntu und Open-Source auf der Cebit 2011 schreiben, aber leider habe ich nichts spannendes gefunden.

Das Beste war noch das Gewinnspiel von B1, die einen schielenden Tux verlost haben. Er erinnert mich an das Opossum Heidi - wahrscheinlich weil er auch zu dick ist.

Ausgestellt haben nur die üblichen Firmen in Halle 2 und im Open-Source-Park waren ein paar unerschütterliche Open-Source-Projekte wie Enlightenment, Firefox und LibreOffice zu sehen - die den Menschen Open-Source näher gebracht haben.

Wirkliche Neuerungen oder spannende Projekte wie Qt, Android, etc. habe ich aber leider keine entdeckt - schade eigentlich.

Apropos Android in Halle 16 wurden gefühlte 100.000 Android-Tablets ausgestellt. Scheinbar der Megatrend für 2011.

Ein anderer Bestandteil von LPIC 201 ist DHCP.
Doch bevor man sich auf die Installation eines DHCP-Servers stürzt, ist es ganz gut, mal zu wissen, wie das System dahinter funktioniert. Ich habe versucht alles ein bisschen grafisch darzustellen.

IP beziehen

Alles beginnt damit, dass ein Client gerne eine IP-Adresse hätte. Da er aber noch keine DHCP-Server im Netz kennt, schickt der DHCP-Client (auf Client 1) ein DHCPDISCOVER-Paket an den Broadcast. Dieser leitet das an alle Geräte im Netzsegment und über ein Relay auch an andere Netzsegmente weiter. Ist ein DHCP-Server innerhalb des Netzwerkes vorhanden, so wird dieser das Paket aufnehmen, alle anderen Typen werden das verwerfen.

Die DHCP-Server im Netzwerk wissen nun, dass ein Client eine IP sucht und prüfen ob in der lokalen Datenbank noch freie IP-Adressen verfügbar sind. Falls ja, schicken sie ein DHCPOFFER-Paket an den Broadcast mit der für den Client ausgewählten IP-Adresse. Über den Broadcast gelangt das ganze dann wieder zum Client.

Es kann gut sein, dass ein Angebote von mehreren Servern empfängt. Falls dann nichts anderes eingestellt wurde, wird nach dem “First Come First Served”-Prinzip abgerechnet.
Hat sich der Client also für einen Server entschieden, so wird die Bestätigung der IP-Adresse und die ganze andere Konfiguration mit einem DHCPREQUEST-Paket angefragt. Dies geht wieder an den Broadcast, damit die anderen DHCP-Server auch wissen, das sich der Client nicht für sie entschieden hat.

Ist die IP-Adresse auf dem DHCP-Server immer noch verfügbar, so nimmt der Server die IP aus der Liste der Verfügbaren Adressen raus und bestätigt alles mit einem DHCPACK-Paket. Sobald der Client das empfängt, wird die IP-Adresse der Schnittstelle zugewiesen und der Vorgang ist abgeschlossen.

Bestätigen

Wenn nun ein Client rebootet, so muss nicht nochmal der gesamte Prozess von vorne durchlaufen werden. Der Client prüft nach einem Reboot die zuletzt gespeicherten Parameter auf deren Gültigkeit (TTL) und lässt sich alles über ein DHCPREQUEST vom DHCP-Server bestätigen, welcher dann alles wieder mit einem DHCPACK bestätigt. Sollte irgendetwas nicht mehr in Ordnung sein, so lehnt der DHCP-Server die Anfrage mit einem DHCPNACK ab und der Client muss eine neue IP-Adresse beziehen.

Sollte ein Client nun aber so lange laufen, dass die Gültigkeit der Zuweisung (leasing) ablaufen würde, so kann der Client eine Verlängerung beantragen. Im Gegensatz zur Bestätigung nach einem Reboot wird dieser DHCPREQUEST aber direkt an den DHCP-Server adressiert und nicht an den Broadcast. Danach folgt die bereits oben beschriebene Bestätigung oder Ablehnung.

DHCP-Server aufsetzen

So nachdem wir nun wissen, wie das System hinter DHCP funktioniert, können wir uns an die Installation eines eigenen DHCP-Server machen:

apt-get install dhcp3-server

Konfiguriert wird alles über die Datei /etc/dhcp/dhcpd.conf.
Eine ziemlich rudimentäre Konfiguration könnte so aussehen:

root@master:/etc/dhcp# cat dhcpd.conf
ddns-update-style none;
option domain-name "encodingit.ch";
option domain-name-servers master.encodingit.ch;

default-lease-time 600;
max-lease-time 7200;

authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.50 192.168.1.80;
  option domain-name-servers master.encodingit.ch;
  option routers 192.168.1.1;
  option broadcast-address 192.168.1.255;
  default-lease-time 700;
  max-lease-time 7800;
}

host master {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 192.168.1.49;
}

Dabei wird ein Range von 50-80 festgelegt und zusätzlich ein Host “master” definiert, welcher immer die selbe IP-Adresse erhalten wird.
Zu Beginn in der Datei kann man Standardkonfigurationen festlegen, welche solange gelten, wie diese nicht innerhalb eines Subnets überschrieben werden, wie in meinem Beispiel ja der Fall.

Nun muss man noch alles starten:

dhcpd eth0

Dynamische IP für Client

Nachdem unser Server nun rennt, muss noch der Client auf DHCP umgestellt werden.
Dafür ist die Datei /etc/network/interfaces verantwortlich. Diese wird mit folgendem Inhalt ersetzt:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp

Wichtig hier ist die letzte Zeile mit dem Vermerk “dhcp”. Natürlich soll nicht bei jedem System das Interface eth0 eine dynamische IP beziehen, also zuerst überlegen und nicht einfach abschreiben ;)
Damit auch alles aktiv wird, noch rasch den Netzwerkservice neu starten:

/etc/init.d/networking restart

Und nun sollte das Interface eine IP-Adresse besitzen:

root@master:/etc/dhcp# ifconfig eth0
eth0      Link encap:Ethernet  Hardware Adresse 00:25:64:c9:b1:6a
          inet Adresse:10.128.101.26  Bcast:10.128.101.255  Maske:255.255.255.0
          inet6-Adresse: fe80::225:64ff:fec9:b16a/64 Gültigkeitsbereich:Verbindung

DHCP-Relay

Das Relay dient dazu, um auch die DHCP in einem anderen Netzsegment zu erreichen.
Installiert ist ein Relay relativ einfach:

apt-get install isc-dhcp-relay

Während der Installation gibt man die IP des DHCPs an, zu welchem man weiterleiten möchte und schlussendlich noch das Interface, auf welche auf DHCP-Traffic gehorcht wird. Zwei mal Bestätigen und fertig!

Probleme

Bei Problemen kann die Syslog-Datei mehr Informationen liefern:

tail -f /var/log/syslog

Oder man kontrolliert den Traffic von Hand:

dhcpdump

Und fertig ist die dynamische IP-Vergabe im eigenen Netzwerk.


Das könnte dich auch interessieren:

  1. Domain Name System mit Bind9
  2. Der (Ur-)Verzeichnisdienst NIS / YP

Als ich dies das letzte mal vor ein paar Jahren ausprobiert hatte bin ich kläglich gescheitert. gorc war einfach mies und Abby musste her.

Nun die Tage musste ich mal wieder einen etwas längeren Text (ca. 50 Seiten) einscannen und in ein LaTeX-Dokument hieven und habe es mal wieder mit Linux probiert und siehe da, es gibt neue Tools und mit denen funktioniert es wunderbar!

Scannen
Zuerst musste das ganze mal eingescanned werden, was ich mit scanimage gemacht habe. Auflösung von 300dpi sollte ausreichen und Graustufen-Modus:

$ scanimage -d epson2:libusb:001:004 --mode Gray --resolution 300dpi -x 186 -y 250 > 33.pnm

OCR Vorbereitung
Zur Vorbereitung der OCR habe ich Tools von ImageMagick und Scan Tailor benutzt.

Zuerst einmal waren die Seiten verdreht was mit dem Befehl:

$ mogrify -rotate 90 *.pnm

schnell behoben war (Scan Tailor kann das auch aber das hab ich erst danach gemerkt..). Damit ich die Seiten mit Scan Tailor bearbeiten konnte mussten sie ins tif-Format, was dieser Oneliner erledigt (ZSH!!):

$ for i in *.pnm; do convert $i ${i:r}.tif;done

Nun kam Scan Tailor dran. Damit konnte ich problemlos die Seiten richtig ausrichten, unnötiges an den Rändern wegschneiden, Kontrast verbessern, usw.. Wirklich ein Hammertool um Bilder auf OCR vorzubereiten!

OCR
So und hier kam das Tool tesseract zum Einsatz, welches mich gnadenlos überzeugt hat! Die Texterkennung war fantastisch, bei über 99%. Probleme gab es nur an Stellen wo der Text Unterstreichungen hatte, was zum Glück nur sehr selten war ansonsten wäre das Ergebnis sicher schlechter gewesen, denn an diesen Stellen hat sich tesseract die Zähne ausgebissen.

Das Konvertieren hat auch hier wieder ein ZSH-Oneliner erledigt:

$ for i in *.tif;do tesseract $i ${i:r} -l deu;done

Hier sollte man aufpassen, dass man als Input die von Scan Tailor verbesserten *.tif Dateien nimmt und nicht die anfänglich erzeugten ;)

So der Durchlauf von tesseract dauert ein bischen und wenn er fertig ist, dann kann man das alles in ein Dokument zusammenbasteln:

$ cat *.txt > dokument.txt

und ist fast fertig!

LaTeX

Man hat jetzt nämlich immernoch das Seitenlayout des gescannten Dokumentes, also die Zeilen sind so lange wie in dem ursprünglichen Dokument und natürlich sind die Wörter auch so getrennt.. Das ist natürlich uncool wenn man das ganze in ein LaTeX-Dokument verwandeln will. Um das zu beheben habe ich ein kleines Skript geschrieben. Das setzt Absätze im LaTeX-Dokument, wo im Originaldokument welche sind und löst das Problem mit den Zeilenenden.

Danach einbischen Nachbearbeitung mit TeXMaker und das wars.


Zur Zeit bereite ich mich wieder auf eine neue LPI-Prüfung vor, dieses Jahr steht Nummer 201 an. Darin geht es um Themen wie Linux Kernel kompilieren, patchen, Source kompilieren, Kernelmodule, Startup-Scripts, Grubshell, Filesystem, RAID und LVM oder Netzwerkkonfiguration und DNS.
Eigentlich alles gar nicht so schwer, wäre da nur nicht die Tatsache, dass keine Unterlagen verwendet werden dürfen!

Also will ich mich mal ans repetieren machen und beginne mit DNS, genauer Bind9 einrichten und konfigurieren. Später folgen dann nach und nach noch all die anderen Themen, wodurch eine Artikelserie daraus werden wird.

Doch zuerst zu DNS! Obwohl eigentlich sollte man es eher als Namensauflösung bezeichnen, denn es werden noch Dienste wie NIS oder Dateien wie /etc/hosts angesprochen.

Aber alles von vorne! Also die einfachste Möglichkeit zum eine IP-Adresse auflösen ist über die Hosts-Datei unter /etc/hosts. Diese könnte in etwa so aussehen:

root@master:/etc# cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	master.encodingit.ch	master

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Jedoch wenn man mehr als nur ein, zwei Computer hat, so ist es relativ mühsam auf jedem diese Datei von Hand zu pflegen. Auch Sun bemerkte dies und entwickelte NIS (darüber habe ich schon mal geschrieben).
Doch als auch das nicht mehr reichte, kam man zu DNS.
Einfach gesagt ist es eine Hosts-Datei, welche an einem zentralen Ort verwaltet werden kann und von jeder Maschine bei Bedarf geladen wird. Komplizierter gesagt: dazu kommen wir noch ;)

Die wichtigsten Dateien für die Namensauflösung auf einem Client wären dabei:

/etc/hosts > verantwortlich für die lokale Namensauflösung.
/etc/resolv.conf > gibt an, welche Nameserver angefragt und welche Domains durchsucht werden sollen.
/etc/nsswitch.conf > definiert die Reihenfolge ob zuerst der DNS, NIS oder die Hosts-Datei bei der Auflösung berücksichtigt werden soll.

Dies war alles auf dem Client – nun aber zu unserem DNS Server. Zuerst mal installieren:

apt-get install bind9

Gestartet wird der Dienst entweder über /usr/sbin/named oder über /etc/init.d/bind9 (unter Debian). Doch nach der Installation läuft er sowieso standardmässig.

Die Konfiguration ist ganz amüsant! LPIC will sich ja nicht auf eine Distribution festlegen, deshalb gibt es bei einem typischen Beispiel wie bind immer wieder Unterschiede.
Unter Debian (unter welchem ich die Installationen gerade durchführe) liegt alles wie gewohnt unter /etc/bind. RedHat oder Suse packen die Konfigurationsdateien aber in /etc/named.conf und die Zonendateien in /var/named. Viel Spass beim Suchen ;)

Unter Debian läuft die Konfiguration von Bind und der Zonen in zwei einzelnen Files ab:

named.conf.options > Darin werden alle Einstellungen definiert, wie sich der DNS-Server zu verhalten hat
named.conf.local > Hier werden all die Einstellungen zu den Zonen definiert

Nun wollen wir aber auch unser erstes Zonen-File anlegen.
Zuerst der Forward Lookup von Domain -> IP. Dazu legen wir eine Datei in das Verzeichnis /etc/bind mit dem Namen unserer Domain:

touch /etc/bind/encodingit.ch

Diese befüllen wir nun mit dem DNS-Syntax, welcher sehr akribisch eingehalten werden muss:

$TTL 2d
@ IN SOA master.encodingit.ch. root.encodingit.ch. (
               2011030401       ; serial
               3h               ; refresh
               1h               ; retry
               1w               ; expiry
               1d )             ; minimum

@              IN NS   master.encodingit.ch.
master          IN A    192.168.1.20

Die Datei ist bei jeder Zone immer gleich aufgebaut. Auf der ersten Zeile wird die Time-To-Life festgelegt, Dann folgen Angaben über den DNS und die Email-Adresse des Admins (mit . anstatt @). Weiter geht es mit einer eindeutigen Nummer, Standardangaben und dann endlich die eigentlichen Lookups.
Zuerst wird ein NS-Record für die Domain angelegt, danach wird der Name über einen A-Record einer IP zugewiesen.

Nun müssen wir noch den Reverse Lookup einrichten. Dazu machen wir wieder eine neue Datei:

touch /etc/bind/192.168.1.in-addr.arpa

Und befüllen auch diese:

$TTL 2d
@ IN SOA master.encodingit.ch. root.encodingit.ch. (
               2011030401       ; serial
               3h               ; refresh
               1h               ; retry
               1w               ; expiry
               1d )             ; minimum

@     IN NS master.encodingit.ch.
20	   IN PTR		master.encodingit.ch.

Nachdem die Zonen nun angelegt sind, muss man den DNS auch noch dazu zwingen, diese zu kennen. Dazu muss die named.conf.local mit einem Eintrag wie dem folgenden ergänzt werden:

zone "encodingit.ch" {
type master;
file "/etc/bind/encodingit.ch";
};

zone "192.168.1.in-addr.arpa" {
type master;
file "/etc/bind/192.168.1.in-addr.arpa";
};

Nun muss noch bind neu gestartet und dann der Client auf den neuen DNS gewechselt werden:

/etc/init.d/bind9 restart
echo "domain encodingit.ch" > /etc/resolv.conf
echo "nameserver 127.0.0.1" >> /etc/resolv.conf

Und schon ist der DNS bereit!

Canonical hat das dritte Alpha-Release der kommenden Ubuntu-Version 11.04 (Codename: “Natty Narwhal”) veröffentlicht.

Am Besten verwendet man zum Ausprobieren solcher Entwickler-Releases immer eine Testumgebung wie z.B. ein Test-PC oder eine virtuelle Maschine und keinesfalls den Rechner, welchen man zum Arbeiten einsetzt.

Da es sich hierbei um eine frühe Testversion handelt, raten die Entwickler deswegen vom Einsatz als Produktivsystem noch ab.
Ubuntu Linux 11.04 Logo
Neben dem sechsten Veröffentlichungskandidaten des Linux-Kernels 2.6.38 sind unter anderem folgende Pakete mit dabei:

Firefox 4 (Beta)
Amarok 2.4.0
bash 4.2
CUPS 1.4.6
GIMP 2.6.11
GNOME 2.32.1
Inkscape 0.48.1
k3b 2.0.2
KDE 4.6.0
LibreOffice 3.3.1
Perl 5.10.1
PHP 5.3.5
Pidgin 2.7.9
PostgreSQL 8.4.7
Samba 3.5.6
Thunderbird 3.1.8

Ubuntu 11.04 Alpha 3 (Gnome) sowie Kubuntu 11.04 Alpha 3 (KDE) können ab sofort für verschiedene Prozessorarchitekturen heruntergeladen und getestet werden.

Neben der Desktop- und der Servervariante stellt Canonical auch eine Netbook-Edition zum Testen zur Verfügung.

Allfällige Fehler können den Entwicklern anhand des Bug Trackers mitgeteilt werden.

Bookmark and Share

3. März 2011

Heute wurde die 3. Alpha Version von Ubuntu 11.04 Natty Narwhal freigegeben!

Diese Version ist immernoch eine Alpha und sollte wie immer noch nicht auf einem Produktiven System eingesetzt werden!

Downloads finden sich hier: Alpha 3

Release Schedule:

Woche

 

Datum

 

Release

Dezember 2010
7   2. Dezember   Alpha 1
Februar 2011
16   3. Februar   Alpha 2
März 2011
20   3. März   Alpha 3
24   31. März   Beta 1
April 2011
25   14. April   Beta 2
28   28. April   Final Release

Tagged: Alpha 3, Natty Narwhal, Ubuntu, ubuntuusers

Kanotix – eine auf Debian Squeeze basierende Linux-Distribution – wurde in der Version 2011-03 (Codename: “Hellfire”) freigegeben.

Kanotix GNU/Linux Logo

Bei dem von Jörg “Kano” Schirottke ins Leben gerufenen Debian-Derivat handelt es sich um eine sogenannte Live-Distribution, welche sich von einer DVD oder einem bootfähigen USB-Stick starten und auf Wunsch auch auf die Festplatte installieren lässt.

Neben der Desktopumgebung KDE SC 4.4.5 und dem KDE-Musikplayer Amarok 2.4.0 ist auch der KDE Network Manager vertreten, welcher wicd als Netzwerkmanager ablöst.

Kanotix GNU/Linux Screenshot

Als Standard-Desktop setzt Kanotix traditionell auf KDE. Bildquelle: kanotix.com

Im Herzen von Kanotix 2011-03 werkelt der Linux-Kernel 2.6.38 RC6; hier haben sich die Entwickler bei der Ubuntu 11.04-Vorabversion bedient.

Das brandaktuelle Büro-Paket LibreOffice 3.3.1 macht Kanotix auch für das Büro fit. Mit Pidgin 2.7.10 ist ausserdem die aktuellste Version des universell einsetzbaren Sofortnachrichtenprogramms mit von der Partie.

Weniger neu aber dafür stabil sind die enthaltenen Mozilla-Programme. Der Iceweasel Browser (Firefox) ist in der Version 3.5.16 und der E-Mail-Client Icedove (Thunderbird) in der Version 3.0.11 mit dabei.

Damit Kanotix für die Anwender möglichst benutzerfreundlich zu bedienen ist, stellt Kano dem User selbst erstellte Skripte zur Verfügung, um die nachträgliche Installation von unfreien Grafiktreibern sowie proprietären Plugins möglichst einfach zu gestalten. Weitere Informationen dazu können im Forum von Kanotix nachgelesen werden.

Links:
Kanotix 2011-03 Ankündigung und Download

Bookmark and Share

2. März 2011

Nach meiner Woche mit Android auf dem Freerunner bin ich jetzt dank des Tipps von Lukas zu SHR gewechselt. Android Cupcake funktioniert auf dem Openmoko Freerunner reibungslos, soweit ich das in einer Woche beurteilen kann. Nervig ist bloß, dass man es innerhalb von 24 Stunden mindestens einmal aufladen muss, auch wenn man nicht wirklich viel damit gemacht hat. Der Stromverbrauch ist einfach recht hoch. Da scheint SHR etwas länger durchzuhalten, wenn man Dienste wie WLAN, Bluetooth oder GPS wirklich nur dann aktiviert, wenn man sie braucht, den Freerunner immer fleißig in den Suspend schickt und die Helligkeit des Displays standardmäßig etwas herunter dreht. Das Stable Hybrid Release (SHR) ist eine freie GNU/Linux-Distribution, die es nicht nur für das OpenMoko, sondern auch für andere Smartphones wie dem N900 von Nokia, dem HTC Dream, oder dem Palm Pre gibt. Außerdem ist es wirklich eine Distribution für Frans von Gnu/Linux und Freier Software, weil man von Anfang an viel selber machen darf. Die Installation ist zwar ein bisschen komplizierter als bei Android, klappt aber trotzdem sehr gut.

Die Installation von SHR auf dem OpenMoko GTA02 mit Ubuntu

Bevor man SHR auf den Freerunner flashen kann, muss man das Paket dfu-util installieren.

sudo apt-get install dfu-util

Anschließend benötigt man die Dateien zum Flashen. Da ich SHR als User einsetzen möchte, habe ich mich für SHR-testing entschieden und neben Qi als Bootloader das entsprechende Rootfs und Kernelimage heruntergeladen:

wget http://build.shr-project.org/shr-testing2011.1/images/om-gta02/qi-s3c2442.udfu
wget http://build.shr-project.org/shr-testing2011.1/images/om-gta02/full-om-gta02.jffs2
wget http://build.shr-project.org/shr-testing2011.1/images/om-gta02/uImage-om-gta02-latest.bin

Damit beim Flashen gleich alles glatt läuft, bereitet man den Ubuntu-Rechner schon mal vor und startet ein Terminal und bekommt mit dem Befehl sudo -s Root-Rechte.

Das Telefon schaltet man am besten aus, falls es noch an ist, und bootet ins NOR-Menü, in dem man erst die Taste AUX und dann die Taste POWER für ein paar Sekunden gleichzeitig gedrückt hält. Jetzt muss man sich beeilen, weil der Freerunner nach 30 Sekunden Inaktivität wieder abschaltet. Mit dem USB-Kabel verbindet man das Smartphone mit dem Ubuntu-Rechner und führt im Terminal, in dem man Root geworden ist, folgenden Befehl aus, um den Bootloader Qi zu überspielen:

dfu-util -a u-boot -R -D qi-s3c2442-master-hist_3b8513d8b3d9615e.udfu

Danach folgt das RootFS:

dfu-util -d 0x1d50:0x5119 -a rootfs -R -D full-om-gta02.jffs2

Wenn der Befehl erfolgreich ans Freerunner abgesetzt worden ist, sieht man einen Fortschrittsbalken in Form von Raute-Zeichen im Terminal.

Das Aufspielen des RootFS dauert eine Weile, aber man sollte das Ende nicht verpassen, denn sonst schaltet sich das Telefon nach 30 Sekunden Inaktivität wieder aus, obwohl man noch den Kernel aufspielen muss:

dfu-util -d 0x1d50:0x5119 -a kernel -R -D uImage-2.6.34-r7-oe17-om-gta02.bin

Mit NeoTool gibt es auch eine grafische Oberfläche für das Flashen. Da es kein Paket für Ubuntu oder Debian gibt, lädt man sich das Shell-Skript am besten direkt herunter. Die notwendigen Pakete, die man benötigt, um das Skript laufen zu lassen, wie bash, which und awk, sollte es in einer Ubuntu-Installation schon geben, zenity muss eventuell noch installiert werden.

Genauso wie dfu-util muss man auch NeoTool als Root starten, was zum Beispiel mit sudo bash neotool funktioniert.

Welchen Weg man auch geht, nach dem Flashen der drei Dateien steckt man das USB-Kabel wieder ab, schaltet das Telefon aus und bootet es neu, indem man auf den POWER-Knopf drückt.

Freerunner mit Ubuntu verbinden

Wenn man nach dem Neustart des Freerunners Telefon und Computer wieder mit dem USB-Kabel verbindet, wird es als Netzwerkadapter erkannt. Welcher Netzwerkadapter das ist, verrät der Befehl ifconfig im Terminal:

ifconfig -a
eth0      Link encap:Ethernet  Hardware Adresse 00:1d:72:12:a0:d1  
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:16 
 
eth2      Link encap:Ethernet  Hardware Adresse 00:1f:11:01:5b:25  
          inet6-Adresse: fe80::21f:11ff:fe01:5b25/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000 
          RX bytes:152 (152.0 B)  TX bytes:2178 (2.1 KB)
[...]

Im Normalfall heißt das Interface usb0, aber man sollte sich auch nicht irritieren lassen, wenn es anders heißt. In diesem Fall ist es eth2, das man mit folgender IP-Adresse verbindet:

sudo ifconfig eth2 192.168.0.200 netmask 255.255.255.0

Danach kann man mit Secure Shell (SSH) ein Terminal auf dem Freerunner starten. Per default ist der Schnittstelle des Freerunners die IP-Adresse 192.168.0.202 zugeteilt:

ssh root@192.168.0.202

Wenn root@om-gta02 ~ # als Prompt erscheint, hat man es geschafft und ist auf der Shell des Freerunners gelandet.

SHR mit WLAN verbinden

Um den Freerunner mit WLAN zu verbinden, kann man entweder das Programm Iliwi auf dem Desktop des Telefons starten und das Netzwerk auswählen, oder man macht das ganze auf der Konsole. Dann muss man aber unter Settings WLAN manuell starten.

Dann gibt man im Terminal die folgenden beiden Zeilen ein:

wpa_passphrase MeinWLAN "MeinPasswort123" > /etc/wpa_supplicant/wpa_supplicant.conf
fsoraw -r WiFi -- wpa_supplicant -ieth0 -Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf &

Am Ende der zweiten Zeile ist ein “&”. Lässt man das weg, blockiert der Aufruf des Befehls das Terminal und man muss eine zweite SSH-Verbindung zum Freerunner öffnen, um mit folgenden Befehlen weitermachen zu können:

ifconfig eth0 up
udhcpc

Am Ende sollte es im Terminal folgendermaßen aussehen, wenn man verbunden ist:

SHR updaten

Nun kann man erstmal das Betriebssystem updaten:

opkg update && opkg upgrade

Danach ist es gut, eine deutsche Tastatur zu bekommen, weil sich eine SMS ohne Umlaute doch blöd schreibt:

opkg install illume-keyboard-german

Damit man die deutsche Tastatur auch auch ohne Neustart des Telefons auswählen kann, reicht es aus, den X-Server neu zu starten.

/etc/init.d/xserver-nodm restart

Die Tastatur aktiviert man übrigens mit dem kleinen Button oben links, der sich gleich rechts neben dem kleinen Häuschen befindet, das einen übrigens immer zum Desktop bringt.

Wie geht es weiter?

Jetzt ist man gut gerüstet, SHR weiter zu erforschen. Dazu sollte man sich auch unbedingt in der Mailingliste eintragen, um über wichtige Änderungen informiert zu werden, oder man schaut im IRC vorbei. Die Homepage des SHR-Projekts ist natürlich auch ein wichtiger erster Anlaufpunkt, genauso wie das User Manual von SHR im Wiki von OpenMoko. Welche Pakete man unbedingt auf dem Freerunner braucht, findet man ebenfalls in dem Wiki. Und wie geht es hier weiter? Angeregt durch einen Artikel auf penguinpower.de will ich meine eigenen kleinen Apps basteln, um SHR besser an meine Bedürfnisse anzupassen.


Habe heute nach einer Möglichkeit gesucht die Ausgaben eines Scriptes mit einem Zeitstempel zu versehen und damit dann in ein Logfile zu schreiben. Das ganze könnte man natürlich auch per Syslog machen – ist aber nicht überall gewünscht oder sinnig. Also wie geht das? Ich hab das so gemacht:

<SCRIPT/PROGRAMM> >> >( while read line; do echo "$(date): ${line}"; done >> /tmp/test_log.log ) 2>&1

Auf diese Weise entsteht ein Log in der Form:

Mo 28. Feb 08:35:14 CET 2011: <LOGOUTPUT>

 

 

Da tippt man die letzten Zeilen des Kernelrückblicks, schaut noch einmal kurz auf kernel.org vorbei - Und hat plötzlich die Wahl, nochmal eine Stunde dranzuhängen oder nicht ganz so aktuell zu sein. Ach, was soll's - Wer braucht schon Schlaf?

Linux Kernel 2.6.38-rc7, Darstellung mit gitgNoch fehlt die Mail auf der Linux Kernel Mailing List und die direkten Links zu Patch und so weiter, aber immerhin findet sich der Commit im Kernel-Git und somit ist schonmal ein erster Blick möglich, solange das Notebook nebenan kompiliert. Das Patch ist nicht wesentlich kleiner als das des Vorgängers - in Megabyte gemessen. Die Zahl der geänderten Codezeilen ist jedoch geringer, dafür sind von den Änderungen mehr Dateien betroffen. btrfs sticht ein wenig hervor, wo ein Fehler in der Behandlung des zugewiesenen Speichers beseitigt wurde. Am ath5k-Treiber für Atheros WLAN-Chips wurden Optimierungen vorgenommen, die in schnellerem Kanal-Wechseln resultieren sollen. Der Rest sieht nach den üblichen Fehlerkorrekturen aus.

Update: Mittlerweile ist auch die Freigabe-Mail eingetrudelt. Viel mehr als mir fiel Torvalds zur neuen Vorabversion aber wohl auch nicht ein, siehe Linux Kernel Mailing List auf Gmane.org

 

1. März 2011

Mozilla hat korrigierte Versionen des Browsers Firefox 3.6 und des E-Mail-Clients Thunderbird 3.1 veröffentlicht.

Mozilla Firefox, Mozilla Thunderbird Logo

Im quelloffenen Browser Firefox wurden in Version 3.6.14 elf Sicherheitslücken behoben, wovon neun als kritisch (rot), eine als hoch (orange) und eine weitere als moderat (gelb) eingestuft wurden. Drei kritische Lücken davon betreffen auch das E-Mail-Programm Thunderbird.

MFSA 2010-84 XSS hazard in multiple character encodings (Firefox)

MFSA 2010-83 Location bar SSL spoofing using network error page (Firefox)

MFSA 2010-82 Incomplete fix for CVE-2010-0179 (Firefox)

MFSA 2010-81 Integer overflow vulnerability in NewIdArray (Firefox)

MFSA 2010-80 Use-after-free error with nsDOMAttribute MutationObserver (Firefox)

MFSA 2010-79 Java security bypass from LiveConnect loaded via data: URL meta refresh (Firefox)

MFSA 2010-78 Add support for OTS font sanitizer (Firefox/Thunderbird)

MFSA 2010-77 Crash and remote code execution using HTML tags inside a XUL tree (Firefox)

MFSA 2010-76 Chrome privilege escalation with window.open and <isindex> element (Firefox)

MFSA 2010-75 Buffer overflow while line breaking after document.write with long string (Firefox/Thunderbird)

MFSA 2010-74 Miscellaneous memory safety hazards (rv:1.9.2.13/ 1.9.1.16) (Firefox/Thunderbird)

Ausserdem fixten die Firefox-Entwickler insgesamt 40 Bugs (siehe Firefox-Buglist).

Mozilla Messaging – die Thunderbird-Verantwortlichen bei Mozilla – hat den freien E-Mail-Client um insgesamt 56 Fehler erleichert (siehe Buglist).

Den Linux-Benutzern werden die Mozilla-Updates in Kürze von den jeweiligen Distributoren über die automatische Aktualisierungsverwaltung bereitgestellt.

Alternativ können sowohl Firefox als auch Thunderbird direkt bei Mozilla bzw. Mozilla Messaging heruntergeladen werden.

Links:
Mozilla Firefox Release Notes (englisch)
Mozilla Thunderbird Release Notes (englisch)

Verwandte Blogeinträge:
Zwölfte Beta von Firefox 4 verfügbar (25. Februar 2011)

Bookmark and Share

Vor langer Zeit haben ich schon einmal ein Tutorial geschrieben wie man einen Lomo Effekt in Photoshop erzielen kann. Nun Zeige Ich euch wie es in Darktable geht.

Zuerst aber was ist überhaupt Lomo, oder Lomographie?
Der Lomo Fotoapparat ist ein “veralteten” russischen Kamera, welche der KGB 1982 in Auftrag gab. Sie ist eigentlich nur ein Kopie einer japanische Kompaktkamera (Cosina CX-1) und sollte eigentlich  zu Spionagezwecke eingesetzt werden….
Wie die Geschichte weitergeht könnt ihr wie so oft bei Wikipedia nachlesen.

So was sind nun eigentlich die charakteristischen Eigenschaften eines Fotos, aus solch einer Lomo-Kamera?  Die Fotos sind meistens sehr kontrastreich, farbintensiv und haben eine deutlich sichtbare Vignettierung. Es hängt zum Teil natürlich auch vom verwendetet  Filmmaterial ab, wie stark diese Eigenschaften ausgeprägt sind. Dieses Tutorial ahmt diese Charakteristika nur nach. Richtige LomographInnen werden solche Fotos sowieso nicht mit eine Digitalkamera machen und immer den Film bevorzugen.

Für richtige Lomographie gibt es auch noch 10 Regeln:

Die 10 goldenen Regeln der Lomographie:

  1. nimm die Kamera mit, wo immer Du gehst
  2. benutze sie tag und nachts
  3. Lomographie ist ein Teil deines Lebens
  4. bring die gewünschten Objekte so nahe wie möglich an die Linse
  5. denke nicht
  6. sei schnell
  7. es ist vorher nicht wichtig zu wissen, was Du auf den Film gebannt hast
  8. erst recht nicht nachher
  9. “schiesse” aus der Hüfte
  10. denke nicht über Regeln nach

Im Video Zeige ich euch wie Ihr den “Lomostyle” imitieren könnt. Am besten schaut Ihr es euch als HD auf Vimeo an.

Lomo Screencast

als HD Video

Und noch das Foto zum Tutorial.

Zu guter Letzt habe ich noch ein Pressset für den Lomo Effekt zum Download:

Lomo Effekt (567)


Betrachtet das Pressset als Startpunkt. Es ist besser wenn Ihr jedes Foto noch etwas individuell weiterbearbeitet.

Das Verhältnis zwischen den Open Source Projekten und ihren Distributionen ist ein sehr besonderes. Die Distributionen brauchen die Open Source Projekte, denn ohne sie haben sie nichts zu paketieren und die Open Source Projekte brauchen die Distributionen um den Quellcode zu verteilen – wie der Name schon sagt. Dieses Verfahren ist so eingespielt, dass richtig große Open Source Gemeinschaften wie z.B. KDE überhaupt keine Pakete bereitstellen, sondern nur den Quellcode zum Download anbieten. Im Falle KDE sind die Distributionen so eingebunden, dass sie Zugriff zu den Quellcode Paketen eines neuen Releases bekommen bedeutend vor dem Rest der Welt (mich eingeschlossen) um Pakete rechtzeitig zum Release bereitstellen zu können.

Die Beziehung zwischen den Open Source Projekten und ihren Distributionen ist so speziell, dass sie sogar eigene Namen haben. Die Open Source Projekte bezeichnen sich als "Upstream" und die Distributionen als "Downstream". Das Projekt ist also flußaufwärts und der Quellcode strömt zur Distribution den Fluß hinunter. Patches, die von den Distributionen zurück an die Projekte fließen, wir mit "to upstream" bezeichnet.

Mir persönlich ist das Verhältnis zu den "Downstreams" sehr wichtig. Ich kenne die Paketbetreuer unserer wichtigsten Distributionen und helfe regelmäßig falls es darum geht KWin besser in die Distribution zu integrieren und Bugreports von "Downstream" werden von mir priorisiert behandelt. Genauso wie einem als Upstream die Downstreams wichtig sind, erwartet Upstream auch, dass Downstream sich um Upstream kümmert. Einer der Punkte, die einem da sehr wichtig sind, ist die Anzahl der Patches, die Upstream integriert. Von einer guten Downstream erwartet man, dass Patches geupstreamed werden. Wenn nicht stellt sich immer die Frage: warum? Hier erfolgt dann sehr oft der Vorwurf, dass Distributionen ihre Upstreams kaputt patchen.

Natürlich ist es einer Downstream erlaubt den Quellcode zu verändern und zu verbreiten. Dies ist durch die dritte Freiheit der Free Software Definition klargestellt:

The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Wer die Open Source Welt in den letzten Tagen verfolgt hat, dem dürfte klar sein auf was ich mit meiner Einleitung hinaus wollte: dem Fall Banshee und Canonical oder verallgemeinert Upstream und Downstream. Zu dem Fall an sich will ich gar nichts mehr sagen. Das haben andere schon viel besser erledigt.

Für mich als Maintainer einer Upstream Software ist das Verhalten der Downstream aber ein sehr interessanter Fall zum Studieren und ich bin mir sicher, dass sehr viele Upstream Entwickler den Fall sehr genau betrachten und auch andere Downstreams schauen sehr genau darauf. Faktisch ist alles klar: Canonical hat durch die dritte Freiheit das Recht den Code zu ändern in welcher Art sie wollen. Ob sie es sollen ist eine andere Sache. Ich möchte hierzu den relevanten Quellcode in Banshee zitieren:

// We ask that no one change these affiliate codes. ALL (100%) revenue
// generated by these affiliate IDs is sent directly to the GNOME
// Foundation. The GNOME Foundation controls/owns these affiliate IDs.
// Please help support Free Software through the GNOME Foundation!

Ob es nun moralisch vertretbar ist, dass ein Unternehmen diesen Code ändert um selbst Profit daraus zu ziehen, muss im Endeffekt jeder selbst entscheiden. Für mich persönlich ist es befremdlich zu sehen, dass eine Downstream gegen den Wunsch des Upstream Projekts den Code ändert – auch wenn es ihr gutes Recht ist. Für mich als einer der vielen altruistisch arbeitenden Open Source Entwickler ist es noch befremdlicher zu sehen, dass das Geld eigentlich an eine gemeinnützige Organisation gehen soll. Der finanzielle Beitrag ist dabei übrigens eher marginal. Banshee bringt aktuell etwa 10.000 $ pro Jahr ein. Wir können nicht wissen wie viel Ubuntu beisteuern würde, aber meine Vermutung ist, dass es nicht viel mehr wäre. Der aktuelle Beitrag reicht vllt. um einen Entwickler einen Monat zu finanzieren oder aber um einen Sprint auszurichten. Ich überlasse die Bewertung dessen dem Leser.

Der "Skandal" ist für mich aber nicht, dass Canonical den Code geändert hat, sondern das Vorgehen. Zuerst eine Diskussion mit den Entwicklern zu starten und zwei Optionen zur Wahl zu stellen und danach einstimmig zur abgelehnten Option umzuschwanken, ist meiner Meinung nach mehr als nur schlechter Stil. Persönlich denke ich auch, dass hier das Hauptproblem ein Kommunikationsproblem von Seiten Canonicals war. Und ich meine nicht, dass überhaupt Optionen angeboten werden, wie Mark Shuttleworth es nun verteidigt hat, sondern dass man das Upstream Projekt falsch angesprochen hat.

Als Distribution muss man seine Upstreams kennen. Bei den zwei Optionen hätte es Canonical bereits im Vorfeld klar sein müssen, wie sich die Entwickler entscheiden. Canonical hätte also wissen müssen dass die gewünschte Option nicht gewählt wird und das anschließende Erzwingen stößt jeden Entwickler nur vor den Kopf. Natürlich wäre nicht zu kommunizieren genauso falsch gewesen, genauso wie zu kommunizieren, dass man das jetzt einfach so macht. Ich halte es aber für durchaus denkbar, dass man die Community so führen kann, dass sie selbst den Vorschlag zum Aufteilen der Einnahmen erbringt – wenn es unbedingt sein muss. Eine klare Aufgabe für einen Communitymanager – den Ubuntu ja hat.

Canonical hat sich mit der gesamten Geschichte einen riesigen Bärendienst erwiesen. Canonical und auch Ubuntu stehen schon länger unter genauer Beobachtung von Upstream Projekten. Immer wieder mehren sich die Vorwürfe, dass Canonical nur nimmt und nicht gibt (vgl. Diskussion zu Quellcode Beiträge zu Kernel und GNOME). Immer wieder wird auch die Art und Weise wie Canonical mit der Community umgeht kritisiert (vgl. Copyright Assignment, Ayatana, Unity). Persönlich habe ich auch schon sehr lange und intensiv mir Gedanken zu Canonical gemacht und auch immer wieder gefragt, ob Canonical überhaupt Open Source versteht. Für mich passt (leider) das aktuelle Geschehen in mein Bild von Canonical – denken viele Entwickler so, dann ist dies eine sehr gefährliche Entwicklung für Canonical. Verscherzt es sich Canonical zu stark mit allen Upstream Projekten, dann stehen sie sehr alleine dar und ob sie dafür Manpower und Kompetenz auf allen Feldern haben, ist mehr als fraglich.

Hinweis: in diesem Text fehlen viele Fußnoten. Ich habe mich aus aktuellem Anlass dazu entschlossen meine Quellen nicht anzugeben und überlasse dem Leser das Suchen der Quellen selbst. Bei der großen Anzahl von Quellen zu diesem Blogpost habe ich leider den Überblick verloren, dennoch ist es kein Plagiat, auch wenn Gedanken aus anderen Quellen übernommen worden. Dies sieht man schon daran dass alle nicht angegebenen Quellen auf Englisch sind und dieser Post auf Deutsch.

=-=-=-=-=
Powered by Blogilo

Um FFmpeg in vollem Umfang nutzen zu können, muss man es selber aus dem Quellcode kompilieren. Natürlich reichen die normalen Ubuntu-Pakete für den standard User, allerdings benötigt man z.B. für .flv-Videos die selbst kompilierte Version. Dies kann ganz einfach realisiert werden. Weiter unten findet sich auch ein guide um die Pakete zu aktualisieren

FFmpeg und x264 kompilieren und installieren

  1. Zuerst einmal müssen eventuell bereits installierte deinstalliert werden:

    sudo apt-get remove ffmpeg x264 libx264-dev
  2. Benötigte Pakete zum Kompilieren installieren:

    sudo apt-get update
    sudo apt-get install build-essential git-core checkinstall yasm texi2html \
    libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \
    libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev \
    libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
  3. Aktuelle Quelldateien von x264 hohlen, kompilieren und installieren:

    cd
    git clone git://git.videolan.org/x264.git
    cd x264
    ./configure
    make
    sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
    awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
    --fstrans=no --default
  4. Aktuelle Quelldateien von FFmpeg hohlen, kompilieren und installieren:

    cd
    git clone git://git.videolan.org/ffmpeg.git
    cd ffmpeg
    ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
    --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
    --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis \
    --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
    make
    sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no \
    --deldoc=yes --fstrans=no --default
    hash x264 ffmpeg ffplay ffprobe

Damit ist man auch schon fertig! Wie man x264 in Verbindung mit FFmpeg benutzt, findet sich hier: http://rob.opendot.cl/index.php/useful-stuff/ffmpeg-x264-encoding-guide/

FFmpeg und x264 updaten

Da man die Pakete selber kompiliert hat, muss man auch manuell die Updates einspielen , falls es welche gibt. Dies bringt teilweise neue Features bzw. Bugfixes

  1. Zuerst werden x264 unf FFmpeg deinstalliert und die Abhängigkeiten aktualisiert.

    sudo apt-get remove ffmpeg x264 libx264-dev
    sudo apt-get update
    sudo apt-get install build-essential git-core checkinstall yasm texi2html \
    libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \
    libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev \
    libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev
  2. x264 source code aktualisieren:

    cd ~/x264
    make distclean
    git pull
  3. danach x264 kompilieren und installieren:

    ./configure
    make
    sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
    awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
    --fstrans=no --default
  4. FFmpeg source code aktualisieren

    cd ~/ffmpeg
    make distclean
    git pull
  5. FFmpeg kompilieren und installieren

    ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc \
    --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb \
    --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis \
    --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
    make
    sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no \
    --deldoc=yes --fstrans=no --default
    hash x264 ffmpeg ffplay ffprobe

Tagged: 10.10, ffmpeg, kompilieren, Ubuntu, ubuntuusers

Ich hatte am vergangenen Wochenende einige Sachen im Board umgestellt. Soweit ja kein Problem. Nur hat nun der Link der bei Google auf meine TrueCrypt-FAQ gezeigt hat (http://www.operation-tunnelbau.de/index.php?topic=27.0), nicht mehr gepasst. Diesen wollte ich nun auf das Wiki umleiten. Und was soll ich sagen? Ich hasse Htaccess, RewriteCond und RewriteRule. Naja eigentlich bin ich vermutlich einfach zu blöd dazu. Hier nun des Rätsels Lösung. Vielleicht hilft das den einen oder anderen ja weiter.

RewriteCond %{SCRIPT_FILENAME} index.php 
RewriteCond %{QUERY_STRING} topic=27\\.0
RewriteRule ^(.*)$ http://www.wiki.operation-tunnelbau.de? [L,R=301]

Im Grunde eigentlich nicht schwer und Gott sei Dank ohne kompliziertes Regex. Sonst wäre es komplett vorbei gewesen.

Es ist wieder einmal an der Zeit für ein weiteres Inkscape Tutorial. Die Idee zu diesem hier stammt nicht von mir sondern ist einem anderem Tutorial, ist allerdings etwas abgeändert. Ich finde die Pfadmethode weniger für Einsteiger geeignet, ganz lustig finde ich auch, dort gegen Bezahlung dann den Download der Tango-Farbpalette anzubieten, ist die doch eh in Inkscape als Standard enthalten und falls nicht, kann man sie immer noch in den Tango Style Guidelines finden. So nun aber genug der Vorrede, los gehts!

Als erstes nach dem Öffnen von Inkscape stellen wir uns unter den Dokumenteneinstellungen die Icongröße 48x48px ein und in der Farbpalette wählen wir die Palette der Tango Icons. Die Raute-Taste aktiviert und deaktiviert im Bedarfsfall das Orientierungsgitter. Hier einfach nur sicherstellen, dass die Gittergröße immer 1 Pixel beträgt.

Als erstes zeichnen wir mit dem Werkzeug Kreise und Ellipsen erstellen einen Kreis. Dieser sollte knapp unter dem oberen Bildrand beginnen und etwa bis zur Mitte reichen, meiner ist 24x24px groß. Kleiner Tip beim zeichnen, die Strg-Taste gedrückt halten damit es auch wirklich ein Kreis wird.
Dann erstellen wir mit dem Werkzeug Bezierkurven und gerade Linien zeichnen ein Trapez, wie auf Abbildung 2 zu sehen. Dann ziehen wir uns eine Hilfslinie herunter und positionieren diese etwa im oberen Drittel des Trapez. Das soll sicherstellen, das die Knoten, die wir nun setzen auch auf der gleichen Höhe sind. Wir setzen also dort wo die Hilfslinie nun ist auf jeder Seite einen weiteren Knoten. Den gleichen Schritt wiederholen wir vertikal, nur das wir hier die Knoten in der Mitte setzen.
Die Knoten an den Seiten machen wir symetrisch und versetzen sie etwas nach innen. Die Knoten oben und unten machen wir ebenfalls symetrisch und versetzen den oberen etwas nach oben und den unteren nach unten. Die beiden äußeren Knoten unten runden wir automatisch ab und setzen die oberen Anfasser etwas nach unten. Das Ergebnis sollte dann in etwa so aussehen, wie in Abbildung 3.

Jetzt selektieren wir beide Formen, dazu die Shift-Taste einfach gedrückt halten und vereinigen die beiden Objekte zu einem Pfad, entweder mit Strg++ oder über Pfad>Vereinigung. Die Zeichnung sollte nun so aussehen, wie auf Abbildung 4.
Dieser Form geben wir jetzt die richtige farbige Füllung. Für die Fläche wählen wir zuerst das helle blau aus unserer Palette und gehen dann auf die Farbeinstellung und wählen dort “radialen Farbverlauf” aus. Wir schliessen die Farbeinstellungen wieder und wählen das Werkzeug Farbverläufe erstellen und bearbeiten. Die Endmarkierungen des Farbverlaufes werden sichtbar. Für den Mittelpunkt wählen wir das Weiss aus der Palette und versetzen ihne etwas nach rechts oben. Der äußere Punkt bekommt die hellblaue Farbe aus der Palette und der obere Punkt muss etwas nach innen gesetzt werden, so das der Farbverlauf wirklich radial ist. Auch dem Rand geben wir jetzt eine Farbverlaufsfüllung, dieses mal allerdings linear, und zwar vom hellen blau nach dem dunklem Blau. Die Endpunkte sitzen links oben und rechts unten. Das Ergebnis sollte nachher so aussschauen, wie auf Abbildung 5 zu sehen.
Die Form duplizieren wir jetzt mit Str+D und löschen die Farbeinstellungen, die Farbe der Fläche löschen wir und vom Farbverlauf des Randes machen wir ein Duplikat. Dan wechseln wir auf das Werkzeug Farbverläufe erstellen und bearbeiten und geben dem oberen Punkt das Weiss aus der Palette und dem unterem das helle Blau.
Jetzt wählen wir Pfad>dynamischer Versatz und versetzen den Punkt so, das die neue Form mit der Innenkante des Randes der darunterliegenden Form abschliesst. In den Objekfrabeinstellungen kontrollieren wir dannach, das die Randstärke noch auf 1 Pixel steht. Das Resultat sollte dann so aussehen, wie auf der Abbildung Nummer 6.
Es wird Zeit, das Innere der Glühlampe zu zeichnen. Als Erstes zeichen wir mit dem Werzeug Bezierkurven und gerade Linien zeichnen eine Diagonale. In den Objekfarbeinstellungen stellen wir jetzt die Linienenden auf abgerundet im Reiter “Muster der Kontur”. Dann Duplizieren wir diese Linie und spiegeln diese horizontal. Das Ergebnis sollte dann so aussehen, wie auf Abbildung 7 zu sehen. Dann zeichen wir noch eine Zickzacklinie, wie auf Abbildung 8 zu sehen und runden die innneren drei Knoten dieser ab. Dann müssen wir noch die untere Form von Abbildung 8 zeichen auch hier runden wir den Knoten oben in der Mitte ab und stellen bei allen Linien sicher, dass die Enden abgerunden sind und bei der letzten Form sollte auch die Einstellung, der Verbindungsart auf abgerundet stehen. Alle 3 Formen selektieren wir im Anschluss und wandeln diese über Pfad>Kontur in Pfad umwandeln in einen Pfad um. Dann können wir die 3 Formen über Pfad>Vereinigung oder Strg++ zu einem einzigen Pfad zusammenfügen und diesem einen linearen Farbverlauf als Füllung geben. Und zwar von oben Weiß nach unten das dunkle Grau aus der Farbpalette. Das Erbnis sollte aussehen, wie auf Abbildung 9.

Dann können wir das Innenleben der Glühlampe wie auf Abildung 10 zu sehen positionieren, und senken es um eine Ebene im Stapel mit der Bildab-Taste.
Von der allerersten Form machen wir dann mit Strg+D ein Duplikat und löschen den Rand, für die Füllung wählen wir das mittlere Gelb und einen Radialen Farbverlauf und setzen die Objektsichtbarkeit auf 25% herab, wie in Abbildung 11 und 12 zu sehen. Dann zeichnen wir noch ein Oval, wie auf Abbildung 13 zu sehen und geben diesem die Farbe Weiß als Füllung und setzen die Objektsichtbarkeit auf 40% zurück.
Wir zeichnen mit dem Werkzeug Bezierkurven und gerade Linien ein Viereck, wie auf Abbildung 14 zu sehen. Der oberen und unteren Linie geben wir in der Mitte wieder einen weiteren Knotenpunkt und runden diesen ab und versetzen den oberen etwas nach oben und den unteren etwas nach unten. Dan setzen wir an beiden Seiten etwa in gleichem Abstand drei weitere Knoten, den mittleren machen wir symetrich und versetzen diesen nach innen. Die ganz untersten Knoten runden wir ab und versetzen die obere Tangent etwas nach innen, das Ergbnis sollte in etwa so aussehen, wie uaf Abbildung 16.
Für die Farbeinstellungen benutzen wir für den Rand das dunkle Gelb und die Fläche füllen wir mit einem linearen Farbverlauf vom hellem Gelb nach Weiß. Wir stellen in den Farbverlaufseinstellungen auf “alternierend” und versetzen den weissen Endpunkt in etwa die Mitte der Fläche, das sollte nachher so aussehen, wie auf Abbildung 16.
Zum Schluß zeichen wir noch auf die Fläche zwei Dreiecke, wie auf Abbildung 17, die wir mit dem dunklem Gelb füllen und zeichnen einen Kreis den wir mit dem Farbwert Aluminium 5 füllen und dem Rand geben wir den Farbwert Aluminium 6. Den Kres setzen wir dann mit der Ende-Tast im Stapel ganz nach unten.
Als letztes zeichnen wir dann noch ein Oval dem wir eine große Unschärfe geben und setzen es ebenfalls nach ganz unten und schon sollte unser Icon so aussehen, wie auf Abbildung 18.
So und wie in letzter Zeit auch gibt es das Ganze natürlich noch einmal als Screencast.

Die Entwicker des Online-Speichers Dropbox haben mal wieder eine neue Forum-Build zum testen freigegeben. Die Dropbox-Version 1.1.0 enthält zahlreiche Neuerungen. So wurden die Einstellungsmöglichkeiten zur Bandbreite und der Proxys überarbeitet. Darüber hinaus gibt es erste Übersetzungen als Beta-Version, darunter Deutsch und Französisch.

Dropbox erkennt dabei automatisch die Systemsprache, auf Wunsch kann die Sprache aber auch manuell eingestellt werden. Über die erweiterten Einstellungen kann man die Übersetzungen verbessern und somit den Entwicklern andere Übersetzungen vorschlagen.

Weitere Neuerungen und Änderungen kann man dem Forum-Beitrag entnehmen. Zu beachten gilt, dass es sich bei Dropbox 1.1.0 nicht um eine stabile Version handelt und mit Vorsicht eingesetzt werden sollte.

Für Linux steht die Version für 32-bit und 64-bit-Systeme zur Verfügung. Zum installieren sollte man Dropbox stoppen, den .dropbox-dist-Ordner im Home-Verzeichnis umbenennen und das Archiv ins Home-Verzeichnis entpacken. Anschließend kann Dropbox wieder gestartet werden.