August 2010 Archive

The Racket-Installer

| Keine Kommentare
Instead of just providing a .deb-Package, the Racket-Developers decided to provide a binary executable installer for Debian as precompiled version. This binary installer has the extension ".sh", which suggests that its a shellscript. So if you want to create a package out of such an installer, the first thing you will probably do is to look inside it. Binary executables are normally suffixed with ".bin".

Then this installer has no "--help"-Argument, no way of telling non-interactively where to put its files, no way of removing the links you have made again. Thats why you normally have a package manager taking care of this for you.

I wonder what made them think that giving such an installer would be good in any way. Would it have been more work to provide a debian-package?

EDV-Antiquitäten

| Keine Kommentare
IT-Papiermüll durchwühlend fand ich heute einige Schmuckstücke für das Bücherregal.

Darunter unter Anderem ein "PHIGS Programming Manual", untertitel "3D Programming in X". Sehr interessant das durchzublättern.

PHIGS ist dabei eine Library für 3D-Grafik unter X11, die leider schon veraltet zu sein scheint. Das Buch gibt es sogar noch auf Amazon.

Veraltet oder nicht, das Buch hatte über 900 Seiten, voll mit dem damaligen Stand der Technik der 3D-Programmierung. Das stimmt mich zum Einen natürlich nostalgisch, zum Anderen sollte es zu Denken geben, dass man seit 1988 einen Standard für 3D-Programmierung hat, und diese trotzdem immernoch ein wenig "magisch" ist.

Wehrpflichtgeblubber

| Keine Kommentare
Endlich ist die Wehrpflicht vor dem Aus. Ich finde das gut. Ich kenne kaum jemanden, der - wie es ja gerne behauptet wird - meint, dass der Zivildienst ihn positiv geprägt hätte.

Nun kann man von verschiedenen unerwarteten Seiten Proteste gegen diesen Vorschlag. Diverse soziale Einrichtungen bangen darum, keine Sklaven billigen Arbeitskräfte mehr zu bekommen. Man stelle sich vor, soziale Einrichtungen müssten ohne Zwangsarbeit finanziert werden - undenkbar!

Somit gibt es verschiedene Vorschläge. Einig scheint man sich darüber zu sein, dass Zivildienst in irgendeiner Form unbedint notwendig ist. Auf Zeit Online liest man zum Beispiel den Vorschlag einer allgemeinen Pflicht der Jugendlichen, Zivildienst zu leisten. Begründet wird das soweit ich es verstehe damit, dass man Jugendliche in die Pflicht nehmen soll, sich für die Gesellschaft einzusetzen.

Ich persönlich sehe hinter diesem Moral-Argument allerdings hauptsächlich ein Interesse: Geld. Wenn man Jugendliche per Gesetz zwingt, in sozialen Einrichtungen zu arbeiten, haben diese grundsätzlich eine erhöhte Schwierigkeit, sich gegen schlechte Arbeitsbedingungen zu wehren, und man kann die Löhne herunterdrücken. Das spart potenziell Geld. Andernfalls müsste man die sozialen Berufe lukrativer gestalten, und das wird nicht passieren - man braucht soziale Einrichtungen so dringend, dass man seine Jugendlichen dazu zwingt darin zu arbeiten, aber so dringend dass man dafür Geld ausgeben will dann doch nicht.

Ebenfalls auf Zeit Online fand ich diesen Artikel. Dieser Artikel erregt in mir im Wesentlichen Verwunderung und Empörung. Anfangs klingt die Argumentation noch nachvollziehbar, der Kommentator spricht sich gegen Wehrpflicht aus. Doch dann kommt er auf den Zivildienst.

"Soziale Einrichtungen (...) konnten sich bis dato auf einen nicht abreißenden Strom günstiger Arbeitskräfte verlassen und müssen nun (...) ihre Leistungen zurückschrauben.", so schreibt er.

Geht es nur mir so, dass mir bei diesem Satz schlecht wird? Was dieser Satz effektiv aussagt ist, dass durch das Wegfallen des Zivildienstes günstige Arbeitskräfte nicht mehr in soziale Einrichtungen gezwungen werden, und dementsprechend die sozialen Einrichtungen weniger leisten können. Ein "strom günstiger Arbeitskräfte" - wtf? Ist es das, was alte Menschen in Deutschlands Jungen Männern sieht? Wen wundert da noch die Politikverdrossenheit, die man Diesen zuspricht?

