Archiv

Archive for September 2012

Meine Werkzeugliste

25. September 2012 2 Kommentare

Es sind ja meist die ganz kleinen Werkzeuge die einem die Arbeit erleichtern und die sind so simpel dass man sie kaum je erwähnt. Startet man in einer neuen Umgebung sind diese Werkzeuge aber meist das erste was man installiert um sich wieder „zu Hause“ zu fühlen.

Dies hier ist meine Liste mit diesen kleinen Tools und Anwendungen die ich für meine tägliche Arbeit einsetze. Die Idee dazu habe ich von Scott Hanselman und Piotr Kwapin. Wer seine Tools beisteuern möchte kann diese gerne via Kommentar tun.

 

Windows

IrfanView ist ein leichtgewichtiger und schneller Bildbetrachter. Mit den eingebauten Funktionen kann man aber auch direkt einen Scanner ansprechen oder eine Batchverarbeitung starten.

7-Zip ist eine Open Source Alternative zu WinZip. Neben *.zip können auch *.tar und *.rar Dateien entpackt werden. Das Tool ist sehr praktisch wenn man betriebssystemübergreifend arbeiten muss.

Notepad++ ist der Texteditor den ich jeweils als erstes Programm auf einem neuen Gerät installiere. Neben Syntaxhervorhebung für fast alle Sprachen unterstützt Notepad++ auch allerlei Zeilenumbrüche und Kodierungen.

ZoomIt ist ein Miniprogramm für Präsentationen. Will man etwas auf dem Monitor zeigen erlaubt ZoomIt das heranzoomen und markieren.

Microsoft Security Essentials ist ein für den Privatgebrauch kostenloser Virenschutz. Läuft bei mir ohne Probleme und ohne Geschwindigkeitseinbussen.

Foxit Reader ist eine schlanke Alternative zum Adobe Reader fürs Anzeigen von PDF-Dateien.

Greenshot liefert alles was man für Screenshots und deren Bearbeitung (wie Hervorhebungen und Pfeile) benötigt.

 

Visual Studio und .Net

ReSharper ist eine äusserst hilfreiche Erweiterung für Visual Studio die viele kleine Unschönheiten behebt und eine sehr praktische Codeanalyse liefert.

NuGet ist ein Paketmanager für Visual Studio der es erlaubt sehr einfach Bibliotheken in sein Programm aufzunehmen. Mit NuGet entfällt zudem das eigenhändige Auflösen der Abhängigkeiten. (Kurzanleitung)

VisualSVN ist meine Wahl um mit SVN-Projekten in Visual Studio zu arbeiten. Die Integration ist sehr gut und man behält die Kontrolle über die einzelnen Aktionen. Dieser Luxus ist mit $49 nicht gratis aber sein Geld wert.

Indent Guides ist eine Erweiterung für Visual Studio zum Visualisieren der Einrückungen. Bei Code mit sehr vielen Verschachtelungen ist diese Erweiterung äusserst Hilfreich.

LINQPad ist ein Editor mit dem man LINQ-Abfragen testen kann. Dadurch dass man nicht mehr für jede Änderung den Code neu kompilieren muss kann man sehr schnell arbeiten und Probleme finden. Ein meiner Meinung nach unverzichtbares Werkzeug auch fürs testen von OData-Abfragen oder zur Zertifizierungsvorbereitung. (Kurzanleitung)

SQL Complete ist ein kostenloses Plug-In um das SQL Server Management Studio mit IntelliSense zu erweitern. Schreibt man SQL-Abfragen von Hand ist dies eine enorme Erleichterung.

 

Web

Firefox ist ein schneller Webbrowser der sich mit Add-ons beliebig erweitern lässt. Wer mit dem Internet Explorer unzufrieden ist sollte sich Firefox anschauen.

FireBug ist eine Erweiterung zu Firefox für Webentwickler. Der ausgereifte JavaScript Debugger, ein verständlicher Profiler und die sehr einfache Anzeige der verschachtelten CSS-Formatierungen machen FireBug zu einem unverzichtbaren Werkzeug.

YSlow analysiert Webseiten hinsichtlich der Performance. Als Grundlage dienen 23 Empfehlungen des Performance-Teams von Yahoo die man unbedingt beachten sollte.

Internet Explorer Developer Toolbar ist eine Erweiterung die vergleichbar mit FireBug für Firefox ist. Obwohl noch nicht ganz so ausgereift wie FireBug ist es doch ein nützliches Tool zum abklären IE-spezifischer Probleme.

Chrome ist ein sehr schneller Webbrowser von Google. Das direkte absetzen von Suchabfragen in der Adressleiste und die mächtige JavaScript-Konsole sind sehr praktisch und nur zwei von vielen Funktionen.

WireShark kommt bei mir immer dann zum Einsatz wenn ich schauen muss was genau über das Kabel übertragen wird. Als letzter Zufluchtsort fürs Debuggen ist WireShark sehr hilfreich, es braucht aber einiges an Hintergrundwissen.

 

Webseiten und Services

