Post Digitalesumfeld

Jekyll

• blog

Jekyll und GitHub Pages

Was kann man dazu sagen, außer gut gemacht.
Das Aufsetzen der Seite und die notwendigen Einstellungen auf GitHub waren äußerst einfach und gingen sehr flott. Die Probleme kamen erst mit Jekyll und den diversen Ruby-Abhängigkeiten. Bei der Aufforderung, compilierte Ruby-Abhängigkeiten zu installieren, endete mein erster Versuch.

Danach erkannte ich das Problem, es lag an der fehlenden Unterstützung von Windows als Jekyll/Ruby Plattform.
Die Rettung kam durch eine Ubuntu-VM, die mir die Kleinigkeiten der Generierung und Kommunikation mit GitHub abnimmt. Der Weg ist noch etwas holprig aber vielleicht bietet sich hier bald eine Lösung mit Docker an.

Atom

Beim Editor habe ich ebenfalls einen neuen Liebling. Vor allem die Vorschau von Markdown funktioniert sehr gut.

Räusperer

Andreas • • allgemein

Der letzte Eintrag ist schon lange her. Kann ich das noch? Möchte ich vielleicht über etwas anderes schreiben? Viele Fragen gehen mir durch den Kopf, wenn ich an meinen Blog denke. Die Welt ist nicht still gestanden und ich auch nicht. Neue Interessen, Werkzeuge wurden entdeckt und noch mehr Aufgaben waren zu erledigen.

Auf jeden Fall möchte ich mir klar werden was ich mit diesem Blog machen möchte.

“Conway’s Game Of Life” in Elixir

Andreas • • uncategorized

Die Programmiersprache “Erlang” ist in letzter Zeit wieder mehr im Gespräch, vor allem wenn es um Funktionale Programmierung geht. Die Syntax schreckte mich jedoch immer ab. Bei .Net Rocks hörte ich das erste Mal über die Programmiersprache Elixir, die auf der Erlang-VM ausgeführt wird. Die Besonderheit ist, dass die Syntax sehr stark an Ruby angelehnt ist und damit für viele verständlich sein sollte. Mit kleinen Ruby-Kenntnissen und ohne Erfahrung in Funktionaler Programmierung machte ich mit Sicherheit die schönsten Anfängerfehler. Hier eine Zusammenfassung meiner Eindrücke.

Rekursion und Schleifen

In allen mir bekannten Programmiersprachen gibt es Schleifen. In Elixir gibt es jedoch nur Funktionen die als Schleife genutzt werden können oder die Möglichkeit der Rekursion. Damit hatte ich nicht gerechnet und dieser Umstand hat mir sicher einen Abende an Nachforschungen gekostet. Die Macher der Programmiersprache haben jedoch an uns Programmierer gedacht und ein eigenes Getting-Startet Kapitel für Rekursionen gemacht in dem die Verwendung sehr gut erklärt wird.

Zustand und Agents

Für dieses Aufgabe wäre es nicht notwendig gewesen den Zustand des Spielbrettes extra zu Verwalten, aber da es hier um den Weg und nicht das Ziel ging durfte diese Funktion aus dem Erlang OTP-Package nicht fehlen.
Die Implementierung war äußerst einfach. Das Agentmodul verfügt eigentlich nur über drei wichtige Funktionen:

Seven Languages in Seven Weeks

Andreas • • programmierung, scala, and sw entwicklung

Ich bin fertig mit diesem Buch und eigentlich ziemlich zufrieden mit dem gebotenen Überblick. Ein paar Sprachen habe ich nicht so intensiv ausprobiert wie andere, aber das Interesse ist halt nicht überall gleich. Im Gesamten war es jedoch eine sehr spannende Erfahrung. Zu einer praktische Umsetzung, einer dieser Programmiersprachen, wird es wahrscheinlich nicht kommen. Auch wenn Scala, Clujure und Ruby in der JVM ausführbar sind und dort bin ich schließlich daheim.

Scala

Eigentlich hatte ich mir von Scala einen möglichen Kandidaten für ein neues Projekt erhofft. Die Aktoren, Lambdas und die anderen Kleinigkeiten gefallen mir schon, aber einen vollständigen Umstieg bei Webprojekten kann ich mir nicht vorstellen. Mit Lift gibt es zwar ein eigenes Web-Framework in Verbindung mit Scala, doch wie es mit der Verbreitung aussieht weiß ich nicht. Für Aufgaben die in den Concurrency-Bereich passen, werde ich auf jedenfall vor der Realisierung eine Lösung in Scala andenken.

Gesamt Überblick

Der Schwerpunkt dieses Buches lag sicher bei der funktionalen Programmierung und Concurrency. Wenn man die meiste Zeit mit Java arbeitet, hat man immer ein Funkeln in den Augen, wenn man die Möglichkeiten zur einfachen Funktionsweitergabe in anderen Programmiersprachen sieht. Das Konzept der funktionalen Programmierung geht natürlich weit über die Weitergabe von Funktionen hinaus, doch bei der täglichen Arbeit vermisse ich die Möglichkeit am meisten. Die größte Hoffnung zur Verbesserung dieser Situation liegt jetzt mit Java-8 endlich zum greifen nahe. Trotzdem schmerzt mich dieser Umstand, da andere Programmiersprachen derartige Konzepte schon seit Jahren im Angebot haben.

Das nächsten Buch, dass bei mir in der Warteschlange steht, entfernt sich jedoch wieder etwas von der Basis und geht mehr zur SW-Architektur/Konzeption. Auf jeden Fall bietet es nach diesen schnellen Wechsel zwischen sieben verschiedenen Welten einen willkommenen Ausgleich.

Bildquelle

Scala und der entscheidende Moment

Andreas • • uncategorized

Der Haupthaken war bei mir die Definition von Parametern, die Funktionen entgegen nehmen.

http://oldfashionedsoftware.com/2008/08/23/fun-with-scala-functions/

http://stackoverflow.com/questions/9508051/function-parameter-types-and

http://docs.scala-lang.org/cheatsheets/

Was hat sich getan?

Andreas • • sw entwicklung

Zuallererst wünsche ich allen Leser ein Gutes neues Jahr! Das letzte Monat zählte privat und beruflich nicht zu den ruhigsten, aber was erwartet man auch von der stillen Zeit im Jahr?

Ich war aber nicht komplett untätig, die letzten Wochen hat mich das Buch Seven Languages in Seven Weeks begleitet und beschäftigt. Bei den meisten Programmiersprachen habe ich die Aufgaben vollständig durchgemacht, auch wenn es nicht immer leicht war mit den Übungen zu beginnen.

Aktuell bin ich bei Scala angelangt. Eigentlich bin ich davon ausgegangen, mich auf mein Java-Wissen verlassen zu können. Doch durch die vielen unterschiedlichen Typen, die meistens auch noch als veränderbar und unveränderbar existieren, habe ich mehr Zeit als erwartet in der API-Dokumentation verbracht.

Bei den Arrays hatte ich auch so meine Probleme als Anfänger. Es hat ganz schön lange gedauert bis ich die Unterschiede zwischen all den möglichen Klassen im Collections-Package einordnen konnte. Die nächsten Tage halten für mich noch einige Punkte bereit, jetzt steht noch das Kapitel “Functional Programming” am Plan.

Besonders angetan war ich von der kleinen aber doch bemerkenswerten Sprache IO. Die größte Herausforderung war, bei der Google-Suche nicht immer nur Ergebnisse zu Input/Output-API’s zu erhalten. Die Möglichkeiten Code parallel auszuführen ist mehr als einfach. Alle die von dieser Sprache noch nichts gehört haben sollten schleunigst einen Blick darauf werfen, selbst wenn die Möglichkeiten für einen praktischen Einsatz eher gering sind.

Bildquelle

Frontendentwicklung aus Sicht eines Programmierers

Andreas • • design and sw entwicklung

Ich gehe nicht so weit, die Tätigkeit eines Programmierers mit Frontenddesign zu vergleichen. Hier gibt es eine eindeutige Grenze. Programmierer stehen auf jeden Fall weit jenseits dieser Grenze. Vor allem durch den täglichen Gebrauch komplexer Anwendungen, hat sich die Sichtweise weit von der Sichtweise eines normalen Anwenders entfernt.

Meine normale Arbeitsumgebung ist die Eclips-IDE, diese IDE ist ein gutes Beispiel welches Bedienungskonzept ein normaler Programmierer als normal empfindet. Ein Spiegel davon sind auch manche Anwendungen, die im OpenSource-Umfeld zu finden sind. Mit Sicherheit verfügt eine derartige Anwendung über viele Menüs, mehrere Fenster und über ein Plugin-System.

Trotzdem benötigt jede Anwendung ein Frontend und da Programmierer fleißig sind, gibt es mehr als genug Frameworks für die Frontendentwicklung, besonders im Web-Umfeld. Hier gibt es auch öfter einen weiteren Gedankenfehler. Im Web-Umfeld gibt es sehr viele unterschiedliche Geräte, die eine Web-Anwendung darstellen können. Wir Programmierer lieben aber Lösungen, die auf allen Geräten funktioniert. Im Optimalfall soll das Client-Framework die Erkennung und Optimierung der Darstellung auf das jeweilige Gerät übernehmen. Man kann nur hoffen, dass die Bedienbarkeit nicht auf der Strecke bleibt!

Ebenfalls sehr schmerzlich für einen Programmierer ist das Unverständnis eines normalen Benutzers gegenüber von technischen Details. Für einen Benutzer zählt meist nur das Frontenddesign und die Bedienbarkeit einer Anwendung. Kunden als Auftraggeber können natürlich noch anderen Anforderungen haben. Diese Anforderungen stehen den eigentlichen Bedürfnissen von Anwendern oft zusätzlich im Weg.

Ich selbst bin Programmierer und habe sicher schon einige Anwendungen verschuldet, die technisch Super sind, aber bei der Bedienbarkeit schwächen haben. Aber zumindest lebt die Hoffnung, dass sich in Zukunft mehr Designer für GUI und Frontend-Entwicklung interessieren und damit das Leben der Benutzer verbessern.

Bildquelle

Mehr als genug Möglichkeiten

Andreas • • sw entwicklung


In der SW-Entwicklung gibt es mehr als genug Möglichkeiten eine Aufgabe zu lösen. Oft müssen auch unterschiedliche Frameworks miteinander zusammen arbeiten. Dadurch gibt es sehr viele Kombinationen, die nicht zum Erfolg führen.

Um diese Komplexität zu verringern, hat sich das Konzept “Konvention vor Konfiguration” etabliert. Dadurch haben nicht nur Neueinsteiger, in die SW-Entwicklung, einen sehr großen Vorteil. Es können auch leicht Quereinsteiger, mit Basiskenntnissen des Frameworks, bei einem Projekt weiter machen, ohne vorher den gesamten Code zu analysieren.

Mir ist bewusst geworden, was für ein Problem diese große Auswahl an Möglichkeiten sein kann. In Java hat man eine riesige Auswahl von Web-Containers und Application-Server. Die Auswahl der passenden Umgebung kann eine nicht enden wollende Aufgabe sein. Alleine im NetBeans-IDE, ohne zusätzlich installierter Plugins, existiert eine riesige Auswahl von Möglichkeiten zur Projekterstellung. Berücksichtigt man die Auswahl der Maven Archetypes wird die Liste beängstigend lang.

Diese Entscheidungen können auch auf der Mikroebene bei der Auswahl des richtigen Datentype anfangen. In Java gibt es alleine für die Darstellung von Ganzzahlen vier Möglichkeiten byte, short, int und long. In den meisten dynamischen Sprachen gibt es genau einen Type für Ganzzahlen. Dieser Type verfügt meistens über einen Wertebereich, der an einen Long-Wertebereich in Java heranreicht.

Mir geht es nicht um die Diskussion dynamische vs. statische Programmiersprachen. Genügend Teams auf beiden Enden des Spektrums haben großartige Produkte umgesetzt. Es geht mir darum nachzudenken, warum es so viele Möglichkeiten gibt, ob diese Möglichkeiten mehr Fehler verursachen als sie nutzen und ob diese Möglichkeiten noch benötigt werden.

Noch eine Zugabe zum Nachdenken, ist Frontend-Design schwierig weil die Frameworks dazu ungenügend sind oder weil der Benutzer(Kunde) an dieser Stelle die meisten Änderungswünsche hat.

Bildquelle

Groovy Spock und Mocking

Andreas • • groovy;spock;unittestin and sw entwicklung


Ich bin jetzt schon seit Jahren Java Entwickler. Dabei startete ich im Java EE Bereich. Von da ging es ziemlich schnell zum Springframework, was im Vergleich zum Standard einen wirklich sehr leichtgewichtigen Ansatz verfolgt. Trotzdem kann ich mit Sicherheit sagen, ich habe schon mehr XML-Konfigurationsdateien geschrieben als mir lieb ist.

Mit Ruby on Rails, Grails und teilweise dem Springframework ist dazu eine eindeutige Gegenbewegung, mit dem Motto “Konvention vor Konfiguration”, entstanden. Für mich begann damit die Zeit, in der ich mit verschiedenen dynamischen Programmiersprachen und ihren Frameworks experimentierte. In meinem beruflichen Umfeld konnte ich dieses Konzept nicht wirklich zum Einsatz bringen. Die bereits bestehenden Anwendungen wirken dabei wie ein Anker der, ab einer gewissen Anzahl von Anwendungen, nicht mehr gehoben werden kann.

Begeisterung für dynamische Programmiersprachen

Die Zeit mit den unterschiedlichen Programmiersprachen war jedoch nicht umsonst. Viele Verbesserungen, in meiner Art, Programme zu schreiben wurden dadurch möglich. Einige der dort vorhanden Konzepte konnte ich auch in die tägliche Arbeit integrieren. Auch die Begeisterung für dynamische Programmiersprachen ist geblieben.

Groovy und Spock

Vor kurzen wurde ich durch einen Podcast auf das Spezifikationsframewok “Spock” aufmerksam, welches mit Groovy auf der JVM ausgeführt werden kann.
Mit diesem Test-Framework können Code-Spezifikationen erstellt werden. Spock bedient sich dabei einer eigenen Domain Specific Language(DSL), die eine sehr übersichtliche Spezifizierung von erwarteten Verhalten ermöglicht. Vor allem möchte ich damit Spezifikationen für Java-Klassen erstellen können. Als Test habe ich einige Spezifikationen gegen die JodaTime-Library erstellt. Dabei bin ich den Anweisungen auf der GettingStarted-Seite gefolgt.

ACHTUNG: Groovy 1.8.6 muss installiert sein. Keine andere Version von Groovy wird unterstützt.

Es findet sich leider keine Anleitung für die Verwendung von Maven 3, welches beim aktuellen NetBeans-IDE mit installiert ist. Nach der Entfernung des Spock-Plugins und der Umbenennung der Testklasse von “NameSpock.groovy” auf “NameTest.groovy” wurde der Testfall richtig erkannt und wie erwartet ausgeführt.

Spock Blocks

Das Hauptkonzept von Spock ist es, die einzelnen zu spezifizierenden Funktionen in Blöcke zu gruppieren. Dieses können miteinander kombiniert werden, auch können mehrere Codezeilen zu einem Block gehören.

Hier ein Übersicht aus der Spock-Wiki Seite.

Quelle SpockBasics

Das Dreamteam der Blockpaare ist:

when: // beinhält einen Methodenaufruf
then: // hier wird ein erwarteter Zustand des Objektes überprüft

Soll auf mehrere Werte geprüft werden, erfolgt dass mit einer

expect: // Methodenaufruf mit Ergebnisvergleich
where: // Angeabe von Parametern

Kombination.

Mocking

Das Spock-Framework verfügt auch über ein eigenes Framework für die Erstellung von Mocks. Die dort gebotenen Funktionen habe ich noch nicht ausprobiert, die Syntax ist jedoch einfach und sollte für die meisten Fälle ausreichend sein. Ein detailliertes Beispiel habe ich auf dieser Seite gefunden.

RSpec vs Spock

Grundsätzlich fühlt sich Groovy von der Syntax ähnlicher zu Java an als Ruby. Ruby verfügt aber ebenfalls über ein sehr gutes Tool zur Spezifizierung “RSpec”. Mittels JRuby lässt sich dieses auch nutzen. Schon vor einigen Jahren hat es mehrere Versuche gegeben, Werkzeuge aus der Ruby-Welt für Java nutzbar zu machen:

WebServices als Datenbankabfragen

Andreas • • java, meetup, spring data, sw entwicklung, and webservice


Ich war auf meinem zweitem Meetup. Das Thema war Ruby und Web-Developement. Ein breites Gebiet, in dem auch der Lehrplan der FH-Salzburg und deren Bemühung zur Ausbildung neuer Web-Developer seinen Platz fand. Die Gruppe war mit ca.17 Teilnehmern überraschend groß und die Organisatoren haben wirklich eine großartige Arbeit geleistet. Vor allem die Verpflegung konnte sich sehen lassen!

Beim Thema Ruby sind meine Sprachkenntnisse relativ gering und ich konnte nicht viel zum Thema beitragen. Dafür ist mir bei einer Unterhaltung die Ähnlichkeit zwischen einem WebService-Aufruf zur Datenbeschaffung und einer Datenbankabfrage richtig klar geworden. Als WebService-Aufruf bezeichne ich hier, einen Zugriff auf einen Dienst oder Anwendung über HTTP. Klassische Beispiele für WebService-Aufrufe sind SOAP und REST.

Das soll nicht heißen ein WebService-Aufruf ist gleich zu setzten mit einer Datenbankabfrage. WebService-Aufrufe haben auch eine entscheidende Rolle bei der Verteilung und Skalierung von Prozessen und sollten deshalb nicht auf Datenabfragen reduziert werden. Bei aktuellen Projekten, an denen ich beteiligt bin, wird jedoch sehr selten eine Bearbeitungen in einem anderen Systemen angestoßen. Meistens wird auf Daten aus anderen Systemen zugegriffen.

NoSQL (Not only SQL) Datenbanken bieten ebenfalls sehr häufig ein REST-API für den Zugriff und die Bearbeitung von Daten. In meiner Beobachtung sind aber auch die meisten Anwendungen schon richtige NoSQL-Datenbanken, selbst wenn sich dahinter eine relationale Datenbank verbirgt. Durch die angebotenen REST-API werden oft Funktionen einer Datenbankschnittstelle angeboten.

Tools in Java

In JavaScript  ist die Verwendung von NoSQL-Datenbanken, durch die Bereitstellung von REST-API’s mit JSON-Daten, ein logischer Schritt. Schon alleine durch die große Anzahl der Möglichkeiten(Redis, MongoDB oder CouchDB), die für JavaScript existieren, ist dieser Zusammenhang gesichert.

Im Java-Umfeld, in dem ich mich aktuell bewege, ist dieser Gedanke noch um einiges weiter entfernt. Auch das Tooling ist oft vergleichbar mit dem direkten Level von JDBC. Die Schwierigkeit besteht in diesem Fall mehr auf dem Unterschied zwischen dynamischen und statisch typisierten Daten.

Für mich war der Gedanke neu, andere haben diese Ähnlichkeiten viel früher erkannt. Im “Spring Data” Projekt wird hierfür auch schon eine Unterstützung geboten. Dort finden sich bekannte Vertreter aus dem NoSQL-Datenbanken Umfeld wie MongoDB und Redis.

Ich hatte zwar noch nicht genügend Zeit mir die Projektbeschreibungen genau anzusehen, doch werde ich mich beim nächsten eigenen Projekt darauf zurück kommen.

Bildquelle

Netzwerkproblem, erkannt durch Visualisierung

Andreas • • allgemein and netzwerk


Bis vor kurzen wusste ich nicht, dass ich ein Problem mit meinem Hausnetzwerk hatte. Die Verbindung zum Internet funktionierte, das NAS war erreichbar. Nur manchmal hatte ich das Gefühl, die Verbindung von meinem PC zum NAS könnte schneller sein.

Dieses Gefühl hat sich seit der Installation von Windows 8, in eine Gewissheit verwandelt. Mit der neuen Darstellung hat man die Übertragungsgeschwindigkeit eindeutig besser im Auge.

image

Die Geschwindigkeit ist mit 11,3MB/s nicht richtig schlecht. Bei einer direkten Übertragung von PC zu NAS, wobei beide Geräte eine GBit-Verbindung haben sollten, jedoch bei weitem nicht die Obergrenze.

Die Fehlersuche war zum Glück relativ kurz. Im “Netzwerk- und Freigabecenter” unter “Status von Ethernet” wurde eine Übertragungsrate von 100MBit/s angezeigt.

image

Problembehebung

Leider gibt es die Funktion “Übertragungsrate ändern” nicht. Google hatte jedoch auf Anhieb die richtige Antwort für mich.

Die bei diversen Geräten beigelegten Kabel, sind nicht immer für GBit-Lan ausgelegt.

Daraufhin probierte ich verschiedene Kabel aus, bis ich bei der Übertragungsrate 1 GBit/s angezeigt bekam.

Die Geschwindigkeit hat sich von 11 MB/s auf 47 MB/s erhöht, damit bin ich sehr zufrieden. Bei diesem 200MB-File hatte ich fast nicht genug Zeit, um einen Screenshot zu machen. Die 5 Sekunden sind auf jeden Fall übertrieben.image

