Posts Tagged ‘Geekdom’

Das werdet ihr bueßen!!1

Saturday, August 9th, 2008

Ja. Es werden manche bueßen. Hauptfrage natuerlich: Wer zur Hoelle? Zum einem mein mehrere Gigaparsec**3 großes Ego, dann eine Maus, die sich in mein Zimmer geschlichen hat (offene Terassentueren sind beschissen) und zu guter letzt Arch Linux, welches gleich doppelt bueßen wird: Zum einem kann man die Installation anscheinend nicht unterbrechen (so nach dem Partitionieren) und dann schnell auf ein anderes OS booten, weil man was schauen moechte, ohne dass man dann am Ende einen Error 17 von GRUB bekommt. Zum anderem will es, nach einem erneuten Anlauf, jetzt kein Internet hergeben, obwohl ich alles eingestellt habe; Gateway zum Router, die hosts, &c. Das heißt: Da mir jetzt schon alle Kreativitaet ausgegangen ist, installiere ich Arch Linux einfach neu, indem ich mir gleich das vom FTP ziehe, dann habe ich entweder gar kein Arch oder ein komplett funktionsfaehiges.

Und ja, Maeuse (also die Saeuger) sind beschissen; ich weiß jetzt nicht, ob ich die Maus hinter meinem Bett zerquetscht habe oder nicht, als ich das vor ‘ner Stunde, oder so, zurueckgeschoben habe, als ich dachte, dass sich die Maus da versteckt. Allerdings habe ich seitdem nichts mehr von der gehoert. Viele Kaempfe gingen an die doofe Maus, aber den Krieg gewinnt der Mensch … halt. Ich bin misanthropisch veranlagt. Der Mensch gewinnt auch nur, da er noch eine kulturelle Evolution gemacht hat; ansonsten waere mir diese Maus als Homo rudolfensis, oder so, durch die Lappen gegangen.

Programmiersprachen

Tuesday, June 3rd, 2008

Neben meines Schreibanfalls wegen dieser verdammten Maus, habe ich mir heute mal wieder ein paar Gedanken zum Thema Programmiersprachen gemacht; vor allem, da ich ja Lisp (derzeitig am ehesten Scheme durch das SICP) lerne und es - imo - eine Ausdrucksfaehigkeit hat, die von keiner anderen Sprache angegriffen werden kann. Allerdings: Wenn man allein durch die Ausdrucksfaehigkeit seine Sprache waehlt, so programmiert man in einem Vakuum; man laesst den Luftwiderstand - oder, um es passender zu formulieren, den “Ich-entwerfe-noch-einmal-das-Rad-und-zwar-doppelt-so-gut”-Faktor - weg.

