@-Zeichen und Backslash in GitHub’s Editor Atom

Ich habe letztens den (inzwischen) OpenSource-Editor „Atom“ von GitHub für mich entdeckt. Der steckt noch in der Beta-Phase, ist aber modular aufgebaut und es gibt schon zahlreiche Plugins dafür. Im Grossen und Ganzen ist er sehr an den Sublime Text Editor angelehnt und diverse Features, die man von Sublime noch vermissen könnte (wie z.B. die Minimap-Scroll-Leiste oder Highlighting von Wörtern) sind durch Plugins nachrüstbar.

Dass der Editor noch in der Betaphase ist, merkt man daran, dass z.B. Zeichen wie @ oder Backslash nicht out-of-the-box auf einer deutschen Tastatur (unter Windows) funktionieren, da die Standard-Tastaturbelegung des Editors (oder die Belegung von Standard-Plugins) diese Tastenkombinationen schon für diverse Funktionen beanspruchen.

Zuerst hatte ich die jeweiligen Core-Konfigurations-Dateien angepasst, wofür man aber teilweise ggf. Admin-Rechte benötigt. Ausserdem wird bei jedem Update möglicherweise die Datei wieder überschrieben.
Inzwischen habe ich aber herausgefunden, wie man vorhandene Tastenkombinationen nicht nur überschreiben kann, sondern auch auf den System-Zustand zurücksetzen kann. Dafür gib es die Keymap-Konfigurations-Datei im Benutzerverzeichnis (Benutzerverzeichnis\.atom\keymap.cson).

Ich habe folgende Konfigurationen (für die derzeit aktuelle Version 0.138.0) eingetragen um die Tasten wie gewohnt benutzen zu können:

'atom-workspace atom-text-editor:not(.mini)':
  'ctrl-alt-[': 'native!'
'.platform-darwin .editor, .platform-win32 .editor, .platform-linux .editor':
  'alt-ctrl-q': 'native!'
'.platform-win32 .editor, .platform-linux .editor':
  'ctrl-alt-shift-Q': 'autoflow:reflow-selection'

Danach AltGr-R (bzw. Strg-Alt-R) drücken, um die Konfiguration zu laden und fertig.

Nachtrag (17.2.2015):
Mit der Version 0.179.0 sieht meine aktualisierte Konfigurationsdatei so aus:

'atom-workspace atom-text-editor:not([mini])':
  'ctrl-alt-[': 'native!'
'atom-text-editor':
  'ctrl-shift-B': 'git-blame:toggle'
'.platform-win32 atom-text-editor, .platform-linux atom-text-editor':
  'ctrl-alt-q': 'native!'
'.platform-win32 .editor, .platform-linux .editor':
  'ctrl-alt-shift-Q': 'autoflow:reflow-selection'

Leider habe ich aber jetzt das Problem, dass der Backslash ein Zusammenklappen des aktuellen Code-Blocks verursacht und ich habe bisher noch keine Möglichkeit gefunden, das zu verhindern. Ist nicht übermässig tragisch, aber manchmal ärgerlich.

Reihenfolge von HTML-Elementen in einem Kontainer per jQuery ändern resultiert in einem leeren Kontainer

Die Ausgangssituation: Ich habe einen Kontainer, dessen (direkte) Kind-Elemente ich per jQuery eine neue Reihenfolge verpassen möchte. Dazu erzeuge ich mir einen Array, der alle betreffenden Elemente beinhaltet und ändere die Reihenfolge dieses Arrays. Dann gehe ich die Elemente des Arrays nacheinander durch und hänge sie am Ende des Kontainers wieder an (genauer: per .insertAfter() hinter das letzte Element) – das bedeutet, das Element wird aus dem DOM genommen und nach hinten verschoben. Danach sollte der Kontainer die gewünschte Reihenfolge haben.
„Reihenfolge von HTML-Elementen in einem Kontainer per jQuery ändern resultiert in einem leeren Kontainer“ weiterlesen

Drachenkurve revisited

In einem früheren Blogartikel (Drachenkurve, 9.April 2008) schrieb ich, dass ich die Drachenkurve per PHP nachgezeichnet hatte.
Der Nachteil mit dieser Methode war, dass das Erzeugen der Fraktal-Grafik selbst auf einem starken Server recht lange dauert, was zur Folge haben kann, dass der Browser oder der Server nach einer gewissen Zeit einfach abbricht, ohne dass man irgendetwas zu Gesicht bekommt.