Stack Overflow ist meine Anlaufstelle bei Programmierproblemen. Die Frage-und-Antwort Seite bietet eine zeitgemässe Variation der bekannten Web Foren und Newsgroups.

Gist ist eine sehr einfache Möglichkeit zum Veröffentlichen von Code-Schnipsel. Neben der sprachabhängigen Syntaxhervorhebung ist jedes Gist auch ein vollwertiges Git-Repository. (Kurzinfo)

DropBox bietet einen benutzerfreundlichen Weg zum Synchronisieren von Dateien zwischen verschiedenen Computern. Sensitive Daten sollte man vor dem hochladen aber mit geeigneten Mitteln selber verschlüsseln.

PortableApps.com liefert eine ganze Reihe von Programmen zum Ausführen direkt ab einem USB-Stick. Da eine Installation entfällt laufen diese Programme häufig auch dort wo man keine Schreibrechte fürs Programmverzeichnis hat.

Instapaper ermöglicht einem das markieren von Webseiten zum späteren Lesen. Durch das Entfernen der Werbung sind die Seiten auch problemlos auf kleineren Displays (wie einem Smartphone oder Kindle) darstellbar.

Schlagworte:

Exif Informationen auslesen leicht gemacht

18. September 2012 Kommentare aus

Ich wollte vor kurzem wissen welche meiner Ferienfotos über GPS-Informationen verfügen. Meine Kamera speichert mit den Bildern sehr viele Metadaten ab, darunter auch der Standort an dem ein Foto aufgenommen wurde. Diese Metadaten werden im Exif-Format in den Header des jeweiligen Bildes gespeichert.

Jeder bessere Bildbetrachter erlaubt einem diese Informationen abzurufen. Allerdings nur Bild für Bild, was bei einer grösseren Menge nicht wirklich praktikabel ist. Es musste also eine andere Lösung her.

 

Ein Ansatz mit Ruby

Eine kurze Suche genügte um ein Gem fürs Auslesen von Exif-Informationen zu finden. Exifr liefert all die von mir benötigten Informationen und verfügt erst noch über eine sehr einfache API. Die Installation geht wie üblich über RubyGems:

gem install exifr

Um meine Bilder auszulesen benötigte ich nun nur noch ein kleines Script rund um den Aufruf von Exifr. Dieses Script sollte über alle übergebenen Dateien iterieren und im Falle eines JPEG-Bildes die GPS-Informationen herauslesen. Der dazu notwendige Code fiel sehr einfach aus:

#!/usr/bin/ruby
# encoding: utf-8

require 'exifr'

ARGV.each {|arg|
  next unless arg.downcase.end_with? "jpg"
           
  exif =  EXIFR::JPEG.new(arg)
  if(exif.gps)
    puts "%s [%s %s]" % [arg, exif.gps.latitude, exif.gps.longitude]
  else
    puts "%s no GPS info" % arg
  end
}

Ein Aufruf des Scripts genügt die von mir benötigte Auflistung zu erhalten:

$ ./extract_gpsinfo.rb IMAGES/USA_2012_00_0*
IMAGES/USA_2012_00_01.jpg no GPS info
IMAGES/USA_2012_00_02.JPG [21.548169166666668 -158.24109055555556]
IMAGES/USA_2012_00_03.JPG [36.51571472222222 -111.59166611111112]
IMAGES/USA_2012_00_04.JPG [39.81834583333334 -77.23305416666666]
IMAGES/USA_2012_00_05.JPG no GPS info

 

Ausbaumöglichkeiten

Mir gefällt an diesem Ansatz mit wie wenig Aufwand auch andere Felder ausgelesen werden können. Um Beispielsweise das Aufnahmedatum der Bilder auszugeben genügt diese Erweiterung:

ARGV.each {|arg|
  next unless arg.downcase.end_with? "jpg"
           
  exif =  EXIFR::JPEG.new(arg)
  puts "%s %s" % [arg, exif.date_time_original]
}
./extract_gpsinfo.rb IMAGES/USA_2012_00_0*
IMAGES/USA_2012_00_01.jpg 
IMAGES/USA_2012_00_02.JPG 2012-05-17 00:29:52 +0200
IMAGES/USA_2012_00_03.JPG 2012-05-25 17:37:10 +0200
IMAGES/USA_2012_00_04.JPG 2012-06-06 12:17:03 +0200
IMAGES/USA_2012_00_05.JPG 2012-06-25 12:43:44 +0200

 

Fazit

Exifr macht es einem sehr einfach um mit Ruby Exif-Informationen aus Bildern auszulesen. Für meinen Einsatzzweck fand ich mit diesem Gem eine sehr einfache und gut funktionierende Lösung.

 

Schlagworte: ,

Buch-Rezension zu “The Art of Readable Code”

10. September 2012 1 Kommentar

The Art of Readable Code” von Dustin Boswell und Trevor Foucher erschien Ende 2011 bei O’Reilly. Auf rund 200 Seiten bekommt man viele Tipps um den eigenen Code lesbarer zu machen. Dies dient nicht nur anderen Programmierern, sondern hilft einem auch selber – spätestens in einigen Wochen wenn man nicht mehr alle Details im Kopf hat.

