Montag, 18. April 2011

Regexp-Tutorial

Die Grundlagen von regulären Ausdrücken sollte man als Entwickler eigentlich beherrschen. Trotzdem kenne ich viele, denen das völlig abgeht. Über Sinn und Unsinn lässt sich auch vortrefflich diskutieren, trotzdem begegnen sie einem immer wieder. Deshalb der Linktip: regexp-evaluator.de mit klasse Stoff zum Reinlesen.

Samstag, 16. April 2011

Neue Hardware: Ein HP CM1415fn color MFP


Mein alter Multifunktionslaserdrucker, ein Brother 7440N hat mir gute Dienste geleistet, muss aber nun aufs Altenteil. Leider nur drei Jahre hat er durchgehalten, weshalb ich mich auch nicht erneut für einen Brother entschieden habe. Der Linuxsupport war in Ordnung, die kurze Lebensdauer nicht.

Weil die Linuxunterstützung für mich unabdingbar ist und die Preisliga nicht allzu hoch angesiedelt sein sollte, habe ich beim HP CM1415fn color MFP zugegriffen. Ein Farblaserdrucker, den ich inzwischen schon auf Herz und Nieren durchtesten konnte. Ich bin insgesamt zufrieden, aber von vorne.

Für den Linuxtreiber gibt es von HP das OpenSource-Projekt HPLIP. Die Installation ist zwar nicht DAU-Geeignet, aber mit dem Installationsprogramm nicht weiter schwierig. Einzig bei meinem Linux-Mint musste ich bei der Distributionserkennung behaupten, ich hätte ein Ubuntu, dann klappt es auch mit den Abhängigkeiten, die der Treiber nachinstallieren will.

Das Ergebnis hat mich sehr überrascht. Der Drucker funktioniert auf Anhieb und das Scannen via XSane klappt ebenfalls sofort (und alles im Netzwerk). HPLIP bringt auch gleich ein Programm mit, das sich im Panel verankert und Informationen, wie Tonerstand, Status etc. ausgibt.

Für die Installation unter Windows gibt es einen "Minimalmodus". Es graute mir nämlich schon vor den vielen, für mich unnützen Programmen, die HP meiner Erfahrung nach mitbringt und die sich gern irgendwo im System verankern und natürlich auch beim Booten mitgestartet werden müssen. Davon ist - Dank dieser Minimaloption - angenehmer Weise nichts zu sehen.

Der Drucker selbst ist selbst für ein Multifunktionsgerät ein ziemliches Monster. Mein Brother war deutlich kompakter, konnte aber zugegebener Maßen auch keine Farbe. Die Schublade fürs Papier ist ziemlich wackelig. Der Rest wirkt wertig verarbeitet. Die Geräuschkulisse, die beim Drucken entsteht, ist laut und klingt teils, als würde das Gerät gleich auseinander fallen.

Ansonsten bietet der Drucker eine Menge Funktionen. Scannen kann er auf einen USB-Stick, aber leider nicht auf einen FTP-Server, wie mein Brother vorher. Was mir neu war, sind Apps für den Drucker. Ich brauche sie nicht und habe sie nicht weiter beachtet. Auch die Funktion, dass der Drucker auf E-Mails bei einem HP-Mailkonto lauscht, benötige ich eher nicht. ich wollte das mal antesten, bin aber leider bereits bei der Anmeldung gescheitert, weil der "Weiter"-Button auf der HP-Anmeldeseite nicht funktionieren wollte.

Mein Fazit: Wenn auch zu laut, für die Preisliga ein ordentliches Gerät mit guter Linux-Unterstützung.

