Posts filed under 'Studium'
It’s over - finally :)
Hallo Leute.
Nach langer Zeit hab ich mal wieder Zeit zu bloggen. Und es ist nichts technisches ^^
Ich habe endlich die Klausuren des 4. Semester hinter mir - und sie waren scheiße schwer. Also einige zumindest. Ich bin mir relativ sicher, dass dieses Semester notenmäßig das bisher schlechteste wird. Aber wayne..
Wichtiger ist, dass das Semster vorbei ist und dass das die letzten beiden Tage gebührend gefeiert wurde. Am Freitag waren wir mit dem Kurs trinken (um 11 Uhr morgens - direkt nach der letzten Klausur :D) und abends das gleiche Spiel nochmal. Der Grund dort war aber, dass eine Freundin für die kommende Praxisphase nach Amerika ist und wir sie verabschiedet haben. Gestern ging es dann ähnlich weiter und heute wird das bestandende Abi meines Bruders gefeiert.
Ich hoffe dass ich in nächster Zeit auch wieder mehr Zeit haben werd um Rad zu fahren und zu programmieren, so dass auch die lang erwartete und schon gefragte NoMule-Version endlich erscheinen kann.
Dabei fällt mir ein - wenn einer von Euch das Phänomen kennt dass das JDK 1.6.0_05-b13 einem keinen Save-File Dialog zeigt (zumindest unter WinVista) dann meldet euch bitte bei mir und sagt mir wie man das vermeidet. Thx
Nun ist es doch etwas technisch geworden - macht aber nix. Ich wünsch euch ein schönes Wochenende.
Bis zum nächsten Artikel ![]()
Add comment Juli 6, 2008
Ziegenroblem explained
Im Film 21, den ich neulich gesehen habe wurde ein mathematisches Problem erwähnt, welches mir zum ersten Mal auf dem Vortrag ‘Absurde Mathematik‘ von Anoushirvan Dehghani, der auf dem 24C3 gehalten wurde begegnet ist.
Es geht dabei um das sogenannte Ziegenproblem. Die Situation dabei ist folgende:
Ihr spielt ein Spiel. Dabei habt ihr die Chance ein Auto zu gewinnen. Das ist toll ![]()
Und so funktioniert das Spiel: Ihr steht vor drei Toren. Hinter zwei dieser drei Tore befindet sich eine Ziege. Hinter dem dritten aber ist euer Auto.
Nun sollt ihr eine Tür auswählen. Der Spielleiter öffnet dann eine andere Tür hinter der eine Ziege steht.
Er gibt euch dann die Chance erneut zu wählen. Entweder bleibt ihr bei eurer Tür oder ihr ändert eure Wahl.
Die Frage ist nun - was bringt euch mehr? Die Wahl zu ändern oder dabei zu bleiben?
Ich habe das ganze mal in einem Programm modelliert, welches diesen Versuch hunderttausendmal mit Wechsel und hunderttausendmal ohne Wechsel durchführt. (Man kann sich das Programm hier anschauen)
Das Ergebnis ist nun folgendes:
Häufigkeit ohne Wechsel: 32942
Häufigkeit mit Wechsel: 66922
Das heißt die Chance mit Wechsel zu gewinnen liegt bei circa 2/3, während die Chance ohne Wechsel bei 1/3 liegt.
Das verwirrt oder? Man würde doch eine gleiche Häufigkeit erwarten. Also - warum ist das so?
Schauen wir uns doch mal die Wahrscheinlichkeiten anhand eines Baumes an.
A, B und C sollen die Tore sein. Der Spieler wählt das Tor A (lila) aus. Der Spielleiter öffnet dann das Tor C hinter dem eine Ziege steht.
Alle drei Tore haben zunächst die gleiche Gewinnwahrscheinlichkeit. Sie ist 1/3. Wählt der Spieler nun ein Tor, so hat dieses die Wahrscheinlichkeit 1/3, die anderen Tore haben zusammengenommen die Wahrscheinlichkeit 2/3.
Nun wird eines der beiden anderen Tore als falsch gekennzeichnet (hier Tor C) und entfällt somit. Damit hat das eine Tor, welches noch übrig bleibt von den beiden anderen (hier als B gekennzeichnet) die Gewinnwahrscheinlichkeit von 2/3, während das Tor welches man zu Beginn ausgewählt hat noch immer die Gewinnwahrscheinlichkeit von 1/3 hat.
Diese Zahlen bestätigen sich auch durch das Programm. Irgendwie verblüffend, wie sehr die Mathematik manchmal der Intuition widerspricht.
6 comments Mai 4, 2008
Doofe Proxies umgehen
Heute gibt es nach etwas längerer Zeit mal wieder etwas neues von mir.
Mich hat schon lange ein Problem beschäftigt, welches seitdem ich wieder auf Arbeit in der Praxisphase bin, wieder akkut wurde. Wir sitzen dort hinter einem Proxy namens Webwasher, der sich sehr restriktiv verhält. Zum einen sind so ziemlich alle Ports gesperrt (bis auf HTTP(80), HTTPS(443) und wie ich neulich herausgefunden habe lustigerweise auch FTP(20/21)) und zum anderen macht der Proxy auch noch Content Filtering, sowie URL-Filtering.
Das heißt, dass es eine sehr umfangreiche Liste an Webangeboten gibt die wir auf Arbeit nich abrufen können. Soll wahrscheinlich dazu dienen die Produktivität zu fördern, bewirkt aber bei mir oftmals das Gegenteil - besonders dann wenn ich gerade technische Informationen suche und dann auf die Seite nicht raufkomme weil sie als “Computer Crime / Hacking” klassifiziert ist.
Als ob das alles noch nicht hässlich genug wäre blockt der Proxy auch noch den Download von allem was Executable(EXE, DLL, …) ist, weil könnte ja Virus sein. Er geht dabei soweit dass er sogar Zip-Files rekursiv scannt und schaut ob da irgendwelche bösen Executables drinne sind. Für nen Entwickler, der mal eben ein Skript schreiben muss und dafür nicht den Windows Editor nehmen will extrem doof.
Nun habe ich vor Kurzem versucht bei mir zu Hause SSH aufzusetzen um wenigstens auf meinen Rechner zu Haus raufzukommen. Wie gesagt Ports sind kaum offen - was nimmt man also? Na klar Port 443 für HTTPS, weil kann eigtl nicht gescannt werden. Schade - kanns doch.
Genug geheult - kommen wir zu der Lösung (hoffentlich). Denn ich habe heute den Nachmittag damit verbracht mir auf meinem Webserver zu Hause
- bblocked als web-based Proxy
- ne webshell (ich weiß gruselig)
- und ein selbstgeschriebenes Skript um Downloaden zu können
raufzuhauen. Zu der Webshell ist zu sagen, dass ich morgen erstmal nochmal schauen werde ob die FTP auch filtern (ich nehme es an) und wenn nicht dann werd ich SSH darüber laufen lassen.
Das Skript macht nun folgendes: Es lädt Files runter, benennt sie um (so dass Webwasher sie nicht überprüft) und packt sie dann in ein Zip. Wer es haben will um es auf den eigenen Server zu packen: Hier ist es.
Es läuft allerdings ohne Modifikation nur auf Linuxkisten und setzt im htdocs-Ordner die Existenz eines Unterordner “files” voraus. Desweiteren muss LAMPP in “/opt/lampp” liegen.
Zum Schluss noch eine tolle Grafik von der Webseite des Webwashers:

