freiesMagazin 05/2011 erschienen

freiesMagazin 05/2011 Titelseite

Heute ist die Maiausgabe von freiesMagazin erschienen und bringt viele spannende Artikel aus den Bereichen Linux und Open Source mit.

Inhalt der Ausgabe 05/2011

  • Was Natty antreibt: Ein Blick auf den Kernel von Ubuntu 11.04
  • Der April im Kernelrückblick
  • Python-Programmierung: Teil 7 – Iteratoren
  • Parallelisierung mit Scala
  • Dateigrößenoptimierung von Bildern
  • Wurmkur ohne Nebenwirkung – Virenentfernung mittels Live-CDs
  • Ryzom – Das freie MMORPG
  • Zehn Jahre Warenwirtschaft C.U.O.N.
  • Rezension: Coding for Fun mit Python
  • Veranstaltungskalender und Leserbriefe

Downloads

Unter der Adresse http://freiesmagazin.de/mobil/ finden Sie immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben. Über den Tab Magazin können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben finden Sie in unserem Archiv.

Kontakt

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen und neue Artikelvorschläge können an die Redaktion geschickt werden.

Pingback

[...] ist die Maiausgabe von freiesMagazin erschienen und bringt viele spannende Artikel aus den Bereichen Linux und Open Source mit. Inhalt [...]

Parallelisierung Scala

Hallo,

Die Fibonaci-Funktion wird bitte nicht so, wie im Artikel implementiert. Diese naive Version ist einer der Gründe, warum viele irrtümlich glauben Rekursion ist langsam und somit schlecht.

Bitte so:
def fib( n:Int ) = fib_rek( n, 1, 0 )
def fib_rek( n: Int, b: Int, a: Int) : {
if ( n < 1 ) a
else fib_rek( n -1, a + b, b)
}

Diese Version brauch n rekursive Aufrufe nicht fib(n) Aufrufe wie die naive Version.

Es geht bei der

Es geht bei der Implementation NICHT um Effizienz sondern einfach nur darum, dass ein praktisches Beispiel existiert, wie man einen vorhandenen Algorithmus parallel abarbeiten lassen kann. Natürlich gibt es effizientere Algorithmen aber darum geht es in diesem konkreten Fall nicht.

Python-Serie

Hallo,

Ich fand die Idee die Python-Artikel in eine Serie zu bringen gut, so lässt sich besser darauf verweisen, wenn ein Neuling nach einem guten Tuturial fragt. Aber sollte man eine solche Sonderausgabe nicht erst dann bringen, wenn die Serie beendet ist? Oder kommt Teil 7 (und die nachfolgenden Teile, falls es noch welche geben sollte) nachträglich in die Sonderausgabe, oder wie darf man sich das vorstellen?

Ansonsten wäre es doch irgendwie schade, wenn man zwar eine separate Python-Tuturial-Ausgabe hat, und dort nicht alle Teile vorhanden sind.

Grüße, Keba.

Re: Python-Serie

Niemand weiß, wann die Serie fertig ist, daher würde es so eine Sonderausgabe wohl nie geben. Andererseits wollen wir die einzelnen Artikel der Serie auch nicht zurückhalten, bis so eine Sonderausgabe komplett ist. Es ist dem Autor nicht zuzumuten, erst einmal 50 Seiten Text zu schreiben, ohne auch nur ansatzweise eine Reaktion zu sehen.

Die Teile 1 bis 6 der Python-Reihe gaben ein für sich abgeschlossenes Werk, sodass man diese gut zusammenfassen konnte. Sobald die Teile 7 bis X irgendwann fertig sind, werden diese sicherlich auch wieder zusammengefasst und es gibt eine zweite Python-Sonderausgabe.

Dominik Wagenführ
freiesMagazin-Redaktion

Python Sonderausgabe

Hallo!