*Update 20.4.2011*
Wie mir inzwischen aufgefallen ist, gibt der Drucker hin- und wieder ein kurzes, deutlich vernehmbares Geräusch von sich, wenn er eine Weile im Standby ist. Was der da genau tut erschließt sich mir nicht.
*Update 30.9.2011*
Jetzt habe ich den Drucker schon eine ganze Weile. Weil der Drucker so geschätzt alle 12 Stunden aus dem Standby erwacht und seinen Motor ein bisschen drehen muss, habe ich ihn meistens ganz aus. Nervig ist dabei aber, dass die Zeit bis er wieder einsatzbereit ist, echt lang ist. Zwei Minuten sind es gewiss, bis ich dann endlich mal Scannen oder Kopieren kann. Ausdrucke nimmt er schon früher entgegen. Es ist auch nicht so, dass das Display blockieren würde. Ich komme in den Scan- oder Kopierdialog, bekomme dann aber eine Fehlermeldung. Auch das ist nervig. Warum lässt mich HP da auf dem Display rumpatschen, wenn das ganze Ding eh noch nicht soweit ist? Der Scan auf USB erfolgt übrigens nur in jpg. Da war ich mit PDF bei anderen Herstellern auch schon mal besseres gewöhnt. Im Ergebnis habe ich nach einem Scan also eine Bilddatei pro Seite anstelle eines PDF-Containers. Das sind alles Kleinigkeiten, die aber irgendwie die Liebe zum Detail missen lassen. Als Fehlkauf würde ich das ganze nicht einstufen, aber Softwaremäßig hätte ich HP da mehr zugetraut. Wenn wieder mal eine Anschaffung ansteht, werde ich mehr auf das Angebot von Brother gucken. Die Brotherfirmware meines alten war jedenfalls brauchbarer.

Dienstag, 12. April 2011

Sortieralgorithmen mit ungarischen Volkstänzen erklärt

Trockene Theorie, wie so einen Sortieralgorithmus, mittels ungarischer Folklore zu erklären, ist schon eine klasse Idee. Schließlich gehört das zum Handwerkszeug. Wie sonst kann man fachkompetent entscheiden, welcher Algorithmus zu welchen Daten passt.


Mehr davon gibt es beim i-Programmer.

via Minds Delight

Samstag, 9. April 2011

BerlinExpertDays Zusammenfassung

Die letzten zwei Tage habe ich ja die Hörsaalbank gedrückt und verschiedenen Vorträgen gelauscht. Der Themenmischmasch war bunt und die meisten Sprecher ohne Einschlafgefahr hörbar. Sehr interessant fand ich die Variante, einen Vortrag, der eigentlich für eine halbe Stunde länger konzipiert war, einfach schneller abzunudeln.

Zusammenfassend kann man einen Trendfaden durch die verschiedenen Themen entdecken. Zwar scheint Agile Softwareentwicklung allgemein bekannt und auch akzeptiert, der Nachholbedarf in Umsetzung und Einführung jedoch ungebrochen zu sein. Weiter scheint man einhellig der Meinung, dass NoSQL auch im Serverbereich, stark im kommen ist. NoSQL ist auf jeden Fall ein spannendes Thema, in das man derzeit gut einsteigen kann.

Dienstag, 5. April 2011

Eclipse-Code-Template für Logger

Ein Eclipse-Code-Template will ich noch zum besten geben. Nämlich eines für den Javaeigenen Logger, das ich vorhin schnell zusammengestrickt habe:

Logger.getLogger(${enclosing_type}.class.getName()).log(Level.WARNING,
"${cursor}",${exception_variable_name});
${logger:import(java.util.logging.Logger)}

${level:import(java.util.logging.Level)}

Siehe auch Eclipse-Code-Template über eine Map iterieren
Und einiges nützliches gibt es auch wieder beim Stackoverflow.

Freitag, 1. April 2011

Eclipse-Code-Template über eine Map iterieren

Über eine Map iterieren ist nicht weiter schwierig. Eine besonders einfache Variante, wenn man Key- und Value beim iterieren haben möchte, habe ich vor gut zwei Jahren mal gepostet. Weil ich das hin- und wieder brauchen konnte, habe ich mir ein Eclipse-Code-Template dafür erstellt.

Einfach unter Window-Preferences auf der linken Seite Java->Editor->Templates auswählen und ein neues Template mit folgendem Inhalt anlegen.

${:import(java.util.Map.Entry)}
for (Entry<${keyType:argType(map,0)},${valueType:argType(map,1)}> entry :
${map:var(java.util.Map)}.entrySet()) {
  ${keyType} key = entry.getKey();
  ${valueType} value = entry.getValue();
  ${cursor}
}

Weiter habe ich im Feld Name for eingetragen, damit sich das in die übliche Liste einfügt, die ich beim Code-Completion nach Eingabe von for erhalte. Also im Java-Editor unter einer Map-Deklaration ein for und anschließend Ctrl+Space eingeben.