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

It’s up and running

Puh - nach langer Arbeit ist das Ergebnis unseres Studienprojektes im Netz und läuft.

Unsere Aufgabe war es für den Verband der Blinden- und Sehbehindertenpädagogik e.V. eine
Webanwendung zu erstellen, mit der sie die Medien verwalten können die sie so benutzen.

Zugegeben - der Datenbestand ist grausig und sehr schlecht gepflegt. Foreign-Keys zeigen teilweise
ins Leere, aber letztendlich haben wir es doch geschafft die Anwendung heute hochzuladen.

Und jetzt kann man sie hier bestaunen :)

Dem Vorausgegangen ist eine anderthalbstündige Rootpasswort-Suchorgie, weil an unserer Hochschule anscheinend keine Passwortlisten geführt werden und der Prof, der das Rootpasswort kennt, momentan nicht an der Hochschule ist. Toll oder? :S
Naja aber der Admin, der Prof und andere Mitarbeiter haben uns dann zum Glück geholfen, so dass wir das doch noch alles in die richtigen Ordner verschoben wurde und jetzt alles läuft.

Programmiert wurde das ganze übrigens in PHP 5. Dabei haben wir unter Anderem mein MimicPHP-Framework verwendet, was glaub ich ganz gut so war. Da die ganze Anwendung auch Ajax verwendet haben wir uns entschieden clientseitig Prototype.JS zu nutzen, was bei MimicPHP ohnehin mit dabei ist

Die Grafiken wurden letztendlich mit GIMP erstellt, was sich mal wieder als gutes Programm für Webgrafikerstellung bewiesen hat :)

Tja - jetzt muss das ganze nur noch von unserem Auftraggeber abgenickt werden und dann ist der Praxisteil des ersten Studienprojektes fertig.

Yeah :)


Add comment Mai 30, 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.

Das Ziegenproblem als Baum

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

Spaß mit NetBIOS

Zu allererstmal: Ich bin kein Netzwerk-Professional, sondern berichte nur über ein Phänomen das mir aufgefallen ist und was mir da spontan für Nutzungsmöglichkeiten einfallen.

Es geht um folgendes - letztes Semester saß ich so in der Vorlesung und ratet mal - mir war langweilig. Was macht man also so wenn einem langweilig ist, aber man kein Internet hat (das gibts nämlich an unserer Hochschule bis auf einen Internetraum generell nicht *frown) und man auch keine tollen Spiele zur Hand hat?  Na klar man schmeißt seinen Netzwerk-Sniffer an (in dem Falle Wireshark) und schaut mal was so über die Luft geht.

Über die Luft war in dem Falle ein Ad-Hoc-WLAN ohne Gateway zum Internet. Und da sah ich so die Pakete durchlaufen - unter anderem immer wieder NetBIOS-NameService-Requests. NetBIOS ist ein Netzwerkdienst der es Netzwerkteilnehmern unter Anderem erlaubt Netzwerkdienste mit einem Namen zu announcen. Um den Namen aufzulösen wird dann der NetBIOS-NameService (unter Windows als WINS bekannt) benutzt.

Was ich nun sah war aber, dass Anfragen die normalerweise an einen DNS gehen würden (also z.B. wer ist www.google.de)  hier über den NetBIOS-Nameservice über das ganze Netzwerk gepustet wurden. Das heißt, dass jeder (der ein Wireshark bedienen kann) sehen konnte wer versucht welche Server anzusprechen. Ich konnte das zunächst garnicht glauben und bat einen Kommilitonen doch mal bitte Google aufzurufen und siehe da - NetBIOS Request an Google von seiner IP.

So - das ganze funktioniert allerdings nur wenn im aktuellen Netzwerk kein Gateway zum Internet verfügbar ist. Es ist wahrscheinlich einfach eine Fallbacklösung zum normalen DNS. Trotzdem sollte man sich darüber bewusst sein - denn das ganze kann wenn man mal weiterdenkt peinliche Auswirkungen haben.

Ich kann mir da zum Beispiel folgendes Szenario vorstellen - man weiß nicht dass es in dem WLAN kein Internetgateway gibt und macht seinen Browser auf und sagt - ja ich will meine Sessions fortsetzen. Nun hat man aber letztes mal irgendwelche Seiten angesurft die nicht jeden was angeht (k.A. - irgendwas mit porn zum Beispiel). Das wüsste nun jeder der den Netzwerktraffic mitsnifft, denn es ist auch klar von welcher IP-Adresse (bzw da ich das ganze in Windowsnetzwerken beobachtet habe auch von welchem Windowsrechner) der Request ausging.

Also - have fun with NetBIOS :)


1 comment April 9, 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 aufbaut
  • ct_data , welches Befehle an die Smartcard sendet. Zu diesen Befehlen gehören auch Befehle zum Auslesen und Schreiben von Daten
  • ct_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 ist
  • SELECT_FILE , welches eine bestimmte Datei auf der Smartcard auswählt. Die Dateinamen sind dabei 2Bytes lang
  • READ_BINARY , welches (wer hätte es gedacht) eine bestimmte Anzahl an Bytes ausliest
  • WRITE_BINARY , welches eine bestimmte Anzahl an Bytes schreibt
  • EJECT_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 :D

Auf jeden Fall freu ich mich schon auf die Ankunft meiner Nerdspielzeuge :)


Add comment Januar 7, 2008

Previous Posts


 

Oktober 2008
M D M D F S S
« Sep    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Kategorien

Links

Brandenburg - it's all around us!

Glienicker Brücke

Brandenburger Tor

DSC02393

DSC02416

DSC02355

DSC02405

DSC02433

DSC02411

More Photos

RSS Me on twitter

RSS Kunst by Kniepuder