Bildquelle

Windows 8, und wie es mir gefällt

Andreas • • allgemein and windows;backup

In der letzten Woche habe ich mehr Windows 8 Systeme installiert als mir lieb war. Eigentlich interessieren mich Betriebssysteme nicht wirklich, solange alle Anwendungen ohne Probleme funktionieren. Aber durch einen Hardwarefehler, bei meinem PC, wurde ich praktisch dazu gezwungen.

Warum ist jetzt alles anders?

Der erste Eindruck war sehr befremden. Details wie das Ausschalten des Computers, Vollbildanwendungen, Menüleisten am linken bzw. rechten Rand und das Fehlen des Windows Media Centers haben mich an der Entscheidung Windows8 zu wählen zweifeln lassen. Jetzt nach einer Woche sehe ich alles viel entspannter.

Mittlerweile überwiegt die Begeisterung

Das Bedienkonzept der Vollbildanwendungen wurde schnell zur Gewohnheit. Der größte Vorteil entsteht jedoch durch die gesteigerte Geschwindigkeit. Die Performanz ist eine dieser Features, die man selbst oft nicht benennen kann, aber bei der Nutzung einen entscheidenden Unterschied macht. Ich habe nie gemessen, wie lange mein PC zum starten braucht, trotzdem verwende ich seit der Neuinstallation mit Windows8 den PC um ein vielfaches öfter.

Datensicherung

Mit Windows8 wurde der Dateiversionsverlauf eingeführt, hier hätte ein Marketingname wie bei Apples “TimeMaschine” nicht geschadet, funktionieren tut aber alles bestens.

Starten kann man, mit einer Suche nach “Backup” oder “FileHistory”. Im Standard ist der Verlauf nicht aktiviert. Deshalb sollte man unbedingt als erstes eine externe Festplatte anschließen und den Verlauf aktivieren.

image

Durch den Dateiversionsverlauf werden für alle Dateien, innerhalb der Bibliotheken(Bilder, Musik, … ), Dateiänderung in den Verlauf gespeichert.
In der Ansicht für die FileHistory wird auch ein Link zur “Systemimage”-Erstellung und zur Erstellung eines Reparaturdatenträgers angeboten.

Die unterschiedlichen Dateiversionen können auch sehr einfach wieder angezeigt werden. Dazu im Startmenü wieder “FileHistory” eingeben und es werden schon alle gesicherten Bereich angezeigt.

image

Systemimage

Innerhalb der Ansicht werden auch weitere Links, darunter auch zur “Windows 7-Dateiwiederherstellung” angeboten. Dort gibt es die Möglichkeit ein “Systemimage ” zu erstellen. Zusätzlich sollte auch eine Wiederherstellungs-DVD erstellt werden, diese kann dann auf das Systemimage zugreifen und wieder herstellen.

image

Über “Sicherung erstellen” kommt man zur Auswahl eines Laufwerkes und danach wird das Systemimage erstellt.

image

PC Herunterfahren

In diesem Bereich hat es sicher die größten Verwirrungen gegeben. Die Fülle der Möglichkeiten ist wirklich groß, es gibt den langen Weg durch die Charms bis zur Betätigung des PC-Powerbuttons am Gehäuse.

image

Für mich sind die Neuerungen in Windows8 wirklich Verbesserungen und durch den Einbau einer brauchbaren Dateisicherung bin ich sehr zufrieden mit dem Umstieg.

Appfuse, automatische Erstellung von Java-Webprojekten

Andreas • • appfuse, java, maven, and sw entwicklung


Man sollte sich nicht mit unnötigen Tätigkeiten befassen. Eine dieser Tätigkeiten ist das Einrichten von Java-Webprojekten. Für die Erstellung sind eine Unmenge von Projekten miteinander zu verbinden und einige Konfigurationsdateien zu erstellen. Vor allem kann diese Einrichtung wirklich viele Zeit in Anspruch nehmen.

Hier bietet das Projekt Appfuse( und Appfuse-Light) eine automatische Erstellung über Maven an. Der Unterschied besteht beim fehlenden Login in der Lightversion. Die erstellten Anwendungen arbeiten mit Spring und können mit Servern wie Tomcat oder Jetty ausgeführt werden. Die mit Maven erstellten Projekt können auch ohne zusätzliche Einstellungen von NetBeans IDE geöffnet werden. Bei Eclipse ist das Maven-Plugin notwendig.
Von JBoss gibt es für Java EE Anwendungen das Projekt JBoss-Forge. Damit können Anwendungen für den Java Applicationserver erstellt werden.

Gestern habe ich ein neues Projekt mit Maven und Appfuse erstellt, für Details zur Einrichtung sollte man einen Blick auf die QuickStart-Seite werfen. Es können dort auch unterschiedliche WebFrameworks wie Struts2, Spring MVC, Tapestry5, JSF oder nur WebServices gewählt werden.Danach sollte man unbedingt auch

mvn apfuse:full-source

ausführen, damit auch wirklich alle Zusammenhänge im Code sichtbar werden. Nach diesen zwei Schritten kann man das Projekt in Verbindung mit einem MySQL-Server ausführen.

Projektdetails

Der Hauptzweck der Übung war für mich, zu sehen welche Frameworks bei aktuellen Java-Webprojekten eingebunden werden. Folgende Projekte wurden automatisch eingebunden:

JPA Transactions in jUnit und Scheduled Tasks mit Spring

Andreas • • java, jpa, and sw entwicklung


In regelmäßigen Abständen versuche ich dieses Problem zu lösen. Meistens habe ich in der Zwischenzeit vergessen, wo ich das Problem das letzte Mal gelöst habe. Die Codestellen vermehren sich zwar, trotzdem wird es Zeit die paar Zeilen Code festzuhalten.

jUnit Spring AbstractTransactionalJUnit4SpringContextTests

Die einfachste Möglichkeit ist die Testklasse von AbstractTransactionalJUnit4SpringContextTests abzuleiten. Leider funktioniert das nur, wenn auch nur genau ein JpaTransactionManager als Spring-Bean existiert. In Systemen mit unterschiedlichen Datenquellen ist damit nichts zu machen.

jUnit Spring mit Annotations

Ist keine Ableitung erwünscht oder existieren mehr als ein TransactionManager, verwende ich meistens diese Lösung. Grundsätzlich ist das genau der Code, der in den zwei Klassen

Besuch doch einmal ein Meetup

Andreas • • allgemein and meetup


Letzte Woche nahm ich zum ersten Mal bei einem Meetup teil. Eigentlich sehe ich mich nicht als klassischen Teilnehmer. Zumindest habe ich lange Zeit ein Dasein als, für die Öffentlichkeit, unsichtbarer Programmierer geführt. Diese Art von Programmierer wurde auch schon als "dark matter" Programmierer bezeichnet. Trotzdem hat sich die Motivation ergeben, die eigenen vier Wände zu verlassen und in Kontakt mit anderen zu treten.

Stahlstadt.js

Der Name der Gruppe "stahlstadt.js" ist auch gleichzeitig Programm, es geht um JavaScript, HTML5 und alles was dazu gehört. Das Treffen fand im Linzer Hackerspace statt. Der erst vor kurzen in der Linzer Altstadt die Tore geöffnet hat. Der Raum und die einzigartigen Sitzgelegenheiten haben einiges zur guten Stimmung bei der Veranstaltung beigetragen.
Alle die gerne mit dem Lötkolben und elektronischen Bauteilen basteln, sollten dort unbedingt einmal vorbeischauen.

Wie finde ich eine Gruppe mit interessanten Themen

Eines ist klar, für ein verstaubtes Thema ist es schwierig eine Gruppe zu finden. Technologien die gerade voll im Rampenlicht stehen werden dagegen regelrecht überrannt. JavaScript scheint aktuell mehr ins Rampenlicht gerückt zu sein. Alleine die Anzahl der neu entstehenden Frameworks lässt die aktuelle Aufbruchsstimmung erahnen. Ruby (on Rails) ist zwar nicht mehr so im Mittelpunkt, wird aber ebenfalls angeboten. Für andere Technologien wie Java, C++, C# oder Linux finden sich im Vergleich fast keine begeisterten mehr zusammen.
Als Internetquelle zum Einstieg lohnt sich der Blick auf Meetup.com. Dort können auch sehr leicht eigene Gruppen zu beliebigen Themen gestartet werden.

Und warum sollte ich hin gehen?

Bei einer Umfrage unter Kollegen kam heraus, dass noch kein Kollege an derartigen Veranstaltungen oder Konferenzen teil genommen hat. Selbst Blogs über SW-Entwicklung, neue Frameworks oder ähnliches werden nur selten gelesen. Die Rate steigt erst bei Fachbüchern etwas an.
Nach diesen ersten Ergebnissen fragte ich nicht mehr, wer bei OpenSource Projekten beteiligt ist.
Persönlich ging ich mit einem Notizbuch voller Ideen und Anregungen aus dem Treffen heraus. Einige Gesichter hinter Blogs, Twitter-Profilen und Podcasts sind jetzt mit lebendigen Bildern versehen. Die Frage, "Werde ich wieder an einem Meetup teilnehmen?", kann ich mit einem eindeutigem "Ja" beantworten.

Die Model Kette von der Datenbank bis zur View

Andreas • • architektur, json, mvc, and sw entwicklung


Es sollte ein Model geben, dass für die View erstellt wird und von dieser angezeigt wird. Die Berechnung dieses Models übernimmt ein Controller. Es handelt sich um die MVC-Architektur, die schon seit längerem bekannt ist.

Bei vielen Web-Anwendungen ist die View jedoch zu einer eigenständigen Anwendung mutiert und greift selbstständig auf gerade benötigte Daten zu. Daraus haben sich Clientseitige MVC-Architekturen entwickelt. Die benötigten Daten werden durch JSON-Request nachgeladen und von der Clientanwendung dargestellt.

Server MC – Teil

Am Server bleibt nur noch das Model und der Controller über. Die View ist auf der Serverseite sehr nebensächlich geworden. Auch die Berechnungen und wie auf die Daten zugegriffen wird, ist viel gezielter geworden. Leider hat sich die Basis wenig verändert. Im Java-Umfeld wird oft mit JPA auf die Datenbank zugegriffen. In JPA kann auch definiert werden wie die einzelnen Tabellen zusammen hängen und wie die Daten nachgeladen werden.

Hier entsteht oft ein Problem bei der Umwandlung in ein JSON-Objekt, da nicht jede “Java-Objekt zu JSON” Implementierung mit den Tücken einer JPA-Abhängigkeiten klar kommt. Durch eine gegenseitige Referenzierung können leicht Endlosschleifen erstellt werden.

Schlechte Lösung

Als Lösung werden die Models in andere flache Models ohne Referenzen umgewandelt. Wird dieser Ansatz gewählt, kommt es zu Codeverdoppelung mit manuellen Umwandlungen von einem Objekt zum anderen.
Genau so problematisch wird auch das Empfangen von JSON-Daten. Bei der Umwandlung müssen auch die fehlenden Felder, vor der Speicherung, im JPA-Model nachgefüllt werden. Dieser Schritt erfolgt in zwei Teilen, zuerst lesen in der Datenbank und danach Änderung in das JPA-Objekt übernehmen. Oft werden wieder die Felder manuell zugewiesen.

Das böse Erwachen kommt bei der ersten Änderung, bei der all diese Stellen wieder gefunden und geändert werden müssen.

Lösungen

Der erste Schritt sollte es eine JSON-Lib zu finden, die mit den Anforderungen im eigenen Projekt gut klar kommt.

Schwieriger ist es bei den beteiligten Programmierern ein Bewusstsein für diese Problem zu bilden. Oft bildet sich dieses Bewusstsein erst nach einigen Änderungsanfragen und einigen Lehrstunden, in denen verzweifelt nach den richtigen Stellen für die Änderung gesucht wird.

Bildquelle

Ein Blick ins innere von jQuery

Andreas • • each, jquery, source, and sw entwicklung

Beruflich habe ich noch nie mit jQuery gearbeitet. Dort kamen Mootools und ExtJS zum Einsatz. Beide Frameworks haben immer gute Dienste geleistet. Ich wollte auch nicht jQuery verwenden, mich interessiert mehr die Implementierung und um den Code innerhalb von jQuery.

Dazu habe ich mir die Entwicklungsversion von jQuery herunter geladen und gleich nach der einzigen Funktion gesucht die ich kenne, der “each”-Funktion. Laut API nimmt die Funktion einen Callback-Parameter entgegen.

.each( function(index, Element) )

Der Code zeigt jedoch einen kleinen Unterschied, es ist auch ein Array-Parameter, an der zweiten Stelle möglich.

.each( function(index, Element),args )

Wird ein Argument übertragen wird dieses statt dem Index und Element an die Methode übergeben. Die Übergabe passiert mit callback.apply, dadurch wird dem Callback ein eigenes this übergeben und die angegebenen Parameter gefüllt.

Wird kein Argument übergeben, erfolgt der Aufruf mit callback.call, und index und Element. Dieser weg ist in der API-Beschreibung auch dokumentiert.

Gut lesbarer Code

Unabhängig von den Implementierungsdetails, ist mir die gute Lesbarkeit des Codes aufgefallen. Die Funktion könnte leicht um ein paar Zeilen verkürzt werden, doch würden diese Änderungen das Verständnis wesentlich erschweren.

Zugriff auf Objekte

Die each-Funktion nimmt nicht nur Arrays entgegen, sondern auch normale Objekte. JavaScript bietet die Möglichkeit, auf Object-Properties, über eine Array Syntax zu zu greifen. Hier ein kleines Beispiel.

var andreas = { name:’Andreas’ }; andreas[‘name’]; => liefert Andreas zurück.

Die möglichen Properties können in einer Schleife abgefragt werden.

for(i in obj){ obj[i]; }

Behandlung von dynamischer Parameteranzahl

In diesem Zusammenhang ist mir die Verwendung einer dynamischen Anzahl von Parametern unter gekommen. Persönlich kannte ich diese Möglichkeit noch nicht, realisiert wird diese über den arguments Parameter.

function foo() {
  for (var i = 0; i < arguments.length; i++) { 
    alert(arguments[i]); 
  } 
}

jQuery auseinander nehmen

Nach der ersten Inspektion wollte ich den Code so weit wie möglich verkleinern. Die Ausführung und Test machte ich dabei mit node.js und Mocha. Dabei sind jedoch keine sehenswerten Ergebnisse heraus gekommen.

Mal sehen was es noch zu entdecken gibt.

Fotoquelle

WebSpace Update und Win 8

Andreas • • uncategorized

Es hat sich einiges getan, beim Update von Wordpress hat meine Wartungsumgebung ihre dienste eingestellt. Zumindest hat sich die Blogansicht, nach der Deinstallation aller Plugins, wieder normal öffnen lassen.

Die Fehlerursache bei diesem Update war das PHP-Memorylimit. Bei mir war das Limit mit 32MB wirklich nicht besonders groß. Sollte es dir wie mir gehen und du nicht weißt, wie das PHP-Memorylimit ermittelt werden kann, gibt es hier eine Kurzanleitung.

Du brauchen nur eine Date mit der Endung “.php” und folgenden Inhalt in deinem WebSpace erstellen.

<?php phpinfo(); ?>

Diese kann über einen beliebigen Browser, hier ein Bespiellink “www.domain.com/phpinfo.php, geöffnet werden. Damit wird eine komplette Übersicht aller Servereinstellungen angezeigt.

Windows 8

Windows 8 hat sich auch auf meinem PC eingenistet. Das Update von Windows 7 war zwar nicht unbedingt notwendig, doch hatte ich die Gelegenheit für einen Festplattentausch auf SSD.

Die Bedienung von Windows 8 ist zwar etwas gewöhnungsbedürftig und wie die Vollbild-Apps zu meinen 24” Monitor passen, bin ich mir noch nicht sicher.

Trotzdem bin ich von der leichten Erreichbarkeit der wichtigsten Funktionen, durch Tastenkombinationen, sehr angetan. Die Windowstaste konnte ihre Verwendung um das vielfache steigern.

Windows 8 Installationsprobleme

Die eigentliche Installation von Windows 8 verlief reibungslos. Meine BIOS-Settings verhinderten jedoch einen Start. Erst nach der Deaktivierung meiner USB 3.0 Ports, lies sich die Installation starten.

Die beste Erklärung zu diesem Problem habe ich im Computerbase-Forum gefunden.

Bildquelle

ZyXEL NSA310

Andreas • • nas, nsa310, streaming, tools, and twonky

Der Sparefroh hat mich mit dem günstigsten ZyXEL NSA 310 Media Server erwischt. Es handelt sich dabei um ein NAS mit einer Festplatte und der Möglichkeit für RAID1 über eSATA.

Eigentlich wollte ich ein NAS mit zwei internen Festplatten, doch habe ich mir meinen Einsatzzweck nochmal überlegt und doch zum ZyXEL NSA310 , um ca. € 60 ohne Festplatte, gegriffen.

Der Zweck wird erfüllt

Die Übertragungsgeschwindigkeit ist sehr gut. Streaming der Kameravideos funktioniert ohne Konvertierung mit VLC und Windows Media Player.

Mit Windows und Linux ist eine normale Diashow über ein eingebundenes Netzlaufwerk möglich. Für iOS gibt es die Anwendung Twonky Beam, die nach kurzen Anfangsschwierigkeiten auch gut funktionierte.

Die Möglichkeit Dropbox am NAS einzurichten gefällt mir ebenfalls sehr gut.

Härtetest aus der Sicht eines Benutzers

Der absolute Härtetest für die Tauglichkeit eines Produktes ist meine Frau. Sie hat absolut kein Interesse an spielerein, es muss einfach funktionieren.

Streaming vom Windows-PC war für sie in Ordnung. Linux und VLC wurden keines Blickes gewürdigt. Beim iPad passte die Kodierung nicht und damit war das erledigt.

Die Bilder schnitten wesentlich besser ab. Hier hatte ich die App Remote File vorbereitet und ein Lesezeichen für NAS-Photo vorbereitet. Darin konnte sie ohne Probleme durch ihre Bilder blättern. Auch Twonky Beam, mit den Vorschaubildern und der Diashow (alles Beamen) gefielen ihr.

Die Übertragungsgeschwindigkeit bei Dateien wurde auch als gut empfunden.

Hardware

Für die € 60 wird nicht viel geboten, aber es ist eigentlich alles möglich. Selbst eine Debian Variante lässt sich angeblich darauf installieren. Von der Hardware kommt nur der Lüfter mit einem leisen rattern schlecht weg, ist aber trotzdem nicht wirklich laut. Im Standby ist das Gerät absolut leise und nicht zu hören.

Bildquelle

Ein Callback macht JS noch nicht asynchron

Andreas • • javascript, multithreading, node.js, and sw entwicklung

<p></p> <p>
Wird ein Ajax Request aufgerufen, läuft der Code wie gewohnt weiter. Kommt die Antwort, wird der Callback ausgeführt und es fühlt sich an, als würden mehrere Prozesse ablaufen. Doch handelt es sich hier um Multithreading oder ist alles nur vorgegaukelt? Leider ist diese Parallelität nur vorgetäuscht. Javascript wird nur innerhalb eines Prozesses ausgeführt. Selbst in Node.js gibt es nur einen Prozess.
Die besten Antworten habe ich im Mozilla Developer Network und bei HOTTO Node gefunden.</p> <h1>Wie funktioniert es trotzdem</h1> <p>Durch die Funktion setTimeout() wird die Ausführung der übergebenen Funktion an das Ende der Ausführungskette gestellt. Die übergebene Methode wird erst ausgeführt, wenn die Zeitspanne abgelaufen ist und die synchronen Bearbeitung fertig ist. Das war es auch schon. Durch diesen einfache Trick wird eine Blockierung der Benutzeransicht verhindert.</p> <h1>Weiter Möglichkeit innerhalb von Node.js</h1> <p>Von Node.js wird die Funktion process.nextTick(callback) bereit gestellt.
Diese ist effektiver, da direkt der Eventstack von Node.js verwendet wird.
Die Bearbeitung des Callback wird erst nach Fertigstellung der aufrufenden Methode ausgeführt.</p> <h1>THIS Kontextänderung</h1> <p>In meiner Testumgebung habe ich nicht die Möglichkeit diese Eigenschaft zu prüfen. Laut anderer Beiträge wechselt die Referenz von this auf window. </p> <h1>Test mit Node.js</h1> <p>Diese kleine Anwendung ist mein erster Versuch mit Node.js. Für mich ist es auf jeden Fall die einfachste Lösung ein paar Zeilen JavaScript aus zu führen.</p><pre class="brush: js;">var foo = function(){
console.log(‘foo’);
};
// Prüfen ob das Verhalten innerhalb einer Funktion gleich bleibt.
(function(){
setTimeout(
function(){
console.log(‘SET Timeout 1’);
},0);
console.log(‘bar’);
//Für eine längere Ausführungszeit
for(var i=0; i<5000000;i++){
Math.random();
}
})();
foo();
setTimeout(
function(){
console.log(‘SET Timeout 2’);
},0); </pre>

Ergebnis:
bar
foo
SET Timeout 1
SET Timeout 2

Zusammenfassung