Ich wollte die Teile durcharbeiten und nachprogrammieren, stehe jetzt aber vor einem Problem. Es sind nicht alle Listings gedruckt, sondern einige verlinkt. Das Problem: Diese Links gibt es nicht mehr. Sie sind alle fehlerhaft, ich habe sie auch nicht "per Hand" finden können.
Eine Anmerkung noch. Es wird zwar sehr gut und passend auf den Unterschied von Version 2.7 und 3 rücksicht genommen, aber spätestens beim Einbinden des Moduls "mutagen" kann man mit Version 3 aufhören. Das gibts nämlich nicht für Version 3. Damit musst ich dann sowieso auf 2.7 umsteigen.
Ich würde mich über eine Verbesserung der Situation sehr freuen. Danke für die bisherige Arbeit. Sehr gut! :)

lg

Re: Python Sonderausgabe

Vielen Dank für den Hinweis auf die fehlerhaften Links. Ich habe sowohl das PDF als auch die HTML-Version (dort gab es auch Fehler) korrigiert und hochgeladen. Bezüglich Python 2.7 und Version 3 muss wohl der Autor etwas sagen.

Dominik Wagenführ
freiesMagazin-Redaktion

Hallo, danke für die

Hallo,

danke für die Rückmeldung. Mutagen ist - wie einige andere populäre Bibliotheken auch - tatsächlich (noch) nicht für Python 3 verfügbar. Ich muss ehrlich sagen, dass mir das beim Schreiben des entsprechenden Artikels nicht aufgefallen ist, da ich noch überwiegend mit Python 2.x entwickle.

Für die Nutzer von Python 3.x ist die Situation tatsächlich unbefriedigend. Natürlich möchte man mit der neusten Version seiner (Lieblings)programmiersprache arbeiten. Im Fall von Python 3 ist das leider zur Zeit nur mit einigen Einschränkungen möglich. Nicht ohne Grund liefern viele große Distributionen noch Python 2.x als Standard aus. Und selbst bei denjenigen Distris, die Python 3 als Standard ausliefern (wie Arch) ist Python 2.x zur Zeit noch in vielen Fällen nötig (oder gar unverzichtbar?).

Was bedeutet das für die Reihe? Zum einen werde ich nach Möglichkeit weiterhin auf Unterschiede zwischen Python 2.x und 3.x hinweisen, auch wenn es jetzt zugegebenermaßen einen Teil gab, der unter Python 3.x nur mit Einschränkung (die Ersetzung von Mutagen) lauffähig ist. Ich denke, dass man - möchte man sich zur Zeit mit Python beschäftigen - diesen Spagat machen muss. Sowohl unter Linux als auch unter Windows ist es ja auch eigentlich unproblematisch, beide Python-Varianten nebeneinander zu betreiben.

Falls ich aber nochmal auf eine Bibliothek zurückgreifen müsste, die nur für Python 2.x verfügbar ist, würde ich natürlich darauf hinweisen - schon allein, um den Lesern den Ärger zu ersparen, dass die Codebeispiele nicht lauffähig sind.

Schönen Gruß,

Daniel

Danke!

Halo Domini & Daniel!

Danke für eure beiden konstruktiven und ausführlichen Kommentare!
Schön dass die Links so schnell korrigiert wurden. Das erhöht die Qualität des Magazins noch weiter, denn dass Fehler passieren können ist klar. Die Korrektur ist leider weniger selbstverständlich. (y)
Die Problematik mit Python 3.x und 2.x ist mir bewusst. Ich hab auch beide Installationen laufen, denn manche Programme brauchen ja zwingend 2.x, andere müssen mit 3.x ausgeführt werden. Die Problematik mit Mutagen ist sicher nicht mit einem Handgriff aus der Welt zu schaffen. Da das Problem jetzt aber einmal aufgetreten ist, bleibt es sicher auch besser im Hinterkopf present.

ad Daniel:
Da fällt mir spontan noch eine Kleinigkeit ein, die mich ca. 10min "googlerei" gekostet hat. ^^ Im 3.Teil, Abschnutt Module werden alle Dateien im aktuellen(!) Verzeichnis angezeigt. Das funktioniert auch. Also experimentierfreudiger Programmierer hab ich dann mal andere Pfade versucht und keiner hat funktioniert. Später wird dann (ich glaube ohne expliziten Hinweis) diese Funktionalität verwendet, allerdings mit "join", damit der ganze Pfad offenbar stimmt. Damit funktionieren natürlich auch alle Unterverzeichnisse.
Es handelt sich um KEINEN Fehler deines Kurses, falls du irgendwann mal eine Überarbeitung vornimmst, wäre ein Hinweis hilfreich.