Was ist denn dieser komische Faktor? Einfach: In Python (oder ein Java, wer diese gehypte Sprache mag) hat man schon eine Menge von Libraries, die einem vieles abnehmen. Du musst HTML parsen? Kein Problem - Python hat dafuer schon ‘ne Lib - `Modul’ auf Pythonisch. In Scheme sucht man vergeblich nach so ‘ner Lib - es soll ja eine abgespeckte Version von Common Lisp, der gigantischen Multiparadigmapsprache, die mehr Augen hat, als Java Libs, sein. (Das Standard von Scheme passt eigentlich fast gar in den Index des Standards von CL; da erkennt man den unglaublichen Unterschied zwischen diesen beiden Dialekten von Lisp.)

Wenn man sich traut, sich diese Libs selbst zu schreiben - und nebenbei produktiv zu sein, d.h. etwas anderes machen als die Libs zu schreiben - dann soll man es ruhig tun. Klar - es ist ein gigantischer Gewinn, wenn’s um Faehigkeit geht, aus dem geringem, welchem man in Scheme hat, solche Libs zu bauen - allerdings hat der schlechte Javaprogrammierer, waehrend der Schemeprogrammierer unglaublich produktiv seine Libs macht, schon laengst seinen Auftrag erledigt. CL hat nicht allzu viel von diesem Defizit; dafuer wollen aber viele schon wegen den Sexps (“S-expressions”, ihr notgeilen Deppen!) und der komischen Makrosyntax gar nichts davon wissen - obwohl beide eben den LISP-Programmierer so unglaublich maechtig machen.

Insofern kann man sagen, dass CL - auch wenn es so gigantisch ist und, nebenbei bemerkt, ein veraltetes Librarysystem hat - durchaus eine Alternative zu Java ist. Bloß warum wird CL nicht oefters benutzt? Weil Java einfach nur richtig dick von Sun gehypt wurde. CL ist schneller, besser und ausdrucksfaehiger als Java - und je mehr Personen eine Sprache nutzen, desto mehr Libs wird es dafuer geben. (Nebenbei bemerkt: Manche Compiler von Scheme schaffen - wirklich - eine Geschwindigkeit von Code, die die Herrschaft von C im Bereich der Geschwindigkeit angreift - und diese Compiler sind selbst in Scheme geschrieben.)

So ein ungutes Gefuehl

Monday, May 19th, 2008

Nicht, weil ich naechste Woche an einem Tag eine Englischarbeit und am selben Tag ein Deutschreferat, bei dem ich nun, dank meiner schrecklichen “Aus manchen Einzelteilen kann man alles bauen.”-Einstellung, gar nicht mehr weiterkomme, sondern weil ich vor ein paar Minuten Pointer waehrend des Notizenmachens benutzt habe. Pointer. Args. Gerade diese Dinge, die so unglaublich nuetzlich aber dennoch toedlich sind; aber ob “* = &z4” ein valider Pointer IRL ist, ist eine andere Frage. (Natuerlich unabhaengig davon, dass da die Deklaration des Datentypes und der Pointername fehlt.)

Desweiteren ist zu erwaehnen, dass ich wieder ein paar Buecher mehr habe; insbesondere freue ich mich beim Lesen auf “The Second Chronicles of Thomas Covenant, the Unbeliever”, “English as a Second F*cking Language” und “Night Shift”. Nebenbei habe ich mir auch “Essential System Administration” von Æleen Frisch gekauft, denn ich will schließlich auch die absolute Kontrolle ueber die Computer in der Schule haben, in der ich irgendwann unterrichten werde.

Ansonsten verdinge ich mich eben als Sysadmin/Programmierer.

So long.

Hardy Heron - eher “Hardly Stable”

Saturday, May 10th, 2008

Ich kaempfe nun seit etwas mehr als einer Woche mit Hardy Heron - und es ist grausam. Es ist definitiv das Vista der *nixe; derzeitig crasht es spontan alle Stunden, Flash haut Firefox 3 immer wieder in die Eier (Bekanntes Problem; liegt bei Flash und Adobe, aber dennoch: Warum ‘ne Beta in ‘ne LTS aufnehmen?), spontante Entzündung der Hardware … halt, nee, das war South Park.

Jedenfalls kann ich Ubuntu 8.04 niemandem empfehlen - Gutsy konnte ich noch mit modifizieren der menu.lst von Grub (und ein paar anderen, manuellen Kniffen) richtig hinbiegen, aber bei Hardy bin ich ratlos. Ich werde in naechster Zeit voller Freude versuchen, Slackware zu installieren - wenn das nicht geht, so probiere ich Arch und danach Fedora.

Ein kleines bisschen sehr viel

Tuesday, April 29th, 2008

Selbstbeweihraeucherung schadet nie. Denn, nachdem ich das Vista der *nixe auf 8.04 upgedatet(TM) habe, musste ich erst einmal feststellen, dass diese Saeue XMMS aus ihren Repositories rausgeschmissen haben. Meinen Lieblingsplayer. XMMS2 ist jedenfalls noch drin, allerdings mag ich XMMS mehr. Gut, ich kann eh aus Quellcode kompilieren, also schnell den Quellcode fuer XMMS auf xmms.org geholt; kompilieren und hoffen, dass wenigstens der Großteil der Abhaengigkeiten schon installiert ist. Es ging, bis auf ein kleines Dingens namens libxmms.so.1, welches ich erst nach /lib kopierte, nachdem ich bei “xmms” in “usr/local/bin/” die Datei xmms (binaer) etwas gelesen habe. U.a. stand da neben vielen @-Zeichen und so, auch relativ am Anfang etwas wie “lib/…”, was mich darauf brachte, dass ich vielleicht aus “usr/local/lib” die Datei libxmms.so.1 nach /lib kopieren sollte.

Nun klappt’s.

Ich denke mal, dass ich erst einmal bei 8.04 bleiben werde und Ubuntu nicht weiter updaten werde. Entweder ganzer Support fuer meine Faulheit, bis auf in ein paar seltenen Faellen, bei denen ich die brandneuesten Sachen moechte, oder kaum welchen, wie bei Slackware. Am Wochenende wird Windoof geplaettet und neu mit 30GB aufgesetzt; auf den Rest der Platte werden dann meine anderen *nix-Distros kommen.

Achja: Firefox Numero 3 ist zu aufgetakelt. Wenn ich was in der URL-Leiste eingebe, zeigt das mir auch noch große Buttons und Extrainfos ein, die mich gar nicht interessieren. Ich will ‘ne URL-Liste und keinen URL-Ordner in Listenform. (Bzw. gibt es keinen Firebug fuer Firefox 3. Damit kann man HTML ziemlich gut analysieren.)

So long.

Noch was: Akismet ist anscheinend relativ schlecht. Zumindest musste ich die letzten 4-6 Spams in den letzten Wochen selber loeschen.

Mein kleines Bootabenteuer

Saturday, April 19th, 2008

Seit ein paar Monaten habe ich immer wieder mit GRUB zu kaempfen. Keine Ahnung, ob es daran liegt, dass GRUB irgendeinen miesen Bug hat oder die Ubuntus einfach nur keine Ahnung von Bootloadern haben. Jedenfalls werde ich mal hier eine meiner Odysseen aufschreiben:

Heute, ausgerechnet an einem ganz guten Tag, stehe ich auf und habe Kopfschmerzen. Gut, die machen eh nichts, habe ich eh meistens. Aber, aber! Ich will mich ja heut etwas ausruhen und erfreuen … hmm, schnell noch was ueber die Proportionalitaet der schweren und traegen Masse unter Ubuntu lesen, dann rebooten. Dabei erinner’ ich mich an dieses doofe Grub, welches meint, dass meine Ubuntuplatte auf (hd0) ist, obwohl sie auf hdb ist (genauer: hdb1, in Grubsyntax also (hd1,0)). Ah, naja, wenigstens erkennt es ja Windoof richtig. Jut, was ham wir da? Diablo II, natuerlich. Schnell noch ein paar Musikdateien in Winamp einwerfen, dessen Interface keine Chance gegen das von XMMS hat, und dann spielen.

So weit so gut. Median rockt. Spiel ich so vor mich hin, als dann ploetzlich mein Bildschirm schwarz wird und mein Sound streikt. Gut, Windoof ist eh Scheiße, rebooten. Nochmal Diablo II und so. Gleiches Spiel. Gedanke: “Ach, fick dich du scheiß Windoof, ich formatier’ dich in den naechsten Tagen. Geh ich eben meinem ueblichen Ge*nixe nach.” Hach, wie schoen das doch gewesen waere, denn: Resetten (eingedeutscht, zusaetzliches t, damit es phonetisch korrekt ist; ich mag eigentlich keine Anglizismen, allerdings brauch man das halt in der deutschen *nix-Community, oder *nix-Gesellschaft, fuer die Germanisten) und dann mit leckerem, toastbrotartigem Pizzabrot in der Hand lesen, dass sdb1 corrupt sein soll. Danach noch das selbe mit sdb3 und sda1. Hach … hochfahren tut er dann trotzdem, obwohl man nicht tut sagen tut. So, gut, Logs durchschaun, nichts. Hmm, hda1 ist nicht gemountet, mal mit “mount /dev/sda1 /media/hda1”, oder so, mounten. Ach, nee, ja, sudo. Nee, nee, da meckert die Konsole rum: Die Partition wurde nicht richtig runtergefahren.

Achtung, Achtung, nun forciere ich Grub hda1 zu mounten, indem ich in /etc/fstab noch am Ende der Optionen meines Windoofeintrags ein “force” einfuege. Rebooten. Ubuntu booten. Schoen, klappt alles. Allerdings zeigt es mir vorher noch an, dass die NTFS-Partition immer noch irgendwie am Laufen ist. Gut, neu booten, Windoof versuchen zu booten. Mit ueblichen “root (hd0,0)” und so, klappte ja alles vorher. Nichts. Dann eben “rootnoverify (hd0,0)”. Schoen, beim Booten habe ich nun einen Technosound, der nur einer wiederholt falschen Eingaben gleichkommen kann. Resetten. Ubuntu hochfahren und kurz das man von Grub konsultieren. Gut, gut, ich soll’s mit “map (hd0) (hd1)” und “map (hd1) (hd0)” probieren. Fangfrage: Wo wird das platziert? Anscheinend nach “rootnoverify (hd0,0)”. Denn dann konnte ich endlich, verdammt nochmal, Windoof booten und es richtig herunterfahren.

Oh, was fuer eine Odyssee. Immerhin habe ich nun mal wieder mehr Erfahrung mit Grub. Ab mit der Loesung in das Cheat Sheet, welches ich in letzter Zeit hier ansammle. Wird schon noch frueh genug veroeffentlicht. Nee, nee, das wird in mehreren Dingsen erscheinen.

Coden und Lachen

Wednesday, March 19th, 2008

Waehrend ich mir nun nachts mein Textadventure programmiere, um es dann bis zu meinem Referat hoffentlich auch in OOP-Version als (falls die Zeit reicht) Vergleich von prozeduralem und objektorientiertem Programmieren zu bringen, (ja, dieser Satz hoert nicht allzu schnell auf) ist mir ein wahrhaft wunderbarer, geekiger und Python involvierender Witz eingefallen, obwohl die Bewegung des Spielers damit gar nichts zu tun hat: (Und ja, Mark Twain, du darfst in deinem Grabe fluchen, dass das Deutsche unendlich lange Saetze moeglich macht.)

So … wie waere es, wenn man sich selbst als self auf einem T-Shirt bezeichnet. Dann enthaelt die Liste foo = self.name.split(' ') , wenn man die einzelnen Buchstaben jeweils mit einem Leerzeichen trennt, als letzten Index (d.h. foo[-1]) ‘z’. Diesen vertauschen wir gekonnt mit einem x, indem wir foo[-1] = 'x' eingeben. Um das ‘i’ wegzubekommen nutzen wir foo.pop(-2) und haben auf den letzten 3 Indexen schon mal ‘S e x’. Da ‘M a r c o S e x’ nicht allzu viel Sinn macht, aendern wir das ab: ‘c’ und ‘o’ schmeißen wir mit foo.pop(4); foo.pop(3) raus. ‘r’ aendern wir in ‘g’ um, indem wir foo[2] = 'g' eingeben. Dann haetten wir ja schon ‘M a g S e x’. Da das der akribisch auf Details achtende Deutsche nicht stehen lassen kann, verbindet er das folgendermaßen: bar = "%s%s%s %s%s%s" % (foo[0], foo[1], foo[2], foo[3], foo[4], foo[5])
Ausgeben tun wir das per print bar.

Somit haetten wir einen netten String mit ‘Mag Sex’ und zugleich noch ein bisschen mit Python rumgespielt und somit ein bisschen mit Strings und Listen geuebt. Tolle Kombination aus Situationshumor und Lernen, oder?

Wenn ich das in Lisp hinbekomme, so lasse ich das auf ein T-Shirt drucken und werde ueber die verwirrten Gesichter lachen, denn es ist sehr unwahrscheinlich, dass ich auf der Stelle einem Lisphacker begegne. Und wenn doch, so wird er mich sicherlich ansprechen und sich als Geek outen. :)

So long, sagte der selbstsichere Pythonist, der mehr Kaffee benoetigt. (Ich haette den String auch mit ‘ner eigenen Funktion auftrennen koennten und haette somit keine umstaendliche Leerzeichensetzung, aber da haette ich nicht so viele Listenfunktionen abdecken koennen.)

Regexen als Passwoerter

Tuesday, March 18th, 2008

Dieser geniale Einfall ist mir, nachdem ich mich selbst durch das re-Modul von Python gequaelt habe, gerade eben gekommen. Jedenfalls: Wie zur Hoelle soll jemand auf ein Passwort wie re.compile('M?A?C?R?O?\\D?(utilizer|user))' (2 Backslashes, da man in Python den Backslash escapen muss - ja, mit Absicht kein raw string.) kommen? Noch ein uebliches Sicherheitsschmankerl à la %&/(! am Anfang hinknallen und sich aufschreiben, was fuer einen Regex man braeuchte. (Der Regex, nebenbei erwaehnt, sucht nach 5 bestimmten, optionalen Buchstaben (’M', ‘A’, ‘C’, ‘R’, ‘O’) und danach nach einem optionalen Buchstaben, der beliebig ist, um danach das ganze nach ‘utilizer’ bzw. ‘user’ zu untersuchen.)

QED. Regexen lohnen sich als Passwoerter. Zumindest sind sie erheblich sicherer als die 08/15-Idiotenpasswoerter von manchen Leuten, die etwa nur ‘god&jesus’ als Passwort haben. (Uebrigens ist das das Passwort des Vatikans; nicht weitersagen!)

Was ist ueberhaupt der korrekte deutsche Plural von Backslash? Ich will nicht “umgekehrter Schraegstrich” schreiben, da ich der Ansicht bin, dass Backslash ein deutsches Wort wie Internet ist. Ueberhaupt: Der Duden akzeptiert schon “googlen”, da sollte das googolen und der Backslash nicht weit entfernt sein.

So long.

’bout Censorship

Friday, February 29th, 2008

This time, I’ll use energy-rich gamma rays to point out things, but immediately after pointing them out, they’ll be as black as a black hole. Why? Because this time it’s all about censorship!

First, what the hell is censorship? It’s the act of removing some things from publications that are publicly available. It happens mainly because the publication breaks certain laws, e.g. includes hate speech. Sometimes, it is done because the legislator didn’t like it as it may reveal some bad details about him/her. The second version is alarmingly becoming more common; take America, for example. If you’re anti-war, pro-environment, libertian or any other thing that the current administration doesn’t like, chances are high that you’ll be under surveillance. If you’re getting more annoying, then it’s likely that you’ll be abducted to something like Guantanamo Bay, a gulag. If the government fears that they’ll be heavily criticized, then, once you publish anything, they censor it so that it looks like a text breaking certain laws. (Search for a logical fallacy called “straw man”; that sort of censorship extends that one extremely.)

Because of this, once any government receives the ability to censor things, it takes a nice chunk of freedom away. Censorship isn’t good in any way; and for those “But the children!”-screamers, parents are responsible for them, not the government. If they care for their children in the age of the internet, they should take courses about blocking IPs from pages with sexual (or any other, which the parent doesn’t deem right) content. The government has no right to play a parent and never shall have. (Currently, it sadly does.)

Some jerks that dress like politicians are trying to make a grown-up person in Germany not able to buy the so-called “Killerspiele”. That is extreme censorship, protecting as much people as there are in the core of the sun. In this case, the government plays the role of a parent. See what happens?
Another example: Finland. A page which documents the censoring of so-called “pages containing child pornography” (or something like that; I forgot, for I have insufficient memory) is put on the blocking-list for ISPs, thus censoring it. Why? Because the government plays the role of overzealous parents that won’t believe that a lot of pages which are blocked aren’t endangering their children. The actual reason for that isn’t that one. It happens because governments want to censor anything that doesn’t fit their views and as long as the censoring can be kept in a legal grey area. Whether censoring, abducting and other things are actually acceptable in respect to human rights is a good question; but the government doesn’t care, as it naturally seeks to eliminate freedom and human rights.

So long.

[stream-of-thought, several Human Memory Leaks (TM), proof-read once, thus having an extremely high chance of likely and unlikely errors, including superpositions]

Hardcoremathematiker

Friday, February 29th, 2008

Wie die Person weiß, die sich bei der Stringtheorie auskennt, verringert sich wohl die Anzahl der Dimension eines Branes um 2, wenn es mit einem Antibrane kollidiert; da es ja immer n+1-dimensional heißt, macht das so ein 9+1-dimensionales Dings. Nun, wenn ein Brane 4 mal mit einem Antibrane kollidiert, so hat es noch 1+1 Dimensionen. Wenn es nochmal kollidiert, hat es -1+1 Dimensionen. Der Hardcoremathematiker schließt daraus, dass es dann nulldimensional ist und die Zeit dann auch aus dem Dings verschwindet: Der Hardcorephilosoph wird hierbei den Mathematiker sofort einen Knueppel ueber den Kopf ziehen, da er in einer Welt ohne Zeit nicht leben kann. Der Physiker hingegen sagt einfach das folgende: “Die Stringtheorie ist irrelevant. Die Deppen hatten am Anfang nicht einmal Experimente vorgeschlagen, damit andere Leute ihre Vermutungen falsfizieren koennen. Sowas nukleirt eh nur Dummheit!”