W00t, today I saw a first Sprout in one of my flower pots, where I seeded tomatoes.



Hopefully, the other ones will come soon, too.

Even though I like ZFS, I am using Linux which has not yet good ZFS-Support, and LUKS. Using LUKS with an encrypted swap I want to be able to use for suspending, still the easiest possibility to achieve this is using an LVM [yes, this sentence is gramatically correct ...].

However, so far I only used this on one partition, which is already very flexible. Today I tried to use LVM on three USB-Sticks that I found occasionally. As they have different sizes, there is no point in creating a Raid, so I just used them directly.

So, I have three USB-Sticks, of different size, /dev/sdb, /dev/sdc, /dev/sdd. Firstly, I create the physical volumes on them:

root@thinkpad:/# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
root@thinkpad:/# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created
root@thinkpad:/# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created


Then I create the volume group:

root@thinkpad:/# vgcreate vgusb1 /dev/sdb /dev/sdc /dev/sdd
  Volume group "vgusb1" successfully created


(Actually, a lot of rw-errors are emitted, but they are pointless, and I left them out, and I will leave them out in the further commands.)

Then I create a logical volume, with 40% of the size of the whole volume group:

# lvcreate -l 40%FREE -n test vgusb1
  Logical volume "test" created


Let us make an ext4 filesystem on it:

root@thinkpad:/# mkfs.ext4 /dev/vgusb1/test
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
64512 inodes, 258048 blocks
12902 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=264241152
8 block groups
32768 blocks per group, 32768 fragments per group
8064 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376

Writing inode tables: done                           
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

root@thinkpad:/# mount /dev/vgusb1/test /mnt

So, now I have the filesystem. Lets create a file with random content:

# dd if=/dev/urandom of=/mnt/rand bs=4K

Let us check the md5sum quickly

root@thinkpad:/# md5sum /mnt/rand
251e865156f990e10711f5ac3e10d0bd  /mnt/rand


Verilyyyyyyyyyyy... So now we will create a snapshot and assure ourselves that it has the same content:

root@thinkpad:/# lvcreate --snapshot /dev/vgusb1/test -n snap -l 40%VG
  Logical volume "snap" created
root@thinkpad:/# mount /dev/vgusb1/snap /mnt2/
root@thinkpad:/# md5sum /mnt2/rand
251e865156f990e10711f5ac3e10d0bd  /mnt2/rand


Ok. Now we have a snapshot. Let us unmount the original and extend it to the maximum size, and resize the ext4 filesystem.

root@thinkpad:/# umount /mnt
root@thinkpad:/# umount /mnt2
root@thinkpad:/# lvchange -a n /dev/vgusb1/test       
root@thinkpad:/# lvextend -l +100%FREE /dev/vgusb1/test
  Extending logical volume test to 1.48 GiB
  Logical volume test successfully resized
root@thinkpad:/# e2fsck -f /dev/vgusb1/test
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vgusb1/test: 12/64512 files (0.0% non-contiguous), 258045/258048 blocks
root@thinkpad:/# resize2fs /dev/vgusb1/test
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vgusb1/test to 387072 (4k) blocks.
The filesystem on /dev/vgusb1/test is now 387072 blocks long.
root@thinkpad:/# mount /dev/vgusb1/test /mnt
root@thinkpad:/# mount /dev/vgusb1/snap /mnt2


And now, let us fill /mnt/rand with new random information

# dd if=/dev/urandom of=/mnt/rand bs=4k

And check the checksums again

root@thinkpad:/# md5sum /mnt2/rand
251e865156f990e10711f5ac3e10d0bd  /mnt2/rand
root@thinkpad:/# md5sum /mnt/rand
55ee3477277947183c60d7190536f5c5  /mnt/rand


Snapshotting apparently worked. Apparently, it still works, when I unplug the sticks and plug them in again in a different order, and they get different devicenames.

LVM is nice.

The software sudo is useful to give users the right to execute commands that otherwise need higher permissions. Ubuntu does not even have a root-account anymore that you can login into, you need to run sudo (maybe in combination with su) to gain root privileges.

