Archiv der Kategorie: Allgemein

TDD Test aufräumen

Es ist generell wichtig nach einem unit Test den Code aufzuräumen, also angelegte Daten wieder zu löschen. z. B. Testdaten in einer Datenbank.

Aber noch wichtiger ist es vor einem unit test aufzuräumen.

Damit wenn bspw. während eines vorherigen Testlauf etwas schief ging und der Test nicht bis zu Ende durch gelaufen ist und somit noch Testdaten in der DB liegen, der nächste Test ordentlich und sauber durchgeführt werden kann.

Merkhilfe für gutes Design

1) Switch-Konstrukte oder nicht-elementare if-Statements (alles, was nicht mit <,>=,==,|| etc geprüft wird)
weisen auf einen Design-Fehler hin, den man durch Polymorphismus lösen kann. Bsp: Methode male() vor und nach Benutzung von abstrakten Methoden
2) Vererbte Dinge sind immer in den Unterklassen da, aber nur public v/m sind echt “sichtbar”
3) Man verwendet immer private für Attribute einer Klasse und macht sich Getter/Setter um in Unterklassen (und evtl auch aus anderen Klassen) darauf zugreifen zu können
4) Vererben tut man, wenn verschiedene Objekte in Teilen gleich sind und sich gleich Verhalten
5) Abstrakte Klassen nutzt man, wenn es die Oberklasse an sich gar nicht gibt
6) Abstrakte Methoden nutzt man dann, wenn man vererben möchte, die Funktionalitäten aber in jeder Unterklasse anders implementiert werden müssen, und nicht gleich sind.
7) die Implementierung eines Interfaces ist sowas wie das Implementieren von abstrakten Methoden einer Superklasse, nur besser!

Gefunden hier:
Quelle: http://www.java-forum.org/einfuehrungen-erste-schritte/76834-vererbung-polymorphie.html

Usbplatte an Fritzbox mit Ubuntu mounten

Folgendes Konstellation.

1x Dreamplug Computer mit Ubuntu 2.6.33.6 drauf.
1x Fritzbox mit angeschlossener Usbplatte

Ziel: auf dem Dreamplug ist git installiert und auf dem Usbplatte an der Fritzbox soll das entfernte Repository liegen.

Fehlermeldungen wie diese brachten mit zur Weißglut.

tec-ireschke:ingo-reschke ingoreschke$ ingo@dreamplug password: 
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 331 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database ./objects
 
fatal: failed to write object
error: unpack failed: unpacker exited with error code
To ingo@dreamplug:/mnt/fritz/mediaplatte/git/websites/ingo-reschke.git/
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'ingo@dreamplug:/mnt/fritz/mediaplatte/git/websites/ingo-reschke.git/'

Schaut man sich die Dateirechte an scheint alles in Ordung zu sein.

ls -la
drwxrwxrwx 2 root root

Allerdings arbeiten Unix Rechte und Windows Rechte nicht zusammen.

1. The UNIX permissions of a directory onto which you mount a Windows filesystem can’t be changed while the fileystem is mounted. Unmount the Windows partition; you should then be able to chmod the permissions of /mnt/Windows. You will need to set the appropriate Linux rwx permissions on the /mnt/fat folder and set the permissions for the FAT partition (as described below) in order to grant everyone write access.

2. Windows doesn’t support UNIX-style permissions, and you can only apply permissions to the entire filesystem, not to individual Windows files/folders. This is done with the “umask” option of the mount command. In /etc/fstab, change the mount entry for your Windows partition to this:

/dev/hda6 /mnt/fat vfat users,defaults,umask=000 0 0

http://www.daniweb.com/hardware-and-software/linux-and-unix/threads/22358/mounting-a-fat32-drive-in-linux

Folgender Eintrag in die /etc/fstab bringt die erwünschten Schreib und Lese Rechte auf der Fat32 Platte.

<file system>                         <mount point>           <type>  <options>                       <dump>  <pass>
# Einbinden der Usbplatte an der Fritzbox ohne Password
//fritz.box/WD-10EAVSExternal-01        /mnt/fritz/mediaplatte  cifs    password=                       0       0

Gefunden hier:http://wiki.ubuntuusers.de/Samba_Client_cifs#Festes-Einbinden

Wird keine Authentifikationsdatei (credentials) und kein Benutzername angegeben, gilt der jeweils eingeloggte Benutzer. Das Passwort wird dann beim Einbinden interaktiv erfragt. Dies unterbleibt, wenn man die Option guest oder ein leeres Passwort einträgt.

    # Beispiel ohne Passwort (sinnvoll z.B. für USB Speicher ohne Passwort an einer Fritzbox)
    //192.168.178.1/Backup /media/Backup cifs password=  0 0

Simulierte Dateirechte: Die Simulation von Dateirechten mit den Optionen uid, gid, dir_mode und file_mode ist nur dann von Bedeutung, wenn die cifs-UNIX-Erweiterungen nicht aktiv sind. Sie wird weiter unten erklärt.

Weitere nützliche Quellen:
http://wiki.ubuntuusers.de/fstab
http://wiki.ubuntuusers.de/Rechte#Standard-Einstellung-und-Maskierung
http://wiki.ubuntuusers.de/mount#Optionen
http://progit.org/book/ch4-2.html

regex

To master regular expressions is to master your data.

Regular expressions are the key to powerful, flexible, and efficient text processing. Regular expressions themselves, with a general pattern notation almost like a mini programming language, allow you to describe and parse text. With additional support provided by the particular tool being used, regular expressions can add, remove, isolate, and generally fold, spindle, and mutilate all kinds of text and data.

Quelle: Mastering Regular Expressions 3rd Edition

Auch ein Team von Idioten kann nach Scrum arbeiten

Es liefert am Ende jedes Sprints zuverlässig Produktinkremente, hält alle Meetings ab, und verteilt die Rollen nach Scrum. Wenn aber das Scrum-Team die Ergebnisse nicht nutzt, um anders zu arbeiten und Anpassungen vorzunehmen, wird auch das Produkt nicht besser oder früher fertig sein.

Quelle: http://de.wikipedia.org/wiki/Scrum