Archiv

Posts Tagged ‘Beschleuniger’

Kurz-Tipp: Bessere Screenshots mit Greenshot

18. März 2014 Kommentare aus

Um etwas zu erklären hilft ein Bild oft mehr als viele Worte. Bei der Bildschirmarbeit sind Screenshots daher kaum mehr wegzudenken. Wie aber macht man möglichst einfach solche Bilder? Meine Antwort darauf ist seit einiger Zeit Greenshot.

Mit diesem kostenlosen Programm kann man den ganzen Bildschirm, ein einzelnes Fenster oder nur einen Teilbereich abfotografieren. Wirklich praktisch sind aber die Zeichenfunktionen zum Hervorheben von Bereichen. So muss man nicht lange nach den entscheidenden Ausschnitt suchen. Und hat man für einmal einen Bereich den man nicht zeigen will kann man diesen unkenntlich machen:

Greenshot im Einsatz

Da alles Wesentliche in der kleinen Oberfläche untergebracht ist braucht man für die Alltagsarbeiten nicht extra ein Grafikprogramm zu starten. Wem dies alles zu viel ist und die Bildschirmfotos nur in die Zwischenablage haben will kann dies ebenfalls einrichten.

 

Fazit

All diese oft benötigten Zusatzfunktionen machen Greenshot äusserst nützlich. Hat man sich einmal an die einfach zu bedienende Oberfläche gewöhnt will man nicht mehr zu den Windows-Bordmitteln zurück. Dafür ist dieses kleine Tool viel zu praktisch.

Schlagworte: ,

Kurz-Tipp: Windows 8.1 Startseite besser integrieren

27. Dezember 2013 Kommentare aus

Trotz längerer Arbeit mit Windows 8.1 habe ich mich immer noch nicht an die neue Startseite gewöhnt. Wann immer ich die ehemalige “Metro”-Oberfläche starten muss fühlt sich dies wie ein Fremdkörper an. Es gibt allerdings einen ganz einfachen Trick mit dem man diese Startseite viel besser in den Desktop integrieren kann – ganz ohne irgendwelche zusätzliche Software.

 

Das Problem

Wann immer ich an meinem Computer arbeite sieht dies so aus:
Mein Desktop

 
Sobald ich aber ein Programm starten will lande ich in diesem Fremdkörper:
Original Startseite

 

Die Lösung

Gut versteckt in den Einstellungen der Taskliste gibt es eine Option um die Startseite besser zu integrieren. Dazu genügt ein Rechtsklick auf die Taskliste um das Menü für Einstellungen aufzurufen:
Eigenschaften in der Taskleiste

Im Reiter Navigation kann man nun den Hacken vor der Option „Desktophintergrund auf der Startseite anzeigen“ auswählen:
Option auswählen
Hinweis: Wer direkt nach dem Start den Desktop sehen möchte kann zudem die obere Option ebenfalls anwählen.

Beendet man diesen Dialog über „OK“ erscheint die Startseite in Zukunft mit dem gleichen Hintergrund wie der Desktop. Diese kleine Änderung erweckt nun den Eindruck als ob sich die transparente Startseite über den eigenen Desktop legt:
Meine neue Startseite

 

Fazit

Eine kleine Einstellung an der richtigen Stelle und die Startseite von Windows 8.1 erscheint nicht mehr als Fremdkörper. Hat man dies nicht selber probiert kann man kaum glauben wie gross der Unterschied in Sachen Benutzerfreundlichkeit ist. Schade nur dass diese Option nicht vorselektiert wurde.

Schlagworte: , ,

Buch-Rezension zu “Build Awesome Command-Line Applications in Ruby”

12. Dezember 2012 Kommentare aus

Build Awesome Command-Line Applications in Ruby: Control Your Computer, Simplify Your Life” von David Copeland erschien im März 2012 bei The Pragmatic Programmers. Anwendungen für die Kommandozeile zu schreiben scheint in Zeiten von HTML 5 und Cloud Computing ein sinnloser Zeitvertreib zu sein. Dem ist aber nicht so.

Will man seine täglichen Arbeiten automatisieren und Abläufe vereinfachen sind Kommandozeilenprogramme mit einer ganz spezifischen Aufgabe von grossem Wert. Das einfache Interface und der Verzicht auf ein GUI ist da kein Nachteil, sondern ein Motivator um noch mehr zu automatisieren.

 

2 Tätigkeiten als Ausgangspunkt

Copeland steigt mit 2 alltäglichen Aufgaben ins Thema Kommandozeilenprogramme ein:

  1. Ein Backup-Tool für MySQL
  2. Eine ToDo-Verwaltung

Beide Aufgaben sind schon in unzähligen Büchern erklärt worden und so kann man sich eine grosse technische Einführung ersparen. Die Seiten werden stattdessen für ein genaues ausleuchten der unterschiedlichen Aspekte verwendet. Beim Backup-Tool liegt der Schwerpunkt in der Konfigurierbarkeit während es bei der ToDo Anwendung mehr um die Benutzerführung geht.