Besides that, the manpage for the sudoers-file (the file configuring sudo), is one of the worst manpages I know, introducing EBNF and giving an EBNF-Grammar - well, not quite, there are manpages not giving any information at all, or even confusing more than giving clarity. But from the manpages giving correct information, this has a chance to be the worst.

Since one has to use visudo or sudoedit anyway to edit the /etc/sudoers, it would be nice to have an intuitive GUI for doing this. Something in which one can add users to executables that they may run, etc.

I wonder if there is such an UI already - on Ubuntu, I did not find anything like that yes, but maybe SuSE or RedHat has one. In any case, it would be a nice thing to have.

... can be found here.

I am currently using ext4+lvm, and it is ok so far. It works, is fast and can do everything I need.

I was using zfs-fuse for a long time, but it had major problems with file-locks and stuff (for example, man-db regularly freezed my system), which are, as far as I read, resolved meanwhile, but currently I do not have the time to set up a new system. However, I never had any data loss caused by zfs-fuse, no matter how often it crashed, after reboot everything worked again.

No comparism to btrfs which broke my partition and gave me data loss, after suspending and resuming (if it does not support suspending and resuming, then it should not allow the kernel to shut down - and zfs-fuse even crashed and did not damage anything, even though it is not even a kernel-module).

When seeing the list in that link, I wonder why there is still so much development done with btrfs: ZFS is only about one year older than Btrfs (according to Wikipedia), is stable, there are implementations for many OSes, there is a FUSE-Implementation, and its only problem is the license. ZFS and Btrfs belong to Oracle - why do they not just change the license of ZFS such that it can be added to the Linux-Kernel easily, and use the power of the Btrfs-Developers to enhance ZFS?

Ja, so lauten die Plakate die jeden in den diversen Universitätsbibliotheken anlachen. Wertvolle Lernzeit sinnlos mit Google verschwendet. Nein, das geht ja mal garnicht.

Verschwenden Sie lieber Ihre Zeit mit den frickeligen Webinterfaces der Bibliotheken und Verlage. Deren Suchfunktionen funktionieren zwar - wenn sie nicht grad Google Custom Search verwenden - eher selten wenn man nicht ziemlich genau das eingibt wonach man sucht, aber dafür sind sie akademisch.

Außerdem reicht Google nicht aus, denn Google mag zwar häufiger das finden, was relevant ist, aber vieles davon steht unter ominösen Lizenzen und ist deshalb nicht für jeden herunterladbar. Wo kämen wir da auch hin, wenn Wissen frei zugänglich wäre - man bräuchte keine Verlage mehr, keine Bibliothekare, könnte keine Bücher mehr verbieten, könnte öffentlich alle Forschungsergebnisse diskutieren und anzweifeln, am Ende werden wie in Wikipedia irrelevante Sachen gelöscht, ein Alptraum, nicht nur für die Wirtschaftswissenschaften.

Nein, dieser ganze technische Bloat ist vollkommen nutzfrei. Nichts geht über die alphabetische Sortierung von uneindeutig benannten Zeitschriften, über versteckte Regale in dunklen Bibliothekskammern, über stinkende, vergilbte, schlecht kopierbare und noch schlechter lesbare alte Bücher.

Erst heute suchte ich nach einer Zeitschrift, die etwas älter ist. Die Bibliotheksseite zeigte mir an, dass meine Bibliothek sie haben müsste. Und so kroch ich zwei Stunden lang durch die Bibliothek bis ich schließlich aufgab und dort den Mitarbeiter fragte. Er fand immerhin ein Schild, auf dem der Name der Zeitschrift stand - die Zeitschrift selbst war nirgends, aber offenbar war sie mal irgendwo. Nachdem auch er nach einer halben Stunde aufgab sie zu finden, durch mehrere Regale gehend, meinte er, ich solle morgen nochmal kommen, so gegen 10 Uhr, da ist die Cheffin da, die wüsste sicher mehr.