Danke für die tolle Arbeit!

Beste Grüße, Thomas

Dateigrößenoptimierung von Bildern

Hallo Dominik

Ihr Artikel ist interessant, geht meines Erachtens allerdings etwas an der täglichen Praxis vorbei.
1. Die meisten Bilder werden entweder auf einem Bildschirm ausgegeben oder in Webseiten, resp. in Social networks verbreitet.
2. Bilder zum Ausdruck benötigen ganz andere Voraussetzungen.

Sie haben zum Beispiel den Aspekt der Auflösung (x PPI) vollkommen weggelassen. So hat ein moderner Monitor ca. 96 PPI (pixels per inch) - früher bei den Röhren-Bildschirmen die berühmten 67 - 72 ppi - ergo sollte ein Bild das für eine Bildschirm-Betrachtung oder auch einen Webseiten-Ausdruck vorgesehen ist, gar keine höhere Auflösung per se haben (Gimp akzeptiert das und hat bei der Eröffnung eines neuen Dokumentes als Standard 72 ppi eingestellt, was man allerdings ändern kann (mein Monitor, den ich ausgemessen habe hat 97 x 96 ppi, so öffnen jetzt alle Bilder für die Webseiten mit dieser Auflösung, für Fotodruck habe ich mir entsprechende Vorlagen mit 600 ppi erstellt - was dann auf dem Bildschirm 6,18 mal mehr platz benötigt, resp man kann den Bildschirmmasstab um diesen Faktor verkleinern um das Bild wieder 1:1 auf dem Monitor zu haben...).

Aus dem obigen geht schon mal hervor, dass für JPG-Webbilder ohne merkbaren Qualitätsverlust auf 67 heruntergefahren werden kann.

Viel schlimmer für die Qualität ist, wenn man Bilder so einstellt, dass sie schliesslich von den Browsern noch skaliert werden müssen - egal ob verkleinert oder vergrössert. Die CSS-Befehle geben ja in der Regel eine Bildgrösse vor und die Browser passen dann die Bilder an. Ganz «ideal» ist, wenn das Seitenverhältnis eines Bildes nicht mit derjenigen des eingestellten Bildes kongruent ist, das gibt schlichtweg eine Katastrophe. Ebenfalls, wenn ein Bild viel zu stark skaliert werden muss, es gehen viel mehr Details verloren als wenn das Gimp oder Fotoshop an die Hand nehmen können. Das ist zwar mit Mehrarbeit verbunden, dafür sind die Resultate durchs Band viel akzeptabler.

Für Gimp gibt es sowohl auf der Windows- wie auch auf der Linux-Ebene je ein Tool, mit dem man die Weboptimierung sehr gut in den Griff bekommt.
Windows: RIOT (http://registry.gimp.org/node/20778)
Linux: Save for Web plug-in (http://registry.gimp.org/node/33)

Ich hoffe dass Sie meine Ausführungen nicht als negativ, sondern als konstruktive Kritik an diesem ziemlich grossen Problem ansehen. Ich selber wohne in einer Gegend, wo auf absehbare Zeit gemäss der Regierung, keine Breitband-Raten-Erhöhung über meine 50KiB/Sekunde angeboten wird. Schon von daher finde ich klarerweise alle Bestrebungen zur Dateireduzierung sehr begrüssenswert und hoffe, Ihre Ausführungen bewirken etwas.

Mit besten Grüssen von Schottlands schönseter Frieninsel

Bruno

Dateigrößenoptimierung von Bildern

Hallo Bruno,

danke für Ihre Anmerkungen, zu denen ich gerne Stellung nehme.

> Aus dem obigen geht schon mal hervor, dass für JPG-Webbilder ohne merkbaren
> Qualitätsverlust auf 67 heruntergefahren werden kann.

Das ist korrekt. Ich habe sogar eben bei einem Bild in GIMP über „Bild -> Skalieren“ die PPI-Zahl auf 5 (horizontal und vertikal) gestellt. Verändert hat das das Bild nicht – es war aber auch noch genauso groß wie vorher. Meines Wissens hat die PPI-Zahl auch keinen Einfluss auf die Dateigröße, sondern nur auf die Anzeigegröße. Vielleicht irre ich da aber auch. Das ist der Grund, wieso ich das Thema nicht im Artikel erwähnt habe, weil ich mich damit nicht auskenne. Wo muss ich denn GIMP die PPI-Zahl umstellen, um wirklich eine Veränderung zu sehen?

> Viel schlimmer für die Qualität ist, wenn man Bilder so einstellt, dass sie schliesslich
> von den Browsern noch skaliert werden müssen

Das wiederum war ja nicht Bestandteil des Artikels, sondern sollte eher in einem HTML/CSS-Workshop nachzulesen sein. Das Bild selbst wird ja nicht verändert, wenn man es auf einer Webseite falsch skaliert darstellt. Dass das meistens nicht gut aussieht, ist natürlich korrekt.

> 1. Die meisten Bilder werden entweder auf einem Bildschirm ausgegeben
> oder in Webseiten, resp. in Social networks verbreitet.

Das stimmt vermutlich, auch wenn ich dazu keine Zahlen habe. Aus dem Grund finde ich Ihren Satz „Ihr Artikel ist interessant, geht meines Erachtens allerdings etwas an der täglichen Praxis vorbei.“ etwas seltsam, denn genau das hat der Artikel gezeigt und sogar in der Einleitung beschrieben. Zitat: „In Zeiten von Breitbandanschlüssen mit über 16 MBit machen sich nur noch wenige Menschen Gedanken über die Größe von Inhalten, die sie ins Netz stellen bzw. per E-Mail verschicken.“ Also genau das, was Sie auch in Punkt 1 anmerken.

> 2. Bilder zum Ausdruck benötigen ganz andere Voraussetzungen.

Auch da stimme ich zu, der Artikel sprach aber nirgends vom Ausdrucken von Bildern. Es ging allein um die Optimierung für die Weitergabe, z.B. auf einer Webseite, per E-Mail oder in einem Online-Magazin.

Viele Grüße
Dominik Wagenführ
freiesMagazin-Redaktion

Dateigrößenoptimierung von Bildern

In der PDF-Version fehlt der JPG-Screenshot aus dem Spiel SpaceChem.

Re: Dateigrößenoptimierung von Bildern

Ja, das ist korrekt. Im PDF sind wir stark vom Layout des Textes abhängig, sodass es sein kann, dass nicht alle Bilder abgedruckt werden können. In der HTML-Version haben wir diese Beschränkung nicht. Ich gebe aber zu, dass zumindest ein Link aufs Bild nicht schlecht gewesen wäre.

Dominik Wagenführ
freiesMagazin-Redaktion

Kleiner Fehler

In den Algorithmus für die Fibonacci-Reihe hat sich eine kleiner Fehler eingeschlichen:
Richtig wäre

def fib(n: Int): Int = {
    if (n == 0) 0
    else if (n == 1) 1
    else fib(n - 1) + fib(n - 2)
}

damit auch die richtigen Werte rauskommen ;)

Diese Sache ist mir schon

Diese Sache ist mir schon öfter aufgefallen. Es kommt immer drauf an wie man das n interpretiert. Entweder man möchte die n-te Fibonaccizahl oder die Fibonaccizahl von n.
In meiner Variante sind die Zahlen praktisch immer um 1 verschoben. Daher wäre es wahrscheinlich besser die Implementation wie im Kommentar angegeben zu verwenden.

Re: Kleiner Fehler

Ich habe die Funktion entsprechend des Vorschlags geändert und das neue Dokument hochgeladen.

Dominik Wagenführ
freiesMagazin-Redaktion

Pingback

[...] Magazin setzt Python Serie fort: In der Maiausgabe des freiesMagazin wird die als Sonderausgabe und Tutorialsammlung erschienene Python [...]

Pingback

[...] FreiesMagazin.de Anmelden oder Registrieren um Kommentare zu schreiben [...]