JavaScript wird in einem Thread ausgeführt. Das sollte bei Browseranwendungen vollkommen ausreichen. Bei Anwendungen, wie sie in Node.js erstellt werden können, sollte man sich dazu sicher mehr Gedanken machen. Vor allem CPU intensive Aufgaben können hier Schwierigkeiten verursachen. Zumindest können mehrere Node.js Serveranwendungen miteinander verbunden werden.

Neues entdecken mit OpenSource

Andreas • • annotations, asynchronous, java, javascript, and sw entwicklung

Manchmal sticht mir ein Foto ins Auge das mir gefällt. Bei mir denke ich dann, so etwas möchte ich auch ausprobieren. Leider zeigen die Bilder nicht wie sie erstellt wurden, sondern nur das fertig bearbeitete Endprodukt. Ganz selten finden sich Gegenüberstellungen vom Ausgangsbild und fertigen Bild.

Bei Programmen hat man es viel leichter. Viele der verwendeten Programme sind OpenSource und damit für jeden einsehbar. Es sind zwar auch Grundkenntnisse notwendig, doch jeder hat die Möglichkeit hinter die Kulissen zu sehen.

Etwas neues ausprobieren

Ich bin jetzt seit ca. zehn Jahren als Programmierer tätig. In dieser Zeit hat sich viel verändert. Seit damals habe ich beruflich mit vier und privat mit einer fünften Programmiersprache gearbeitet. Die Möglichkeit den Code und die Struktur von OS-Projekten zu sehen hat mir dabei wesentlich geholfen.

Aktuell bin ich zwar nicht dabei eine neue Programmiersprache zu lernen (Das Buch “Seven Languages in Seven Weeks” steht schon im Regal), doch zwei Konzepte, die ich schon länger verwende, möchte ich näher kennenlernen.

Annotations

Annotations sind in Java schon seit der Version 5 verfügbar. Obwohl sie schon so lange existieren, habe ich noch nie versucht Annotations auszulesen. Dazu gibt es Implementierungen in den Projekte reflections, Joda Beans und im Springframework AnnotationUtils, die ich ansehen möchte.

Asynchronous Programming in JavaScript

JavaScript unterstützt eigentlich kein Multithreading. Trotzdem ist mit Ajax eine Parallelität möglich. Hier gibt es ebenfalls genug Codebeispiele aus den Projekten jQuery und Sencha(ExtJS).

Als erstes werde ich mir JavaScript vornehmen, da ich glaube das Thema ist kleiner.

Bildquelle von Jeff Meyer auf Flickr

NAS-Server

Andreas • • backup, bilder, foto, fotogalerie, nas, raid, synology, and tools

Fahrradbremse

Ich brauche ein NAS, um endlich Herr meiner unterschiedlichen Geräte zu werden. Egal wo ich mich befinde, mit Sicherheit habe ich keinen Zugriff auf die Dateien die ich gerade benötige. Dabei geht es mir vor allem um Bilder und Musikfiles die aus Platzgründen nicht mit der Dropbox verwaltet werden können.

Ein Freund hat mir ein Synology NAS 108j geliehen. Dabei handelt es sich um die Einstiegsvariante der Synology NAS-Produkte. Dazu gehören alle Produkte mit der Endung ‘j’. Meine Anforderungen gehören anscheinend nicht mehr in die Einstiegsvariante.

Leider hält die Hardware den Anforderungen nicht stand. Die Dateien werden mit Geschwindigkeiten weit unterhalb der Gbit-LAN Grenze übertragen. Eine weitere Bremse ist die Foto-App. Für jedes Bild wird ein Vorschaubild berechnet und selbst auf 5MP skalierte Bilder lassen die CPU aussteigen. Die reine Dateiansicht ohne Vorschaubild ist mir aber zu unübersichtlich.

Warum ein NAS-Server?

Nochmals kurz zurück zum Anfang. Was bringt ein NAS-Server? In meinem Fall sind es drei Geräte, von denen ich auf meine Bild- und Musiksammlung zugreifen möchte. Derzeit habe ich alle Bilder und Musiktitel auf meinem PC. Die anderen Geräte, Mobiltelefon und Tablet , dienen hauptsächlich der Darstellung. Ein weiterer Aspekt ist die Sicherheit. Die meisten NAS-Server verfügen über mehrere Laufwerke, die sich mit RAID verbinden lassen. Diese RAID-Verbindung bring in der richtigen Einstellung eine gute Sicherheit für die Dateien auf dem NAS.

System sollte zur Hardware passen

Das Synology NAS hat mich durch die geringe Schreibgeschwindigkeit und der langsamen Bearbeitung der Bilder enttäuscht. Mir ist bewusst, dass dieses NAS nur für eine geringe Nutzung ausgelegt ist. Das Betriebssystem ist auf jeden Fall für eine wesentlich leistungsfähigere HW gemacht. Überhaupt war ich von dem NAS-Betriebssystem begeistert. Die große Anzahl von Anwendungen hätte mir gefallen. Trotzdem wäre das Nutzungserlebnis besser, wenn die SW an die HW angepasst ist. In diesen Fall kam es mir vor, als würde ich mit einer Testversion arbeiten. Alle Funktionen sind vorhanden, aber anwendbar sind sie nicht, da die Leistung fehlt. Garmin hat einen ähnlichen Ansatz wie Synology, nur ist dort der Aufbau vertauscht. Um jeden Preis erhält man einen ausgezeichneten GPS-Empfänger, doch die eingeschränkten Software macht die Bedienung schwieriger.

Bild von Flickr

String in JavaScript umwandeln

Andreas • • javascript, json, sw, and sw entwicklung

Transformer

Heute habe ich mich gefragt, wie wird eigentlich ein JSON-String in ein JavaScript Objekt umgewandelt. Bisher habe ich immer die Tools aus vorhandenen JS-Frameworks verwendet. Da JSON eigentlich ein normales JS-Objekt in Stringformat ist, dachte ich mir, es muss doch einen direkten Weg geben.

eval und JSON.parse

Diesen einfachen Weg gibt es auch. Bevorzugt sollte JSON.parse verwendet werden, da hier eine Prüfung auf Code innerhalb des Strings existiert. Eval würde für die String zu JS-Objekt Umwandlung ebenfalls funktionieren, enthält diese Prüfung aber nicht. Als gute Quelle für JavaScript Fragen, kann ich die Mozilla Dokumentation empfehlen. Dort gibt es auch gute Hintergrundinformationen und Verlinkungen zwischen ähnlichen Themen. Beim weiteren suchen habe ich auch eine Antwort auf Stack Overflow gefunden.

Ausführen von JavaScript Code

Fast jeder Browser stellt eine JS Console zur Verfügung in der JS Code eingegeben und ausgeführt werden kann. Für den heutigen Test habe ich die Console von Goole Chrome verwendet.

Chrome Console

Die Console lässt sich über die “F12” Taste öffnen.

Bildquelle Michael Accardi

Snippet Compiler für Java und C#

Andreas • • c#, java, linqpad, scrapbook, and tools

Zwei Mobiltelefone

Snippet Compiler sind Werkzeuge mit denen kleine Programmteile ausgeführt werden können, ohne gleich ein ganzes Projekt aufsetzen zu müssen. Bei der Programmiersprache Ruby wird zum Beispiel das Tool “irb” mit Ruby ausgeliefert. Damit lassen sich sehr einfach ein paar Codezeilen ausführen. Als Anfänger oder in unbekannten API’s kann man leicht erste Erfahrungen zur Funktionsweise der Programmiersprache machen. Ruby bietet auch eine eigene Online-Plattform auf der Ruby-Code ausgeführt werden kann.

Java und C#

Mit diesen zwei Programmiersprachen habe ich die letzten Jahre verbracht und habe dabei völlig übersehen, dass es hier ebenfalls ähnliche Tools gibt.

Scrapbook

Zur Java Entwicklung verwende ich hauptsächlich Eclipse. Die Entwicklungsumgebung erlaubt die Erstellung von Scrapbook-Pages innerhalb eines Projektes. Innerhalb dieses Scrapbooks können Codezeilen erstellt und ausgeführt werden. Es kann dabei auch auf den Classpath des Projektes zugegriffen werden.

Weg zum Erstellen einer Scrapbook Seite

image

image

LINQPad

Der Name LINQPad deutet nicht unbedingt auf einen SnippetCompiler hin, die Funktionalität ist jedoch vorhanden. Zusätzlich zu LinqToSQL, können C# und F# Snippets ausgeführt werden. Einige Beispiele zum verstehen der Möglichkeit sind ebenfalls vorhanden. Es gibt auch eine Gratisversion ohne Autocompletion.

image

Einsatzbereiche

Ich bevorzuge Experimente, mit unbekannten API’s, außerhalb meiner Projekte durch zu führen. Dazu sind Snippet Compiler optimal geeignet. Dabei bin ich einfach begeistert von der schnellen Verfügbarkeit dieser Werkzeuge. Ich möchte keine eigene Datei anlegen, damit eine Codezeile ausgeführt werden kann. Sollte bei dem Experiment eine vernünftige Lösung entstanden sein, kann diese noch immer in eine eigene Klasse verwandelt werden.

Bildquelle McLeod

Mehrere Benutzer auf einem Computer

Andreas • • backup, fotogalerie, itunes, and tools

[caption id=”” align=”alignnone” width=”500”] Locks[/caption]

Es klingt wie das einfachste auf der ganzen Welt. Ich besitze einen PC den meine Frau und ich verwenden. Ein paar Programme wie ITunes, Dropbox und immer mehr der Browser ist auf einen Benutzer zu konfigurieren. Deswegen legte ich einen eigenen Benutzer für meine Frau an. Damit begannen einige Probleme.

Gemeinsame Daten

Die Bild- und Musiksammlung sind für mich Sammlungen, auf die jeder Benutzer am PC Zugriff haben sollte. Das Benutzerverzeichnis ist nur für den jeweiligen Benutzer verfügbar, deshalb wird ein eigenes Verzeichnis außerhalb der Benutzerverzeichnisse notwendig.

Dieser Schritt ist noch einfach. Schlecht ist, dass beim Import von Bildern die Berechtigungen des erstellenden Benutzers eingefügt werden. In der Defaulteinstellung ist dadurch eine Bearbeitung durch den zweiten Benutzer nicht möglich. Diese Eigenheit ist besonders lästig, da nur der erstellende Benutzer die Rechte wieder ändern kann.

Die Fotoverwaltung, in meinem Fall die Windows Fotogalerie, speichert sich die Einstellungen lokal zum jeweiligen Benutzer. Dadurch sind schon einige Verwirrungen entstanden, da ich Bilder gekennzeichnet habe und meine Frau die Kennzeichnungen nicht finden konnte.

Getrennte Daten

Bei iTunes ist die Benutzertrennung sehr wichtig, da die iTunes-Konten nicht vermischt werden sollten. Auch die Verwaltung der unterschiedlichen iOS-Geräte geht dadurch wesentlich leichter.

In meinem Benutzerkontext werden auch andere Dienste gestartet. Ein lokalec MySQL- und MS-SQL-Server werden nur für meinen Benutzer gestartet. Dadurch hat meine Frau einen eindeutigen Vorteil bei der Anmeldung.

Backup

Vor einigen Tagen habe ich eine Backup-Wiederherstellung getestet. Diese hat gut funktioniert. Beim nochmaligen durchsehen der Verzeichnisse, ist jedoch das Fehlen aller Daten meiner Frau aufgefallen. Wie genau ich diese für das Backup sichtbar mache ist mir noch nicht klar. Das Backup-System sollte die gleichen Daten sehen wie sie für die Benutzer sichtbar sind.

Für Lösungsvorschläge zur Erleichterung der Benutzerverwaltung bin ich jederzeit offen.

Bild von Mike Baird

Backup alleine ist nichts! Wiederherstellen ist alles!

Andreas • • backup, crashplan, mobiltelefon, and wiederherstellung

Ich erstelle regelmäßig ein Backup meiner Daten. Als Unterstützung habe ich die Software CrashPlan. CrashPlan bietet eine kostenlose Möglichkeit seine Daten auf beliebige Speicherorte zu sichern. Auch Rechner von Freunden können dazu verwendet werden, eine gute Anleitung findet sich auf der Produktseite. Einige Bastler haben den Client sogar auf einem Rasperry Pi zum laufen gebracht. Standardmäßig wir Windos, MacOSX und Linux unterstützt.

Letztes Wochenende ist mir jedoch bewusst geworden, dass ich noch keine Wiederherstellung probiert habe. Ich vertraue seit ca. 5 Monaten, seit ich auf CrashPlan umgestiegen bin, der Software ohne jemals die Wiederherstellbarkeit der Daten geprüft zu haben.

Überprüfung

Crashplan bietet eine Übersicht an, mit dem der Status des Backups geprüft werden kann. Mein aktueller Status ist, alle Daten sind gesichert.

image

Wechsel zu Wiederherstellung

Hier wurden alle gesicherten Verzeichnisse richtig angezeigt. Das Ausklappen der Verzeichnisse hat überraschend schnell funktioniert. Die Einstellungen habe ich gleich belassen, wobei die wichtigste Option der Wiederherstellungsort ist. Für meinen Test reicht der Desktop auf jeden Fall.

image

Nach dem betätigen des “Wiederherstellen” Buttons war das Bild sofort am Desktop verfügbar. Ich habe zwar nicht viele Dateien wiederhergestellt, da die Verzeichnisse richtig dargestellt werden, verzichte ich aus Zeitgründen auf eine vollständige Wiederherstellung.

Probiere es aus

Solltest du ebenfalls ein Backupsystem verwenden, bei dem die Dateien in komprimierte Pakete eingefügt werden, versuche unbedingt eine Wiederherstellung. Optimal ist natürlich noch, wenn du einen zweiten Computer hast. Mit diesem kannst du eine richtige Wiederherstellung testen, da auf diesem die Zielpfade und Passwörter noch nicht eingerichtet sind.

Mobiltelefon

Eine Bemerkung zum Schluss. Hast du schon einmal dein Smartphone über Fernwartung gesucht oder gesperrt? Wenn nicht, ist es jetzt die Zeit das nach zu holen.

So und jetzt los und probiere es aus!

Tools für die Systemverwaltung

Andreas • • process explorer, systemverwaltung, tools, and windirstat

Heute geht es um zwei Helfer bei der Systemverwaltung. WinDiskStat zur Analyse der eigenen Dateien und der Speicherplatzverwendung. Als zweites Werkzeug geht es um den Windows Sysinternals Process Explorer.

Mir ist bewusst, dass beide Werkzeuge nicht gerade erst seit gestern verfügbar sind, für mich sind sie aber trotzdem zwei der meist benutzten. Außerdem hatte ich heute eine Unterhaltung über, “Wie analysieren wir den verwendeten Festplattenplatz?”. Dabei konnte WinDiskStat eindeutig überzeugen.

WinDiskStat

Dieses Werkzeug analysiert ein gewähltes Laufwerk oder ein Verzeichnis. Alle Unterverzeichnisse werden in Gruppen unterteilt. Jede Datei wird dann wieder als Kasten dargestellt. Dazu wird für jede Dateiendung eine eigene Farbe vergeben. Optisch ergibt sich dadurch ein schönes Bild mit viel Aussagekraft. Die Verfügbarkeit der Anwendung unter verschiedenen Betriebssystemen ist gut, ein Debian-Paket, Windowsinstaller und ein Build für MacOS X wird bereit gestellt.

WinDirStat Bild von Projektseite

Bildquelle von Projektseite.

Windows Sysinternals Process Explorer

Der Process Explorer(PE) ist eines von mehreren Programmen die unter Microsoft Sysinternals zusammen gefasst sind. Der PE lässt sich auch ohne die anderen Tools und ohne Installation ausführen. Standardmäßig wird er als ZIP-Download bereitgestellt und ist sofort nach dem Entpacken einsatzbereit. Die Strukturierung erfolg nach Prozessen und deren Unterprozessen in einer Baumansicht.

Als Besonderheit können auch Sperren auf Files, einem Prozess zugeordnet werden.

ProcessExplorer Bild von der Microsoft Technet Seite

Bildquelle Microsoft Technet

Zum Entpacken von ZIP-Files empfehle ich 7Zip.

Readme - File

Andreas • • uncategorized

Ist keine Beschreibung zur Anwendung des Codes vorhanden kann er meist nicht verwendet werden.

Erkenntnisse aus “Design of Everyday Things”

Andreas • • allgemein, buch, design, and doet

Das Buch “Design of Everyday Things”(DOET) hat mir eine neuen Bereich erschlossen, mit dem ich mich bisher wenig beschäftigt habe. Natürlich war Usabillity für mich als Kunde und Ersteller ein Thema. Nach diesem Buch habe ich das Gefühl der Usabillity einen höheren Stellenwert geben zu müssen. Eine Annahme im Buch war, dass nur die wenigsten Gegenstände oder Anwendungen von wirklichen Designern entworfen werden. Diese Aussage kann ich sofort bestätigen. Ich sehe mich als Techniker und treffe in meinem Beruf täglich Entscheidungen zu Userinterfaces. Dabei gewinnen meistens die Lösungen, die am schnellsten umsetzbar sind.

Auswirkungen für mich

Jetzt wo ich dieses Buch gelesen habe bin ich motiviert, in meiner eigenen Arbeit mehr auf diese Feinheiten zu achten. Allein durch dieses Buch bin ich noch kein Designer geworden. Ich werde auch nicht sofort bessere Userinterfaces machen. Einige Grundkenntnisse sind mir jetzt bekannt und diese werde ich anwenden.

Bedienungskonzept

Zu jeder Anwendung gibt es ein Konzept nach dem sie aufgebaut ist. Dieses Konzept muss dem Anwender nicht unbedingt bekannt sein. DOET bezeichnet die wichtigste Aufgabe des Designs dem Benutzer dieses Konzept näher zu bringen. Wird ein Konzept vom Benutzer verstanden, dann kann er die Anwendung richtig benutzt. Bei meinem letzten Blogeintrag, habe ich das Konzept hinter der Suchansicht eindeutig nicht richtig verstanden.

Ein weiteres Problem habe ich mit dem Konzept der Klimaautomatik in meinem Toyota. Starte ich das Auto und die eingestellte Temperatur liegt unterhalb der Außentemperatur, schaltet die Automatik auf Umluft, unabhängig ob die Klimaanlage aktiviert ist. Die Einstellung Umluft mit Klimaanlage verstehe ich, aber ohne Klimaanlage sollte die Außenluft kühler sein. Das gilt natürlich nur für den Sommer. In diesem Fall bin ich mir noch nicht sicher, ob es sich um einen Fehler handelt oder ich etwas bei der Klimaautomatik nicht verstehe.

Wichtigste Punkte / Erkenntnisse

Die größte Überraschung war, dass sich der Benutzer selbst die Schuld ein einem Fehler einer Software geben könnte. Dieser Zusammenhang hatte sich mir noch nicht erschlossen. Ein Punkt der mir schon bekannt, aber nicht bewusst war, ist das es zwei Ebenen der Bedienung einer Anwendung geben kann. Bei normalen Computern gibt es fast immer zwei Möglichkeiten. Die erste ist mit der Maus ein sichtbares Element zu wählen. Die zweite Möglichkeit ist durch Tastatur Shortcuts, direkt eine gewünschte Funktion zu starten.

Shortcuts sind in fast allen Fällen die schnellere Wahl. Alleine die Positionierung der Hand erfordert mehr Zeit als die Tastenkombination. Leider sind die Shortcuts nicht sichtbar, ein Benutzer muss sich die Zeit nehmen und sie einüben.

Ein gutes Beispiel für lernen und üben ist die Bedienung einer Tastatur. Die Buchstaben sind eindeutig beschriftet und können ohne Vorkenntnisse bedient werden. Im Vergleich zu einer Sekretärin wird die Leistung jedoch gering sein.

Berichte über gelungenes Design in SW

Das Buch hat mich neugierig gemacht. Ich werde sicher kein Designer, gute Lösungen werde ich aber im Auge behalten. Über Besonderheiten werde ich auch berichten.

Bild von Burning Red

Funktionalität entdecken

Andreas • • buch and design

Schon wieder hat mir das Buch “Design of Everyday Things” eine menschliche Eigenheit näher gebracht. Es geht darum wie wir Menschen uns von der Funktionsweise eines Gerätes ein Bild machen.

Persönlich entdecke ich gerne die Eigenschaften eines Gerätes oder besondere Funktionen einer Anwendung, ohne vorher die Bedienungsanleitung zu lesen. Es macht mir Spaß und meistens finde ich einen Weg meine Aufgabe zu erfüllen. Leider sind aber nicht immer alle Wege richtig und manche Funktionsweisen werden falsch erkannt.

Eine Suchansicht

Vor einigen Tagen fragte mich ein Kollege, wie eine Suchansicht in einer Anwendung funktioniert. Da ich es auch nicht wusste, probierten wir die Basisfunktionen durch. Am Schluss unserer Tests hatten wir eine fixe Meinung wie die Suchansicht mit den Ergebnissen zusammen passt.

Die Zusammenhänge waren logisch und konnten von jeden, den wir die Ansicht erklärten, nachvollzogen werden. Leider stellte sich heraus, dass wir beide nicht recht hatten.

Warum kamen wir zum falschen Ergebnis?