Das ist jetzt mal viel besser als Google. Um totes Holz zu kriegen, mit dem ich kopierenderweise weiteres totes Holz konsumiere, muss ich um 9 Uhr aufstehen (zum Glück muss ich das morgen sowieso), um zu fragen, wo sich das betreffende tote Holz befindet. Das wird mindestens noch mal eine Stunde dauern, und es ist zweifelhaft ob die Zeitschrift vorhanden ist. Es ist natürlich auch nicht möglich, von vorne herein zu jeder Fachzeitschrift im EDV-System zusätzlich zu der vierstelligen nichtssagenden Nummer eine Regalnummer zu speichern, denn das wäre wieder zu sehr Google.

Nein, das nostalgische Fühl tagelang auf ein paar A4-Seiten Text zu warten, der Nervenkitzel, ob es denn klappt, und die Spannung, ob der Text letztendlich brauchbare Informationen enthält, das gehört irgendwie dazu. Diese Aspekte dürfen wir uns auf keinen Fall von irgendwelchen Googlern nehmen lassen.

A problem that sometimes arises. The solution is simple, but it is hard to find, so I though I will write it here, such that other Googlers will find it.

You can simply do this by adding a policy-rc.d-script. That is, create a script /usr/sbin/policy-rc.d returning 101, before installing anything.

When using packages, the above Link sais one must use the alternatives-System, which sounds plausible.

Well, I have learned that today. It is always interesting to learn something new.

I have found a bug that I was searching for since a long time. Now finally, the level-editor works - well, at least as long as you do not use OpenGL in the mean-time (this should be just a minor bug, I assume some confusion of the standard input by OpenGL or something).

Even though there are a lot of alternatives, I think I will stay with ltk and skippy for the level-editor, simply because the level-editor was meant to be a development tool for me rather than part of the software.

The background is still not working and currently I do not have the time to make it work, though it is probably easy.

Anyway, if you want to have fun with it, or get inspiration (or just look at CL-Code dealing with OpenGL), it can be found under https://github.com/dasuxullebt/uxul-world.

Reading my older posts, I saw that I often omit apostrophes ("wont", "didnt"). This is mainly because I do not like them. And additionally, on a german keyboard, they are annoying to type, since you have to press shift. "Wouldn't" is a short form anyway, and has evolved for laziness, so why should I care about this apostrophe?

Thus, meanwhile I am trying to avoid these forms, writing "would not", "is not", "cannot", "will not", "did not", "it is", etc., instead - even though this sometimes sounds strange, it mostly is correct. But there are even forms where the long form is not appropriate anymore. "Wouldn't you prefer not to use apostrophes?" is an example where I do not know any alternative for "wouldn't". "would you not?" is not really appropriate (well, it seems that some British people would accept it, but at least in the USA, it is not usual  to use it). So in that case, "wouldn't" becomes an actual word instead of just being a short form, and thus, there should be no necessity to put in an apostrophe.

I mean, really, who wants a language that uses apostrophes in actual words? It seems to me that many Britains and especially Americans are proud of not having any special characters, especially no umlauts. Are apostrophes not even more annyoing than umlauts? I do not like umlauts either, but at least they are connected to actual vowels rather than just designating that the word used to be an abbrevitation.

The only reason why I will not just ignore these rules and will try to use long forms whenever possible (and if not, using apostrophes even though I do not want to) is that I am no native speaker, and there are nuances of the english language which I might not be able to assess correctly. If this was a problem with the german language, I would just continue using the form I like.

That is because I think that language is a tool, and as every tool, it should be adapted the way that fits best. And additionally, the german orthography keeps changing from time to time.

However, unlike many other people, I do not consider it as an insult if somebody informs me about grammatical mistakes I make in my english posts. If you see something, feel free to comment or send me an E-Mail.

I recently watched TV - which is something I do not do often - and saw this ad. People protest for cheaper internet, Angela Merkel sais that it is impossible to get it cheaper. Then Julian Assange comes and tells about the product that is advertised, giving a cheap internet flatrate.

In my opinion the graphics are badly done in this ad, if I did not recognize the people from the context, I would have been unable to recognize them at all.

On the other hand, using a person like Julian Assange as a mascot for advertising may be criticized, but it shows that Wikileaks has reached the mainstream. Even though Julian Assange is certainly not a redeemer, his publicity and the work done by the Wikileaks-Team had some effect, even though it may only be small in the end.