staging.inyokaproject.org

freiesMagazin 10/2010 erschienen

fM-logo-klein.png

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

Inhalt der Ausgabe 10/2010

freiesmagazin-2010-10.png
Topthemen dieser Ausgabe
  • Der September im Kernelrückblick

  • Python-Programmierung: Teil 1 – Hallo Welt

  • Multiboot-Systeme für USB-Sticks und DVDs

  • Ausblick auf Firefox 4.0

  • Im Test: Fluendo DVD Player

  • Neverball und Neverputt

  • Medienkompetente Ausbildung? Nur auf Basis Freier Software

  • Rezension: Make: Elektronik

  • Veranstaltungskalender und Leserbriefe

Downloads

Unter der Adresse freiesmagazin.de/mobil findet man immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben. Auf der Magazin-Seite können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben findet man im 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.


Vielen Dank an Dee für die Einsendung dieses Artikels!

Veröffentlicht von Ritze | 3. Oktober 2010 17:00 | Kategorie: Allgemeine Nachrichten | # Fehler im Artikel melden

OhNein

Avatar von OhNein
1 3. Oktober 2010 18:01

!Vielen Dank an die Macher des FM! Lese ich immer wieder gern.

Klau3

Avatar von Klau3
2 3. Oktober 2010 20:18

Vielen Dank!

Python hat mich jetzt auch gepackt 👍

Aragornus

Avatar von Aragornus
3 3. Oktober 2010 21:53

Auch von mir: Vielen Dank!

Werde mich jetz auch mal näher mit Python befassen =)

seaman

4 3. Oktober 2010 22:55

Cool, danke für diese Ausgabe.

Soetwas wie eine Anleitung für "Multibootsysteme für USB-Sticks" suche ich schon lange. Werde das bei Gelegenheit mal in die Tat umsetzen und mir so einen Notfall-USB-Stick basteln.

ToastigesEtwas

5 3. Oktober 2010 23:16

Eine sehr gute Ausgabe, gerade der Artikel über den Multiboot USB-Stick gefällt mir sehr gut, trotz dass ich letztens ein Video zum Thema auf YouTube gefunden habe (wobei es dort mit UNetBootin vorgeführt wurde) ☺

Ansonsten kann ich nur sagen, auch wenn ich das Gefühl habe, dass Firefox und die andern Browser immer stärkere Systeme brauchen, einfach, weil die Entwickler immer mehr unnützes Zeugs darein stopfen, überlege ich mir echt wieder, ob ich nicht doch die Beta von der Version 4 anschaue. Schließlich lief die 0.9.3er Beta unter Windows XP damals ja auch ohne Probleme, für mich 😀

Auch Neverball reizt mich. Denke, das Spiel wird sich heruntergeladen.

Auf jeden Fall einen Blick wert, diese Ausgabe.

Lysander

Avatar von Lysander
6 4. Oktober 2010 08:37

Prinzipiell finde ich einen Artikel zu Python natürlich gut, jedoch sind mir einige Dinge (extrem) negativ aufgefallen:

  • es wird nicht klar, welche Version (2.x oder 3.x) hier verwendet wird. Implizit wird die 2.x genutzt, jedoch verwendet der Autor print dennoch als Funktion. Das ist mit Verlaub großer Mist. Wieso nicht ein Hinweis darauf, dass print in 2.x ein Statement und in 3.x eine Funktion ist? Bei raw_input vs. input wurde das doch explizit und deutlich dargestellt.

  • Das (lästige) Thema der Zeichencodierung wird zu stiefmütterlich behandelt¹. Ein kurzes Statement zu utf-8 != unicode wäre doch passend gewesen, zusätzlich ggf. ein Link zu einer Erklärung. Auch hier kommt es zu einen Konflikt zwischen der unklaren Trennung der Versionen. In Python 2.x sollte man nur mit Unicode-Literalen arbeiten und ein name = u"Bernd" bevorzugen. Der Spagat zwischen 2.x und 3.x scheitert spätestens hier gewaltig, ändert sich hier eben der default. Mit Byte-Strings (in 2.x) rennt jeder Anfänger bald gegen eine Wand.

  • Das Einführen der for-Schleife ohne explizit Listen bzw. Iterables betrachtet zu haben halte ich für unglücklich. Die Funktion range() macht ja schon deutlich, dass es in Python meist nicht um Indizes geht. Auch hier würde ich zunächst einen einfachen Datentypen wie die Liste einführen und diese Kontrollstruktur darauf erklären.

¹ist nichts Python spezifisches, jedoch kehrt Python das ein Glück nicht so unter den Teppich wie andere Sprachen das tun.

Ich hoffe das kommt nicht zu negativ rüber, sondern wird als konstruktiv aufgefasst ☺

Barabbas

Avatar von Barabbas
7 4. Oktober 2010 09:20

Hallo Lysander,

ich bin der Autor des Machwerks und für Hinweise natürlich sehr dankbar.

Ich habe versucht, einige Zusammenhänge da zu vereinfachen, wo sich die damit einhergehenden Probleme in Grenzen hielten. Bei raw_input() / input() war das nicht möglich - print aber nur als Funktion vorzustellen halte ich für vertretbar. In wie weit das großer Mist ist, verstehe ich nicht. Es war eine bewusste Entscheidung von mir - falls damit irgendwelche Probleme einher gehen, die ich nicht im Auge hatte, würde ich mich natürlich entsprechend korrigieren - ich sehe aber momentan keinen Anlass dazu.

