Nik Collection im Angebot

01.04.13_16_01-BildschirmkopieNachdem Google Nik Software übernommen hat gibt es nun die Komplette Nik Collection besonders günstig. Für nur 149 $ erhält man das Vollständige Paket mit

  • HDR Efex Pro 2
  • Color Efex Pro 4
  • Silver Efex Pro 2
  • Viveza 2
  • Sharpener Pro 3
  • Dfine 2

Wer die Software erstmal testen möchte kann sich unter www.niksoftware.com das aktuelle Paket runter laden.

Wer sich schnell entschließt kann sogar noch mehr sparen. Bis zum 02.04.2013 gibt es mit dem Code “northlight” nochmals 15% Rabatt.

Wollen wir hoffen das diesem tollen Filterpaket der Google Reader Effekt ersparen bleibt…

RWE Smarthome Aktivitätsprotokoll automatisch sichern

RWE Smarthome ist ein toller Ansatz um sein zu Hause etwas “intelligenter” zu machen.
Seit der neuen Firmeware vom 30.11.2012 bietet die Software sogar die Möglichkeit um die Aktivitäten der Sensoren und Aktoren zu protokollieren.

19.02.13_14_08-BildschirmkopieLeider ist das RWE Smarthome nicht smart genug das Protokoll automatisch zu versenden oder für mehrere Tage zu führen. Aber dem kann mann zum Glück mit ein paar wenigen Zeilen Python Abhilfe schaffen. Dazu benötigt man nur einen Rechner der Python kann, einen kleinen Raspberry Pi oder einen Webserver mit Python wie etwa von uberspace.

Man muss nur noch das Modul “mechanize” zu seinem python hinzufügen und schon geht es mit ein paar wenigen Zeilen zu Sache.

import mechanize
import datetime
import time

#Dateinamen mit Aktuellen Datum setzen
dateiname=str(datetime.datetime.now())
dateiname='export_'+dateiname+'.csv'

#Einlogen bei dem Smarthome Webinterface
br = mechanize.Browser()
br.open('https://mobile.rwe-smarthome.de/MobileWEb/Logon/Logon')
br.select_form(nr=0)
br['UserName'] = 'Username' # Anmeldename für Smarthome
br['Password'] = 'Passwort' # Passwort
br.submit()
time.sleep(1)

