Nach fast 2 Wochen ohne Internet und Telefon (wobei ich glücklicherweise die meiste Zeit davon garnicht zuhause war) hat es endlich geklappt - Der Umstieg von T-Com auf das allseits bekannte “Freenet Komplettpaket”. Was bringt der Spaß?

1. Der Anschluss kostet nur noch halb so viel wie bei T-Com

2. Eine schnellere Leitung =)

3. Ein neuer Router

Die für mich spannende Sache daran ist der neue Router: Samsung SMT-G 3210

Erst einmal ist es ein ganz gewöhnlicher Router, der die Aufgaben erfüllt die man ihm gibt. Außerdem gibt es nette Funktionen der Firmware, so dass der Router sich zum Beispiel auch als Datei(FTP)-, Druck- oder Zeitserver verwenden lässt.

Toll, das wars? Nein!

Durch ein wenig Recherche findet man heraus, dass die Firmware Linux-basierend ist =) Das heißt, dass man theoretisch die Firmware beliebig erweitern und konfigurieren kann. Das Problem:

Wie bekommt man vollen Zugriff auf den mit 64 Mb Arbeitsspeicher bestückten “Mini-Computer”?

Kein Problem, die Entwickler dachten sich, ein Telnetzugang wäre doch nicht schlecht. Tatsächlich ist auf der Firmware telnet installiert. Allerdings ist der Dienst nur bis Version standardmäßig 2.* aktiviert und bei mir ist schon die Version 3.01 installiert, wo Telnet nicht mehr standardmäßig aktiviert ist. Aber zum Glück gibt es da diese netten Hacker, die mal eben herausgefunden haben, wie man die Firmware pacht und eine nette Anleitung dazu ins Netz gestellt haben. Ich war natürlich so überstürzt, der Anleitung sofort zu folgen und die Firmware zu patchen, anstatt bis zum Ende zu lesen und die dortige zum Download angebotene Firmware zu nehmen…

Schließlich habe ich es dann auch geschafft die Firmware einzuspielen und habe jetzt telnet-Zugang auf Port 30023 =) =) =)

Jetzt muss ich nur noch sehen, was man mit diesem netten Zugang so alles anstellen kann, vielleicht lässt sich ja noch die ein oder andere nützliche Funktion am Router aktivieren oder hinzufügen. Gegebenfalls wird das hier natürlich wieder gepostet ;-)

Hier für alle interessierten der Forumsthread!

Seit längerer Zeit suche nach einer Lösung für dieses Problem und hier ist das, was nach 100 Versuchen endlich geklappt hat:

Unter: System -> Einstellungen -> Audio

alles auf Pulse Audio umstellen und anschließend per

sudo apt-get install libflashsupport

den nötigen Treiber installieren! Jetzt solltet ihr keine Probleme mehr haben!

Mit dem Sieb des Eratosthenes dauert das Berechnen von den Primzahlen 1 - 1.000.000 in Python nicht mal eine Sekunde, ein kleines Wunder, verglichen mit den 50 Sekunden die dasselbe braucht ohne Optimierung. Wer mehr zur Theorie wissen will, der kann sich den Wikipedia Artikel angucken.

Den Code mit Syntax Highlighting gibt es hier: http://paste.pocoo.org/show/81550/

# Implementierung des Sieb des Erasthotenes
# (Primzahlen Algorithmus)
import time

class Prim_Eratosthenes:

  def __init__(self, anzahlDerPrimzahlen):
    self.anzahl = anzahlDerPrimzahlen
    self.gestrichen = [False] * (self.anzahl)
    startzeit = time.clock()
    self.calculate()
    self.print_prims()
    endzeit = time.clock()
    print 'Zeit %1.4f' % (endzeit - startzeit)

  def calculate(self):
    i = 2
    while i*i <= self.anzahl:
      if self.gestrichen[i] == False:
        # i ist prim, streiche seine Vielfache
        for j in range(i*i,self.anzahl,i):
          self.gestrichen[j] = True
      i = i + 1 

  def print_prims(self):
   for i in range(1, self.anzahl):
     if self.gestrichen[i] == False:
       print i

if __name__=='__main__':
  Prim_Eratosthenes(1000000)

Will man Webseiten runterladen, ohne dass es eine Ausgabe gibt (zum Beispiel in Cronjobs), kann man das folgendermaßen tun, jenachdem ob man lieber curl oder wget dafür benutzt:

curl –silent –output output_filename http://example.com/urltofetch.html

wget –quiet –output-document output_filename http://example.com/urltofetch.html

Mit dem Zattoo Player kann man eine ganze Menge Fernsehsender übers Internet empfangen, also eigentlich eine ziemlich coole Sache. Nur als ich das gestern ausprobiert hatte, lief zwar das Bild super, nur leider gab es dazu kein Sound.

Eine wirkliche Lösung habe ich zwar nicht, aber ich habe dann herausgefunden wie man zumindest das Problem umgehen kann. Scheinbar hat ein Audio Treiber Problemen, wenn mehrere Flash Anwendungen laufen. Ergo einfach Firefox und andere Programme die Probleme machen könnten ausschalten, schon funktioniert es.

Sollte jemand noch eine bessere Lösung haben, würde ich mich über ein Kommentar freuen.

Meistens sieht eine Funktion so aus: 1-3 Parameter, dann werden damit ein paar Sachen gemacht, und am Ende gibt sie einen Wert zurück. Manchmal hat man jedoch spezielle Wünsche, und einer kommt da besonders oft vor: Was in PHP nur sehr umständlich geht und in Javascript gar nicht, ist in Python dagegen eine Leichtigkeit: Funktionen mit unbegrenzten Parametern.