Die Ansicht war klar gegliedert, es gab ein Suchfeld und zwei Auswahlboxen für “inaktiv” und für Suche nach “Gruppe”. Beim Suchen ohne Kennzeichen “inaktiv” wurden auch inaktive Datensätze angezeigt, solange die Gruppe noch aktiv war. Dieser Zusammenhang war im Ergebnis nicht dargestellt.

Feedback

Die wichtigste Hilfestellung, die ein Benutzer zum richtigen Erkennen von Zusammenhängen benötigt, ist eine gute Rückmeldung. In dieser sollten alle Informationen angezeigt werden, die eine richtige Zuordnung von Aktion und Ergebnis zulassen. In einer Suchansicht kommt es zwar nicht unbedingt auf die Schnelligkeit der Rückmeldung an, aber die gezeigten Ergebnisse sollten einen klaren Schluss auf die getätigten Einstellungen zulassen.

Besonders schwierig finde ich, ein geeignetes Feedback für Einstellungsseiten zu geben. Oft werden Einstellungen in einem eigenem Administrationsbereich getätigt. Die Auswirkungen der Änderungen werden aber in anderen Bereichen der Anwendung sichtbar. Hier können Vorschaubilder helfen den Benutzer zu unterstützen, damit die richtigen Einstellungen gemacht werden.

Jeder Designer sollte sich der Experimentierfreudigkeit von uns Menschen bewusst sein und entsprechende Hilfestellungen bieten.

Bild von wwarby.

Der Benutzer ist nicht schuld

Andreas • • buch, dedt, and design

[caption id=”” align=”alignnone” width=”420”] Bild von http://www.flickr.com/photos/nicowa/[/caption]

Das Buch ist ein Augenöffner für die kleinen Hindernisse im alltäglichen Leben. Schon auf den ersten Seiten spricht es eine menschliche Eigenheit an, die mir und ich glaube auch anderen Verborgen ist. Die freie Übersetzung, aus dem Buch “Design of Everyday Things”, von mir lautet:

Kann man eine einfache Aufgabe nicht lösen, gibt man sich selbst die Schuld dafür. Dabei ist oft das Design falsch und macht eine Lösung unnötig schwierig.

Diese Eigenschaft konnte ich schon bei vielen Anwendern von Computern entdecken. Beliebte Formulierungen sind, “Bei mir funktionieren die Programme nie wie sie sollen.”, “Immer habe ich Probleme, ich weiß gar nicht war ich falsch mache.” und vieles mehr.

Eine Tür in Berlin Vor kurzen war ich beruflich in Berlin. Die Türen im Hotel verfügten über Kartenschlösser und genau diese bereiteten mir Probleme. Kein Signal zeigte mir was ich zu tun hatte. Es gab zwar nur eine Steckmöglichkeit, aber der wichtigste Hinweis fehlte. Das Schoss öffnete nämlich nur, wenn die Karte innerhalb einer gewissen Zeitspanne wieder heraus gezogen wurde. Die Zeitspanne war für mich nicht ersichtlich. Dank einer helfenden Hand konnte ich die Tür doch noch öffnen.

In diesem Fall hatte ich noch keine selbst Zweifel, jedoch fiel mir dieses kleine Erlebnis beim lesen gleich wieder ein.

Später hatte ich mit dem Hotelpersonal noch eine Unterhaltung über die Zimmertüren. Dabei wurde mir berichtet, dass Gäste die Türen oft nicht öffnen können. Der Fehler wurde jedoch immer in der Ausstellung der Karte gesucht und nicht am fehlen der notwendigen Rückmeldung durch das Schloss. Ich hoffe neue Gäste werden in Zukunft nicht nur mit einer neuen Karte ausgestattet, sondern erhalten im Zweifelsfall noch eine Erklärung zur Funktionsweise.

Eine mögliche Lösung Das wieder entfernen der Karte aus dem Kartenschacht, kann eine notwendige Maßnahme sein, da sonst Karten außerhalb des Zimmers stecken bleiben könnten. Durch eine Signallampe hätte das erfolgreiche Einlesen der Karte signalisiert werden können. Die tatsächliche Entriegelung kann nach abziehen der Karte erfolgen. Eine Leseschiene oder ein berührungsloser Sensor wären natürlich noch besser gewesen.

Design of Everyday Things

Andreas • • allgemein, buch, and design

Es ist so weit, ich habe ein Buch über Design gekauft. Die Wahl fiel auf “The Design of Everyday Things”. Der Beschreibung nach erfordert es nicht viele Vorkenntnisse zum Thema Design.

Beim Thema Design liegen meine Interessen in der Bedienbarkeit und nicht in die optische Gestaltung. Damit sollte es für mich genau das richtige Buch sein. Ich bin schon sehr gespannt.

Bild von Andy Mangold

User Experience

Andreas • • allgemein, design, stackexchange, usability, and user experience

[caption id=”” align=”alignnone” width=”350”] Quelle http://www.flickr.com/photos/creative_tools/[/caption]

Ich beschäftige mich schon lange mit Computern und Programmen, seit 1995 intensiver. Seit damals sind mir schon viele Ansätze unter gekommen, die meisten haben sich schon wieder geändert. Mit der Zeit lernt man die Möglichkeiten und Konzepte die funktioniert haben. Dieses lernen basiert großteils auf ausprobieren und schauen was passiert. In den ersten Jahren waren deswegen auch regelmäßige Neuinstallationen meines Computers notwendig. Diese Zeiten sind für mich vorbei. Ich habe gelernt welche Einstellungen man besser nicht verändert und wie man seine Daten sichert.

Wenn ich jetzt ein für mich neues Programm ausprobiere, kann ich auf einen Fundus von Konzepten und Abläufen zurückgreifen, die schon in anderen Programmen funktioniert haben. Viele Abläufe, die einen unerfahrenen Benutzer vor Probleme stellen, fallen mir oft nicht mehr auf. Noch schwieriger ist es bei selbst erstellter SW, hier hat man das Fachwissen und den Hintergrund zu den Abläufen.

Der Unterschied wie normalen Anwendern und erfahrene Anwender mit einem Programmen arbeiten ist mir in den letzten Jahren immer deutlicher bewusst geworden. Durch Beobachtung wie Anwender zu einem Ergebnis kommen, welche Annahmen über ein System gemacht werden und wie sich diese Annahmen zwischen den einzelnen Anwendern unterscheidet hat mich nachdenklich gemacht. Ich bin sicher erst am Anfang dieses Gebietes angelangt. Es lohnt sich auf jeden Fall darüber nachzudenken, Anwendungen so einfach wie möglich zu gestalten. Oft sind die zu lösenden Probleme, schon ohne zusätzliche Stolpersteine, schwer genug zu lösen.

Aktuell, zumindest für mich, habe ich zu diesem Thema die Seite “User Experience” auf StackExchange enteckt. Hier können sich Designer oder Interessierte über Fragen zu Design und Bedingbarkeit austauschen.

iTunes Fehler 42110

Andreas • • apple, fehlerbehebung, itunes, tools, and uncategorized

iTunes hat bei seinem letzten Update vergessen, ein Verzeichnis zu löschen. Beim abspielen eines Leihfilmes bekam ich statt dem Film, die Fehlermeldung

Unbekannter Fehler 42110

zu sehen.

Zum Glück existiert auf der Apple-Supportseite eine genaue Beschreibung für Windows 7 und Mac OSX. Zuerst gesehen habe ich die Anleitung jedoch auf Youtube.

Zusammenfassung für Windows 7

Hilflose Benutzer

Andreas • • bug, design, software, sw, and sw entwicklung

[caption id=”” align=”alignnone” width=”500”] Quelle http://www.flickr.com/photos/scazon/[/caption]

Hilflosigkeit “Game Over”, es gibt keine Möglichkeit mehr aus der Klemme zu kommen. Eigentlich habe ich diesen Begriff, nur bei Ereignissen in der alltäglichen Welt verwendet. Ein Zug der gerade Abfährt, wenn man auf den Bahnsteig läuft, ist ein klassisches Beispiel.

Hier geht es aber um die Hilflosigkeit von SW-Benutzern. Die einfachsten Aufgaben können eine endlose Abfolge von Einstellungen benötigen. Bei Fotodrucken werden so viele Optionen angeboten, dass die richtigen Einstellungen nur durch experimentieren gefunden werden können. Dieses Vorgehen ist langwierig und frustrierend.

Schreibprogramme haben auch ihre Tücken, das Zeichen ‘-‘ wird wahlweise als Zeilenumbruch, Auflistung oder Gedankenstrich gesetzt. Wo kann dieses Verhalten eingestellt werden?

Es gibt endlos viele Möglichkeiten die einen Benutzer zur Verzweiflung bringen können. Handbücher sind auch nicht die große Hilfe. Wer liest sie schon, merkt sich die Anleitungen und wo hat man es hingelegt?

Bei Unternehmenssoftware liegt vielleicht pro Büro ein Handbuch auf. Aber ist dieses Handbuch noch aktuell? Könnte es sich noch um eine Beschreibung zur Version 2.1 oder 3 handeln? Welche Version hat die Anwendung überhaupt? In Unternehmenssoftware gibt es noch viel kritischere Bereiche, in denen Aktionen nicht rückgängig gemacht werden können.

Die Verantwortung für eine korrekte Verwendung darf auf keinen Fall dem Benutzer in die Schuhe geschoben werden. Der bekannte Ansatz, “Sind Sie sich sicher? Wollen Sie diese Aktion ausführen?”, hilft dem Benutzer nicht weiter. Ich sehe hier den Entwickler oder Designer in der Pflicht, sich über die Bedienungskonzepte einer Anwendung mehr Gedanken zu machen. Dem Benutzer darf es nicht möglich sein, eine Anwendung falsch zu bedienen. Jede Einstellung oder Eingabe muss auch wieder zurück gesetzt werden können. Aktionen, ohne Rücknahmemöglichkeit, sollten vorab eine vollständige Übersicht oder eine Stornierung anbieten.

Mit Sicherheit habe ich schon selbst genug Fehler beim Frontenddesign gemacht. Am leichtesten erkennt man Designschwächen in dem man prüft, wo Benutzer die meisten Fehler machen. Der Benutzer hat nichts falsch gemacht, wenn eine Anwendung nicht das gewünschte Ergebnis liefert. Es ist der Fehler des Entwicklers, der das Design für den Benutzer falsch erstellt hat!

Fehler in Software

admin • • bug, fehler, software, sw, and sw entwicklung

[caption id=”” align=”alignright” width=”240”] Bild von http://www.flickr.com/photos/dullhunk/[/caption]

 

Kann es war sein,

Völlige Fehlerfreiheit für Software, die eine gewisse Komplexitätsgrenze überschreitet, ist weder erreichbar noch nachweisbar. (Quelle Wikipedia)

Dazu kommt, dass bei Änderungen an bestehender SW ebenfalls neue Fehler eingeführt werden können. Diese Wahrscheinlichkeit einen neuen Fehler in die SW einzuführen, steigt dabei mit der Komplexität und der Anzahl der beteiligten Entwickler.

Als letzte vernichtende Aussage kommt aus dem Buch “Mythical Man Month

But our ideas are faulty and we have bugs.

Als Optimist, dazu zähle ich alle Entwickler, ist man davon überzeugt einmal einen Stand zu erreichen bei dem keine Fehler mehr auftreten.

Als große Waffe gegen Fehler, wurde in letzter Zeit, die Automatisierung der Frontendtest wieder groß geschrieben. Es gibt dazu wirklich beeindruckende Möglichkeiten, siehe Selenium, damit konnte ich im beruflichen Umfeld meine ersten Erfahrungen sammeln. Als größtes Problem sehe ich hier die Wiederholbarkeit einer Aktion. So müssen nach jeder Ausführung einer Aktionsfolge, die Daten wieder zurück auf den Ausgangswert gesetzt werden. Auch komplexe Datenquellen müssen vollständig nachgebaut und für das Testsystem zu Verfügung gestellt werden.

Bei Medienbrüchen sieht die Lage ebenfalls nicht besser aus. Bei Funktionen wie Drucken und versenden von Daten an Schnittstellen hört die Überprüfbarkeit beim abschicken des Befehls auf.

Trotzdem sollte man die Lage nicht überbewerten. Es hat sich viel getan in den letzten Jahren. Anwendungen sind generell Robuster geworden. Die große Verbreitung von Unittests in allen Programmiersprachen hat viel dazu beigetragen.

Die Benutzer sollten dazu ermutigt werden, einen Fehler wirklich an den Hersteller zu melden. Die Hersteller sind meist bemüht auf diese Rückmeldungen zu reagieren und die Wahrscheinlichkeit einer Behebung steigt beträchtlich.

Ich möchte hiermit die Benutzer ermutigen Fehlermeldungen oder Anregungen weiter zu leiten und Herstellern auch angemessen darauf zu reagieren.

Entwickler als Tester

Andreas • • sw entwicklung, sw-entwicklung, and testen

IMG_3201Im Blog Haacked, las ich vor kurzen einen Artikel über Testen bei GitHub. Dort ist es die Aufgabe der Entwickler die Änderungen selbst zu testen. Als selbst testen, bezeichne ich die manuelle Tätigkeit einer Anwendung die letzten geheimen Bugs zu entlocken. Entwickler gehen dieser Tätigkeit sicher nicht mit Begeisterung nach, bei einigen löst dieses Thema Unbehagen aus. Es gibt dazu auch die Annahme das Entwickler ihre Arbeit nicht selber testen sollten.

Dafür gibt es gute Gründe, als Entwickler hat man auf sein Produkt und auf selbst erstellte Funktionen einen eigenen Blickwinkel. Ich würde es fast mit Identifizierung oder als Urheberschaft vergleichen. Ein Entwickler sieht den Code oder das Produkt als seine Leistung an. Mit diesem Hintergrund ist es leicht verständlich, dass jeder Entwickler seinen Code mit Samthandschuhen angreift.

Kommt ein Produkt jedoch in die Hände eines Testers, hat dieser ein ganz andere Vorstellung. Seine Lieblingsbeschäftigung ist es einen Fehler zu finden. Jeder Fehler ist wie ein kleines Geschenk. Einem Tester ist es auch egal welcher Entwickler dafür verantwortlich ist und wie lange eine Behebung des Fehlers dauert.

Trotzdem sollte man in diesem Bereich über seinen eigenen Schatten springen. Selbst wenn man nicht alle Eigenheiten einer Anwendung mit der gleichen Blickes eines Testers sieht, findet man doch die gröbsten Ausreißer. Außerdem ist es sehr wohl möglich als Entwickler ein guter Tester zu sein. Wichtig ist für sich selbst die Perspektive zu ändern. Als erstes sollte man dabei den nächsten Fertigstellungstermin, vor dem Testen, vergessen.

Aus meiner Sicht sollte jeder Entwickler seinen Code testen und die bekannten Zusammenhänge ausprobieren. Es geht jedoch nichts über einen Vollzeittester, der alle Gegebenheiten zu einem Projekt kennt. Dieser Tester kann noch andere Aspekte des Projektes wie die Erfüllung aller Kundenanforderungen, die Geschwindigkeit, das UI-Verhalten und noch viele andere Kleinigkeiten testen und beurteilen. Wie man auch an den Kommentaren zu dem original Blogeintrag erkennen kann, gibt es in diesem Bereich viele Meinungen. Die einzige Gemeinsamkeit ist, dass Software auch manuell getestet werden muss.

Aus von Google Reader

Andreas • • tools

ReadingIn den letzten Tagen haben sich schon viele Blogger dazu geäußert. Auch ich habe nach dem lesen der ersten Nachricht einen Eintrag erstellt. Heute möchte ich dazu die unterschiedlichen Meinungen zusammen stellen.

Netzwertig ist von den Twitter-Listen angetan und setzt Hoffnungen in alternativen Anbietern. Es gibt dort auch einen Link zu zwölf Google Reader Alternativen.

T3N stellt ebenfalls eine Liste von sechs Alternativen Readern bereit.

Auf Caschys-Blog(Stadt-Bremerhafen) befindet sich ebenfalls eine Liste von Anbietern die die Lücke schließen wollen.

Weiter Einträge finden sich am Pottblog und bei Bottek.

Zu den unterschiedlichen Meinungen kann ich eigentlich nur feststellen, es gibt keine unterschiedliche Meinungen. Jeder hat den RSS-Reader von Google verwendet und sucht jetzt nach einer neuen Möglichkeit die RSS-Feeds zu organisieren. Von Desktop-Anwendungen wird eigentlich nicht gesprochen, wie es scheint zählen nur Onlinedienste.

Google Reader wird eingestellt

Andreas • • reader, rss, and tools

http://www.flickr.com/photos/ladybeames/

Der Google Reader, ein Programm das mir lange gute Dienste geleistet hat, soll Anfang Juli nicht mehr zur Verfügung stehen. Natürlich bin ich nicht sonderlich erfreut über diese Entwicklung. Nicht weil der RSS-Reader von Google das Top-Programm ist. Sondern einfach weil jede Änderung am Anfang schwer fällt. Auch ist ein aussuchen und bewerten von Alternativen mit einigem Zeitaufwand verbunden. Für mich ist der RSS-Reader ein fixer Bestandteil meiner Informationsbeschaffung. Wegen der Verwendung mehrerer Computer, möchte ich diese Feeds weiterhin Zentral ablegen können und natürlich brauche ich auch eine Unterstützung für mobilen Geräten.

Zum Glück bleibt noch genug Zeit sich nach passenden Lösungen umzusehen. Also werde ich fürs erste Ruhe bewahren.

Emacs mit Rechtschreibüberprüfung

Andreas • • emacs, spellcheck, tools, and ubuntu

Was verwendet man zur Textverarbeitung auf einem sehr langsamen Computer, nein nicht VI sondern emacs!

Schon gut, es handel sich nicht um den intuitivsten Wortprozessor. Aber man spart sich einiges an Wartezeiten, wenn keine Rechenleistung zur Verfügung steht.

Emacs hat mich anfangs auch nicht als Texteditor angesprochen, sondern die Funktionalität zur Erfassung von Aufgaben, Terminen, Zeitaufzeichnung oder Auswertungen. Es lohnt sich auf jeden Fall einen Blick auf dieses tolle Paket(OrgMode) zu werfen.

Ein wichtiges Kriterium an einen Wordprozessor, ist eine integrierte Rechtschreibprüfung. Erst mit dieser Funktion betrachte ich einen Editor als geeignetes Werkzeug zur Texterstellung. Emacs erfüllt diese Vorgabe.

Da auf dem Computer auf dem emacs zum Einsatz kommt befindet sich ein Ubuntu 12.04. Die Installation von emacs erledigte ich über den Paketmanager. Als Wörterbuch installierte ich aspell-de. Apt-Befehle: sudo apt-get emacs sudo apt-get aspell-de

Eine follständige Dokumentation befindet sich auf der GNU-Seite

Auch mit aktivem Flyspell funktionierte die Texteingabe sehr schnell und ohne Verzögerung.

Aktualisiere deine Systeme

Andreas • • allgemein, browser, software, and update

Falls du heute noch keine gute Tat vollbracht hast, dann aktualisiere deinen Browser und updateYourBrowser

überprüfe ob alle Sicherheitupdates eingerichtet sind. Leider weiß man nie, ob ein Link auf eine manipulierte Seite geht und ob die angesprochenen Sicherheitslücken auf dem eigenen System noch offen sind.

Solltest du noch keinen Virenscanner installiert haben, kannst du auch mit einer Gratisversion nicht unsicherer als ohne Virenscanner sein.

Entspannte Besucher trotz Hund

Andreas • • allgemein, dogprofi, and hund

Viele kennen die Situation, es Klingelt an der Tür und der Hund ist in heller Aufregung über die kommenden Ereignisse.

image

In den letzten Monaten hat sich diese Situation bei meiner Hündin sehr geändert. Er registriert zwar wenn ein Besuch kommt, doch die große Aufregung ist jetzt vorbei. Der Weg dorthin war gar nicht so schwer wie gedacht. Angeleitet wurden wir von einer Trainerin des DogProfi-Teams.

Das bekannte Verhalten

Früher begrüßte meine Frau und ich die Besucher und meine Hündin war durch eine Tür der Zugang zu den Gästen versperrt. Am trippeln vor der Tür konnte man jedoch die Aufregung beim ihr deutlich erkennen. Nach einiger Zeit öffneten wir meinem Hund die Tür und die Belästigung" der Gäste, durch meinen Hund, begann. Alle wurden an gestupst, abgeleckt oder angesprungen und wurde ihr keine Beachtung geschenkt bekam man ein lautes Bellen zu hören. Auch Versuche ihr weiterhin den Weg zu verstellen umging sie sehr geschickt und war eigentlich nicht zu stoppen. Oft wanderte sie deshalb in ihre Box, wo sie dann friedlich lag.

Neues Verhalten

Für mich und meine Frau war das nicht das Verhalten, dass wir von unserem Hund gegenüber Fremden erwarteten. Von der Trainerin bekamen wir die Anweisung unseren Hund bei solchen Treffen anzuleinen. Sie konnte sich dadurch in unserer Nähe befinden, ohne alle anderen zu belästigen. Danach kam das Antrainieren eines neuen Verhaltens. In unserem Fall, legen wir sie auf eine Decke auf der sie während des Besuches bleiben muss. Dieses neue Verhalten nahm sie sehr gut an und jetzt liegt sie während eines Besuches neben mir oder meine  Frau und hofft auf eine kleine Belohnung für ihr ruhiges Verhalten.