Aber es geht noch weiter. Die Argumentation ist inetwa, dass die Studenten, die gegen Studiengebühren demonstrieren, oft mit Solidarität argumentieren. Und Solidarität dürfe keine Einbahnstraße sein. Nun, die Person geht davon aus, dass Studiengebühren ein absolutes Muss sind, damit stimme ich zwar nicht überein, aber dies ist ein anderes Thema. Die Lösung des Problems sei es jedenfalls, den Menschen, die Zivildienst leisten, ihre Studiengebühren zu erlassen. Das sei in irgendeiner Weise solidarischer.

Diese Argumentation hat so viele Flaws dass ich garnicht erst versuche sie hier alle darzustellen.

Zum Einen wird hier zum Beispiel vergessen, dass eigentlich nur ein kleiner Teil der Jugendlichen wirklich später studieren soll. Das hat nichts mit Elitismus zu tun, ich lehne Elitismus in den meisten Fällen ab, aber es ist einfach so, dass nicht jeder auf eine Universität gehört. Ich sehe nicht ein weswegen ausgerechnet die Studenten bzw. die studierwilligen Menschen dazu gezwungen werden sollten, Zivildienst zu leisten? Selbes gilt natürlich auch für Auszubildende. Es gibt genügend Jugendliche die effektiv garnichts tun wollen.

Es gibt sicher auch genügend Arbeitslose, die froh wären, selbst in einem sozialen Beruf. Natürlich müsste man die dann wieder entsprechend entlohnen.

Die Entlohnung ist aber wohl der größte Flaw bei dem vorgeschlagenen System: 5000 Euro Studiengebühren könnte man sich wohl inetwa sparen, wenn man zehn Monate Zivildienst macht. Das heißt, der Staat müsste rechnerisch 500 Euro pro Monat aufwenden. Freilich kann man einen Zivildienstleistenden auch nicht einfach ohne Essen und Unterkunft lassen, die zusätzlich kostet - ich bescheinige mal 400 Euro pro Monat Lebenshaltungskosten, die man wenn man sie nicht auszahlt auf die Eltern abwälzen würde, was man ja auch nicht unbedingt will. Womit wir bereits bei 900 Euro wären. Der Staat müsste also 900 Euro pro Monat bezahlen. Ich frage mich, ob man für 900 Euro pro Monat nicht auch gleich eine normale Person anstellen könnte. Gehen wir von einer 40-Stunden-Woche aus, so arbeitet man etwa 170 Stunden im Monat, das wären etwa 5,30 Euro Stundenlohn.

Auch aus rein finanzieller Sicht eines Studenten ist dann die Frage, ob man dann nicht lieber ein paar Monate lang einen Job mit anständigem Stundenlohn annimmt, und etwas sparsam lebt. Oder gleich einen Hiwi-Job anstrebt.

Ich finde, an dieser Argumentation sieht man gut das eigentliche Problem: Ein eigentlich ziemlich niederer Beweggrund - Geld - wird hinter fehlgeleiteten Moralvorstellungen versteckt.

Mein Vorschlag wäre nach wie vor, die Zwangsarbeit abzuschaffen. "Vergünstigungen" für freiwillige soziale Jahre darf und soll es durchaus geben, beispielsweise eine Verbesserung von NC-Regeln (oder gleich die Befreiung von NCs), eine Bevorzugung in Anmeldelisten bei begrenzter Kapazität von Universitäten, eine bevorzugte Aufnahme in studentischen Wohnanlagen, etc. - das Primärziel sollte vor Allem sein, dass keine Nachteile entstehen.

Warum sollte man aber freiwillige soziale Jahre auf diese kleine Personengruppe beschränken?

Wie wäre es damit, ein freiwilliges soziales Jahr auch für jüngere Personen zu erlauben? Personen die die Schule vielleicht mal ein Jahr aussetzen wollen, natürlich ebenfalls mit Vergünstigungen verbunden. Zum Beispiel würde das Angebot, dass wer ein absolviertes freiwilliges soziales Jahr nachweisen kann seinen (uneingeschränkten) Führerschein bereits mit 17 Jahren machen darf, sicher viele Leute dazu bewegen. Wie wäre es mit der Möglichkeit, eine verfrühte Wahlberechtigung zu erhalten? Wer so viel geistige Reife hat, sich für die Gesellschaft einzusetzen, der hat auch die geistige Reife ein Auto zu fahren und zu wählen.

