Fedora 11 ist da!

Endlich, nach nur einigen kleinen Verzögerungen, ist es endlich erschienen: Fedora 11, genannt „Leonidas“!

Was alles neu ist, das lässt sich den Release Notes entnehmen. Technischere Details zu einigen der Neuigkeiten kann man auch auf der „Feature List“-Seite im Wiki nachlesen.

Wem jetzt schon das Wasser im Munde zusammenläuft, oder wer Fedora oder Linux allgemein einfach mal ausprobieren möchte, der sollte nicht zögern, sich dieses Meisterstück herunterzuladen, am Besten per BitTorrent (ja, das ist auch in Deutschland legal …): http://torrent.fedoraproject.org/

Damit tut ihr gleichzeitig auch was gutes und helft, Fedora zu verteilen, ohne dass die Download-Server überlastet werden.

Viel Spaß!

Und ich kümmer mich mal weiter um meine Diplomarbeit …

Der kleine Unterschied

Man beachte den kleinen Unterschied zwischen PHP und Python, der mich einige Zeit erstmal gekostet hat:

PHP:

<?php
class T {
    var $x = array();
}
$a = new T();
array_push($a->x, 1);
echo count($a-&gt;x); // <strong>Ausgabe: 1</strong>
$b = new T();
array_push($b-&gt;x, 2);
echo count($b-&gt;x); // <strong>Ausgabe: 1</strong>

Dagegen ein nahezu äquivalentes Konstrukt in Python:

class T:
&nbsp;&nbsp;&nbsp;&nbsp;x = []
a = T()
a.x.append(1)
print len(a.x) # <strong>Ausgabe: 1</strong>
b = T()
b.x.append(2)
print len(b.x) # <strong>Ausgabe: 2</strong>

Die Erklärung findet sich übrigens hier:

Objects have individuality, and multiple names (in multiple scopes) can be bound to the same object. This is known as aliasing in other languages. This is usually not appreciated on a first glance at Python, and can be safely ignored when dealing with immutable basic types (numbers, strings, tuples). However, aliasing has an (intended!) effect on the semantics of Python code involving mutable objects such as lists, dictionaries, and most types representing entities outside the program (files, windows, etc.).

Safe ’n‘ Simple

Security is hard

Sicherheit ist nicht einfach. Dies gilt allgemein, aber auch und insbesondere für Linux-Systeme. Denn wenn man – wie man es machen sollte – die /tmp-Partition mit noexec einbindet, so kommt es des öfteren vor, dass aptitude bzw. apt-get Probleme haben, da auf /tmp Skripte ausgeführt werden sollen.

Das hat mich bei der Aktualisierung eben wieder angenervt, weswegen ich endlich mal nach einer Lösung gesucht habe. Gefunden habe ich http://www.debian-administration.org/articles/57 , hier ganz kurz die Punchline des Artikels:

Add the following to the file /etc/apt/apt.conf:

DPkg::Pre-Install-Pkgs {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};

Ich hoffe, das funktioniert auch wirklich. Beim nächsten Update werde ich es erfahren.

Global Solutions!?

Acting Globally – that usually means, that a company acts everywhere, right? Well, what about they act for everybody? Shouldn’t that be a part of calling oneself „global“? If so, at least one big, German company doesn’t get it:

PS: The site does not really work with Firefox, either. That’s why I tried Opera in the first place.

Snake-o-matic

During my final diploma thesis, I need to collect a lot of data. Something like website-scraping, though a little bit different. Anyway, I needed (and still do need) some scripting language. I could have taken Perl, PHP, Ruby, … But no, there is also a snake present – so I decided to use Python as my language of choice.

So far, I did not regret this choice for a single second! Although I never used it before, I can now, after only a few hours of actual scripting write complete scripts without having to test them a single time. It makes scripting real fun again.

Oh, and gnuplot-py makes it even visually attractive for non-programmers 😉