Das Problem mit der Zeichenkodierung gibt es natürlich - auch hier halte ich es aber für verständlich, dass in einer simplen Anfänger-Einführung dieses Thema nicht näher behandelt wird. Zweck ist es ja, die Sprache und ihre Möglichkeiten vorzustellen - und nicht die Lektüre eines Buches zu ersetzen - dieser Anspruch wird so auch explizit formuliert. Ich weiß, dass du durchaus erfahren in diesem Bereich bist - die Behauptung, dass die Byte-Strings aber quasi automatisch in schwerwiegende Probleme führen, halte ich für übertrieben - gerade im Zusammenhang mit der Angabe der Verwendung der Zeichenkodierung (die in Python 3.0 wieder unerwünscht ist, ich weiß).

Das Vorgehen bzgl. der Vorstellung verschiedener Kontrollstrukturen habe ich mir natürlich auch lange durch den Kopf gehen lassen. Anders als in einem Buch muss in einer "Einführung" wie meiner natürlich jeder einzelne Teil der Einführung für sich genommen auch *interessant* sein. Darum habe ich mich entschieden, schon im ersten Teil for-Schleifen zu besprechen. Das range() nun irgendwann keine Liste sondern ein Iterable zurück gibt, deute ich in diesem Teil nur an - es ist für den Anfänger auch schlicht egal. Ich war der Meinung, dass die range-Funktion schon ein gewisses Potenzial hat, sich einfach etwas in der Sprache auszuprobieren. Ob/das es jetzt in Python nicht "vorrangig um Indizes" geht halte ich übrigens für ein gutes Beispiel einer Feststellung, die für Einsteiger völlig überzogen ist.

Wie gesagt: Ich lasse mich sehr gerne korrigieren und habe mich mit der Einleitung nicht leicht getan - eben weil es sehr schwer ist, bestimmte Sachverhalte auf so kurzem raum für Anfänger runterzubrechen. Mir war klar, dass derartige Kritik kommen würde. Da ich ebenso wie du aber gerne im Python-Forum unterwegs bin, weiß ich, welche Fehlkonzeptionen und Missverständnisse bei Anfängern oft vorherrschen. Ich bin daher nach wie vor der Meinung, dass meine Einführung - bei allen Verkürzungen und problematischen Zugeständnissen - durchaus auch hilfreich sein kann.

Wie gesagt: Vielen Dank für deine Kritik, ich wollte nur einmal etwas ausführlicher auf meinen Anspruch bei der Sache eingehen. Ich hoffe natürlich weiterhin auf Widersprüche und Verbesserungsvorschläge. Da auch ich nur ein Mensch bin, würde ich mich natürlich freuen, wenn man dabei auf Begriffe wie großer Mist verzichten könnte 😉.

Herzliche Grüße,

brb

//edit: Zur Python-Version: Ich gehe übrigens eigentlich von Python 2.6.5 aus, da dies zur Zeit bei den meisten Distributionen noch Standard zu sein scheint. Weiterhin wurde hier schon Einiges auf 3.0 eingenordet.

Lysander

Avatar von Lysander
8 4. Oktober 2010 09:46

@BarabbasVielen Dank für Deine Stellungnahme.

Ok, das Wort Mist bezüglich der print-Problematik war wohl etwas heftig 😉

Ich sehe da folgende Probleme:

  • Du gibst die Semantik der Sprache falsch wieder. print(...) in Python 2.x sieht aus wie eine Funktion, ist es aber nicht.

  • Statements lassen sich nicht wie Funktionen verwenden; ein map(print, range(10)) ist in Python 2.x eben nicht möglich¹

  • Liest ein Anfänger andere Code-Snippets dürfte er wegen der fehlenden "()" verwirrt sein.

¹da wird auch ein Anfänger relativ schnell drauf stoßen denke ich.

Das Thema Zeichenkodierung führt zu viel Verwirrung, eben weil den meisten der Unterschied zwischen Unicode und Bytestring nicht klar ist (ging mir vor einigen Jahren genau so). Die massiven Fragen zu diesem Thema im Python Forum dürften das belegen. Von daher würde ich mir einfach wünschen, dass man diese Thematik nicht durch Nutzung von utf-8 verschleiert, sondern durch explizites Nutzen von Unicode-Literalen und später dem Zeigen von "decode()" bzw. "encode()" aufzeigt. Sicherlich kann man das Thema in einem kleinen Tutorial nicht erschlagen, aber durch die richtige Einführung wird der interessierte Anfänger zum einen dafür sensibilisiert und zum anderen vom Start weg auf das idiomatische Vorgehen getrimmt.

Das richtige Vorgehensmodell bei einer Einführung gibt es sicherlich nicht. Speziell bei for wirkt mir diese Motivation zu altbacken - vielleicht bin ich aber einfach schon zu alt? 😉 Ich denke jedoch, dass die Struktur nicht um ihrer selbst Willen erklärt werden sollte, sondern - wie Du ja eigentlich auch - anhand einer stimmigen Problematik erklärt werden sollte. Imho bieten sich da Iterables eben an; im offiziellen Tutorial werden Listen ja auch kurz vor den Schleifen eingeführt. In Deinem falle wäre es doch eine nette Idee gewesen, einfach mehrere Namen abzufragen und sich zu merken. Will man diese dann eben entsprechend wieder aufrufen, braucht ein Werkzeug und voila: for

So ausufernd sollte das eigentlich gar nicht sein 😀 Ich hoffe wir haben nicht zu viel gespammt 😉

Daher zum Abschluss noch ein dickes Lob und Kompliment für Deine Mühe - Kritik ist wichtig, aber eben auch nicht alles!