Natürlich könnte man seine Funktionen so schreiben:

def addiere(sum1, sum2, sum3, sum4, sum5):

Das gelbe vom Ei ist das aber nicht gerade. Viel eleganter geht es mit dem Asterisk:

def addiere(*params):

print params

Ein Beispiel:

>>> addiere(1,3,6,7)

(1,3,6,7)

Alle Parameter werden in einem Tupel gespeichert. Aber es geht noch weiter, den Spaß kann man super kombinieren:

def familie(nachname, *vornamen)

>>> familie(’schmidt’, ‘anna’, ‘heinz’, ‘klaus’)

In diesem Fall hat man einen Standard Parameter, und kann danach noch soviele man will angeben. Um dasselbe mit Keyword Parametern zu erreichen muss man zwei Sternchen angeben:

def adressbuch(**params):

print params

>>> adressbuch(name=’Martha’, nachname=’Müller’, plz=12756)

{’name’:'Martha’, ‘nachname’:'Müller’, ‘plz’:12756}

Wie man sieht werden die Parameter in diesem Falle als Dictionary gespeichert. Und zu guter letzt kann man auch alle 3 kombinieren:

def viele_parameter(x,y,z, *weitere_koordinaten, **keyword_paramter)

>>> viele_parameter(1,2,3,4,5,6,’test’,8,var=’hallo’,foo=’bar’)

Für das letzte Beispiel fällt mir zwar auf Anhieb auch kein Verwendungszweck ein, aber trotzdem gut zu wissen, dass es sowas gibt, falls man mal in die Verlegenheit kommen sollte sowas zu brauchen.

Das Ganze geht übrigens auch andersrum:

def addiere(var1, var2)

vars = (3,4)

addiere(*vars)

In diesem Fall wird das Tupel gesplittet und auf die Parameter aufgeteilt. Dasselbe geht auch mit Dictionaries:

def hello(greeting, name)

params = {’greeting’: ‘Guten Tag’, ‘name’:'Hans’}

hello(**params)

Was brauch man schon, um ein echter Hacker zu sein? Natürlich muss man all die Tricks kennen, jedes Bit und Byte muss einem bekannt sein. Aber was es wirklich braucht um sich als echter Hacker bezeichnen zu können ist der richtige Style. Und so soll er aussehn:

Um das zu erreichen folgt folgender Anleitung:

Terminal - Bearbeiten - Profile auswählen.

Dann ‘Neu’ und dem Ganzen einen Namen geben. Unter ‘Farben’ wählt ihr als Hintergrund Schwarz und als Vordergrundfarbe ‘#50FF00′. Als Schriftgröße bevorzuge ich 9,5. Unter ‘Effekte’ dem Style noch etwas Transparenz geben, und schon seit ihr für jeden Hack ausgerüstet ; )

Für alle die es noch nicht kennen, Django ist ein absolut geniales Python Framework zur Erstellung dynamischer Webseiten.

Das offizielle Django Buch (aus dem Apress Verlag) gibt es auch als kostenlosen Download, mit über 400 Seiten lohnt sich das definitiv. Wer Django noch nicht kennt, sollte sich unter djangoproject.com mal einen Überblick verschaffen, für alle anderen: Viel Spaß mit dem Buch:

http://driveactivated.com/files/ftpupload/djangobook/djangobook-1-0.pdf

Demnächst wird es hier wahrscheinlich ein sehr großes Verzeichnis solcher freien Pdfs zur Programmierung geben, darunter einige Topseller. Wieder mal vorbeischauen lohnt sich also ; )

Latex ist ein Textsatz Programm, mit wesentlichen Vorteilen gegenüber herkömmlichen Textbearbeitunsprogrammen wie Microsoft Word. Der Hauptunterschied besteht darin, dass die Formatierungen über Befehle (Tags) gesteuert werden, ähnlich wie bei HTML. Was daran nun der Vorteil sein soll? Latex nimmt einem viele Probleme ab, und ist sehr flexibel, nicht umsonst wird es schon seit etlichen  Jahren zum Schreiben von Büchern und ähnlichem verwendet.

Als ein Beispiel kann es automatisch Wörter an der richtigen Stellen trennen, sodass alle Zeilen gleichlang sind.

Hier nun eine Dummy .tex Datei:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\title{Das ist der Titel meines Dokuments}
\author{Charlysan}
\begin{document}
\maketitle

\section*{Hier kommt meine erste Überschrift rein}

Hier folgt der gesamte Text dieses Abschnittes. …

\end{document}

Dieses Dokument speichert ihr nun unter ‘dokument1.tex’ ab. Dann:

sudo apt-get install texlive-latex-recommended

Anschließend:

pdflatex dokument1.tex

Und schon habt ihr ein PDF, das ihr euch zum Beispiel mit:

evince dokument1.pdf

angucken könnt. Wie ihr euch denken könnt strotzt Latex gerade zu vor Paketen und Befehlen, eine Einführung in Latex gibt es hier und ein Cheat Sheet, mit allen möglichen Befehlen als Pdf gibt es hier.

Viel Spaß damit!

Wenn ihr es auch satt habt, wie ich, ständig ewig lange Pfade zu tippen, dann könnte das hier was für euch sein. Ihr setzt einfach Umgebungs Variablen der Bash, auf die ihr dann von überall zugreifen könnt. Das geht folgendermaßen:

vim /home/username/.bashrc

(”username” natürlich ersetzen) Da fügt ihr dann zum Beispiel ein:

PY=/home/username/Desktop/Python/

und nach dem Aufrufen eines neuen Terminals muss man nur noch tippen:

cd $PY