Mit git global Projekt-Dateien ignorieren

Jedesmal wenn ich mit PhpStorm (oder WebStorm) ein Projekt von Github öffne, erscheint die Meldung, ob ich den Ordner .idea einchecken möchte.
Das möchte ich aber vor allem in fremden Projekten nicht.
Um dies auszuschliessen, einfach die folgenden Zeilen ausführen, und es wird global von git ignoriert:

 git config --global core.excludesfile ~/.gitignore_global
 echo ".idea" >> ~/.gitignore_global

Unbekannte Bildschirmauflösung hinzufügen bei bei Ubuntu 14.04

Ich verwende ein Notebook mit Ati Grafikkarte und habe einen externen Bildschirm mit 1920×1200 Pixel Auflösung angeschlossen. Dieser wurde aber nicht erkannt und hatte somit eine schlechte Auflösung.

Schritte zum Lösen des Problems:

Um herauszufinden was für Monitore überhaupt an welchen Anschlüssen angeschlossen sind, folgenden Befehl ausführen

$ xrandr
#eDP1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 344mm x 193mm
#1920x1080 60.1*+ 59.9
#
#DP1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
#1024x768 60.0
#800x600 60.3 56.2
#848x480 60.0
#640x480 59.9

Mein falsch erkannter Bildschirm hängt also am Anschluss DP1. Mit folgendem Befehl habe ich mir eine „Modeline“ der gewünschten Auflösung des Bildschirms erzeugt:

$ cvt 1920 1200 60
# 1920x1200 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz
Modeline "1920x1200_60.00" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync

Da es jetzt ans editieren von xorg.conf geht, und wir einen weg zurück haben möchten, am besten kurz ein backup machen:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Jetzt ein „Monitor“ Eintrag in /etc/X11/xorg.conf erstellen und den vorher ermittelten Anschlussnamen und die Modeline eintragen. Der „PreferredMode“ muss genauso heissen wie der Name in der Modeline:

Section "Monitor"
    Identifier "DP1"
    Modeline "1920x1200_60.00" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync
    Option "PreferredMode" "1920x1200_60.00"
EndSection

Jetzt den Laptop neustarten, und der Bildschirm wird ab jetzt erkannt. Eventuell muss man noch die Bildschirmauflösung in den normalen Systemeinstellungen unter Anzeigegeräte auswählen und speichern.

Warum Ext-JS ?

Warum habe ich mich für Ext-JS entschieden?

Erstens mal die Professionalität:

  • Es werden regelmässig neue Versionen veröffentlicht
  • Es ist mittlerweile schon die Version 5, hat also schon ein gewisses Wachstum hinter sich
  • Es wird bei den Entwicklern Testing verwendet, Unittests, und sogar an die Kunden weitergegeben
  • Es ist alles Modular aufgebaut uns sauber durchgeplant, alles passt zu allem.

Zweitens, die Langlebigkeit. Viele, teils grössere Firmen verwenden schon ExtJS, wonach es nicht nur ne Eintagsfliege sein kann (sollte):

  • Zyxel auf ihren Zywall Firewalls
  • Kerio auf der Web-Administrationsoberfläche
  • PA Servermonitor für die Reports und Diagramme
  • Typo3

Drittens, schnellere Entwicklungszyklen

  • Dank ExtDesigner kann man Formulare blitzschnell entwerfen und in Anwendungen einbauen
  • Da der Code insgesamt schöner ist, gibt es weniger „Leichen“ oder unverständlichen Code, der dann später sehr viel Reparaturarbeit benötigen würde.
  • Es wird uns Arbeit abgenommen uns ständig auf neue Browser(-Versionen) einzustellen, dies nimmt uns ExtJS komplett ab.

Dies gilt vor allem für Web-Anwendungen. Für Öffentliche externe Webseiten könnte man sich auch andere Technologien entscheiden, wenn man sich auf die obengenannten Gesichtspunkte stützt.

Ein kleiner Vergleich von ExtJS und Jquery: http://www.grantshepert.com/post.cfm/jquery-and-or-extjs

Javascript – URL und Unicode

Falls man mal blöderweise einen Ajax-Request macht, bei welchem in der URL irgendwelche Sonderzeichen sind, kann es sein, dass je nach Browser Überhaupt nichts beim Server ankommt.

So passiert bei einer Webapplikation, seitdem ich die komplette Seite auf Unicode umgestellt habe.

Die Lösung für mich war, die ganze url vor dem Absenden durch encodeURI() zu schicken.

Damit werden die Zeichen encodiert (z.B. %20 für einen Abstand) und die meisten Server-Programmiersprachen besitzen einen Befehl um dies wieder rückgängig zu machen oder machen dies schon automatisch.

Verwendung von GTD(-light) in Outlook

Wie kriegt man seine Mailflut in den Griff, so dass man nichts wichtiges vergisst, aber auch wichtiges von unwichtigem Trennen kann?

Unter http://www.toolblog.de/archives/905 gibts eine ganze Ladung Anleitungen, aber sie gehen davon aus, dass man alles in Outlook macht, inklusive die Tasks.

Da ich aber für Tasks Nimbus-Todo/Jira/Chandler verwende, benutze ich in Outlook nur ein GTD angelehntes abgespecktes Prinzip in Outlook. Ich habe die Ordner:

  • @1 NEXT
  • @2 SPÄTER
  • @3 WARTEN AUF
  • @4 Vielleicht_Irgendwann
  • @5 Referenzmaterial