Deshalb habe ich die ganze Erstellung der Grafik einfach auf die Client-Seite verschoben. HTML5 bietet nämlich mit dem Canvas-Element und etwas Javascript eine hervorragende Möglichkeit dafür.
„Drachenkurve revisited“ weiterlesen

Einen Block aus mehreren Zeilen aus grosser Textdatei löschen

Wenn man mal mehrere Zeilen mitten in einer sehr grossen Text-Datei entfernen möchte und man kennt die Zeilennummern, kann man folgenden Befehl in der Shell verwenden:

sed '1234,1345d' quelldatei.txt >neuedatei.txt

Hier wird der Inhalt der Datei quelldatei.txt ohne die Zeilen 1234 bis inklusive 1345 in die Datei neuedatei.txt kopiert.
„Einen Block aus mehreren Zeilen aus grosser Textdatei löschen“ weiterlesen

PostgreSQL: interval

Wir hatten hier gerade einen schönen AHA-Effekt mit einem Query, bei dem mit Zeit-Intervallen gerechnet wurde.

SELECT INTERVAL '600' SECOND;
Das sieht doch gar nicht soo falsch aus und liefert auch keinen SQL-Fehler zurück. Leider ist das Ergebnis nicht gerade richtig: das Intervall zeigt ’00:00:00′ an.

Richtig wäre es so:
SELECT INTERVAL '600 SECOND';
Und siehe da: das Intervall ist ’00:10:00′, sprich: 10 Minuten. Yay!

Benutzerdefinierte Variablen in MySQL

MySQL unterstützt Variablen anscheinend bereits seit Version 3.23.6, aber ich habe diese Möglichkeit (ausserhalb von Stored Procedures) erst vor ein paar Monaten zu Kenntnis genommen und erst gestern wirklich wahrgenommen.
Es gibt ja in der Tat immer wieder Fälle, in denen Variablen einem die Arbeit erheblich erleichtern würden.
„Benutzerdefinierte Variablen in MySQL“ weiterlesen

CodeCharge: Custom Blocks innerhalb Panels

Dieser Artikel bezieht sich auf CodeCharge Studio 4.01.00.06. Andere Versionen könnten sich abweichend verhalten!

Seit ein paar Wochen arbeite ich an einem Projekt, welches die Vorgabe hat, komplett in CodeCharge enwickelt zu werden. Dabei bin ich immer wieder an die Grenzen dieses mächtigen Werkzeuges gestossen. Ein häufiges Problem ist für mich, die Custom-Block-Möglichkeiten der Template-Klasse an Stellen zu verwenden, die CodeCharge anscheinend nicht dafür vorgesehen hat und daher nicht ohne weiteres zulässt. „CodeCharge: Custom Blocks innerhalb Panels“ weiterlesen

Firebug, „syntax error“ und DOCTYPE

Heute sind wir über ein interessantes Phänomen bei einem CodeCharge-Projekt gestolpert: bei bestimmten Seiten hatte der Firebug einen „syntax error“ in Zeile 1 festgestellt und die erste Zeile des HTML-Codes zitiert: „<!DOCTYPE (…)“. Nachfolgende JavaScript-Aufrufe gaben teilweise weitere Fehler aus, teilweise aber auch nicht.
„Firebug, „syntax error“ und DOCTYPE“ weiterlesen

onClick oder onChange?

Gerade bin ich über ein JScript-Problem gestolpert, bei dem ich ein wenig nachdenken musste (zur Abwechslung *g*).
Die Ausgangssituation: ich hatte zwei Radio-Buttons, die typischerweise zur selben Gruppe gehören, weshalb nur einer von beiden Buttons zur selben Zeit ausgewählt sein kann. Ich wollte für den Fall, dass einer der Buttons angeklickt wird, weitere Formularfelder einblenden (damit der Benutzer nicht von vornherein von der Menge der Eingabefelder überwältigt ist…oderso). Intuitiv habe ich daher gleich zum Event onChange gegriffen, schliesslich sollte das Script nur aktiv werden, sobald sich der Zustand ändert. Das schien auf den ersten Blick auch wunderbar zu funktionieren. Ich teste ja parallel alles sofort auf dem Firefox. Als ich aber kurz im IE6 geschaut habe, ob das Layout noch passt musste ich feststellen, dass das überhaupt nicht funktioniert. Lustigerweise war beim MS-Browser die Funktionalität meines kleinen Scriptes sogar genau umgekehrt als vorgesehen – und das obwohl ich klar nach dem checked-Zustand abgefragt hatte. „onClick oder onChange?“ weiterlesen