Die vorgestellten Tipps & Tricks sind dabei nicht auf eine bestimmte Programmiersprache oder Framework-Version beschränkt. Wer in C# entwickelt wird genauso brauchbare Tipps finden wie derjenige der JavaScript verwendet.

 

Viele gute Empfehlungen

Durchs Buch hinweg wird jeweils mit einem kurzen Beispiel gezeigt wie massiv sich eine kleine Änderung auswirken kann. Das Codebeispiel zu Beginn ist dabei nicht extra unleserlich gemacht worden. Es könnte viel eher aus einem eigenen Projekt stammen.

Die im jeweiligen Kapitel behandelte Empfehlung wird für den Leser leicht nachvollziehbar in kleineren Teilschritten umgesetzt. So sieht man einerseits dass auch der eigene Code verbesserungspotential hat und andererseits wie wenig Veränderung es braucht um viel zu verbessern. Damit das gerade gelernte haften bleibt gibt es immer einen extra hervorgehobenen Satz (Key Idea) der die Empfehlung genau auf den Punkt bringt.

Die behandelten Themen lassen sich grob in diese Bereiche unterteilen:

  • Aussagekraft erhöhen (bei Namen, Kommentaren oder mittels Formatierung)
  • Vereinfachen (nicht nur die Logik an sich, sondern auch Schleifen und if-Bedingungen)
  • Reorganisieren (weil kleinere Teile einfacher zu verstehen sind)

Besonders gefallen haben mir die immer wieder eingeworfenen Beispiele aus der Praxis. Nur weil einem gerade kein perfekter Kommentar einfällt kann man ja nicht den ganzen Tag danach suchen. Irgendwie muss die Entwicklung ja voran gehen. Die beiden Autoren tragen dem Rechnung und zeigen wie man sich schrittweise einem besseren Kommentar nähern kann.

 

Nicht blind folgen

Auch wenn dieses Buch bei vielem richtig liegt, so gibt es auch einige Empfehlungen die einem recht schnell vor neue Probleme stellen können. Mich störte dabei vor allem die Empfehlung für statische Methoden. Im Einzelfall mag dies ein guter Tipp sein, bei zu intensiver Anwendung leidet aber die Testbarkeit. Daher führt auch bei diesem Buch kein Weg daran vorbei mitzudenken und eine Balance zwischen allen Anforderungen zu finden.

 

Fazit

Ein kompaktes Buch mit vielen Vorschlägen um Code lesbarer zu schreiben. Obwohl es an revolutionären Neuerungen fehlt so ist es erfrischend ein Buch zu diesem Thema zu finden das frei von Dogmen ist.

Gegenüber “Clean Code” findet man hier kaum Neues. Wem Clean Code aber zu theoretisch oder zu abgehoben war sollte es mit diesem Buch versuchen.

 

Zum Buch

The Art of Readable Code” von Dustin Boswell und Trevor Foucher, 2011 O’Reilly, ISBN 978-0596-8022-95, 206 Seiten, Englisch

Schlagworte: ,

AtaraxiS 1.4 veröffentlicht

5. September 2012 Kommentare aus

AtaraxiS ist ein kleines Tool zum Verwalten von Passwörtern und zum Verschlüsseln von Dateien. Andreas Müdespacher und ich haben AtaraxiS ursprünglich als Diplomarbeit geschrieben und seither immer weiter optimiert. So läuft AtaraxiS heute nicht nur unter Windows, sondern auch auf Mac und Linux.

 

Bugfixes und kleinere Umbauten

Die Version 1.4 beseitigt einige kleinere Bugs die vor allem im Zusammenhang mit der Fehlerbehandlung auftreten konnten. Obwohl diese Bugs sich nur in sehr speziellen Fällen zeigten war es uns doch wichtig diese mit verständlichen Fehlermeldungen abzufangen und Abstürze zu verhindern.

Neben einigen kleineren Optimierungen haben wir die Package-Struktur vereinfacht. Diese internen Umbauten wird man nur bemerken wenn man eigenen Code rund um AtaraxiS geschrieben hat.

 

Neue Projektseite

Mit der neuen Version gibt es auch eine neue Projektseite. Der bisher von uns genutzte Service (Origo) wurde leider ohne Vorwarnung eingestellt. Wir nutzten diese unerwartete Situation zu einer Standortbestimmung und haben entschieden nicht nur den Hosting-Anbieter zu wechseln, sondern auch von Subversion auf Git zu migrieren. Seit August erreicht man AtaraxiS nun über unsere GitHub-Seite.

 

Download

Wer sich selber von AtaraxiS überzeugen möchte findet hier die passende Version:

Die Installation beschränkt sich aufs entpacken der Zip / Tar Datei. Dadurch kann man AtaraxiS auch problemlos auf einem USB-Stick entpacken und auf jedem Rechner mit einer JRE laufen lassen.

Schlagworte: ,
Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 245 Followern an