Bei Festen die länger dauern schicken wir sie in abgegrenzte Bereiche, in denen sie sich frei bewegen kann. Sie hält diese Bereiche sehr genau ein, auch wenn man ihr ansieht, dass sie lieber mitten im Geschehen wäre.

Für mich scheint es, als hat sich die Situation für alle verbessert und darüber bin ich wirklich froh.

DopProfi persönliches Training

Andreas • • dogprofi, hund, and training

Mein Hund Esther hat ein sehr lebhaftes Wesen. Mit dieser Eigenschaft bringt sie es leicht fertig, meine Fähigkeiten als Hundeführer ziemlich schlecht aussehen zu lassen. Besonders bei Besuchen konnte sie leicht den Ablauf stören und sich durch ihr Verhalten die Aufmerksamkeit aller sichern. An ein nettes Beisammensein war oft nicht zu denken. Meine Versuche dieses Verhalten zu beeinflussen waren vielfältig und nur selten von dauerhaften Erfolg gekrönt. Die besten Ideen lieferten mir die Bücher von Martin Rütter. Mein Hund begrüßte jedoch weiterhin alle Besucher mit einen oder mehreren feuchten Küssen.

Die Hundeschule bei, der ich die letzten Jahre Mitglied war, stand meinen Problemen ebenfalls sehr Ratlos gegenüber. Im Nachhinein betrachtet wirft das kein gutes Bild auf die Fähigkeiten der dort arbeitenden Trainer.

Dogprofi Meine Frau fand zufällig, über eine Werbung für eine persönliche Betreuung, zum DogProfi und leitete ein Treffen in die Wege. Innerhalb dieses Treffens beobachtete die Trainerin unser und das Verhalten unserer Hündin. Kurz gefasst lag die Schuld wieder beim Menschen und nicht beim Hund. Zur Lösung unseres Problems bekamen wir drei Übungen und einen Plan, wie Besuche in der Zukunft für den Hund besser gestaltet werden können. Es ist zwar noch zu früh einen großen Fortschritt zu erkennen, jedoch habe ich endlich das Gefühl es verändert sich zum besseren. Sollte sich eine dauerhafte Besserung einstellen, werde ich eine genauere Beschreibung der Übungen und das Verhalten meines Hundes geben.

WSDL To Java

Andreas • • apache cxf, axis, code, sw entwicklung, webservice, and ws

Jede Java-Anwendung kann auf WebServices zugreifen. Ant- oder Mavenscripts können einem die Anlage der Clientschnittstelle erheblich erleichtern. Im Vergleich zur Erstellung des Clientzugriffes über die IDE, sehe ich einen eindeutigen Vorteil bei der Wiederholbarkeit. Die Scripts können unabhängig von einer IDE, mit den gleichen Einstellungen ausgeführt werden.

Die bekanntesten Clienttools sind Axis2 und Apache-CXF.
Axis2 Anttask

[sourcecode language=”xml”] <target name="axisWsdl2java"> <path id="axis2.classpath"> <fileset dir="D:/libs/axis2/axis2-2.6.2/lib"> <include name="*/.jar"/> </fileset> </path> <taskdef name="axis2-wsdl2java" classname="org.apache.axis2.tool.ant.AntCodegenTask" classpathref="axis2.classpath"/> <axis2-wsdl2java overwrite="true" wsdlfilename="http://localhost:8080/service/Service?wsdl"/> </target> [/sourcecode]

CXF Anttask

[sourcecode language=”xml”]

<property name="cxf.home" location ="d:/libs/apache-cxf-2.6.2" /> <path id="cxf.classpath"> <fileset dir="${cxf.home}/lib"> <include name="*.jar"/> </fileset> </path>

<target name="cxfWSDLToJava"> <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true"> <arg value="-client"/> <arg value="-d"/> <arg value="${project.dir}/src_wsdl"/> <arg value="http://localhost:8080/service/Services?WSDL"/> <classpath> <path refid="cxf.classpath"/> </classpath> </java> </target>

[/sourcecode]

Java Code
In beiden Fällen werden alle in den WSDL definierten Klassen angelegt. Beim Service-Stub kann in beiden Fällen eine URL im Konstruktor übergeben werden. Bei Axis kann die URL als String-Wert ohne "?WSDL" Endung übergeben werden. CXF benötigt ein URL-Object mit dem vollständigen WSDL-Pfad.
Die URL-Generierung kann im Service-Stub Standardkonstruktor geprüft werden.
Unterschiede
Von der Verwendung, Geschwindigkeit und der Zuverlässigkeit konnte ich keine Unterschiede feststellen. Trotzdem gibt es WSDL-Files die nur von einer der beiden Frameworks richtig implementiert werden. In einem meiner Projekte hatte Axis, in der Version 2.6.2, Probleme mit einem WS das mit einem JBoss7.1 zur Verfügung gestellt wurde. Apache-CXF hatte damit keine Probleme.

Spring WEB-App von Tomcat zu JBoss as7

Andreas • • apache cxf, jboss, spring, sw entwicklung, and tomcat

Der Wechsel eines Java-Web-Servers sollte eigentlich keine große Angelegenheit sein. In meinem Portierungsprojekt musste zum Glück keine Codeänderung und keine Lib ausgetauscht werden. Ein paar Einstellungen waren doch vorzunehmen. Besonders hilfreich war dabei die JBoss AS 7 migrations guide. Den JBoss as 7 habe ich bei diesem Test im Standalonemodus ausgeführt, die Konfiguration im standalone.xml habe ich nicht verändert.

JPA Properties

JBoss as7 kommt mit einer eigenen Unterstützung für JPA, diese durchsucht das Projekt nach dem File "persistence.xml". Dieses File sollte umbenannt werden, damit hier kein Konflikt entstehen kann. In der JBoss Konfiguration kann auch das JPA-Modul entfernt werden.
Im Beispielcode habe ich den Namen "jpa-persistence.xml" vergeben.
[sourcecode language="xml"] <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceXmlLocation" value="classpath*:META-INF/jpa-persistence.xml"/> </bean> [/sourcecode]

Hibernate

In meinem Projekt setze ich JPA in Verbindung mit Hibernate ein. Hibernate wird auch von JBoss selber zur Verfügung gestellt.
Ich wollte die eigene Version verwenden, damit zur Tomcatumgebung kein Unterschied entsteht. Die von JBoss geladenen Libs können mit der Datei "WEB-INF/jboss-deployment-structure.xml" gesteuert werden. Die Datei kann im WEB-INF oder META-INF Verzeichnis abgelegt werden.
[sourcecode language="xml"] <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> <deployment>     <exclusions>        <module name="org.hibernate">     </exclusions>   </deployment> </jboss-deployment-structure> [/sourcecode]

Apache CXF

Eine weitere Befürchtung war, dass die WebServices die über das Apache CXF Framework bereitgestellt werden, unter JBoss ein eigenes Verhalten zeigen. Zum Glück kam es zu keinen Problemen, obwohl beim Starten eine Fehlermeldung ausgegeben wurde.

Code im Blog

Andreas • • blog, code, sw entwicklung, and tools

Für alle die ebenfalls auf der Suche nach einem Plugin/Tool zum veröffentlichen von Code-Snippets sind, beschreibe ich hier meine Auswahl.

Die meisten meiner Artikel verfasse ich nicht direkt im Backend, sondern in einer Tablet-App oder WindowsLiveWriter. Dadurch suchte ich zusätzlich nach einem Plugin, das auch mit dem WLW zusammenarbeiten kann. Code als Screenshots schieden für mich aus, da die Inhalte nicht kopiert werden können. Meine Auswahl viel auf PreCode in Verbindung mit Syntaxhighlighter für die Clientdarstellung.

PreCode

Ist ein WLW-Plugin und eine eigenständige Anwendung. Die darin erstellten Code-Snippets können auch in Stackoverflow verwendet werden. Die Liste der möglichen Programmiersprachen ist sehr umfangreich.

Die Funktionsweise ist ebenfalls sehr einfach. Aus IDE den Code in den Editor-Bereich einfügen, ein HTML-Tagformat auswählen und eine Highlighter Class auswählen.

Mit OK oder CopyToClipboard wird der Vorgang abgeschlossen.

Precode

Wordpress

In Wordpress wird der Syntaxhighlighter mit einem Plugin eingerichtet. Das Plugin “SyntaxHighlighter Evolved” steht direkt über die WP-Pluginsuche zur Verfügung.

Java Codebeispiel

[sourcecode language=”java”] public class Test{ @Test public void testAssertTrue(){ Assert.assertTrue(true); } } [/sourcecode] <h1>Wichtige Links</h1> <p>Plugin-Ersteller</p> <p>Wordpress “Posting Source Code”</p>

Legacy Code

Andreas • • code, legacy code, sw entwicklung, and unit-test

Die letzten Monate verbrachte ich damit, ein bestehendes System umzugestalten. Die Codebasis war gut, alle wichtigen Komponenten über klare Schnittstellen definiert und trotzdem war es schwierig Änderungen durchzuführen. Bestehende Funktionalität versagte ihren Dienst, ohne das Änderungen in den dafür zuständigen Codeteilen vorgenommen wurden. Hin und wieder beschlich mich das Gefühl, der Code wehrt sich gegen die Änderungen.

Die meisten Zwischenfälle konnten mittels Unit-Tests abgefangen werden. Schwieriger waren Probleme, die durch die Verwendung von Daten an unterschiedlichen Orten zustande kamen.

Eine unschätzbare Hilfe waren alle vorhandenen Tests. Für alle anderen Codeteile war das nachträgliche absichern eine echte Herausforderung. In Anbetracht der Tatsache, dass in Projekten ständig Änderungen durchgeführt werden, sollte sich jeder SW-Entwickler einen Gefallen tun und so viele Tests wie möglich erstellen. Meistens ist man selbst der nächste, der in seinem eigenen Code Änderungen durchführt.

Verfügbarkeit und Nutzung

Andreas • • allgemein, os, pc, and tablets

Langsam aber sicher schaufeln sich die normalen PC’s ihr eigenes Grab. Der Hauptgrund ist die scheinbare Langsamkeit. Im Vergleich zu PC’s scheinen Tablets oder Smartphones eine unglaubliche Geschwindigkeit an den Tag zu legen.

Dieser Unterschied beginnt schon mit den Startupzeiten. Wer schaltet schon den PC zum EMail lesen, Chatten, Bloggen, Posten, Internetsuche oder für YouTube-Filme ein, wenn ein Tablet verfügbar ist. Um genau zu sein, kann man innerhalb der Startupzeit eines normalen PC’s eine ganze Menge machen. Auf einem Tablet werden innerhalb dieser Zeit alle neuen EMails abgerufen. Nur noch wenige rechenintensive Aufgaben rechtfertigen den Aufwand den ein PC mit sich bringt. Dazu kommen noch die Updates, Sicherheitseinstellungen und viele andere Kleinigkeiten die das Bild unrund machen.

Ich bin schon gespannt, ob von Seite der PC- oder Betriebsystemhersteller noch Antworten gefunden werden.

AEC Festival 2012

Andreas • • aec, allgemein, and linz

Dieses Jahr hätte ich es fast nicht geschafft dabei zu sein. Um ehrlich zu sein war ich auch nur in einer Ausstellung und bei keinen der vielen Events. Besucht habe ich das OK. Besonder angetan war ich von der “Game Border” Anwendung, einer Kombination aus mehreren Konsolen von Gameboy bis XBox360. Meine Zeit für die Durchquerung aller Stationen lag im schlechten Mittelfeld. Für alle die den Sinnesrausch noch nicht genossen habe, bietet sich mit diesem Zusatzbereich ein tolles Kulturangebot! Die Kombination ist noch bis zum 20.09 zu besichtigen.

Print und Mobile kombiniert

Andreas • • ikea, mobile, and scannen

Bisher habe ich in diesem Zusammenhang nur QR-Codes mit einem Link zu einer Webadresse gesehen. Bei der aktuellen Ikea-App erlebte ich eine kleine Überraschung. Es gab keinen Code, sondern die ganze Seite wird Fotografiert und innerhalb weniger Sekunden öffnet sich der verlinkte Inhalt. Dabei passiert alles schön innerhalb der App und wirkt stimmig.

Der Ansatz hat mir sehr gut gefallen. Im Detail ist es natürlich egal ob ein Code oder Bild gescannt wird, aber es macht doch einen kleinen Unterschied.

Für alle die kein Tablet besitzen können die zusätzlichen Inhalten auch auf Ikea-Seite angesehen werden.

Des Fotografen bester Helfer

Andreas • • bildbearbeitung, fotografie, and stativ

Im Kopf entwickelt sich eine Idee für ein Bild, nur die Aufnahmebedingungen sind schlecht. Es ist zu dunkel, es sind noch weiterer Gegenstand zu halten, auch das Objekt bedarf noch einiger Korrekturen. Dadurch kann es sein, dass man mehrmals seinen Platz verlassen muss, bis man mit den Grundeinstellungen zufrieden ist. Dabei sind die Kameraeinstellungen zu beachten, das Suchfeld nach störenden Objekten zu durchsuchen und vieles mehr.

Wer hier keinen Helfer hat wird zu keinen guten Ergebnissen kommen. Dieser Helfer ist ein Stativ. Heute hat es mir geholfen einige Experimente mit wenig Licht zu machen die ich sonst nie geschafft hätte.

Kenne ich meine Arbeitsgerät?

Andreas • • sw and ubuntu

Ich schraube gerade an meinem neuen Arbeits-PC für daheim, dabei hatte ich den fixen Vorsatz dieses mal einen fertigen PC zu kaufen und mir die Arbeit zu ersparen.

Wie die meisten Vorsätze wurde auch dieser nicht eingehalten. Ich halte mir also zu Gute das eine neue PC-Anschaffung nicht geplant war, sondern der PC von einer Sekunde auf die andere keine Reaktion mehr zeigte.

Das einzige Lebenszeichen kam vom Netzteil und solange noch etwas Leben vorhanden ist, kann man doch nicht alles austauschen. So bestellte ich ein Mainboard, CPU und Speicher. Die Auswahl traf ich nach Preis und Verfügbarkeit beim nächsten PC-Teilehändler. Für diese Art der Auswahl stieß ich bei einigen Bekannten auf Verwunderung, diese wussten meistens von Technologien die alles bisherige in den Schatten stellen oder zumindest theoretisch eine x-Fach größere Leistung haben.

Das Ergebnis bereitet mir jedoch viel Freude! Ich habe zwar keine Ahnung ob die Komponenten irgend etwas besonderes können. Die Bearbeitungszeiten von mini-Videos, im Vergleich zur alten System, haben sich drastisch verkürzt, die Lautstärke ist etwas leiser und der Stromverbrauch ist mit ca. 45W (max. 105W) mehr als in Ordnung.

Für mich hat sich mit dieser Zusammenstellung ergeben, dass man nicht alles bis ins letzte Wissen muss, um einen brauchbaren Arbeitscomputer zu erhalten.

Mit dem eigenen Zusammenbauen des Gerätes hat sich jedoch meine Wertschätzung um einiges erhöht.

Betriebssystem auf USB-Stick

Die wichtigste Hilfe war ein Test-OS zur Verfügung zu haben, um den korrekten Zusammenbau zu prüfen. Meine Wahl fiel auf Ubuntu, welches auch in der Standardversion ein Tool zur Erstellung eines bootfähigen USB-Sticks bereit stellt. In der deutschen Ubuntuversion mit “Startmediumersteller” benannt ist.

Nach der Auswahl eines ISO-Files und eines geeigneten Mediums wird mit “Startmedium erstellen” die Erstellung abgeschlossen. In meinem Fall wurde der USB-Stick sofort als Startmedium erkannt, es können aber auch noch Einstellungen am Bios notwendig sein.

Installation von Paketen in der Testversion

Besonders praktisch ist die Möglichkeit, nach dem Systemstart weitere Software auf dem USB-Stick installieren zu können.

Commandline auch mit MS Windows

Andreas • • backup, commandline, commands, powershell, robocopy, tools, windows, and winrar

Normal bewege ich mich nur in der Linux-Shell, in den letzten Wochen habe ich aber ein paar Synchronisation- und Backup-Scripts unter MS-Windows angelegt.

Aus meiner Sicht  hat sich mit der Powershell einiges möglich, was ich mit Windows nicht für möglich hielt.

Verwirrend fand ich die neuen Möglichkeiten die in der „Aufgabenplanung“ integriert wurden. Nach der ersten Eingewöhnung funktionierte aber alles wie erwartet.

Robocopy

Das Tool eignet sich hervorragend zwei Verzeichnisse miteinander abzugleichen. Es werden dabei nur unterschiedliche Dateien aktualisiert. Mit eigener Option können auch Dateien die im Quellverzeichnis nicht mehr enthalten sind aus dem Zielverzeichnis entfernt werden.

Das Tool hat eine eingebaute Hilfe, die die Möglichkeiten gut beschreibt. Auf Wikipedia findet sich dazu ebenfalls eine Beschreibung.

WinRAR

WinRAR ist ebenfalls kein Tool was eine eigene Beschreibung benötigt. Die Möglichkeit es aus der Commandline zu verwenden, wird jedoch nicht sehr oft verwendet. Dabei bietet es hier alle Funktionen die aus der Ansicht gewohnt sind.

Hier ein kleines Beispiel mit dem aus einem Verzeichnis mit allen Unterverzeichnissen ein RAR-File erstellt wird. Dem File wird das aktuelle Datum angefügt.

For /f "tokens=1-3 delims=. " %%a in ('date /t') do (set date=%%c%%b%%a) echo %date% call C:\Programme\WinRAR\rar a -m5 -r E:\RARBackup\backup_%date%.rar  E:\Backup\*.*

Parameter Erklärung

Wird die Rar.exe ohne Parameter aufgerufen werden alle Optionen ausgegeben.

Warum Commandline?

Commandline und Batch haben den Vorteil, dass die Befehle beliebig miteinander kombiniert werden können. Im Batch-File kann die Abfolge fix definiert und immer wieder ausgeführt werden. Mit der „Aufgabenplanung“ können diese dann zu beliebigen Zeiten ausgeführt werden.  Dieses Verhalten eignet sich besonders für die Erstellung von individuellen Sicherungen.

Man muss dafür kein SW/Computerspezialist sein

Was man eigentlich erreichen möchte, sollte man jedoch schon wissen. Eine Übersicht von möglichen Scripts findet sich im ScriptCenter.

Carpe Diem.

Daten mit rsync auf FTP

Andreas • • backup, grsync, rsync, sbackup, tools, and ubuntu

Schon seit einiger Zeit beschäftige ich mich mit der Erstellung von Backups von meinen Ubuntu-PC auf ein NAS.

Als Backup-SW wählte ich SBackup und RSync mit Grsync-GUI.Diese zwei Arten sind für mich notwendig, da ich ein Backup ohne Mediendateien auf NAS mache. Die Mediendateien werden unkomprimiert übertragen, um von anderen PC’s darauf zugreifen zu können.

SBackup

War schnell eingerichtet und kann mit FTP-Laufwerken umgehen. Leider ist nirgends ersichtlich ob ein Backup ausgeführt wird oder wurde. Die Kontrolle kann nur direkt am NAS durchgeführt werden. Bisher gab es noch keine Probleme, einen richtiger Test mit Wiederherstellung habe ich aber jedoch nicht gemacht.

GRsync

Durch die Oberfläche kann eingestellt werden welche Quelle in welches Ziel kopiert werden soll. Leider kann als Ziel nicht direkt ein  FTP-Server verwendet werden.

Als Umweg kann mit dem Programm „curlftpfs“ ein Pfad, auf einem FTP-Server, als Ordner gemounted werden. Folgende Schritte sind notwendig damit „curlftpfs“ funktioniert:

Zum Abschluss mit dem Befehl

curlftpfs user:password@ip/path /media/nas

den FTP-Ordner einbinden.

Der Befehl

fusermount -u /media/nas

trennt die Verbindung wieder. Für beide Befehle sollten keine SuperUserrechte notwendig sein. Weitere Quellen hierfür finden sich auf der Ubuntuuser-Wiki Seite.

Carpe Diem.

Audiobearbeitung mit Audacity

Andreas • • audacity, ipod, linux, mp3, multi media, musik, sw, tools, and ubuntu

Seit kurzen bin ich Besitzer eines IPods. Mit dem Kauf dieses Gerätes sind gleichzeitig neue Anforderungen für meinen Medienbibliothek entstanden. Bilder, Musiktitel und Filme gehören Verwaltet und mitunter auch bearbeitet.

Hier möchte ich zuerst auf die Bearbeitung von Audiofiles eingehen. Im normalen Umgang mit Musik-Files und Podcasts kommt man sehr selten in die Verlegenheit, eine Änderung durchführen zu wollen.

Erst wenn man Audiofiles besitzt die gleichzeitig mehrere Musiktitel enthalten oder von Podcasts nur kleine Ausschnitte behalten möchte, stellt sich die Frage nach einem geeigneten Werkzeug.