#Dateiexport starten
download = br.open('https://mobile.rwe-smarthome.de/MobileWeb/Devic
eActivityLogging/Export')

# und in die Datei schreiben
file=open(dateiname,"w")
file.write(download.read());
file.close()
#habe fertig

Nun muss man das ganze nur noch ein den Sceduler seiner Wahl eintragen und schon hat man ein tägliches Backup des Aktivitätenprotokolls. Mit ein paar Zeilen kann man die Liste auch zu seinem Google Drive oder seinem cosm Feed hinzufügen.

Die eigene Cloud

Es ist ja jedem selbst überlassen wo er seine Daten speichert. Aber manch einer möchte nunmal seine privaten Daten nicht in den Händen von Google, Facebook oder Amazon wissen.
Wenn man aber nun nicht auf den Komfort der eigenen Cloud verzichten möchte musste bisher meistens seinen eigenen Server hosten und administrieren. Diesen nicht zu unterschätzenden Aufwand kann man mittels der offenen owncloud umgehen.

Über die owncloud hat man Zugriff auf seine wichtigsten Daten. Sie bietet einem Zugriff auf  Dateien, Kalender und Kontakte. Der Zugriff läuft dabei über CalDAV, CardDAV und WebDAV, eigene Desktop und Mobilapps erleichtern neben der Webseite den Zugriff noch weiter.
Natürlich bietet die neue Version 4.0 nun eindlich auch eine Versionierung der Dateien sowie eine Wahlweise Verschüsselung der auf dem Server abgelegten Daten an. Natürlich sollte man aber sowohl auf die Webseite wie auch auf die Daten mit SSL zugreifen.

Das tolle an owncloud ist, das dass Paket sich auch wunderbar auf uberspace.de hosten läasst. uberspace bietet sich dazu an da der Hoster neben einem guten Mix an Funktionen auch einen kostenlosen Testmonat anbietet. So lässt sich die owncloud problemlos testen, und wenn es alles passt kann man dan einfach den testaccount bei uberspace entsprechend mit Guthaben bestücken und verlängern.

Sobal wir nun unseren uberspace angelegt haben können wir auch schon mit der Installation der owncloud beginnen. Als erstes müssen wir dazu in das html Verzeichnis wechsen und das Installationspaket herunterladen:

cd html
wget http://owncloud.org/owncloud-download-4-0-0

Danach müssen wir nur noch die Datei entpacken und das Archiv löschen:

tar -xjf owncloud-4.0.0.tar.bz2
rm owncloud-4.0.0.tar.bz2

Schon ist die Unixseite abgeschlossen, alle Rechte sind soch so gesetzt wie wir sie brauchen. Nun muss man nur noch die Webseite über https://mein.space.uberspace.de/owncloud ansurfen und dort die Reste der Installation abschließen.

Schon kann man starten.

Start des Arduino Panobot Projekts

Mein Ziel ist es schöne Panoramen mit meiner Spiegelrelfex zu schießen.
Was für eine Gelegenheit um mal wieder was mit dem Arduino zu basteln….

Also ran ans Werk!

Mein Ziel:

  • Kugelpanoramen mit der Spiegelreflex automatisch abzufahren
  • Die Steuerung soll flexibel auf verschiedene Brennweiten angepasst werden können
  • Die Steuerung soll sowohl im APS-C als auch im Vollformatmodus arbeiten können
  • Die DSLR (Canon EOS 400d) soll per USB ausgelöst werden

Serverumzug ins All

NextIT ist umgezogen.

Ab heute läuft die Domain auf einem uberspace.

Uberspace.de verfolgt einetwas ungewöhnliches Konzept der Preisgestalltung. Der Anwender sucht sich seinen Preis für das hosting selber aus. Einzige Bedingung: es muss mehr als ein Euro im Monat sein.

Aber dafür gibt es ein unschlagbares Paket bestehend aus:

SSH. Perl. PHP. Python. Ruby. node.js. Erlang. Lua. Compiler. FastCGI. MySQL. CouchDB. MongoDB. Cronjobs. HTTPS. IMAP. SMTP. Webmail. qmail. vmailmgr. maildrop. Spam­Assassin. ezmlm-idx. DSPAM. ~/service. runwhen. Eigene Logs. Backups.

Das andere tolle bei uberspace.de ist der Support. Wenn man ein Problem oder eine Frage hat einfach eine Mail an die Jungs schicken und innerhalb von wenigen Minuten hat man schon eine Antwort.

Das ganze ist doch mal eine erfischend klare Ansage in Richtung Hosting. Kein Ärger mit Vertragslaufzeiten, kein “das geht bei uns nicht, der Admin ist zu doof dafür”, nur Freiheit.

Das ganze ist wie ein root-server ohne den Ärger -  und somit schwerstens zu empfehlen.

SIM Probleme mit dem iPhone 4s

20111016-220131.jpg
Am Freitag kam pünktlich mein neues iPhone 4s. Bei dem auspacken des kleinen Schatzes war dann meine Welt noch in Ordnung. Schönes Design, alles dabei und ich war glücklich!
Aber dann kam die erste Ernüchterung.

Das kleine iPhone Tat sich mit meiner SIM schwer.

Erst hat es lange gedauert bis die PIN akzeptiert wurde und dann wurde kein Netz gefunden.

Nach vielem suchen und neuem wiederherstellen des iphones wurde ich dann bei O2 fündig.

20111016-220856.jpg
Und siehe da, nach dem abschalten der SIM PIN funktionierte alles wie geschmiert. Laut O2 soll es sich dabei aber um ein generelles Problem handeln. In wie weit die SIM Karten oder das iPhone die Ursache darstellen ist noch nicht geklärt.

das neue iPhone 4s. Evolution statt Revolution

Das iPhone 4s erfüllt voll und ganz meine Erwartungen, auch wenn es meine Hoffnungen doch etwas enttäuscht.
Seien wir doch uns allen gegenüber ehrlich:

Apple setzt bei (eingeführten) Produktlinien eher auf Evolution als auf Revolution!

Und dieses langsame verbessern der Produktlinie ist, wenn nicht das Geheimnis des Erfolges, dann doch wenigstens das Geheimnis der profitablität von Apple. Nicht zuletzt durch das Festhalten an einigen wenigen Produktlinien, die dann auch verhältnismäßig lange gefahren werden, spart Apple erhebliche kosten die andere Firmen in den Aufbau neuer Produktionsstraßen für Ihre Geräte stecken müsssen.

Wenn wir nun dem gegenüber das iPhone mit dem Markt vergleichen bietet das iPhone 4 selbst in der jetzigen Austattung eine zumindest so gute Figur, das es scheinbar immernoch einen verhältnismäßig hohen Absatz findet. Die Displayqualität des aktuellen Modells ist immernoch grandios und selbst die gefühlte CPU Leistung hängt zum Teil andere Modelle mit Dual Core CPU ab.

Wenn wir nun vor diesem Hintergrund das iPhone 4s mit den Mitbewerbern vergleichen erwarte ich, das der Verbaute A5 aufgrund der höheren Optimierung und der schnelleren Anbindung des Arbeitsspeichers alle Mitbewerber in der Performance abhängen durfte. Selbst bei der Kamera erwarte ich das sie sich als das beste aktuell in Mobiltelefonen verbaute Modell erweist. Sorgen sollten sich nach der Einführung von AirPlay Mirroring allenfalls Nintendo und Sony um Ihren Konsolenmarkt machen! Das Fehlen von LTE oder WIMAX im iphone ist kein Fehler von Apple, sondern bildet korrekt den aktuellen technischen Stand nach. Weder LTE noch WiMAX weisen eine ausreichende Netzabdeckung aus. Jedoch sorgen beide für einen höheren Stromverbrauch. Den einzigen Vorwurf den man Apple machen könnte ist das Festhalten am 3,5″ großen Display. Aber Größere Displays führen auch zu größeren Mobiltelefonen. Und manchen ist ja selbst noch des iPhone 4 zu groß.

Aber nicht das iPhone ist die wahre Neuerung die von Apple dieses Jahr kommt. Die iCloud ist es! Und leider halte ich die iCloud auch für den Grund das das iPhone 4s erst jetzt kommt.
Mit der iCloud und iOS5 bietet Apple den Größten komfort den man auf dem Markt finden kann (wenn es kein MobileMe Fiasko wird).

Aber das iPhone 4s nebst den technischen Daten täuscht über die wahre Stärke von Apple hinweg. Apple bietet mit seinem gesammte Ökosystem aktuell das beste Paket am Markt. Kein Mitbewerber kann aktuell Hardware, Software, Musik, Filme und Bücher aus einer Hand vertreiben. Kein Andere Mitbwerber hat die gesamte Wertschöpfungskette seiner Produkte so gut im Griff wie Apple. Einzig Amazon könnte in diesem Bereich Apple an den Karren fahren. Aber denen fehlt der Sex in den Produkten….

Für mich macht es aber nun die Entscheidung schwer. Bisher habe ich an meinem iPhone 3gs festgehalte weil das iPhone 4 mir zuwenig neues bot um innerhalb eines Jahres wieder soviel Geld raus zu werfen. Aber wenn ich mir jetzt das iPhone 4s kaufe und dann im Juni ein iPhone 5 kommen würde, würde ich mich über mich selbst ärgern.

Oracle – Erstellen einer Tabellen aus einem Select –in schön–

Viele Wege führen nach Rom. Oder zu einer CSV Datei. In “Oracle: Erstellen einer .csv Datei aus einem Select” hatte ich einen einfachen weg gezeigt, wie man eine Abfrage direkt als csv Datei ausgeben kann.

Natürlich gibt es, falls man Zugriff auf den Oracle Server hat, eine elegantere Methode:
Erstellen einer Procedure, die per utl_file eine csv Datei erzeugt:

CREATE OR REPLACE FUNCTION  dump_csv( p_query IN varchar2
  , p_separator IN varchar2 DEFAULT ','
  , p_dir  IN varchar2 ,  p_filename  IN varchar2 )
RETURN number
AUTHID CURRENT_USER IS
    L_output utl_file.file_type;
    l_theCursor     integer DEFAULT dbms_sql.open_cursor;
    l_columnValue   varchar2(2000);
    l_status        integer;
    l_colCnt        number DEFAULT 0;
    l_separator     varchar2(10) DEFAULT '';
    l_cnt           number DEFAULT 0;
begin
    l_output := utl_file.fopen( p_dir, p_filename, 'w' );
    dbms_sql.parse(  l_theCursor,  p_query, dbms_sql.native );
    FOR i IN 1 .. 255 loop
        begin
        dbms_sql.define_column( l_theCursor, i, l_columnValue, 2000 );
        l_colCnt := i;
        exception
        when others then
            IF ( sqlcode = -1007 ) then exit;
        else
            raise;
        end IF;
        end;
    end loop;
    dbms_sql.define_column( l_theCursor, 1, l_columnValue, 2000 );
    l_status := dbms_sql.execute(l_theCursor);
    loop
    exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 );
        l_separator := '';
        FOR i IN 1 .. l_colCnt
        loop
            dbms_sql.column_value( l_theCursor, i, l_columnValue );
            utl_file.put( l_output, l_separator || l_columnValue );
            l_separator := p_separator;
        end loop;
        utl_file.new_line( l_output );
        l_cnt := l_cnt+1;
    end loop;
    dbms_sql.close_cursor(l_theCursor);
    utl_file.fclose( l_output );
    RETURN l_cnt;
end dump_csv;

Die eleganz liegt darin, das man das Select nicht fest konfiguriert, sondern als Paramter an die Fuktion liefert. Über das Oracle Package dbms_sql wird dann das select zur Laufzeit abbildet.

Aufrufen kann man das dan mit einem einfach PL/SQL Block:


declare
l_rows  number;
begin    l_rows := dump_csv( 'select SYSDATE, USER from dual'
,','            -- Trennzeichen
,'/muell'       -- Verzichnis
,'muell.csv' ); -- Dateiname
end;

oder natürlich über die Funktion execute in SQL*PLUS:

exec dbms_output.put_line('Exportierte Zeile: '||
  dump_csv( 'select SYSDATE, USER from dual'
             ,','           -- Trennzeichen
            ,'/muell'       -- Verzichnis
            ,'muell.csv' ); -- Dateiname

Leider muss ich zugeben, das mir das nicht eingefallen ist, sondern dem genialen Tom Kyte von Oracle (Link). Die Seite Ask Tom ist für alle Oracle Anwender ein Pflicht Bookmark