Im Verlauf des Buches werden die beiden Anwendungen ständig ausgebaut. Man erfährt dabei die Motivation hinter vielen Kommandozeilenprogrammen der UNIX-Plattformen, wieso diese so gut zusammenarbeiten und welche Erweiterungsmöglichkeiten sich für eigene Werkzeuge bieten.

 

Gute Werkzeuge erstellen

Was macht ein gutes Werkzeug aus? Und worauf soll man achten? Obwohl jeder Entwickler hier wohl unterschiedliche Schwerpunkte setzt ist die Auflistung von David Copeland mehr als nur ein guter Start. Seine Anforderungen an ein gutes Werkzeug sind:

  • löst ein klar definiertes Problem
  • ist einfach zu verwenden
  • unterstützen den Benutzer
  • arbeitet mit anderen Anwendungen zusammen
  • stehen Gelegenheitsnutzern nicht im Weg
  • ist einfach zu konfigurieren
  • lässt sich leicht verteilen
  • kann ohne grossen Aufwand erweitert werden

Zu all diesen Punkten wird gezeigt wie man diese meist mit geringem Mehraufwand erfüllen kann. Seine Tipps helfen einem dabei nicht jedes Mal von vorne beginnen zu müssen. Und oft sind es nur ganz kleine Dinge wie ein passender Kommentar in der Hilfe der einem später unzählige Stunden an Arbeit ersparen kann.

 

Selber bauen mit Methadone

Hat man erst einmal die Möglichkeiten kennen gelernt möchte man wohl selber anfangen so hilfreiche Anwendungen für die Kommandozeile zu schreiben. Damit man sich auf die interessanten Teile konzentrieren kann schrieb Copeland das Gem Methadone. Dies lässt sich wie alle anderen Gems einfach installieren und kann sogleich für eine neue Anwendung verwendet werden:

gem install methadone
methadone newgem

Mit dem zweiten Befehlt wird das Grundgerüst für die eigene Anwendungen erstellen. Neben allen Abhängigkeiten für die testgetriebene Entwicklung wird auch gleich die gewählte Lizenz hinterlegt und alles zum paketieren vorbereitet. Die detaillierte Anleitung mit allen Optionen findet sich auf der Projektseite von Methadone.

 

Fazit

David Copeland liefert mit seinem Buch praxisbezogene Tipps um alltägliche Aufgaben mit Ruby zu automatisieren. Abgesehen von ein wenig Ruby wird kaum Wissen vorausgesetzt und alles kompakt aber verständlich erklärt.

Beim realisieren eigener Kommandozeilenanwendungen ist das Buch ein gutes Nachschlagewerk und hat mir schon oft geholfen. Ich kann dieses Buch daher ohne Vorbehalte weiterempfehlen.

 

Zum Buch

Build Awesome Command-Line Applications in Ruby: Control Your Computer, Simplify Your Life” von David Copeland, 2012 The Pragmatic Programmers, ISBN 978-1-9343-5691-3, 224 Seiten, Englisch

Schlagworte: , ,

MiniProfiler für Ruby

7. November 2012 Kommentare aus

MiniProfiler ist ein äusserst hilfreicher Profiler für Webanwendungen, den ich hier schon vorgestellt habe. Hat man sich erst einmal an den immer verfügbaren Profiler gewöhnt will man nicht mehr ohne dieses Werkzeug entwickeln. Und man will es auch für alle anderen Plattformen nutzen.
Wie sich zeigt geht dies nicht nur mir so. MiniProfiler wurde auf Ruby portiert und bietet einem dort den gleichen Funktionsumfang.

 

Installation und Konfiguration

Die Installation und Konfiguration ist unter Ruby deutlich einfacher als in .Net. Es genügt das Gemfile seiner Rails-Anwendung um einen Eintrag zu Miniprofiler zu ergänzen:

gem 'rack-mini-profiler'

Nach einem bundle install kann man die Anwendung starten und MiniProfiler sofort nutzen:

Will man wissen wie viel Zeit man für eine Methode benötigt übergibt man diese in einem Block an MiniProfiler:

  def index
    Rack::MiniProfiler.step("fetch items") do
      @items = Item.all
    end 
    ....
  end

Die Auswertung unterscheidet sich nicht gross von der aus .Net bekannten Darstellung:

 

MiniProfiler in der Produktion

Standardmässig wird die Rack-Middleware nur in der Entwicklungsumgebung aktiviert. Da Rails in diesem Modus keine Optimierungen macht variieren die Werte recht stark. Dieses Problem lässt sich lösen in dem man MiniProfiler auch in der Produktion aktiviert.

Dazu erweitert man am besten die Datei application_controller.rb um einen Before-Filter:

before_filter :miniprofiler

private
def miniprofiler
  Rack::MiniProfiler.authorize_request 
  # Optional mit Einschränkung der Sichtbarkeit: 
  # if user.developer?
end

 

Fazit

Mit dem portierten MiniProfiler kann man die unter .Net schätzen gelernten Möglichkeiten auch für Rails-Anwendungen nutzen. Die Konfiguration ist durch die Implementierung als Rack-Middleware sogar noch einfacher als im Original. Somit gibt es keinen Grund auf MiniProfiler zu verzichten nur weil man Rails nutzt.

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: ,
Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 254 Followern an