Für mich fiel die Wahl auf Audacity welches unter Windows und Linux ohne Probleme funktioniert. Dieses Programm stellt Basisfunktionen wie kopieren, ausschneiden, einfügen, löschen und trennen zur Verfügung.  Eine vollständige Liste der Funktionen findet sich unter AudacityWiki.

Links:

sudo aptitude install lame

Grep, Find und LogParser

Andreas • • fields, tools, and ubuntu

Mit den Comamndline-Tools habe ich nicht immer nur Freude, auch wenn alle Optionen in der Hilfe ersichtlich sind, kommt es doch oft auf die Reihenfolge und ein paar Feinheiten an, die ich gerne vergesse. Deshalb gibt es hier ein paar Beispiele zu den oben genannten Tools.

Grep

Der Befehl dient zum durchsuchen von Dateien nach einem Text. Für die Suchpattern kann normaler Textvergleich und Regular Expressions verwendet werden.

Die von mir am häufigsten verwendeten Opdionen sind:

Eine Beispielzeile zum Durchsuchen aller .cs und .aspx Dateien, mit Schreiben in eine Datei.

grep -r --exclude-dir=.svn --include='*.{cs,aspx}' -i -n -e 'suchtext' ./ > search.txt

Die Zeichen ‘./’ stehen für den aktuellen Pfad und werden hier als Startpfad verwendet. Wenn es keine Unterverzeichnisse gibt,

kann auch ‘* ‘ für alle Dateien verwendet werden.

Suchen von Wort in Textfile:

grep 'error' error.log

Find

Dient zum Finden von Dateien und ist ein optimaler Partner von Grep. Hier finden sich auch sehr viele gute Beispiele am Ende der Man-Page.

Das von mir am meisten verwendete Kombination ist:

find . -iname "*Suchtext*"

Falls dann noch Feinheiten abgestimmt werde sollen, kann auch mittels grep ein weiterer Filter eingerichtet werden.

find . -iname "*Suchtext*" | grep filter

Find und Grep kann mit hilfe von Cygwin auch unter Windows verwendet werden.

LogParser Windows

Dieser passt hier nicht ganz hinein, da es sich hier um keinen Unix/Linux Shell Befehl handelt sondern von Microsoft kommt.

Hier ist  im Download ein Handbuch mit einer sehr genauen Beschreibung enthalten.

Der LogParser kann Text-Files mit SQL-Abfragen durchsuchen. Das ist zwar nicht immer leichter als mit grep, dafür kann aber gezielt auf eine Spalte im Ausgabefile abgefragt werden.

Felder definieren

Nur weil ein Text-File eine Struktur hat heißt das noch nicht das auch ein Header mit den Spaltennamen vorhanden ist. Diese kann aber leicht manuell in das File eingefügt werden.

Beispiel für Headerdefinition:

#Fields: field1 field2 ...

Beispiel für Abfage auf ein W3C File wie es von IIS erzeugt wird.

LogParser "select coun(*) from file.txt where field2 like '%errer%'" -i:w3c

Ob eine Verwendung von grep oder LogParser besser ist natülich für jeden selber zu entscheiden.

Links zu ausführlicheren Beschreibungen

Carpe Diem.

Ich mag meinen Hund

Andreas • • hund, jubiläum, and leben

Anlässlich des ersten Jahrestages meines Hundes in meiner Familie, kommt hier ein Artikel über meinen Hund.

In dem letzten Jahr ist einiges passiert. Sie hat sich von einem kleinen sehr lebendigen Hundebaby in eine sehr lebendige Hündin verwandelt. Auf den Weg dorthin, hat sie einige Halsbänder, Leinen und Spieleknoten verbraucht, zu unserem Glück aber keine Möbel beschädigt.

Tiefpunkte

Zu Schwierigkeiten in unserer Beziehung kamen wir erst, als ich versuchte meine Vorstellungen, von einem folgsamen Hund, an ihr zu verwirklichen. Der Wunsch meines Hundes jeden Besucher oder Fremden das Gesicht abzuschlecken, stellte sich als große  Anforderung heraus.

Auch ein Interesse an einem Spaziergang, bei dem nicht gelaufen, gespielt oder sonst etwas Besonderes passiert, ist einfach nicht vorhanden. Der Kinderwagen scheint auch immer beim Hund an zu ecken oder ist es doch der Hund der damit einfach nicht klar kommt.

Dadurch hat sich ihr Kontakt mit fremden Personen drastisch minimiert. Sie kann nur eingeschränkt bei Familienspaziergang mitgenommen werden. Selbst bei Besuchen, kann sie nur Menschen mit Hundeerfahrung zugemutet werden.

Trotzdem mit Hund

Mit all den Problemen die sie mit ins Leben gebracht hat, könnte sich schon die Frage stellen, warum wir sie noch haben. Der Grund ist sie hat auch Vorteile!

Sie kann folgende Punkte perfekt:

Der wichtigste Punkt ist natürlich die Verträglichkeit mit Kindern und die Töchter lieben sie über alles.

Gut für mich ist, dass mit ihren bald 15 Monaten auch schon die ersten ruhigen Seiten an diesem Wirbelwind zum Vorschein kommen.

Carpe diem.

IIS und parallele Requests in Session

Andreas • • c# javascript iis request seriell parallel and sw entwicklung

Gleich vorab, der IIS-Server übernimmt einem nicht die Verwaltung von Daten die in mehreren Threads verwendet werden, sondern führt Session abhängige Requests seriell aus.

Aber zuerst einmal wie ich auf das Problem komme und danach welche Möglichkeiten vorhanden sind.

UPDATE

Die Verwendung der Abfrage “Response.IsClientConnected” hat sich als problematisch heraus gestellt. Es scheint als währen Client Benachrichtigungen mittels JS Intervallsfunktion ein besserer Ansatz. Siehe selfhtml

Mein Problem

Der Ausgang war ein Request der eingegebenen Formdaten speichert und mit den neuen Daten ein Bild berechnet. Das Bild ist jedoch für den weiteren Arbeitsfluss nicht entscheidend. Trotzdem musste bis zur Fertigstellung gewartet werden.

Die erste Idee war es, den Request mittels Ajax aufzuteilen, um dem Benutzer sofort, nach Speicherung der Daten, die Kontrolle zurück zu geben. Da viele der Daten nur in der Session vorhanden waren und auch die generierten Daten in der Session landen sollten, wurde im Erstellungshandler die Session benötigt.

Bis hierher besteht noch kein Problem. Zu einem Problem wird es erst, wenn während der Bearbeitung ein weiterer Request geschickt wird. Hier wartet der IIS mit der Bearbeitung, bis die schon laufenden Requests beendet sind. Das ist grundsätzlich auch sinnvoll, in meinem Fall jedoch nicht erwünscht.

Eine andere Problembeschreibungen befindet sich auf stackoverflow.

Lösungsmöglichkeiten

Die Lösung ist stark abhängig von dem wie sich die Anwendung verhalten soll. In meinem Fall beenden alle Requests, den im Hintergrund laufenden Request. Dadurch kann ich die Requestverwaltung im JavaScript belassen und muss nicht ständig den Server mit neuen Requests fragen, ob schon ein Ergebnis besteht.

Für den ersten Fall gibt es hier auch noch ein Codebeispiel, welches den Request abbricht. Als Ajax-Framework wird hier Mootools verwendet.

