Donnerstag, 22. September 2011

Technische Podcasts - Update

Inzwischen ist der Beitrag mit den (überwiegend deutschsprachigen) technischen Podcasts kontinuierlich angewachsen. Grund also, hier noch einmal auf meinen Beitrag Technische Podcasts hinzuweisen. Ein dickes Danke geht noch an windvilla für den Stapel an Ergänzungen. Wer noch interessante Podcasts kennt, bitte in die Kommentare damit.

Montag, 19. September 2011

UTF-8 Erkennen

Will man Text im UTF-8 Format einlesen, kann es mitunter eine gute Idee sein zu testen, ob der vorliegende Text überhaupt in UTF-8 vorliegt. Die ersten drei Bytes können schon einen ersten Hinweis darüber geben, da UTF-8 die Definition eines Byte order mark (BOM) erlaubt. Die Vorliegenden bytes, aus denen später ein String entstehen soll, kann also vorab mit einem if(bytes.length > 3 && bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) geprüft werden.

Die BOM-Markierung ist aber leider nicht zwingend und deshalb nur ein Anhaltspunkt. Alles weitere lässt sich aber auch nach der Codierung noch herausfinden. UTF-8 definiert einen Replacement-Character, der immer dann Verwendung findet, wenn ein unbekanntes Zeichen vorliegt. Enthält ein String einen Replacement-Character, war die UTF-8 Codierung nicht die richtige. Eine Abfrage kann mit einem einfachen if(s.indexOf('\uFFFD') == -1) erfolgen. Der Character '\uFFFD' ist hierbei der Replacement-Character.

Freitag, 9. September 2011

Analogie zur Softwareentwicklung

Sprichwörter und Analogien können helfen eine Problemsituation zu pointieren und somit klarer und verständlicher zu machen. So erinnerte mich das Sprichwort "Wenn man nur einen Hammer hat, sieht jedes Problem irgendwann wie ein Nagel aus" an die Wahl von Programmiersprache und Entwicklungs-Framework. Manchmal passt das präferierte Framework oder die Lieblingssprache nicht gut zu der Aufgabenstellung. Man kann mit einem Hammer eben gut Nägel einschlagen und - gesetzt dem Fall man hat einen Zimmermannshammer - auch wieder ziehen. Wenn es jedoch ans Sägen geht, wird es kniffelig. Aber kein Problem für den im Hämmern geübten Softwareentwickler. Mit trauter Sicherheit werden die Bretter in passende Stücke gehackt. Das Ergebnis ist funktional - was will man mehr?

Einfach CSV

Weil mir auch immer wieder mal ein CSV-Import oder Export unterkommt, will ich mir fürs nächste Mal die Bibliothek Super Csv merken. Mehr im Blog der Holisticon AG.