FOSS IS FREE AS IN TOILET

Nobody believes that a free toilet will be magically cleaned up and maintained, somebody has to do it, and that person would better get paid for it. Sharing a toilet means that you flush, clean up after yourself, and always leave some paper, it’s basic manners. And yet, like toilets, as FOSS gets used by more and more people, it gets more likely that you will see obnoxious people that shit all over your commons and then complain about it. And nobody will want to take care of it.

Treating correctly the people who work on the software you use is just basic FOSS hygiene.

Wenn Du an einem Gemeinschaftsprojekt oder Free-Open-Source-Software arbeitest, dann arbeite sauber und hinterlasse keinen Dreck.

Quelle: http://unhandledexpression.com

Constructor Injection vs. Setter Injection

Da ich gerade mein Wissen um Algorithmen und Programmiersprachen etwas aufbessere und auffrische, bin ich über den verlinkten Artikel gestoßen. Es geht darum, ob ihr lieber einen Contstructor erstellt der keine Parameter bekommt, das Objekt mit Standardwerten besetzt und individuelles Verhalten mit Hilfe von Settern regelt, oder ob ihr lieber einen Construcor benutzt, der alle Parameter gleich von Anfang an bekommt.

Persönlich finde ich den Ansatz mit Constructor Injection wesentlich besser. Man vergisst halt keine Werte und alles wird immer in der richtigen Reihenfolge instantiiert.

 

Programming: Initial Java Array Values

Was man wissen sollte:

Wenn man in Java Arrays erzeugt, so ist es schon wichtig zu wissen, mit welchen Werten dieses Array gefüllt ist. Nach der Speicherzuweisung, füllt Java das Array mit Standardwerten.

Das Array hier

private int[][] nItemArray = new int[5][5];

wird komplett mit Nullen (0) gefüllt.

Denn, im Falle von Zahlen, ist der Wert immer Null (0) (nicht zu verwechseln mit ’null‘). Bei Boolean ist es der Wert ‚false‚. Bei char ist es ‚\u0000‘ und bei Objekten ‚null‚.

Das obige array sieht dann so aus:

nItemArray = { 
    {0,0,0,0,0}, 
    {0,0,0,0,0}, 
    {0,0,0,0,0}, 
    {0,0,0,0,0}, 
    {0,0,0,0,0} 
};

Die folgende Liste, zeigt alle Standardwerte der jeweiligen Datentypen:

Element Type Initial Value
byte 0
int 0
float 0.0f
char ‚\u0000‘
object reference null
short 0
long 0L
double 0.0d
boolean false