Das @ und die Nummern dienen der Sortierung, damits ganz oben kommt.

Hier ein Screenshot:

Vorgehen:

Beim Durcharbeiten des Posteingangs gucke ich jedes Mail an und entscheide OB und WANN etwas zu erledigen ist. Nach dem Durcharbeiten sollte das Postfach leer sein.

Keine Aktion nötig:

Wenn das Mail nur Informationsmässig ist, lege ich es in meine Struktur unter @Referenzmaterial ab, wenn es sich nicht lohnt es aufzubewahren -> löschen.

Der Ordner @Vielleicht_Irgendwann ist für Sachen wo ich nicht sicher bin ob ich es Überhaupt machen will.

Aktion nötig:

Wenn ein Mail sofort beantwortet werden kann, und ich weniger als 2 Minuten dazu brauche, mache ich es sofort.

Wenn es länger dauern sollte verschiebe ich es in @NEXT oder @SPÄTER, je nach Wichtigkeit.

Jeden Morgen wird @NEXT und @SPÄTER einmal komplett durchgeguckt um zu gucken ob sich die Prioritäten geändert haben: entsprechend in den anderen Ordner schmeissen.

Danach während dem Tag den @NEXT Ordner abarbeiten.

Wenn ich beim Abarbeiten etwas delegieren oder per Mail nachfragen will, leite ich das Mail an die Person weiter. Den Ordner „Gesendete Objekte“ habe ich als Favorit angelegt, klicke drauf, nehme das oberste Mail was ich gerade verschickt habe und verschiebe dieses in den Ordner @WARTEN AUF. Der Ordner wird ca. Wöchentlich mal durchgeguckt. So verliere ich delegierte Aufgaben nicht aus den Augen.

Hibernate Modus bei Macbook

Ich benutze mein Macbook nicht allzu regelmässig, und im Gegensatz zum Windows-Laptop gibt es nur einen Ruhezustand und kein Hibernate. Dies bedeutet, der Macbook braucht dauernd Batterie und jedesmal wenn ich ihn aufklappe, meldet er, die Batterie sei gleich leer, ich müsse an den Strom.

Man kann den Ruhezustandmodus allerdings mit einem Shell-befehl umstellen. Dies geht aber auch einfacher, indem man das Plugin „SmartSleep“ installiert, welches dann in den Systemeinstellungen zu finden ist, und sich so komfortabel in den „richtigen“ stromlosen Hibernatemodus umstellen lässt.

https://www.jinx.de/SmartSleep.html

Mac Automatisches Ändern des Hostnamens per DHCP verhindern

Mac OSX hat die etwas „spezielle“ Eigenschaft, dass er im DHCP-Betrieb nicht nur die IP-Adresse automatisch Übernimmt, sondern auch den Hostnamen.

So kann es vorkommen das mein Macbook statt GSA-MHE-Macbook plötzlich GSA-ABI heisst, weil ABI letztesmal diese IP hatte. Im schlimmsten Fall gibts sogar IP-Konflikte.

Man kann dieses Verhalten Ändern, indem man die Datei /etc/hostconfig anpasst:

Die Zeile

HOSTNAME=-AUTOMATIC-

durch

HOSTNAME=irgendwas

ersetzen.

Es kann sein, dass die Zeile noch gar nicht existiert, dann einfach die Zeile zuunterst anhängen.

HTML5 und CSS3 – Welche Webtechnologien kann ich schon nutzen?

Es ist ein riesen Hype mit all diesen HTML5 und CSS3 Geschichten.

Doch als realistischer und kundenorientierter Entwickler muss man leider oft auf neuste Technologien verzichten, da die Kunden keine aktuellen Browser verwenden (können/dürfen).

Welche modernen Technologien von welchem Browser unterstützt werden, findet man auf https://www.caniuse.com: es zeigt eine Übersichtliche, Konfigurier- und Sortierbare Tabelle, und kann auch anzeigen welche Technologien mit Zuhilfenahme von Javascript trotzdem schon möglich sind.

Zum selber Ausprobieren gibts diese Seite: https://html5demos.com

Es gibt auch die Möglichkeit aktuelle Technologien nur für jene Benutzer anzubieten, die mit einem modernen Browser darauf zugreifen. Dort ist aber wichtig, dem Benutzer mit dem alten Browser eine „basic“ Version der Seite anzubieten, damit die Seite trotzdem benutzbar bleibt (und nicht tausend Fehlermeldungen erscheinen). Dafür ist folgende Seite: http://diveintohtml5.org/detect.html: es zeigt was der aktuelle Browser so kann, und erklärt auch gleich mit code-samples, wie man die Erkennung programmiert.

QR Barcodes

Ich wusste eigentlich schon länger, dass es 2D-Barcodes für Handys gibt, habe es aber erst jetzt das erstemal Probiert.

Beispiele:

Wenn man das richtige Programm auf dem Handy installiert hat, kann man einfach mit der Kamera draufzeigen und es erkennt die URL oder den Text der hinterlegt ist.

Der Vorteil daran ist, das man so auch Links auf einen Werbeflyer drucken kann, welche mit dem Handy direkt ohne Tipparbeit aufrufbar sind.

Hier findet man einen QR Generator: http://www.qrstuff.com/

Hier findet man Software: http://www.qrstuff.com/qr_phone_software.html