Wie wäre es weiterhin damit, arbeitslosen Personen zusätzliche Rechte einzuräumen, wenn sie ein freiwilliges soziales Jahr machen? Zum Beispiel den Aufschub diverser Deadlines, eine erhöhte Anrechnung auf die Rentenversicherung, und so weiter.

Generell könnte man Leuten zum Beispiel für das eingesparte Geld für begrenzte Zeit ihre Praxisgebühren erlassen.

Es gibt immer wieder Menschen die Wendepunkte in ihrem Leben erreichen, und kurze Zeit nicht wissen, was sie tun sollen. Zu versuchen, diese Menschen abzufangen erscheint mir jedenfalls erheblich sinnvoller als Jugendliche von ihrer Ausbildung abzuhalten, auf welche Weise auch immer!
Even though I currently gave up with trying to install Linux natively, I am doing a few safe experiments inside VirtualBox. For example, now I know that I dont really like Fedora and the new Kubuntu.

Well, Debian is an alternative, but today I tried to install Arch Linux. What I actually want to have is a LVM in an encrypted container.

Debian has a nice Menu Structure to achieve this, but the last time I did this I booted the Debian Installer from a pendrive, and afterwards the device names changed and nothing worked anymore. Thats the main problem with automatic setup: It does not work if anything is different from what the programmer assumed.

Well, in Arch Linux, its more complicated, and didnt work the first time, but I was surprised how easy it has become meanwhile. There are some pitfalls, but compared to other stuff I already underwent it was no problem.

The Arch Linux Wiki has nice tutorials for both LVM and System Encryption, but not altogether, which makes the stuff a little harder. Especially, things have changed a bit, seems like the /etc/crypttab is more or less ignored by mkinitcpio but there is a new kernel argument "cryptdevice" to the kernel which works.

Another problem I ran into when trying to change the (not yet working) System afterwards was that the livesystem didnt map my encrypted LVM into the devicefiles, even though lvmdiscscan worked properly. I found the command vgchange -ay which makes all volume groups active apparently to get the device files.

I didnt try much with copy-on-write-snapshots yet. Especially, because they seem to have one drawback: they are not really secure as system snapshots for rollbacks. As far as I read, these snapshots grow when changing the original drive (which actually makes sense), but if they run out of memory, the kernel just drops them. I dont want them to be dropped in that case. I want to get an error like I would get when there is no place left on a device - such that then I can decide myself whether I grow that snapshot or just drop it. I dont know whether this is possible, if its possible I just didnt find out yet.

Human Rights

| Keine Kommentare
Beginners Guides: Stopping Vista From Thrashing Hard Disks to Death - seems to work for Windows 7 too (except for a few changes in the Menu-Structures). The constant disk-activity is really getting on my nerves.

New Categories: "Short Post" and "Link"

| Keine Kommentare
Since often I only have a few words to say to some Hyperlink, I introduce two new categories "Short Post" and "Link". "Short Post" is for the rather short posts and "Link" if its mainly about a hyperlink, maybe with some quote.

I will soon try to set up some filter for the newsfeed to filter several posts, like in Dijkstrabühl. Maybe I use Yahoo Pipes again.

Nice examples for Compiler Optimizations

| 2 Kommentare
A few very nice examples on how GCC optimizes code can be found at ridiculousfish.com.

An example of generalized tail recursion was given, the transformal of

int factorial(int x) {
   if (x > 1) return x * factorial(x-1);
   else return 1;
}

into

int factorial(int x) {
   int result = 1;
   while (x > 1) result *= x--;
   return result;
}

This is a well-known optimization and Iwas wondering whether SBCL also does this optimization. The second declaration becomes

(defun fact2 (x)
 (declare (type fixnum x))
 (let ((res 1))
(loop while (> x 1)
do (setf res (* res (decf x))))))

the firts one becomes

(defun fact1 (x)
(declare (type fixnum x))
(if (> x 1) (* x (fact1 (1- x))) 1))