var RequestHandler = new Request({url:’myWebsite’,link:’cancel’), var funktionHash = { startRequest: funktion() {abortAbleRequest.Send();}, abortRequest: funktion(){abortAbleRequest.Send(‘abort=true’);} } funktionHash.startRequest(); … funktionHash.abortRequest();

Das ‘abort=true’ hat im Grunde keine Bedeutung für den Request, kann aber am Server abgefragt werden, damit Bearbeitung nicht noch einmal gestartet wird. Link ‘cancel’ sagt dem Request das bestehende abgebrochen werden.

if (Request[“abort”] == null || !Request[“abort”].Equals(“true”)) { while(Response.IsClientConnected){ … } }

Über “Response.IsClientConnected” kann geprüft werden, ob der Request noch verwaltet wird.

Diese Lösung hat in meinem Fall ein gutes Ergebnis erzielt. Es handelt sich hier jedoch um Demo-Code und sollte vor einem Einsatz mit einigen Sicherheitsabfragen erweitert werden. Auch kann der Status für den Abbruch oft nicht bis zur eigentlichen Ausführung weitergereicht werden. In diesen Fällen sollte ein eigener Thread gestartet werden, der bei Bedarf abgebrochen werden kann.

Carpe Diem

SW-Backup unter Linux

Andreas • • backup, sicherung, software, sw, and ubuntu

Die Entscheidung für ein Backup-Medium habe ich schon getroffen.

Die Software fehlt

Jetzt müssen die Daten nur noch übertragen werden. Auf der UbuntuUser Seite gibt es eine Liste von Tools die ich als Ausgangspunkt verwendete.

Ausgewählt habe ich zwei Tools „sbackup“ und „rsync“. SBackup möchte ich verwenden, um eine Sicherung der System- und Benutzerdaten zu erstellen. Rsync soll Daten unkomprimiert zwischen zwei Datenbeständen abgleichen. Notwendig ist das für Bilder, auf die ich von mehreren Computern aus zugreifen möchte.

Getestet habe ich noch keines der Toools. SBackup ist schon installiert, hat jedoch beim Ausführen einer sofortigen Sicherung keine Reaktionen gezeigt. Nach einem Neustart und etwas warten, wurden jedoch Daten auf das NAS übertragen.

Bin gespannt wie sich das noch entwickelt.

Carpe diem.

Übertragen von Favoriten von Panasonic Lumix zu PC

Andreas • • bildbearbeitung, foto, panasonic, ruby, sw entwicklung, tool, tools, and Übertragen

Vor kurzen habe ich die Funktion „Favoriten“ entdeckt. Damit können Bilder leicht gekennzeichnet und bei der Betrachtungsfunktion als Gruppe angezeigt werden.

Das ist vorallem nützlich, wenn man nur eine eingeschränkte Auswahl, der auf der Speicherkarte enthaltenen Bilder, herzeigen möchte. Diese Vorauswahl wird jedoch von den bekannten Bilderverwaltungen nicht berücksichtigt und es werden immer alle Bilder übertragen.

Übertragen der gekennzeichneten Bilder

Da ich diese Funktion sehr gut finde und auch oft verwende, wollte ich auch die Möglichkeit haben die gekennzeichneten Bilder auf den Computer zu übertragen. Dazu habe ich ein Ruby-Programm geschrieben das genau diese Aufgabe erfüllt. Ruby ist auf dem Desktop zwar keine stark verbreitete Programmiersprache, kann aber sehr leicht installiert werden. Natürlich bin ich auch an der Programmiersprache interessiert, sonst währe eine GUI-Anwendung für den Anwender komfortabler.

Verwendung und Ruby-Version

Das Tool ist über die Konsole, egal ob Windows oder Linux, zu bedienen. Es werden dabei immer nur die Dateien übertragen, die seit der letzten Übertragung neu markiert wurden. Der Zielordner muss dabei nicht gleich bleiben. Die Namen der bereits übertragenen Files werden in einem lokalem File gespeichert und bei jeder Übertragung abgeglichen.

Der Aufruf sieht wie folgt aus.

ruby CopyNewFavImg ../fileAufFotoaparat.txt /destination

Bei mir ist die Ruby-Version 1.9.1 installiert, von den verwendeten Funktionen sollten alle schon in 1.8.x enthalten gewesen sein. Extra prüfen konnte ich das jedoch nicht.

Download

Das Programm könnt ihr unter dem folgenden Link herunter laden.

PanasonicParser

Ich weise ausdrücklich darauf hin, das es sich hier um mein erstes Ruby-Programm handelt und ich keinerlei Garantie für das Verhalten des Programmes übernehme.

Carpe diem.

Flash und Ubuntu 10.04

Andreas • • flash, linux, and ubuntu

Wahnsinn bald ist Ubuntu 10.10 verfügbar und ich habe noch nicht einmal alle Neuerungen von 10.04 ausprobiert. Bei einer Online Fotobestellung ist mir aber doch etwas aufgefallen, was sich wirklich verbessert hat.

Der Flash-Upload hat ohne Probleme funktioniert.

Daraufhin ging ich ans ausprobieren welche Flash-Anwendungen funktionieren. Als Flash-Anwendungen verstehe ich auch Filme im Flash-Format.

Folgendes hat funktioniert:

Als Browser diente FireFox, in der von Ubuntu bereitgestellten Version. Dazu verwendete ich das Adobe-Flash-Plugin, das beim ersten Aufruf einer Flash-Seite vorgeschlagen wurde.

Carpe diem

Nachtrag zu ImageMagick

Andreas • • convertierung, imagemagick, and sw entwicklung

Seit dem letzten Eintrag konnte ich noch ein paar Details zu ImageMagick und C# herausfinden.

Verarbeitung im Speicher

Ein Standardfall ist die Bearbeitung von Bilddaten im Speicher. Imagemagick ist aber auf die Konvertierung von Dateien spezialisiert. In einem beiliegenden Visual Basic Script ist zwar ein Beispielscript enthalten wie das funktionieren könnte, dieses liefert jedoch keine befriedigenden Ergebnisse. Mit VisualBasic.Net erzeugt der gleiche Code, einen Fehler wegen Sicherheitsverletzung bei der Umwandlung von Rückgabedatentypen.

Geschwindigkeit der Konvertierung von PDF zu JPG

Die Geschwindigkeit, bei der Konvertierung, ist im Vergleich mit der API von PDF-Tools nicht überzeugend.

Der Vergleich ist aber auch sehr streng, da die Lösungen von PDF-Tools auf PDF-Umwandlung spezialisiert ist und ImageMagick für einen allgemeinen Einsatz ausgelegt ist. ImageMagick verwendet das Tool „GhostScript“ zum laden der PDF-Files, wo wahrscheinlich auch die meiste Zeit verbleibt.

Fazit

Für Lösungen in denen PDF-Files nicht ständig für die Anzeige konvertiert werden müssen, sondern nur einmalig beim Import, ist ImageMagick sicherlich ausreichend.

Wird ImageMagick schon in anderen Bereichen für Bildkonvertierung verwendet, macht es natürlich Sinn es  auch für die PDF Umwandlung zu verwenden.

Diese Einschätzung bezieht sich ausschließlich auf .Net und C#, für andere Programmiersprachen muss das Verhalten sicher extra geprüft werden.

Auf die Lizenz von GhostScript sollte bei der Verwendung ebenfalls geachtet werden, da GPL nur für die nicht kommerzielle Nutzung gedacht ist.

ImageMagick und PDF Konvertierung

Andreas • • bildbearbeitung and sw entwicklung

ImageMagick kann auch mit PDF umgehen, in der Standardinstallation aber nicht. Für PDF Konvertierung muss Ghostscript installiert sein.

Eine ziemlich vollständige Liste findet sich direkt auf der unter ImageMagick.

Es wird hier auch beschrieben wie auf mögliche CropBoxen im PDF Rücksicht genommen werden.

To force ImageMagick to use the CropBox or TrimBox rather than the MediaBox, use -define (e.g. -define pdf:use-cropbox=true or -define pdf:use-trimbox=true). Use -density to improve the appearance of your PDF rendering (e.g. -density 300x300).

Für alle die an der Qualität der Umwandlung interessiert sind, sollten unbedingt den „Density“ Wert setzen. 300x300 steht hier für die stardard Druckqualität von 300DPI.

Bei mehrseitigen PDF-Files wird pro Seite ein Bild erstellt, wobei eine fortlaufende Nummer vergeben wird.

Verwendung von C# mit ImageMagic

ImageMagick kann auch in Verbindung mit C# verwendet werden. Auf CodePlex existiert ein Port mit dem Namen „ImageMagickNet“. Mit der Standardinstallation kann aber auch eine COM+ Componente registriert werden.

Das CodePlex Projekt konnte ich nicht erfolgreich einbinden, mit der COM+ Komponente ging das jedoch sehr leicht.

Im Installationsverzeichnis befindet sich das File „ImageMagickObject.dll“, dieses mit dem Befehl

regsvr32 /c /s Pfad\ImageMagickObject.dll

einbinden.

Im C# Code

Im Projekt muss die COM-Komponente als Verweis eingebunden werden. Danach kann auf die DLL direkt zugegriffen werden.

ImageMagickObject.MagickImageClass img = new ImageMagickObject.MagickImageClass(); Object[] convertParam = {@"E:\Projekte\test.pdf", @"E:\Projekte\test.jpg"}; Object test = img.Convert(ref convertParam);

Die Parameter sind hier die gleichen wie in der Command Line.

Buffalo Linkstation angekommen

Andreas • • uncategorized

Super sie ist da! Sie ist eigentlich sehr klein und sieht nicht schlecht aus, auch wenn sie ihr Dasein ungesehen in einem eigenem Zimmer verbringen wird.

Einrichtung

Positiv ist zu bemerken, dass das NAS sofort im Netzwerk erkannt wurde. Daten sollte man jedoch erst nach Konfiguration des Raid-Systemes auf das Gerät kopieren. Wem das voreingestellt Raid0 nicht passt, kann auch noch Raid1 wählen. Raid1 hat eine hohe Datensicherheit, mit dieser Einstellung werden alle Daten doppet gehalten. Der Speicherplatz wird dadurch auf die Hälfte verkleinert,  da ich das NAS zur Datensicherung benutzen möchte, ist das für mich in Ordnung.

Zur genaueren Einrichtung werde ich später noch ein paar Screenshots veröffentlichen.

Auchtung nicht für das Wohnzimmer geeignet

Aus meinen kurzen Test kann ich sagen, das Gerät ist nicht für den Wohnzimmereinsatz geeignet. Es ist neben meinem PC eindeutig zu hören und sogar etwas lauter. Das wurde auch in einigen Bewertungen schon erwähnt, aber durch eine geschlossene Tür ist nichts mehr zu hören.

NAS, weil es einfacher ist

Andreas • • backup, fileserver, and nas

Endlich habe ich mir ein Gerät ausgesucht, dass meinen Anforderungen entsprechen könnte. Meine Anforderungen sind, von mehreren PC/Notebooks im Heimnetzwerk gleichzeitig auf meine Daten zugreifen zu können. Das Ergebnis ist die Buffalo Link Station Duo.

Überlegungen

In den Überlegungen ging es zuerst um die grundsätzliche Entscheidung von selber gebauten Fileserver (FS) oder einem fertigen Produkt. Wobei die theoretische Featureübermacht natürlich auf der Seite eines FS liegt, da dieser alle Funktionen eines vollwertigen PC bieten würde. Einen FS selber zu bauen und zu konfigurieren hat leider einen Haken.

Das Problem liegt nicht am Bau, sondern die Software muss auf diese Anforderungen angepasst werden. Die Lösung soll ja nicht nur für den Erbauer verwendbar sein, sondern der Hauptanwender ist wahrscheinlich meine Frau und die möchte von technischen Problemen und Protokollen nichts wissen.

Erforderliche Software

Bei der anzupassenden Software rechne ich mit folgenden Punkten:

Um das alles zu lernen würde ich einiges an Zeit benötigen und die Wahrscheinlichkeit von Fehlerquellen ist ziemlich groß.

NAS Network Attached Storage

Bei einem NAS ist das einfacher, alle Protokolle sind installiert und eine einfache Verwaltung existiert. Fehler bei der Software sind ebenfalls seltener zu erwarten.

NAS Buffalo

Hat für mich durch den Preis, den einfachen physischen Zugriff auf die Festplatten, die angebotenen Protokolle, Streaming, ITunes-Server, die Möglichkeit von Plugins, Printserver, den niedrigen Stromverbrauch und einem automatischen Start, sobald Strom zur Verfügung steht, das Rennen gemacht.

Jetzt heißt es nur noch abwarten bis die LinkStation bei mir ankommt.

Drei Wochen Urlaub

Andreas • • blog

Ja, ich hatte Urlaub. Nur war dieser fast ausschließlich mit Kinderpflege und kleinen Unternehmungen ausgefüllt, die man, ohne oder mit einem Kind, als kleinen Spaziergang angesehen hätte.

Trotzdem oder gerade deswegen hat es so gut getan. Durch die Zeit, die ich zu Hause verbrachte und mich mit den „kleinen Dingen“ beschäftigte, fand ich wieder Ruhe und Verständnis für Bereiche, die mir vorher nicht aufgefallen sind.

Aber auch ein paar Projekte die dem Wohnraum Garten zu gute kommen, wie die Terrassenfertigstellung, eine Sitzecke im Garten und die Standortwahl für meine Hängematte, konnten zumindest geplant werden. Die Hängematte habe ich schon, aber sie liegt noch im Abstellraum.

Meinen Blog hat diese Veränderungswut auch gestreift. Der sperrige Name „DevTechBlog“ ist dem Namen „DigitalesUmfeld.at“ gewichen. Weiters habe ich nicht mehr vor eine strenge Trennung zwischen den Themen einzuhalten und vorerst alle Artikel hier zu Posten.

Viel vergnügen beim Lesen.

Ps.: Die alte Domain wird weiter erreichbar sein und die Feeds automatisch umgeleitet.

Warum das Thema „Backup“

Andreas • • backup, foto, heimnetzwerk, and sicherung

Das Thema ist ist bei  mir gerade, durch die Geburt meiner zweiten Tochter, in den Vordergrund gerückt. Durch die Ankunft eines neuen Familienmitgliedes geht auch der Wunsch einher, Erinnerungen über diese ganz besondere Zeit zu behalten. In den meisten Fällen erstellt man Fotos oder Filme.

Genauso ist es jetzt bei mir, seit der Geburt wurden schon einige hundert Bilder gemacht und diese müssen jetzt so gespeichert werden, dass sie auch in ein paar Jahren noch leicht zugänglich sind.

Als meine erste Tochter vor ein paar Jahren auf die Welt kam, hatte ich noch eine 4MP Kamera und diese Bilder hatten leicht auf eine CD-ROM platz. Die aktuelle Kamera mit ihren 13MP stellt da ganz andere Anforderungen. Hier wird ein GB nach dem anderen befüllt und CD/DVD-ROM sind dafür nicht praktisch genug, um als Medium bestehen zu können.

Verteilung

Auch gibt es nicht mehr nur ein Gerät auf dem die Bilder bearbeite und betrachtet werden. Dadurch müssen die Bilder auch noch auf die verschiedenen Geräte verteilt werden. Da auch die Benutzung durch unterschiedliche Personen erfolgt, müssen fast immer alle Bilder auf alle Geräte kopiert werden.

Aus diesem Gründen beschäftige ich mich derzeit mit Sicherungen und wie die Daten von mehreren Endgeräten erreicht werden können.

Heimnetzwerk

Meine derzeitige Idee ist ein Heimnetzwerk mit einem File-Server zu erstellen, jedoch sollten sich die Kosten und der Aufwand dafür in Grenzen halten.

Bin schon gespannt was ich dazu finde.

Speichermedien und Laufwerke für Backup

admin • • backup, laufwerke, nas, and sicherung

Wer erinnert sich eigentlich noch an die Zip-Disketten, Disketten oder Minidiscs die lange die einzigen Medien waren, auf die Dateien kopiert werden konnten. Meine ersten Datenträger waren Disketten und deren Lebensdauer konnte man wirklich nicht ernst nehmen. Zum Glück hat sich schon einiges getan und man kann schon von einer Geschichte der Speichermedien sprechen.

Optische Datenträger (CD-ROM)

Ein beliebter Weg war/ist, Daten auf optische Datenträger zu verewigen, da die Haltbarkeit als relativ hoch eingestuft wird. Auch war der Preis relativ niedrig, im Verhältnis zu Festplatten ist er jedoch hoch.

Leider haben Datenträger, egal um welchen es sich handelt, einige Nachteile

Der letzte Punkt ist zwar nicht unbedingt zwingend, führt aber eher dazu, mit einer Sicherung zu warten bis „es sich auszahlt“.

Lesegeräte

Die Lesegeräte haben ebenfalls schon einige Formate durch gemacht und es ist fraglich ob die ersten selbst erstellten CD’s in einem optischen Lesegerät der Zukunft noch verwendbar sein werden.

Zu unser aller Glück gibt es externe Laufwerke die nicht mehr direkt ins Gehäuse eingebaut werden müssen, dadurch können zumindest einige Hürden noch überwunden werden.

USB und externe Laufwerke

Optische Datenträger würden bei mir, mit der Datenflut durch digitale Bilder und HD-Videos, schon lange nicht mehr ausreichen. Deshalb verwende ich Wechselfestplatten, um meine Daten zu sichern. Festplatten haben genügend Kapazität um mit den aktuellen Datenmengen fertig zu werden. Der Preis und die Übertragungsgeschwindigkeit sind ebenfalls passend.

Nachteile gibt es trotzdem genug:

Beste Lösung für mehrere Geräte ist sicher ein NAS-Gerät, wobei hier ein Netzwerk die Voraussetzung für ein reibungsloses funktionieren ist. In einem derartigen Netzwerk können dann mehreren Geräten gleichzeitig auf die Daten zugreifen. Hat ein NAS auch mehrere Laufwerke können Daten auch alleinig dort abgespeichert werden.

Da in den meisten Fällen das Netzwerk(Internet-Router) immer verfügbar ist, können auch fixe Sicherungen eingeplant werden.

Wordpress Update

admin • • blog, theme, and wordpress

Es hat funktioniert, Wordpress 3 mit neuem Thema ist online und keinen besonderen Kunststücke waren dafür notwendig.

Danke Wordpress-Team.

Backup, eine unbefriedigende Tätigkeit

Andreas • • backup and sicherung

Backups sind eine Aufgabe die jeden der einen PC besitzt betreffen. Persönlich kenne ich aber fast keinen der sich auch darum kümmert oder einen fixen Sicherungsplan hat. Selber zähle ich mich auch nicht zu denen die sich dieser Aufgabe gerne und in regelmäßigen Abständen stellen.

Sicherungen sind wichtig

Dabei zählt aber das Sichern von digitalen Informationen zu einen der wichtigsten Punkte über die man sich Gedanken machen sollte.

Fast jeder hat Bilder von Augenblicken, Personen oder Orten die einen wichtig sind. Dazu kommen noch Medien, Rechnungen, Verträge und E-Mails die ebenfalls nach einem Festplattenfehler wieder verfügar sein sollen.

Warum ist es so schwierig

Trotzdem ist das Sichern etwas das nur sehr selten gemacht wird. Aus meiner Sicht hat das einen einfachen Grund. Es ist Arbeit, es dauert sehr lange, es kann durch Speichermedien Kosten verursachen und man bracht vielleicht auch noch Platz für die Aufbewahrung.

Selbst nach getaner Arbeit ist es nie sicher, ob die gesicherten Daten im Ernstfall wieder herstellbar sind.

Alles in allem ein unbefriedigender Zustand.

Neo2 - Ergonomisches Tastatur-Layout

Andreas • • uncategorized

Durch einen Artikel im „FreienMagazin“ bin ich auf dieses alternative Layout aufmerksam geworden. Seit einigen Wochen schreibe ich sehr aktiv mit diesem Layout und bin zufrieden mit dem Umstieg, wenn auch nicht grenzenlos glücklich.

Erfahrungen

Die Umstellungsphase hat sich als wesentlich einfacher erwiesen, als von mir gedacht. Die Tastenanordnung ist so angelegt, dass die meist Verwendeten Tasten ohne größere Spannen erreicht werden können.

Besonders angenehm ist die Möglichkeit schnell auf das alte Layout zurück wechseln zu können, wenn gerade keine Zeit für das Suchen nach Tasten ist. Es muss auch nichts installiert werden sondern nur ein Programm zur Umwandlung der Zeichen auf Neo2 gestartet werden. Unter Ubuntu konnte es als deutsche Tastaturvariante gewählt werden.

Positives

Der Grund warum ich mir überhaupt eine neue Tastaturbelegung ausprobieren wollte, ist die oft ungünstige Position der Sonderzeichen auf einer normalen Tastatur. So sind bei NEO2, Zeichen die in Programmiersprachen häufig verwendet werden sehr günstig gelegt.

Eine bessere Positionierung haben auch die deutschen Zeichen erfahren. Die normalen Anführungsstriche „“, Gedankenstrich — und die Umlaute sind mit Großstelltaste oder direkt erreichbar.

Was bei mir eher nicht so ins Gewicht fällt sind Zeichen die in der Mathematik oft verwendet werden.

Negatives

Hier gibt es doch einige Punkte die einem nicht sofort auffallen würden.

Der Hauptnachteil liegt für mich bei den Tastenkombinationen. So ist Ctrg+c,v,x,s und einige Kombinationen für Entwicklungsumgebungen nicht mehr leicht mit einer Hand zu bedienen.

Ein weiterer Nachteil sind Rückstellung der Tastatur, auf Standard, bei Remoteverbindungen, die manchmal unerwartet Ergebnisse bringen kann.

Nach ein paar Tagen, mit einer Kleinigkeit zum essen in einer Hand, ist mir aufgefallen, die Bedienung mit einem zwei Finger Suchsystem funktionier überhaupt nicht. Dazu fehlen einfach die richtigen Beschriftungen auf den Tasten.  Mit einem Augenzwingern kann man sich einbilden, dass so wenigstens die Tastatur sauber bleibt und die Konzentration voll auf der Tätigkeit essen bleibt.

Umstellung und Wechsel zwischen Layouts

Der Umstieg fiel mir relativ leicht. Auch wenn die Schreibgeschwindigkeit sicher noch nicht an frühere Ergebnisse herankommt, fällt es den Kollegen nicht auf, dass sich etwas geändert hat.

Zum Glück gibt es Schreibtrainer die einen schnell weiter helfen. Ich habe dazu Tipp10 verwendet, wobei KTouch wesentlich besser sein soll. Mein Beweggrund war eine vorhandene portable Version.

Auch ein farblicher Ausdruck, einer Tastaturvorlage von der Projektseite, hat schon gute Dienste geleistet.

Fazit

Für normale Benutzer, die nicht sehr viele Texte mit Sonderzeichen schreiben, brauchen sich die Arbeit nicht antun. Auch wenn viele Wörter mit der Grundzeile zu schreiben sind.

Für mich rentiert sich der Umstieg, da ich als SW-Entwickler verhältnismäßig viele Sonderzeichen verwende und viele Texte schreibe. Für Personen die das Zehn-Fingersystem noch nicht kennen und meistens an einem PC arbeiten, ist es ebenfalls von Vorteil gleich ein besser durchdachtes System zu verwenden.

Welche Programme verwendest du?

Andreas • • programme, sw, and ubuntu

Dazu einmal zuerst welche Tools ich mit Ubuntu-Linux am meisten verwende.

Gimp

Ist als Bildbearbeitungsprogramm nicht zu schlagen, leider ist die Einarbeitungszeit sehr aufwändig. Es bietet aber viele Funktionen die ich sonst nur von Adobe kenne.

Pidgin / Empathy

Sind die von mir bevorzugten IM-Tools unter Linux.

SBackup

Schon seit längeren wollte ich eine Backuplösung für meine persönlichen Daten finden. Dazu testete ich Online Lösunge, die jedoch für große Datenmengen noch nicht geeignet waren. SBackup war jedoch einfach zu installieren und funktioniert bisher auch recht gut.

Openoffice

Die unverzichtbare Büro-Software die zum Glück schon vorinstalliert ist.

Emacs

Ja ich verwende Emacs, ich halte ihn für einen guten Editor und schätze die Plugins für Org-Mode und verschiedene Programmiersprachen.

PhotoPrint

Ein sehr einfaches Tool zum drucken von Bildern. Es beinhält auch Möglichkeiten zur Verteilung von Bildern auf einer Seite.

Evolution

Dient als guter Mail-Client. Terminverwaltung, Aufgaben und Notizen sind ebenfalls leicht zu verwalten.

IDE NetBeans

Als SW-Entwickler muss einfach eine IDE installiert sein, auch wenn ich derzeit bei keinem Projekt beteiligt bin.

GnomeDO

Praktisches Tool für Schnellstart von Programmen. Es verfügt auch über praktische Docket-Leiste

Screenlets

Natürlich darf man die Screenlets nicht vergessen, die ja den Desktop ihr eigenes Aussehen verpassen!

Ich bin in diesem Punkt jedoch etwas Sparsam, ich verwende nur “FolderView”, “Wirless” und “ClearWether”.

In der aktuellen Ausgabe von FreiesMagazin März 2010 wird genauer auf das Thema Screenlets eingegangen.

Jetzt eure Top Programme

Mich interessiert natürlich auch welche Programme du als unverzichtbar erachtet, vielleicht findet sich ja ein Programm darunter das ich noch nicht kenne. Für Twitter habe ich auch noch keinen Client für x64, wird aber sicher noch kommen.

Beste Features in Ubuntu 9.10

Andreas • • desktop, ubuntu, and ubuntu 09.10

Das Beste ist natürlich sehr Subjektiv aus meiner Sicht und vor allem aus der Sicht eines Benutzers. Also hier sind meine sieben Punkte dich mich weiterhin von Ubuntu begeistert sein lassen:

  1. Java und Firefox funktionieren auch mit x64. Es ist noch immer keine Selbstverständlichkeit, dass Java leicht für Firefox einrichtbar ist. Hier ist jedoch der Gegenteil der Fall, beim ersten Besuch einer Seite mit Java-Applet wurden sofort alle notwendigen Plugins herunter geladen und funktionierte sofort.
  2. Empathy hat sich als einfacher und für mich leicht bedienbarer IM bewährt.
  3. WLAN wurde ohne sonstiges Wissen richtig erkannt und alle mir bekannten Verschlüsselungsmöglichkeiten waren vorhanden.
  4. Tolle Desktop Hintergrundbilder. Auch wenn Windows 7 hier einiges vorgelegt hat.
  5. Flash funktioniert jetzt auch problemlos mit x64
  6. RAW-Bilder von Panasonic Kamera wurden automatisch richtig angezeigt.
  7. Der Drucker funktionierte ohne besondere Einstellungen (auch Scannen)

Es hat bis jetzt noch sehr wenig Probleme gegeben, einziger Fehler war veränderte Tastaturbelegung nach Systemupdate.

Meine Bewertung nach zwei Monaten ist sehr gut, der Arbeitsaufwand mit dem System ist wirklich gering.  Damit ist diese Version eindeutig für alle brauchbar, die ihre Aufgaben ohne besondere Umwege erledigen wollen.

Video und Grafikfehler seit Ubuntu 09.04

Andreas • • farben, ubuntu, ubuntu 09.04, and video

Seit letzter Woche bin ich vom Urlaub zurück und langsam habe ich alle angefallenen digitalen Inhalte sortiert und gesichtet.

Bei den Filmen von meiner Digitalkamera im MOV(Quicktime) hatte ich jedoch eine kleine Schrecksekunde. Die Farben wirkten invertiert und auch Umwandlung in DivX machte keinen Unterschied.

Gestern nachdem meine Frau ganz aufgelöst die Installation von Windows gefordert hat, fing ich an nach einer Lösung zu suchen.

Dabei hatte ich Glück und gleich beim ersten Versuch mit Bearbeiten -> Einstellungen -> Farbton hatte ich Glück. Anscheinend waren nur die Standardeinstellungen nicht richtig und konnten mit einem Mausclick behoben werden.

Seit dem sehe ich die Videos wieder in den richtigen Farben.

Gnome-Do

Andreas • • gnome do and ubuntu

Vor kurzen las ich einen Artikel (kann ihn leider nicht mehr finden) über Gnome-do und war sofort begeistert. Bis vor kurzem verwendete ich immer die Standardstartfunktion von Gnome mit ‘Alt+F2’, hatte jedoch anfangs einige Probleme mit den richtigen Programmnamen.

Bei Gnome-Do kann jedoch auch auf den Displaynamen und Verzeichnisse Abfragen durchführen. Als Zusatzfeature können auch Befehlskombinationen angewandt werden.

Auf der Wikiseite gibt es auch noch die Verlinkung zu diesem Video:

Ubuntu One

Andreas • • ubuntu and ubuntu one

Canonical hat einen neuen Dienst gestartet der voraussichtlich für Speicherung von Daten verwendbar ist.

Dabei werden zwei Varianten angeboten 2GB freien Speicherplatz oder 10Gb für $ 10,–. Es wird dazu eine Client-Software zur Verfügung gestellt, mit der Daten synchronisiert werden können. Diese setzt jedoch Ubuntu 09.04 als mindest Anforderung voraus.

Das ganze ist aber noch in Beta-Phase und Registrierung ist erst nach erhalt einer Einladung von Canonical möglich. Um eine Einladung zu erhalten kann auf der Seite eine Anfrage abgeschickt werden.

Bis jetzt habe ich noch keinen Online-Speicherplatz zur Verfügung, um mehr als nur ein paar Dokumente abzulegen. Als kostenfreies Angebot ist das für mich ein netter Einstieg in diesen Bereich. Auf Bezahldienste möchte ich aber noch nicht zurückgreifen, da es sich für mich als Privatperson einfach nicht auszahlt.

Falls ich die Möglichkeit bekommen sollte den Dienst zu testen werde ich natürlich darüber berichten.

Update auf Ubuntu 09.04

Andreas • • ubuntu

Diese halbjährlichen Updates finde ich wirklich sehr gut. Ich weiß im voraus wann mein System wieder aktualisiert wird und vorallem wann mein System eventuell nicht verfügbar ist.

Doch jetzt habe ich schon seit Jahren keine neue Installation oder Rekonfigurierung meines privaten PC’s mehr machen müssen. Es gab bei den Updates nie Probleme und auch die Grafiktreiber wurden immer richtig neu eingebunden.

Auch dieses Jahr war Update ein voller Erfolg, als einziges Programm wurde “digikam” nicht aktualisiert sondern entfernt. War jedoch auch kein Problem, da die neue installierte Version die alten Einstellungen übernahm und wie gewohnt weiter arbeitete.

Bis jetzt hat meine Frau die Aktualisierung noch gar nicht mitbekommen und ich glaube ich werde es ihr auch gar nicht extra sagen. Ganz nach dem Motto, “was sie nicht weiß macht sie nicht heiß.”

Neue Wikiseite auf Ubuntuusers.de

Andreas • • ubuntu and wiki

Habe ich in letzter Zeit zu viel gearbeitet oder einfach nur ein paar Neuerungen verpasst?

Auf jeden Fall gibt es eine sehr übersichtliche neue Startseite für Wiki-Bereich.

Für alle die sich das gesammelte Wissen der ubuntuussers-Gemeinde näher ansehen möchte ist hier der Link.

Mehr als pünktlich, Release Ubuntu 09.04

Andreas • • release, ubuntu, and ubuntu 09.04

So jetzt war es wieder einmal so weit, Ubuntu hat seinen Release wieder genau am versprochenem Tag freigegeben. Für mich als SW-Entwickler ist das immer wieder ein kleines Wunder, wenn ein Projektabschluss so genau eingehalten werden kann.

Zum installieren hatte ich leider noch keine Zeit, aber für alle die an Verbreitung über Torrent mithelfen wollen hier Link zu Ubuntu-Torrentseite.

Eine ausführliche Beschreibung über Update von Ubuntu findet sich auf ubuntuusers.de

F-Spot Bilder zuschneiden

Andreas • • bildbearbeitung, f-spot, and gimp

Seit ich eine Kamera mit einer Auflösung von 14MPx habe, kann ich es mir leicht leisten ein paar zu entfernen, um nur die Bereiche im Bild zu haben die ich auch sehen möchte.

Meistens war das Werkzeug meiner Wahl “gimp”, war aber für den schnellen Einsatz einfach etwas zu umständlich.

Bei meinem letztem Bilderupload zu Flickr, für diesen Zweck verwende ich ebenfalls F-Spot, probierte ich einmal die Funktion “Bearbeiten”->“Zuschneiden” und war eigentlich mit den Möglichkeiten zufrieden.

Leider ist die Funktionalität etwas versteckt, deshalb beschreibe ich jetzt meinen Weg zu den Einstellungen.

Menü Bearbeiten

Wird ein Bild bearbeitet, wechselt F-Spot in den Bearbeitungmodus. Das Menü für die Bearbeitung wird dadurch aber noch nicht unbedingt geöffnet. Mittels Dropdown kann gewünschtes Menü angezeigt werden.

Danach wirden alle Möglichkeiten der Bearbeitung angezeigt.

In unserem Fall ist “zuschneiden” interessant.

Der Button Zuschneiden sollte nur gewählt werden, wenn noch keine Auswahl getroffen wurde. Bei bestehender Auswahl wird diese sofort zugeschnitten.

Wahl des Auswahlformates

Standard ist freie Auswahl des Seitenverhältnis.

Als Dropdown sind jedoch alle gängigen und selbst definierte wählbar.

Über “Selbstgewählte Bildformate” kann ein neuer Eintrag in dieser Liste erstellt werden.

Die Zahl im Bildformat steht für Seitenverhältnis. So ergibt 15:10 (3:2 standard Fotoformat) = 1,5

Nicht vorhandene Funktionen

Leider kann die gewünschte minimale Druckqualität (dpi) hier nicht gewählt werden, es wird auch die gewählte Größe in Pixel nicht angezeigt.

Für Personen die gedruckte Bilder selber schneiden oder Überfüller benötigen gibt es hier auch keine Einstellungsmöglichkeiten.

Fazit

Für die meisten privaten Anwender sollten diese Funktionen trotzdem ausreichen und ist vorallem wesentlich schneller zu bedienen, als jedes Bild mit Gimp zu öffnen und dort Bearbeitung durch zu führen.

Wer die oben genannten Funktionen benötigt kommt weiterhin nicht an Gimp vorbei.

Ubuntu Start up Settings

Andreas • • autostart, session, sitzung, and uncategorized

Seit einiger Zeit bin ich wieder vermehrt mit Pidgin in Kontakt. Diese kleinen Helfer für Kommunikation mit Freunden und Arbeitskollegen hat jedoch selber keine Funktion um gleich beim Systemstart verfügbar zu sein.

Zum Glück gibt es von Ubuntu Sitzungseinstellungen, bei denen jedes beliebige Programm für Autostart definiert werden kann.

Im Menü System->Einstellungen->Sitzungen

(in englischer Umgebung System->Settings->Session)

Danach ist nur noch Name und Befehl zu vergeben und schon startet Pidgin bei jedem Start.

Spam Kommentare

Andreas • • uncategorized

Für Blogleser bin ich noch ein sehr unbekannter Blogger und habe erst ein paar Kommentare. Eine ganz andere Gruppe hat mich jedoch als interessant genug erachtet, nämlich die Kommentarspammer.

Dabei ging ich davon aus erst nach mehreren Monaten mit diesem Thema konfrontiert zu sein, aber andere haben die Entscheidung für mich getroffen. Als unerfahrenes Spam-Opfer habe ich beim Verschieben der Inhalte gleich noch ein paar genehmigte Kommentare als Spam markiert, diese werde ich so schnell wie möglich wieder herstellen.

Für den Rest werde ich jetzt endlich Spamfilter einrichten.

DVB-T und Ubuntu

Andreas • • dvb-t, linux, pinnacle, ubuntu, uncategorized, and v4l

Vor ca. einer Woche bekam ich Aufgabe, einen DVB-T USB-Stick für das Ubuntu-Notebook meiner Eltern auszuwählen und zu insallieren.

Meine Wahl fiel dabei auf Pinnacle DVB-T Stick Solo 72e, ein eher Preisgünsitiges Modell für ca. € 35,- im Handel erhältlich. Im Vorfeld prüfte ich auf der UbuntuUsers Seite, ob dieser auch funktioniert.

Funktioniert hat der DVB-T Stick auf Anhieb, dazu habe ich folgende Anleitung befolgt.

Firmeware kopiert:

cd /lib/firmware
sudo wget http://www.wi-bw.tfh-wildau.de/~pboettch/home/linux-dvb-firmware/dvb-usb-dib0700-1.10.fw

Danach Video4Linux kompelieren, benötigt werden dazu die Kernel Header zum verwendeten Kernel.

wget http://linuxtv.org/hg/v4l-dvb/archive/tip.tar.bz2 tar tip.tar.bz2 cd v4l-dvb.... make all sudo make install sudo reboot

Nach Neustart einfach DVB-T Stick anstecken, zur Prüfung ob alles funktioniert hat den Befehl

dmesg | grep dvb

eingeben. Sollte dort etwas von “Cold State” und Firmware “dib0700-1.20.fw” stehen Firmware umbenennen, sonst steht dort das Treiber erfolgreich geladen wurde.

Danach kam noch der Teil zum einrichten von Kaffeine, einer Software um Filme anzuzeigen.

Erster Schritt war Sendersuche mittels w_scann, in dem Downloadfile ist auch schon ein Build vorhanden. Sollte dieser nicht funktionieren, kann dieser mittels “make” neu erstellt werden. Fragt mich nicht warum aber bei mir war das notwendig, vermutlich lag es an Unterschied bei Kernel-Version.

Befehl zum Ausführen des Sendersuchlaufes und anlegen von dvb-t Verzeichnis falls noch nicht vorhanden.

mkdir ~/.kde/share/apps/kaffeine/dvb-t ./w_scan -x > ~/.kde/share/apps/kaffeine/dvb-t/at-wels

Danach wird Kaffeine mittels

kaffeine -dvb

aufgerufen. Dort kann das neu erstellte File gewählt werden und nach den Einstellungen darin nach Sendern gesucht werden. Als kleine Hilfe wird dabei auch die Signalstärke angezeigt.

Quellen aus denen Aufrufe stammen:

Text in File suchen, Console und GUI

Andreas • • gedit, grep, php, uncategorized, and wordpress

Zum Wochenende hatte ich das Vergnügen meine erste WP-Erweiterung in Form von Page-Templates zu erstellen.

Als richtiger Ubuntuuser blieb mir nicht viel übrig als gedit zu verwenden. Schon nach  den ersten Zeilen gingen mir das vertraute Autocomplete ab, die Suche nach Text in Files beherrschte ich auch nicht und zu guter Letzt kenne ich auch WP-PHP Struktur gar nicht.

Zum Glück erinnerte ich mich noch an ein paar Commandline Befehle und mit Hilfe von diversen Seiten ging es dann doch recht Flott.

Falls einmal jemand von euch in die Verlegenheit kommen sollte, schnell in einem Programm etwas zu ändern zu wollen, hier ein paar Tipps.

Suche nach Text in mehreren Files:

Code Dokumentation mit vielen Beispielen:

Den für meine Erweiterung erstellten Code werde ich im Hauptblog veröffentlichen, vielleicht findet sich ja noch wer der ein richtiges Plugin daraus machen möchte.

Ein angewandtes Beispiel für die Pagetemplates kann in einigen Tagen auf ganz-ohne-technik Seite besichtigt werden.

Wie bloggst Du?

Andreas • • blog, uncategorized, and wordpress

Den Möglichkeiten sind ja keine Grenzen gesetzt, fast jedes Mobil-Telefon und PDA kann dafür genutzt werden. Als Klassikern gibt es Note/Netbook und PC.

Auch bei den Publisher-Applikationen gibt es schon sehr viele, dieser Blog wird mit Wordpress betrieben und ehrlich gesagt habe ich gar nicht mehr als diese ausprobiert.

Mein derzeitiger Arbeitsablauf ist, Vorlage mittels Palm-PDA anlegen und Abschluss mit Links und Formgebung am PC. Die Blogs schreiben und dabei immer vor dem PC sitzen währe mir zu langweilig und vom Ablauf zu langwierig, da ich noch über eine richtige Workstation verfüge die immer am gleichem Ort steht. Mich würde interessieren wie ihr das macht und welchen Ablauf ihr bevorzugt. Im Kommentarfeld sollte dazu genug Platz zum austoben sein.

Dieser Artikel wird voraussichtlich der letzte Beitrag zu Bloggen übers Bloggen sein, danach werde ich wieder über meine geplanten Hauptthemen SW und Ubuntu/Linux schreiben.

Weil ich auch schon mehrmals auf den Zeitaufwand für schreiben von Beiträgen gefragt wurde, dazu auch noch ein Kommentar. Die Artikel schreiben sich sehr schnell, die meiste Zeit benötige ich noch immer für Konfiguration, suchen nach Widgets und Plugins. Dadurch ist schon so mancher Abend vorbei gegangen.

Feedburner und Werbung

Andreas • • feedburner, uncategorized, and werbung

Trotz aller Bedenken die ich bei Feedburner hatte, gehen jetzt alle neu abonnierten Feeds über Feedburner. Der Grund dafür ist, ich habe sonst keine Möglichkeit gefunden die Zugriffe auf meine einzelnen Blogs zuordnen zu können. Sonst habe ich keine Zusatzstatistiken eingestellt und bin auch nicht mehr als an den Abonniertzahlen interessiert.

Werbung als wird es in sehr beschränktem Maße zwischen Artikel und Kommentarfeld geben.

Es gibt jetzt auch Twitter-Account mit Namen andistweety Also “verfolgt” mich so lange ihr wollt. Die Einbindung in diesen Blog wird jedoch noch etwas Zeit benötigen. Auch bin ich mir nicht sicher wie intensiv ich Twitter benutzen werde, aber ein Link alle zwei Wochen wird sich schon ausgehen.

Blog for a living

Andreas • • blog, copyblog, and uncategorized

Bin vor kurzem auf Artikel in CopyBlog gestoßen in dem Jon Morrow über, schreiben eines Blogs berichtet. Er stellt dazu drei Punkte auf, was aus seiner Sicht das Bloggen einem zu einen erfolgreichen Blogger macht.

Also für alle Blogger oder die es gerne werden möchten sehr lesenswert.

Ubuntu Release Roadmap

Andreas • • uncategorized

In ein paar Wochen(23.April) ist es wieder so weit und das neue Ubuntu Jaunty Jackalope 9.04 frei gegeben wird. Dieses mal musste ich leider die Finger von den Alpha-Versionen lassen, da meine Frau bei Version 8.04 ausdrücklich darauf bestanden hat, bis zum nächsten LT-Version 10.04 zu warten. Nach Release werde ich aber sicher einen Grund finden doch gleich Update machen zu können. Aber für die Zeit bis dahin habe ich schon Ablenkungsprojekt von meinen Eltern bekommen, die auf ihrem Ubuntu-Notebook TVB-T nutzen wollen.

Werde über Auswahl, Preis, Probleme beim installieren und die kleinen Überraschungen die es immer gibt berichten. Wenn jemand von euch schon Produkte getestet hat, könnt ihr das als Kommentar festhalten, mir hilft es sicher.

ColorKey mit Gimp

Andreas • • colorkey, gimp, and uncategorized

Farbe in Bildern ist immer ein wichtiges Element. Bilder in denen markante Farbelemente vorkommen, wie rote Lippen ein buntes Kleid oder Blüten, können andere farbige Elemente als störend empfunden werden, um diese zu entfernen kann man die ColorKey-Technik anwenden. Es gibt dazu mehrere Ansätze bei digital-workshop von Christian Fiedler

Für alle die das einmal ausprobieren möchten eine leichte Beschreibung wie das mit Gimp möglich ist.

Um Auswahl und Füllung zu umgehen kann auch ein Pinsel oder Stift mit Farbe Weiß zum Ausmalen verwendet werden. Viel Vergnügen beim ausprobieren.

Mit Gimp Bilder zensurieren

Andreas • • gimp, uncategorized, verpixeln, and zensieren

Aber jetzt mal wieder einen Artikel der wieden in diesen Blog passt. Schließlich soll es hier ja um Linux bzw. Ubuntu gehen.

Julia hat in ihrem Blog Screencast erstellt in dem gezeigt wird, wie man im Photoshop mittels “Mosaik”-Filter Bereiche in Bildern unkenntlich machen kann.

Für alle die nicht die Möglichkeit haben Photoshop zu nutzen, nun eine kurze Screenshot-Serie zur Verwendung des “Verpixelung”-Filters in Gimp.

Ablauf ist gleich wie auf Screencast von Julia:

Fertig ist das anonyme Bild.

Mobile Geräte und schnelles Ablaufdatum

Andreas • • apple, betriebssystem, palm, s60, and uncategorized

Mit den neuen mobilen Telefonen von Apple, Google und Palm plus drei eigenen Betriebssystemen, gibt es anscheinend eine Neuauflage der schon überstandenen geglaubten Handheld bzw. PocketPC Ära. Für diesen Anlauf sind die Produkte jedoch vielversprechender, da sich die Geräte vom PC emanzipiert haben und über Web-Services zu einer Kommunikationsplattform wurden die weit über normales Telefonieren und Mail schreiben hinaus geht. Ich persönlich glaube jedoch, dass es für die Benutzer trotzdem nicht leichter wird langfristig mit diesen Produkten zu arbeiten.

Das Problem bei diesem Gerät bzw. auch bei meinen Mobiltelefon mit S60 Betriebssystem ist, dass es nie ein Update zur nächsten Betriebssystemversion geben wir. Zumindest war das bei allen Windows CE und Palm Systemen die ich bis jetzt besessen habe. Dadurch wurden viele Geräte unbrauchbar, obwohl sich technisch noch funktionierten.

Aus meiner jetzigen Sicht der Dinge werde ich abwarten, bis die Wahl bzw. Aktualisierbarkeit von Betriebssystemen möglich ist.

Aber die neu gebotenen Funktionen würden mir schon gefallen..

RSS-Reader

Andreas • • bloglines, google reader, liferea, newsalloy, rss reader, and uncategorized

Bis vor kurzen habe ich zwar Blogs gelesen, aber fast keine Feeds-Abboniert. Das hat sich seit ich meine Blogs gestartet habe stark verändert und damit ist auch das Interesse an verschiedenen Readern immer größer geworden.

Meine ersten Schritte machte ich mit Thunderbird. Dieses Tool hat mich aber etwas enttäuscht, da sich bei einigen Blogs Beitrag nicht aktualisiert wurden und das Programm sich auch durch keine Mittel überzeugen lassen wollte neue Nachrichten anzuzeigen.

Jetzt bin ich auf der Suche nach einer einfachen Online-Lösung oder einen leicht bedienbaren Reader.

Auf meinem privaten Gerät befindet sich Liferea, was wirklich eine einfache Lösung für mich ist. Auch Plugin(evolution-rss in Ubuntu Paketquelle) für Evolution währe verfügbar verwende ich aber nicht.

Online Reader gibt es ja auch schon wie Sand am Meer, am besten haben mir die Seiten von Bloglines und Newsalloy gefallen. Als Mitläufer und angestiftet durch meine Arbeitskollegen ist es jedoch der Google Reader geworden.

Natürlich sind Tipps und Empfehlungen willkommen, man muß ja nicht auf ewig Google-Reader verwenden.

Mencoder, Quicktime to DivX

Andreas • • uncategorized

Dank einer neuen Kamera mit 14MPx und Videoauflösung von 1280x720 ist bei mir die digitale Datenflut so richtig losgebrochen.

Lokal am PC sind die Dateigrößen von Bild ca. 6MB und Video 250MB/Minute noch verkraftbar, für Verteilung an Freunde stellt das schon größere Anforderungen. Da geht jeder Mail-Server bei einem 1 Minuten Video in die Knie.

Als Lösung für mich habe ich “mencoder” ,ist in Paketquellen von Ubuntu enthalten, gefunden. Wobei mir die fehlende GUI fast davon abgehalten hat. Als Alternative gibt es auch noch FFmpeg, der Funktionsumfang ist dort anscheinend ziemlich gleich.

Falls noch jemand auf der Suche nach einem geeigneten Konverter für Filme ist, fasse ich hier die Quellen und meinen Aufruf hinzu.

Quicktime to DivX:(hat bei mir in guter Qualität geklappt)

mencoder Quelle.MOV -oac mp3lame -ovc xvid -of avi -xvidencopts bitrate=1400000:me_quality=6:aspect=16/9 -vf scale=640:360 -o output.avi

Wer bei Audio auf Qualität setzt ist auch mit Option “copy” oder “pcm” gut bedient.

Quelle, Bitrate, Quality, Seitenverhältnis, Skalierung und Output sollte natürlich an Bedürfnisse angepasst werden. Bei Test ist bei “me_quality” herausgekommen das “6” der Höchstwert ist.

Zu Quellen auf denen ich Informationen gefunden habe:

Freeburner, Konkurrenz ist gefragt

Andreas • • analytic, blog, feedburner, konkurrenz, and uncategorized

Ich bin ja noch sehr Jung als Blogger, aber im wirklichem Leben gibt es fast für jedes Produkt eine Konkurrenz.

Bei Rss-Feedburner scheint es das nicht zu geben. Mann kann als alternative nur das nativ RSS von seiner Bloggersoftware verwenden und hat dafür auch keinen Überblick wie oft Feed abonniert wurde.

In Foren habe ich zwar Fragen nach Alternative und Diskussion über Datenschutzgefunden, aber die gingen für mich etwas in die falsche Richtung. Auf jeden Fall gibt es dazu zwei Meinungen. Die Erste “ich brauche nicht unbedingt eine Statistik” und die Anderen die nehmen Feedburner.

Für mich ist das noch nicht entschieden, ich habe kein Problm meinen Feed bei Google Feedburner zu registrieren, schließlich möchte ich ja das Inhalte meiner Seite verbreitet werden. Meine Hauptbedenken gehen dabei in eine andere Richtung. Nämlich die Frage, möchte ich das Leseverhalten meiner Blogleser an Google weitergeben? Für einen Werbetreibenden wie Google ist das gar nicht so uninteressant, da er geschickt den Benutzerkontext mit dem Kontext der besuchten Seite oder der Google-Suche in Verbindung bringen kann.

Dazu gibt es noch ein paar Links zu interessanten Artikeln zu diesem Thema “Do you realy need Feedburner” , “Why I Do Not Use Feedburner“und “Alternative Analytics”.

Da ich die Funktionen nutzen möchte, die Feedburner zur Verfügung stellt, werde ich wahrscheinlich meinen Feed dort registrieren. Wenn möglich werde ich den Lesern die Möglichkeit geben auch den Standard zu benutzen.

Falls Du auch vor der Wahl stehst oder die Wahl schon getroffen hast würden mich natürlich die Beweggründe dazu interessieren.

Wordpress Access Denied

Andreas • • uncategorized

Heute habe ich es geschafft, ich habe gleich zwei meiner Blogs offline gestellt und alles nur weil ich eine schönere URL (Permalink) zu den Posts haben wollte. Nach Recherche in WP-Forum wusste ich das dieses Problem viele Nutzer betrifft und ein File .htaccess dafür verantwortlich ist und genau diese konnte ich nicht finden.. Da ich auch nur über Web-Space verfüge, wusste ich zuerst nicht einmal ob ich das alleine beheben kann. Zum Glück las ich in einem Forum, dass nicht jeder FTP-Client versteckte Files anzeigt. So probierte ich WinSCP und dieser zeigte verstecktes File .htaccess an. Nach dieser Geschichte noch Beschreibung wie man “Permalink” zurück setzen kann.

  1. in Tabelle wp_option Eintrag permalink_structure finden und Value löschen.
  2. File .htaccess im Root-Verzeichnis finden und entfernen.

Rss und mein Blog

Andreas • • blog, rss, and uncategorized

Als Neuling beim Bloggen habe ich mir einen Artikel über “was stört bei Blogs” durchgelesen. Natürlich musste ich gleich im Anschluss meine Blogs testen. Dabei schnitt ich recht schlecht ab, da meine Blogs noch einen Schritt hinter den angegebenen Punkten war.

Hauptproblem war, man konnte nicht einmal einen Feed öffnen, auf Vollständigkeit der übergebenen Werte konnte nicht einmal abgefragt werden.

So für heute Blogge ich nicht mehr, sondern berichtige alle Einstellungen die ich noch nicht gesetzt habe.

Multi Media Center

Andreas • • apple tv, bluray, dvb, dvd, multi media, playstation3, popcorn hour, and uncategorized

Alle heiligen Zeiten und da vor allem bei schlechtem Wetter, suche ich unter Google nach “Multimedia Center”.

Wie immer fand ich dabei nicht die richtige Lösung, auch weil ich die gewünschten Anwendungsbereiche noch immer nicht richtig definieren kann.

Da bevorzuge ich einmal Standardlösungen wie “Einzelkomponenten” DVD/BluRay , DVB-S und mini PC um auch digitale Inhalte aus dem Netz konsumieren zu können. Je schlechter das Wetter ist kommen noch andere Produkte wie vollwertige PC mit BluRay, DVB-S und Heimnetz, PlayStation3 oder kleinst Geräte wie von PopCorn Hour oder Apple TV in betracht.

Würde mich interessieren welche Produkte von euch verwendet werden oder welche ihr empfehlen könnt.

Benachrichtigungen und Alerts in Ubuntu Gnome

Andreas • • gnome, mark shuttleworth, notification, ubuntu, and uncategorized

Laut Mark Shuttleworth soll in der neuen Version von Ubuntu 9.04 das neue ‘Notifications’ System enthalten sein.

Das System soll es ermöglichen, Programmen die nicht im Fokus sind, eine Benachrichtigung am Desktop ausgeben zu können.

Bin schon gespannt, ob diese Funktionalität auch bei anderen Distributionen enthalten sein wird oder ob es eine Vielzahl von unterschiedlichen Lösungen für diese Funktionalität geben wird. Auch wie Benachrichtigungen aus Gnome fremden Anwendungen wie Amarok oder DigiKam aussehen wird, ist für mich noch nicht ersichtlich.

Photoprint für alle die ihre Fotos unter Linux selber drucken

Andreas • • uncategorized

Eigentlich dachte ich immer es gibt keine guten Programme zum Drucken von Bildern unter Linux, um mehrere Bilder auf eine Seite zu bekommen war immer längeres arbeiten mit Gimp notwendig. Da das keinen Spaß macht wurden immer alle Bilder auf Windows übertragen und von dort ausgedruckt.

Auf dauer war das jedoch auch nichts. Deshalb suchte ich nach einem Ausweg, um zumindest die gleiche Funktionalität wie unter Windows zu erhalten. Gefunden habe ich PhotoPrint und bin damit mehr als zufrieden. Ist auch mindestens seit Version Ubuntu 08.04 in SW-Quellen enthalten.

Die wichtigsten Funktionen für mich sind:

Falls du ebenfalls mit diesem Problem schon einmal konfrontiert warst, würde mich interessieren welches Tool diesen Zweck bei dir erfüllt.

GTD mit FreeMind

Andreas • • freemind, gtd, sharepoint, sw, and uncategorized

Bin derzeit wieder sehr an GTD und diversen Möglichkeiten, einen Überblick bei den zu erledigenden Aufgaben zu erhalten.

Durch eine mögliche Erweiterung der Firmensoftware auf MS Sharepointserver, ist eine richtige Diskussion über die notwendigen Funktionen entbrannt. Bin schon richtig gespannt in wie weit die Erwartungen daran erfüllt werden können.

Persönlich verwende ich ja FreeMind und bin eigentlich sehr zufrieden mit dem Werkzeug. Für Firmenzwecke ist natürlich ein fehlender Abgleich der einzelnen Tools und Maps von Nachteil.

Falls es wirklich zu einem Einsatz von MS-Sharepointserver kommen sollte werde ich einen Erfahrungsbericht darüber veröffentlichen.

Bis dahin verwende ich weiterhin mein Lieblingstool.