4 comments März 16, 2008
Hackers - aren’t those the bad guys?!
In Kürze - “No they’re not!”.
Ein Kommentar von einem früheren Mitschüler vom Gymi, der mittlerweise Geoinformatik studiert zu einem Buch, indem es kurz auch um Hacker ging, brachte mich zum nachdenken und ich denke dass man darüber einmal ein wenig schreiben sollte.
Letztendlich ist es ja leider so, dass der Begriff Hacker in der Öffentlichkeit negativ belegt ist. Allgemein stellt man sich darunter böse Jungs im Panzerknackerkostüm vor, die in Kellern sitzen und I-Love-You-Viren(lang lang ist’s her) verschicken. Das entspricht jedoch keinesfalls der Selbstwahrnehmung derer, die sich als Hacker bezeichnen. Auch ich würde mich so bezeichnen, denn Hacker sind im eigentlichen Sinne Menschen, die sich einem Thema welches meist technisch ist enthusiastisch widmen. So ist eigentlich jeder Informatikstudent, der in seinem Thema tief und mit Leidenschaft drin ist ein Hacker. Btw: Der Begriff wird im deutschen unter Hackern meist auch deutsch ausgesprochen.
Das was die Öffentlichkeit unter dem Begriff versteht sind eigentlich Cracker. Das sind Leute die ihr Wissen für kriminelle oder allgemein schlechte (ja ich weiß - ich mag Pauschalisierungen auch nicht, aber mir fällt spontan kein anderes Wort hier ein) Zwecke nutzen.
Ein wichtiger Bestandteil des Mindsets eines jeden Hackers ist die Hackerethik. Sie besagt, dass es einem jeden Hacker ein Bedürfnis sein sollte sein erlangtes Wissen zu dokumentieren und verfügbar machen. Damit beschreibt der Begriff schon fast eine Erweiterung des OpenSource-Gedanken auf jegliches Wissen. An dieser Stelle sei auch auf den Post zum Vortrag von Richard Stallman verwiesen.
Ich hoffe, dass nun klar ist warum Hacker nicht die “Bad Guys” sind ![]()
Add comment Februar 24, 2008
Richard Stallman in Berlin
Heute war ich zusammen mit meiner Freundin beim Vortrag von Richard Stallman, dem Gründer des GNU Projekts im media center Atrium. Auch wenn freie Software mehr wie freie Rede als wie Freibier gemeint ist, war der Eintritt prinzipiell kostenlos - allerdings wurde um eine Spende von 5 Euro gebeten.
Irgendwann so gegen 19:30 kam er dann auch auf die Bühne und fing an zu erzählen, warum freie Software gut und alles andere böse und unmoralisch ist und warum Steve Jobs und Bill Gates in den Knast gehören (Seiner Meinung nach). Man mag nun seine Meinung in aller Radikalität teilen oder nicht - ich habe für mich festgestellt, dass manches was er sagt wirklich Sinn macht, wenn man die Betrachtung von Software auf eine nicht technische und nicht wirtschaftliche Ebene herunterbricht, sondern sie als Wissen ansieht.
Nach dem Ende seines Vortrages kam dann der lustige Teil, als er den geschätzten 50-100 Zuhörern sein Alter Ego präsentierte. Der Mann nennt sich selbst den “Heiligen IGNUcius” von der Kirche Emacs und trägt eine alte Festplatte, die jetzt ein Heiligenschein ist auf dem Kopf. Um seiner Kirche beizutreten muss man laut ihm nichts tun außer 3 Mal zu sagen:
“There is no system but GNU, and Linux is one of its kernels.”
Sehr merkwürdig - aber zeitweise doch recht unterhaltsam.
3 comments Februar 18, 2008
Gleitkommazahlen (IEEE754) und von Neumann
SFRA (Struktur und Funktion von Rechenanlagen) - so heißt das Fach für das ich momentan mächtig am Lernen bin. Da lernt man so hm - eigtl alles was irgendwie damit zu tun hat wie so ein Rechner nun von innen ausschaut, was da so dranhängt. Naja und überhaupt.
Da unser Prof eine etwas eigene Art hat Inhalte rüberzubringen (so Folien mit nur Text und viel Text und in A4 hochkant und vollanalog und und und…) , musste ich mir auch meine eigene Art aneignen die sachen zu verstehen. Letzendlich passiert das meistens so, dass ich mir Inhalte veranschauliche indem ich sie selbst nochmal aufschreibe.
Warum erzähl ich das? Weil ich das jetz für ein paar Sachen schon getan habe. Konkret handelt es sich dabei zum einen um den Befehlsablauf in von Neumann Rechnern (schematisch) und um die Darstellung und das Rechnen von Gleitkommazahlen.
Beim von Neumann Rechner wird der typische Ablauf in einem Blockschaltbild mit allen Registern und Einheiten, die so eine v.Neumann-CPU (laut unserem Prof zumindest^^) hat dargestellt.
Bei den Gleitkommazahlen nach IEEE754 geht es bis jetzt darum, wie diese Zahlen dargestellt werden, wie man die als Mensch in diese Darstellung umwandeln kann und wie man damit addiert und subtrahiert. Division und Multiplikation wird später kommen.
Links:
1 comment Februar 13, 2008
Clubmate
Heute wieder mal was aus der Kategorie “Mein Lieblings…”. Undzwar geht es um mein momentanes Lieblingsgetränk.
Es handelt sich dabei um Clubmate - ein “koffeinhaltiges Erfrischungsgetränk auf Matebasis” (so steht es auf der Flasche). Tatsächlich ist es ein mit Kohlensäure versetzter Eistee auf Matebasis mit hohem Koffeingehalt. Mate ist eine südamerikanische Strauchpflanze. In ihrer Herkunftsregion ist es verbreitet aus ihr “Aufgussgetränke”, soll heißen Tee, zu machen - und das schon seit Zeiten der Ureinwohner.
Soweit so gut - wie kann man aber nun Clubmate beschreiben? Es handelt sich um eine (mittlerweile relativ süße) gelbliche Flüssigkeit, die zunächst einen etwas unangenehmen Nachgeschmack hat. Aber ich glaube jeder der Clubmate trinkt wird es bestätigen können - dat geht weg.
Wenn man das Getränk mal kulturell betrachtet kann wird man feststellen, warum es auch “Hackerbrause” genannt wird. Es ist unter Hackern (nein ich meine nicht die bösen mit Panzerknackermasken die die Firmen mit DoS-Attacken erpressen, sondern leidenschaftliche Programmierer, Bastler und Computerinteressierte) wohl deswegen so beliebt, weil der Koffeinanteil doch recht hoch ist (steht auch auf der Flasche - “Erhöhter Koffeingehalt”) und es für Leute die keinen Kaffee trinken (so wie ich) eine gute Alternative ist.
Soweit genug der Werbung :). Es gibt auch Probleme, denn ClubMate ist nicht gerade leicht erhältlich. Man kann nicht mal eben in die Kaufhalle seiner Wahl gehen und sie sich wie eine Flasche Cola holen. ClubMate gibt es leider nur in Nachtläden und Bäckereien in den Innenstädten (so ist es zumindest hier in Berlin) - und es ist relativ teuer. Beim Bäcker meiner Wahl, der sich direkt an meiner Hochschule befindet kostet die 0,5l Flasche immerhin 1.15€ .
Aber es lohnt sich das Geld auszugeben, denn sonst wäre es sehr schwierig den teilweise echt langweiligen Vorlesungen zu folgen und nicht einzuschlafen.
Add comment Januar 30, 2008
Smartcard communication
Hallo Leute,
für mein Studium beschäftige ich mich derzeit damit wie man auf Smartcards (I2C - 2KBit) Daten schreiben kann und wie man sie wieder auslesen kann. Was sich eigentlich ganz einfach anhört, ist es in Wirklichkeit nicht. Zumindest nicht ohne jegliche Vorkenntnisse.
Um ein Bisschen rumspielen zu können, hab ich mir heute einen Cardreader (Towitoko Chipdrive 120) und nen Packen Smartcards (oben erwähnte I2C-Karten) bei eBay bestellt und freu mich jetz wie Bolle darauf, dass das Zeug ankommt.
Was braucht man aber als Vorkenntnisse? Zu allererstmal muss man wissen, wie man mit dem Cardreader seiner Wahl kommunizieren kann - soll heißen über welche Libraries. Dann sollte man sich (so hab ich es zumindest gemacht) mit der CT-API beschäftigen. Dabei handelt es sich um einen Satz standardisierter Funktionen mit standardisierten Parametern, die allgemein die Kommunikation mit dem Cardreader ermöglichen. Im Detail handelt es sich hierbei um:
ct_init, welche die Kommunikationspipeline zum Cardreader aufbautct_data, welches Befehle an die Smartcard sendet. Zu diesen Befehlen gehören auch Befehle zum Auslesen und Schreiben von Datenct_close, welches die Kommunikationspipeline wieder schließt
Was also letzendlich wieder von Interesse ist, ist wie die Befehle mit ct_data an die Smartcard gesendet werden. Das geht mittels sogenannter Command-ADPUs. Dabei handelt es sich um fest definierte Bytefolgen. Die Wichtigsten dieser Bytefolgen (als gebräuchliche Konstanten im C-Code) sind:
REQUEST_ICC, welches überprüft, ob eine Karte (Integrated Circuit Card = ICC) eingelegt istSELECT_FILE, welches eine bestimmte Datei auf der Smartcard auswählt. Die Dateinamen sind dabei 2Bytes langREAD_BINARY, welches (wer hätte es gedacht) eine bestimmte Anzahl an Bytes ausliestWRITE_BINARY, welches eine bestimmte Anzahl an Bytes schreibtEJECT_ICC, welches die Karte wieder ‘auswirft’
Wer nun ein wenig Quellcode lesen will um zu schauen, wie das ganze wohl gehen könnte, dem empfehle ich diese Seite. Um sich eine Übersicht über die ADPUs zu verschaffen, kann man sich dieses PDF ab Seite 45 durchlesen
Ich hoffe der grobe Überblick den ich mir jetzt selber verschafft habe (und euch vielleicht auch) ist einigermaßen nützlich
Auf jeden Fall freu ich mich schon auf die Ankunft meiner Nerdspielzeuge ![]()
Add comment Januar 7, 2008








