Donnerstag, 23. Februar 2012

Achtung der Chef kommt!

Hier möchte ich mal ein kleines Tool erwähnen das für mich schon oft praktisch war: das Firefox Bosskey Add-On.
Wenn der Chef im Anmarsch ist drückt man einfach auf eine definierte Taste (vorkonfiguriert F12) und der Browser minimiert sich und versteckt alle Tabs. Wenn man den Browser jetzt wieder öffnet sieht man eine vorher definierte Startseite, also Google oder die Firmenwebsite oder was immer man möchte.

Einstellungen des Add-Ons


Sobald die Luft wieder rein ist drückt man Shift-F12 (auch selbst wählbar) und die Tabs werden wieder sichtbar gemacht.

Einziger Nachteil: Wenn man mit Alt-Tab durch die Fenster wechselt sind man in der Windows 7 Fenster Vorschau des letzten geöffneten Tabs. Aber so genau wird schon keiner schauen.


Mittwoch, 11. Januar 2012

Heise Qt Einführung

Heise bietet hier eine nette Einführung in Qt für Windows Nutzer.
Es beginnt bei der Installation und endet mit einem Installer für die im Tutorial erstellte Software.

Mittwoch, 21. Dezember 2011

Web SSH

Ab und an sitzt man schonmal in einem Netz das nur HTTP Verbindungen erlaubt, wo man also nur im Web surfen kann. Bei mir ist das heute der Fall.

Es gibt verschiedene Webseiten auf die man sich (per HTTP) verbindet und die sich dann für dich auf den SSH Server weiter verbinden. Natürlich kann diese Schnittstelle alle Daten die anfallen mitlesen. Deshalb sollte man sich genau überlegen ob man einen solchen Dienst nutzen möchte und welchem Anbieter man vertraut.

Es gibt beispielsweise:
serFish, bietet auch noch ein paar andere Weiterleitungsdienste wie zum Beispiel für Mailverkehr an.

Wer keinem Anbieter vertrauen schenken will kann sich auf seinem Server auch selbst eine Schnittstelle installieren.

WebShell verwendet server-seitig AJAX und Python und client-seitig JavaScript(+ CSS). Wer sicherheit ganz groß schreibt kann dann noch den ganzen Quellcode druchgehen da das Projekt Open Source ist.


Hier sieht man wie das ganze client-seitig auf dem IPhone aussieht. Man kanns ich schließlich mit jedem Browser (der JavaScript und CSS unterstützt) verbinden.

Sonntag, 20. November 2011

Crunchbang root

Bei crunchbang Linux kann man mit Hilfe von su standardmäßig nicht root werden. Das liegt daran das kein root Passwort vergeben ist.
Nun könnte man vor jeden Befehl den mal mit root-Rechten ausführen möchte ein sudo schreiben. Was aber total nervt wenn man längere Konfigurationen durchführt.

Hier die Lösung:
Ihr könnt mit sudo su root werden.
Oder ihr könnt ein richtiges root Passwort mithilfe von
sudo passwd root <password> setzen.

Mittwoch, 16. November 2011

Raspberry Pi

Seit Monaten warte ich schon auf das erscheinen eines kleinen MiniPCs mit dem Namen Raspberry Pi. Es ist ein sehr kleiner Rechner der nur 25$ kosten soll. Und im Dezember soll er endlich erscheinen!

Entwickelt wurde er vor allem für Kinder. Die sollen damit günstig die Möglichkeit haben spielend Erfahrungen mit Technik zu machen. Anschliessen lässt sich das kleine Gerät an einen Fernseh und er kann sogar über Batterien betrieben werden.

Als Betriebssystem kommt wahlweise Arch Linux, Debian oder Fedora zum Einsatz. Es freut mich natürlich noch mehr das meine Lieblingsdistributionen Arch und Debian dabei sind :)

Dienstag, 8. November 2011

Embarcadero

 Wir stellen gerade einige Projekte vom alten Borland C++ Builder 6 auf Embarcadero C++ Builder XE um.
Borland entwickelte anfangs den C++ Builder, anschließend übernahm das CodeGear und nun Embarcadero. Die neue Entwicklungsumgebung unterstützt nun Unicode.

Es gibt zwar die Möglichkeit bestehende Projekte(Endung .bpr) zu konvertieren, bis jetzt habe ich aber die Erfahrung gemacht, dass es gerade bei kleineren Programmen einfach er ist das Projekt neu zu erstellen.

In den Projekteinstellungen kann festgelegt werden ob für C-Strings der Datentyp char oder wchar_t gilt. Allerdings muss beachtet werden dass alle VCL Komponenten für die Speicherung von Text die Klasse UnicodeString verwenden.

Das konvertieren eines Projektes ist mit dem lösen aller Warnings noch lange nicht fertig. Manche Fehler fallen erst spät auf, wie ich heute feststellte.
In einem Programm tat ich etwas ähnliches wies das:

AnsiString s;
s.printf("Caption: %s", form1->Caption );

Allerdings an einer heikleren Stelle. Natürlich kam keine Fehlermeldung oder Warnung, erst zur Lauftzeit (nach 2 Tagen in Produktion) wurde bekannt dass das Programm nicht korrekt funkionierte.
Bis ich auf die entsprechende Stelle stieß dauerte ein bisschen. Da form1 vom Typ TForm ist, also eine VCL Komponente, wird die Eigenschaft Caption als UnicodeString gespeichert. Die Methode sprintf() vom Typ AnsiString kann damit nicht umgeben, deshalb sollte man die Eigenschaft zuerst casten.

s.printf("Caption: %s", (AnsiString)form1->Caption );

Warum ich AnsiString überhaupt benutze? Nun ja, in diesem Projekt werden oft Ansi C Funktionen aufgerufen die noch mit dem Datentyp char arbeiten. Und ansiStringObjekt.c_str() gibt mir einen char array zurück.

Bis jetzt ist das upgrade auf C++ Buider XE mit mehr Arbeit als nutzen verbunden. Aber das wird hoffentlich nur so lange der Fall sein, bis alle Projekte umgestellt sind.

Montag, 7. November 2011

QDomDocument

Ich mache gerade meine ersten Schritte mit Qt.  Stundenlang, so kommt es mir vor, habe ich jetzt versucht eine Anwenung zu programmieren welche aus einer XML Datei Daten ausliest.
Es scheiterte schon beim Include:
#include <QDomDocument>
Es kam immer wieder die Meldung das diese Datei nicht vorhanden ist. Nach einigem herumgesuche fand ich dann heraus das in der Projektdatei (projektname.pro) welches Qt Creator für mich anlegt folgendes stehen muss:
QT+=xml
Warum das gemacht werden muss ist mir nicht ganz klar. Wenn ich etwas herausfinde lass ich es euch wissen.