Of course I have to declare the type here, otherwise it will put code to distinguish between several numeric types. And I did a
(declaim (optimize (speed 3)
(safety 0)
(space 0)
(debug 0)
(compilation-speed 0)))
just to be fair. The second one disassembles into

CL-USER> (disassemble #'fact2)
; disassembly for FACT2
; 248173A4:       BA04000000       MOV EDX, 4                 ; no-arg-parsing entry point
;       A9:       EB18             JMP L2
;       AB: L0:   8BC3             MOV EAX, EBX
;       AD:       83E804           SUB EAX, 4
;       B0:       8BD8             MOV EBX, EAX
;       B2:       895DFC           MOV [EBP-4], EBX
;       B5:       8BF8             MOV EDI, EAX
;       B7:       E8F18E7EFD       CALL #x220002AD            ; GENERIC-*
;       BC:       7302             JNB L1
;       BE:       8BE3             MOV ESP, EBX
;       C0: L1:   8B5DFC           MOV EBX, [EBP-4]
;       C3: L2:   83FB04           CMP EBX, 4
;       C6:       7FE3             JNLE L0
;       C8:       BA0B001022       MOV EDX, 571473931
;       CD:       8BE5             MOV ESP, EBP
;       CF:       F8               CLC
;       D0:       5D               POP EBP
;       D1:       C3               RET
NIL
Somehow I cannot make the GENERIC-* disappear, not even with a the or coerce declaration around the numbers. But the disassembly of the first one is

CL-USER> (disassemble #'fact1)
; disassembly for FACT1
; 24783F0D: L0: L1:83F904           CMP ECX, 4                ; no-arg-parsing entry point
;       10:       7F09             JNLE L3
;       12:       B804000000       MOV EAX, 4
;       17: L2:   8BE5             MOV ESP, EBP
;       19:       5D               POP EBP
;       1A:       C3               RET
;       1B: L3:   894DFC           MOV [EBP-4], ECX
;       1E:       8BC1             MOV EAX, ECX
;       20:       8BD0             MOV EDX, EAX
;       22:       83EA04           SUB EDX, 4
;       25:       8BDD             MOV EBX, EBP
;       27:       8D4424F8         LEA EAX, [ESP-8]
;       2B:       83EC20           SUB ESP, 32
;       2E:       8BCA             MOV ECX, EDX
;       30:       8918             MOV [EAX], EBX
;       32:       8BE8             MOV EBP, EAX
;       34:       E819000000       CALL L5
;       39:       8B4DFC           MOV ECX, [EBP-4]
;       3C:       8BD1             MOV EDX, ECX
;       3E:       8BF8             MOV EDI, EAX
;       40:       E868C387FD       CALL #x220002AD            ; GENERIC-*
;       45:       7302             JNB L4
;       47:       8BE3             MOV ESP, EBX
;       49: L4:   8BC2             MOV EAX, EDX
;       4B:       EBCA             JMP L2
;       4D:       8F4504           POP DWORD PTR [EBP+4]
;       50:       EBBB             JMP L1
;       52: L5:   8F4504           POP DWORD PTR [EBP+4]
;       55:       EBB6             JMP L1
NIL

From 10 to 1A, this seems to check whether the first argument is greater than something (1?), and if so, it jumps to L3, if not, it returns. In L3, it does a lot of things, especially it calls L5, which then jumps to L1, the first line, again. That is, it seems like it really does recursion here.

This is not very nice. Why is it that way?

Wespen in einer Bäckerei

| Keine Kommentare

Kinderlärm

| Keine Kommentare
Ich las jetzt bei zwei Quellen, dass die Regierung sich dafür einsetzt, dass Kinderlärm nicht mehr als Lärmbelästigung zählt. Ich muss dazu sagen, ich kenne die Rechtslage nicht genau. Wenn ich das richtig lese war es bisher nicht so dass man in jedes Wohngebiet einen Kindergarten pflanzen konnte. Und diese Regelung erscheint mir sinnvoll, denn in einem Kindergarten ist es nunmal wenn Kinder spielen laut.

So laut, dass es durchaus eine Belästigung sein kann. Ich finde bereits kreischende Kinder in den U-Bahnen nervig, wenn jetzt noch in der Nähe meiner Wohnung ständig Lärmbelästigung wäre würde mich das wirklich nerven. Es würde mich wohl auch ablenken, und mir die Arbeit erschweren, und mir einen Schlafrythmus vorgeben.

Insofern kann ich auch verstehen dass Leute sich dadurch belästigt fühlen und etwas dagegen haben dass in ihrem Wohngebiet ein Kindergarten ist, den man genausogut ein wenig weiter entfernt bauen könnte. Es handelt sich nicht um eine Diskriminierung von Kindern. Wenn jemand sich Hunde hält dürfen die auch nicht den ganzen Tag bellen. Ich darf um 4 Uhr morgens auch nicht Musik hören. Das hat nichts damit zu tun dass ich diskriminiert werde, das hat etwas damit zu tun dass ich andere Leute potenziell störe. Lärm stört, unabhängig davon woher er kommt, aber gerade Kinderlärm stört erheblich, vermutlich weil man auf Kinderstimmen besonders stark hört.

Um "Toleranz und Akzeptanz" geht es den Politikern. Toleranz und Akzeptanz gegenüber Kindern ist eine Sache, darf man aber nicht von Kindern und deren Eltern auch eine gewisse Toleranz und Akzeptanz einfordern? Dass Kindergärten, die eben sehr laut werden können, einfach an Orten stehen wo das niemanden stört? Es gibt doch genügend Platz dafür!

Wo ist also das Problem? Hat unsere Regierung momentan nichts wichtigeres zu tun?

Das Kuchenblech-Video

| Keine Kommentare
Lange habe ich mir schon vorgenommen nach dem ominösen "Kuchenblech-Video" das irgendwie ziemlich bekannt sein soll zu suchen, jetzt habe ich endlich daran gedacht.




Direktlink

Nett. Sehr nett.
As I already said in the past, I am currently working on some changes in Uxul-World to make it easier to port. I dont have much time right now, though.

I decided to drop PNG to get rid of the sdl-image-dependency, and use BMP-Files with an Alpha-Channel. 32-Bit BMPs are (comparably) easy to handle manually, which is what I am now doing directly in Common Lisp.

This way, I also get rid of lisp-magick, since I can now stretch and annotate the pixel-data manually, also in Common Lisp. I think I will keep LTK for the Level-Editor at least for the moment, since it works and is comparably simple to use. But LTK doesnt support Windows Bitmaps per default, and I dont want to add additional dependencies to TK.

As far as I read, TK supports - besides GIFs - PBMs by default, and since the PBM-Format is even simpler than the Windows Bitmap Format, I created a converter to this format to use it with LTK. The drawback is that PBMs dont have alpha-channels, so I had to add a background-color, which may not look so good. Anyway, seems like TK's -data-Argument isnt supported for ASCII-PBMs, so I cannot use them here, so currently, the level-editor is not working. I will maybe look at skippy, which is a pure CL-Implementation of the gif-Format, therefore.

Currently, the game crashes under windows, and I have to optimize a lot of stuff, the dependencies are not corrected yet, etc. etc., anyway, the code can be found in my github-repository of uxul-world in the file named bmp.lisp. Comments and patches are always welcome. Especially it only supports 32 bit RGB-Bitmaps and I didnt test it in all edge-cases (the main purpose was to make it work with my graphics).

Well, I am also currently thinking of switching to cl-opengl. lispbuilder-sdl seems not to be very stable under Windows, and adds a lot of dependencies. For sound, I currently consider cl-openal. But I dont know how all of this will work.
R5RS-Scheme is a very nice little language. There is no doubt about that. Anyway, though it is very nice, there are a few things that sometimes really make it hard to use. I am saying this from a sort of "practical" perspective: Its what I noticed when I had to use it, being used to common lisp.

A major issue for me is the lack of a default possibility to determine the current compiler somehow. This makes it impossible to write portable code. But especially in scheme, which is very small and has a lot of extensions through its compilers and interpreters, such a thing would be extremely helpful. I dont know about R6RS, except that many schemers dont like it. Maybe it already has such a thing.

Then, well, its a lisp-1. This has advantages and drawbacks. Actually, I think that a lisp-2, putting callable objects into an own namespace, is actually better in a "practical" sense. On the other hand, always having to write "funcall" like in common lisp when calling a function variable is not nice, it should have some "inverse" to its #'-prefix for declared functions. Well, thats a matter of taste, and neither common lisp nor scheme really are the way I would like to have it.

Also an issue for me is the way it handles its dynamic argument numbers. Scheme has a very nice way of doing this, which embeds into the theory perfectly, specifying (define (name x y z . rest)). Compared to the common lisp way, which has &rest-specifyers, this looks pretty. On the other hand, common lisp has an &optional specifyer, and an &keys specifyer, one can name keys, define default values, etc. - all this can be done in scheme only with more code. And its something I really like to have. It makes debugging and specifying easier.

Of course, common lisp also has drawbacks, for example the lack of a named let. I dont want to insult schemers here, or say that scheme is a bad language. Its just a few things that I noticed.

Dünger für die Haut

| Keine Kommentare
Da gerade sowas Ähnliches wie Ferien vorherrscht, lasse ich mich bisweilen mal wieder dazu herab mich zu Menschen dazuzusetzen, die fernsehen. Da sah ich eine interessante Fernsehwerbung. Ein Produkt, das sich "Body Urea" nennt. Hier hab ich es auf Amazon.de gefunden.

Da wird doch tatsächlich mit 5% Urea geworben. Das soll gut für die Haut sein, kennt man bereits aus der alternativen Medizin. Und wenn man damit seine Felder düngt, kann es doch auch für die Haut nicht schlecht sein.

Meinerseits spricht nichts dagegen, dass mal eine so bewehrte Substanz wie Harnstoff benutzt und beworben wird. Man kann Harnstoff auch sehr gut künstlich herstellen, und er gehört damit eigentlich zu den weniger ekligen Dingen die sich in Kosmetika befinden können. Ich finde es nur trotzdem irgendwie witzig.

𝔉ℜ𝔄𝔎𝔗𝔘ℜ in Unicode

| 2 Kommentare
Once I heard that codepoints in Unicode are given away carefully.
On the other hand, there are codes for ʇxǝʇ-uʍop-ǝpısdn, 𝔉ℜ𝔄𝔎𝔗𝔘ℜ, 𝐛𝐨𝐥𝐝 𝐥𝐞𝐭𝐭𝐞𝐫𝐬, 𝒮𝒸𝓇𝒾𝓅𝓉, and a lot of other weird stuff. There are characters reversing the text direction.

No doubt this could be useful. But on the other hand, I dont know if its really a good thing to have symbols that are basically letters in another font as standard unicode characters.

Keine Schmerzmittel nach OPs

| Keine Kommentare
Es überrascht mich nicht wirklich, es berührt mich auch inzwischen kaum noch, dass Subjekte die Tierexperimente durchführen mit der Zeit jegliches Mitleid für Tiere verlieren. Zum Einen sind die Budgets vermutlich wie so ziemlich überall beschränkt, der Forschungsdruck ist vermutlich hoch, und nicht zuletzt kann man seine sadistischen Machtphantasien dabei ausleben. Ich habe kein Verständnis dafür, und es ist auch nicht so dass ich solche Leute nicht als moralisch Unterentwickelt ansehen würde, oder verstünde, warum es noch immer keine Ethikkommissionen für Tierexperimente gibt, es ist nur einfach nichts neues und schockiert mich nicht mehr wirklich.

Ich vermute in Tierversuchslabors zu einem Großteil Leute die zu Menschenfeindlich sind als dass sie gescheite Ärzte werden könnten. Fleisch zerschneiden und Schädel und Knochen zersägen ist der spaßige Teil, das Ganze dann wieder zusammenzuflicken ist kompliziert und dementsprechend will man damit nicht so viel Zeit verbrauchen. Weshalb man dann auch mal vergisst den Tieren mit denen man den ganzen Spaß hat Schmerzmittel zu geben.

Immerhin kann man sich hinter den moralischen Schutzschild jahrzehntelanger medizinischer Forschung stellen. Gut, die hat auch Zeug wie Contergan hervorgebracht, und kam nie ohne Menschenversuche aus. Aber Einzelfälle darf man im großen Gesamtkontext einfach nicht beachten.


My ThinkPad has no internal CD-Rom-drive. I already had some problems installing Windows 7 on it from an USB Pendrive. Somehow, yesterday I had the desideratum to again install Linux on my Laptop.

Dat feel when seeing all the people having Linux installed and working with it ... it makes me feel lazy, and it doesnt feel good.

My plans were to have Windows encrypted with TrueCrypt, and Linux encrypted with dm_crypt/luks. I wanted to have an encrypted LVM, because I wanted to get used to LVM.

The suggested way of doing this was to save the MBR of the harddisk and chainload it with GRUB. Well, to make it short, that didnt work and I had no time to figure out why.

But after doing that, I tried to rewrite the old MBR, and it still claimed that its damaged and I should use the rescue disk. I still had the ISO-File, but no CD-Drive. And of course, I couldnt manage to create a bootable USB-Stick which booted it.

Making external media - except for CDs and Floppies - bootable is still some sort of magic. They designed the ThinkPads to be very good at it, but for some other computers, it sometimes works and sometimes doesnt work, depending on the Pendrive or Harddisk. Even worse is PXE-Booting/NetBoot, for which I am currently much too lazy to configure.

Maybe thats because Net-Booting is something that only experts use at all. It would be very nice if it was easy and supported by most operating systems, but well, it is possible and if you configured it once you will mostly not have to change much as long as your OS-Configuration doesnt change, but its still complicated especially when having a router with software that doesnt support turning off its DHCP-Server, etc.

Fortunately, I had a bootable Ubuntu on my external Hard Drive (well, bootable by my ThinkPad, not by my local thinclient, somehow). On which I then installed VirtualBox and booted from the Rescue Disk. It worked - but of course, one should not do this, because the password or keys could be swapped.

Virtualisation is so versatile, its like a computer science sledge hammer. Whenever people were too lazy to make something modular enough to work with it the way you want, just put it into a VM and anything will be great.

However, I am glad that my system still works. At the moment, a working OS, even though its windows, is too important to me to make experiments with the bootloader.

Ein paar Gedanken zur Netzneutralität

| Keine Kommentare
Ich überflog einige Meldungen, unter Anderem diese von der ARD, zum Thema Netzneutralität.

Die Provider seuseln dahin von Wegen die Netze seien überlastet von den vielen Leuten die die Dreistigkeit haben sie dann auch wirklich zu benutzen, um sich Videos anzusehen. Ein Jahrelanger Preiskampf hat dazu geführt dass wir heute Flatrates haben, und dass man in Städten 50 mbit hat, während man in einigen Gegenden noch Dial Up Verbindungen braucht. Normal sind momentan soweit ich das sehe 16 bis 20 mbit. Für Videos gerade richtig, für alles Andere für gewöhnlich Overkill. Trotzdem brauchen die ganzen modernen Uber-Anwendungen alle unbedingt Ajax-Geschwurbel und dementsprechend geht auch dafür recht viel Last drauf, für den Normalanwender mit DSL eigentlich kein Thema, für den Menschen mit Dial Up Verbindung unbenutzbar.

Während man in manchen Gebieten quasi abgeschnitten ist vom Internet, zwiebelt man in den Großstädten jetzt 50 mbit Leitungen raus - ich frage mich, wie das sein kann, wo die Netze doch so überlastet sind, dass man die Netzneutralität nicht mehr halten kann? Und ich frage mich, wie soll es dann weitergehen? Der Hunger nach mehr Bandbreite wird sicherlich erstmal nicht kleiner, zumindest solange man noch irgendwie sinnvoll ebendiese verschwenden kann. Und sobald das vorbei ist wird man dieselbe Bandbreite auch im Mobilen wollen. Irgendwann müssen die Betreiber ihre Netze also sowieso ausbauen, oder ihre Preispolitik ändern.

Ich sage es ganz ehrlich: Ich glaube den ISPs nicht, dass das ihre Motivation ist. Ich glaube, es ist reine Profitgier. Ich denke, ISPs nehmen sich hier zu ernst. Ich will von meinem Provider einen Zugang zum Internet - ich will dass er dafür sorgt, dass das Zeug was ich sende da ankommt wo es hinsoll, und ich alles bekomme was zu mir soll. Dann sollen sie mir einen Preis nennen, zu dem sie das machen. Und den muss ich dann eben bezahlen. Zum Jetzigen Zeitpunkt geht es so einfach, dass es im Grunde jeder kapieren kann.

Und trotzdem gibt es bereits ein riesiges Tarif-Wirrwarr, das man kaum mehr durchschauen kann. Was passieren wird, wenn die Netzneutralität erstmal weg ist, liegt denke ich auf der Hand: Es wird sich ein noch größeres Tarif-Wirrwarr bilden. Erstmal wird es neue "Premium-Tarife" geben für Facebook und YouTube und sonstige Netzwerke, bzw. Volumentarife mit Flatrates für "bis zu fünf Webseiten" die man (was man natürlich nur in einer Fußnote sieht) aus einer vorhandenen Liste auswählen kann. Die Content-Industrie wird sich die Hände reiben, und ähnlich wie bei den momentanen Handytarifen ebenfalls das Recht auf soundsoviele Lieder pro Monat einräumen.

Das Internet wird zu einer großen Verkaufsplattform verkommen, das was es ursprünglich war wird verschwinden. Ein paar alternative Provider wird es wohl noch geben, die werden aber vermutlich nur in den großen Städten bezahlbar sein.

Normalerweise würde ich sagen, dass das eigentlich keiner wollen dürfte und dementsprechend sich alleine aufgrund der fehlenden Nachfrage solche Tarife nicht durchsetzen werden - doch diese Haltung wird sicherlich schnell von hinreichend vielen Leuten wegpragmatisiert.
The Old New Thing hat grad einen interessanten Artikel zu Garbage Collectors. Obgleich ich mich schon öfters damit beschäftigt habe, ist mir diese eigentlich offensichtliche Ansicht grade neu gewesen.

Ein Garbage Collector ist demnach ein Mechanismus der unendlichen Speicher simuliert.

Er begründet weiterhin was die formalen Folgen daraus sind, dass zum Beispiel wenn ein Programm immer genügend Speicher allokieren kann, der "Null-Garbage-Collector" der nichts tut ein ausreichender GC ist. Daraus leitet er korrekt ab, dass man nicht davon ausgehen kann, dass finalizer vor dem Beenden eines Programmes aufgerufen werden.

Ich kann in diesem Punkt nicht ganz zustimmen. In einem Kommentar heißt es dann noch, es gibt von Garbage Collectoren echt verschiedene Strategien dies zu tun, und ich denke auch, unter Garbage Collectors versteht man einen ganz bestimmten Ansatz die Simulation unendlichen Speichers zu erzielen, nämlich während der Laufzeit nach Objekten zu suchen die nicht mehr vom Hauptprogramm referenziert werden.

Schwache Referenzen und Finalizer sind zum Beispiel Techniken, die außerhalb eines solchen Ansatzes nicht notwendigerweise Sinn ergäben. Und man kann im Prinzip argumentieren, ein GC sollte garantieren dass Finalizer aufgerufen werden, in einer perfekten Welt wäre das schön, aber leider geht das nicht immer so einfach, heißt, seine Conclusio, sich darum zu kümmern und den GC nur als Auffangnetz anzusehen, finde ich durchaus sinnvoll.

Generell finde ich aber vor Allem den Denkansatz schön, mal nicht anzufangen über einen Haufen Garbage Collectoren zu reden, sondern sich erstmal zu überlegen, was das Ganze formal eigentlich ist, und daraus Konsequenzen abzuleiten. Eine Denkweise, die in der modernen pragmatisierten Informationstechnik immer seltener anzutreffen ist.

Echt jetzt ...

| Keine Kommentare
... da ist man mal ne Woche weg und schon wird mit neuen Repressalien experimentiert, und zwei große Schnüffelunternehmen planen eine gigantische Schnüffelmaschinerie, während Indonesien während Ramadan Pornografie blockieren will, außerdem reden Google und Verizon Gerüchten zu Folge über Verträge um Googles Netzanbindungsgeschwindigkeit zu erhalten, was wohl der Netzneutralität widerspricht. Ansonsten wird Google Wave eingestellt, Debian Squeeze ist jetzt frozen und der Vorstand von HP ist zurückgetreten.

Was so alles in so kurzer Zeit passiert.

Was nettes zur Killerspieldiskussion

| Keine Kommentare
Zwar alt, aber vielleicht dem Einen oder Anderen noch nicht bekannt:
gefunden bei fukung.net

Ich bin zurück / I am back

| Keine Kommentare
... und habe ein paar Einträge in Vorbereitung ...

... preparing a few new posts ...