ArchLinux: Activate mirrors of a country

When updating the mirrorlist all servers are commented out.

To update the list to habe the first eight servers of „Germany“ activated I use the following awk script:

#!/bin/sh

mv /etc/pacman.d/mirrorlist /etc/pacman.d/_mirrorlist ; cat /etc/pacman.d/_mirrorlist | awk '/^## Germany/ { inCountry = 1; counter = 0 } /^$/ { inCountry = 0; counter = 0 } /(^#Server =.*)/ { if (inCountry && (counter < 8)) { $0 = substr($0, 2); counter ++ } } { print } ' > /etc/pacman.d/mirrorlist

 

VIM: InsertMode erkennen

Irgendwann ist man es leid, den InsertMode im vim daran zu erkennen, dass man ein „i“ tippt und dann schaut, ob ein „i“ ankommt..

Diese zwei Zeilen in der .vimrc setzen dem ein Ende:

set cursorline
:autocmd InsertEnter,InsertLeave * set cul!

Auch wenn das „nur“ die Cursorzeile ändert, nicht den Cursor selbst. Letzteres ist im Textterminal halt schwierig.

Quelle: http://stackoverflow.com/questions/6488683/how-do-i-change-the-vim-cursor-in-insert-normal-mode

AWEFUL WM: Fenster mit Alt-Tab switchen

Da Alt-Tab bei mir derart ins Blut gegangen ist, habe ich mir den Awesome-Wm entsprechend konfiguriert:

diff --git a/rc.lua b/rc.lua
index 35b0e7b..ba02433 100644
--- a/rc.lua
+++ b/rc.lua
@@ -236,11 +236,13 @@ globalkeys = awful.util.table.join(
     awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
     awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end),
     awful.key({ modkey,           }, "u", awful.client.urgent.jumpto),
-    awful.key({ modkey,           }, "Tab",
+    -- Alt-Tab to switch between Apps: (see also: http://stackoverflow.com/questions/11697102/awesome-alttab-just-switches-between-two-apps )
+    awful.key({ "Mod1",           }, "Tab",
         function ()
-            awful.client.focus.history.previous()
-            if client.focus then
-                client.focus:raise()
+            -- awful.client.focus.history.previous()
+            for c in awful.client.iterate(function (x) return true end) do
+               client.focus = c
+               client.focus:raise()
             end
         end),

Bannocks backen

Galerie

Diese Galerie enthält 3 Fotos.

Über ein paar Umwege auf Webseiten zu Survival und Ikea-Hacking sowie Überlegungen zur Umnutzung von Ikea-Kindertöpfen fand ich auf die Wikipediaseite von Bannockbrot (die englische Seite ist ausführlicher) und dort über einen Link zur Wikimedia zu einem einfachen Grundrezept für … Weiterlesen

zsh-scripting: SMS am Computer vortippen und per Handy versenden

Vielleicht kennt Ihr meinen Blogpost über sshfs. Da nutze ich zsh-Funktionen um aus der Datei „.ssh/config“ Hostnamen zu extrahieren und in einer Completion bereit zu stellen.

Eine ganz andere Idee, die ich mal per Webinterface („WTF-SMS“) gelöst hatte, war die, eine SMS bequem per Volltastatur am Computer einzugeben, daraus einen QR-Code für eine SMS („smsto:0172…..:Hallo wie gehts“) zu generieren, und den per Handy abzuscannen und so die bequem getippte SMS mit dem Handy abzusenden.

Eben habe ich mir dafür ZSH-Funktionen geschrieben. Dazu habe ich ein Verzeichnis „~/tools/smsto“ erstellt, das Dateien der Form „kontakt-name.smsto“ enthält, in denen jeweils eine einzige Telefonnummer steht.

Meine .zshrc habe ich so erweitert:


function smsto
{
number=`head -n 1 ~/tools/smsto/$1`
echo $number
qrencode -o ~/.smsto.png "smsto:$number:$2"
ristretto ~/.smsto.png &!
}

function _smstoCompletion
{
reply=(`(cd ~/tools/smsto ; ls *smsto)`)
}

compctl -K _smstoCompletion smsto

Tippe ich nun „smsto TAB“ so bietet mir die Shell alle angelegten Kontakte an, beispielsweise „kontakt-name.smsto“. Dahinter schreibe ich in einfachen Anführungszeichen den SMS-Text und erhalte dann nach Druck auf Enter ein Bild eines QR-Codes im Betrachter „ristretto“ angezeigt.


smsto TAB

smsto kontakt-name.smsto ‚Hallo meine Zuckerschnute, wann treffen wir uns heute Mittag?‘ (enter)

Scanne ich das per Handy ab, dann kann ich die SMS einfach versenden.

Mir gefällts ;)

Vielleicht… baue ich das aber noch um, dass alle Kontakte in einer gemeinsamen Datei stehen. Mal sehen…

[Aktualisiert: Name der Function mit Unterstrich beginnen, damit es nicht in der TAB-Completion smTAB gelistet wird.]

Datumsordner/Logfilenamen mit Rückwärts-Sortierung

Klingt seltsam so im Titel. Aber ich richte immer wieder Prozesse auf Kommandozeilenebene ein, die Logfiles generieren. Da hat man nach ein paar Tagen und Monaten Dateinamen wie diese hier:


2014-03-16–12-43-03-cleanup.log
2014-03-17–12-43-03-cleanup.log
2014-03-18–12-43-03-cleanup.log
2014-03-19–12-43-03-cleanup.log
2014-03-19–12-54-13-cleanup.log

Zur besseren Übersichtlichkeit kann man die noch in Jahres-Ordner stecken:

2010
2011
2012
2013

Wenn man jetzt aber will, dass die neusten Dateien in Gui-Filebrowsern nach oben sortiert werden… dann könnte man einen Prefix davor schreiben: den MAX_TIMESTAMP – time().

Ist nur so eine Idee :)

Sicher per HTTP einloggen?

Eine Sache, über die man mal nachdenken sollte, ist wie man sich wohl über HTTP sicher in einen Webserver einloggen könnte.

Zum Beispiel der Login in diese WordPress-Site, der auch über HTTP (nicht HTTPS geht).

CyanogenMod 10.1.2 aufs Galaxy S i9000 flashen

Nach Lesen eines Artikels in der ct, nachdem das Flashen von CM ja ganz einfach ist, musste ich mein Handy auch nochmal mit einem neueren Betriebssystem ausstatten. Das CM 9.x wehrte sich zunehmend, die schlechte Bildschirmtastatur ging mir auf den Keks, und der GPS-Absturz während einer Autofahrt überzeugte auch nicht.

Damit ich nächstes mal nicht wieder ein Dutzend Mal flashen muss, bis alles stimmt, fasse ich die notwendigen Schritte für eine Update ausgehen von einem alten CM hier zusammen:

  1. Backup erstellen: Mindestens die Kontakte, Fotos und Audiofiles der Handys an mindestens zwei Stellen in Form einer Sicherung ablegen
  2. Die Kontakte in eine Datei auf der internen SD-Card exportieren, und dort für den Re-Import platzieren. Das Adressbuch kann NICHT von einen beliebigen Pfad (externe SD) importeren (Was für ein Mist wurde da programmiert…)
  3. Download der neuen Firmware von http://cyanogenmod.com/devices. „alle anzeigen“, Handy wählen „Stable“ klicken, Download zB von cm-10.1.2-galaxysmtd.zip. Dies legt man gerne auf die externe SD, weil da findet man sie leichter mit der ClockworkMod-Recovery. Tipp: einen Ordner „0-update“ anlegen, das ZIP dort lagern. Dann sollte man den Ordner im Recovery direkt oben in der Liste finden.
  4. Downloads der GAPPS von http://wiki.cyanogenmod.org/w/Gapps . Das Zip legt man auch in den „0-update“-Ordner.
  5. Handy ausschalten
  6. SIM herausnehmen. Nach dem Flashen ist per Default Datenübertragung aktiviert, und der erste Browseraufruf versucht einen bei allen Googlediensten anzumelden. (Tolle Freiheit eines angeblich freien Systems)
  7. Start der ClockworkMod-Recovery über Volume-Down, Home + Power-On. Das sollte man drücken, bis das Logo zweimal erschienen ist. Dann loslassen, und auf das Einfachmenü warten.
  8. Wipe data/factory reset. Dies leert und ggf umformatiert den internen Flash mit dem Betriebssystem. Eigentlich sollten die interne und die externe SD unbehelligt bleiben.
  9. Wipe cache
  10. Update from Zip. Dabei die (externe) SD wählen und „cm-10.1.2-galaxysmtd.zip “ wählen. Bestätigen.
  11. Im „advanced“ menu „Wipe dalvik cache“ ausführen.
  12. „reboot device“ ausführen
  13. Wenn das System da ist, dann kann man den Wizard durchlaufen, beispielsweise die Standortdienste deaktivieren usw.
  14. Man sollte einmal den Browser starten, damit er vergeblich versucht, einen überall einzuloggen :-(. ggf tut er das aber auch erst, nachdem man den PlayStore konfiguriert hat.
  15. Im Browser in den Einstellungen sollte man auch gleich die Standortdienste deaktivieren
  16. Wenn nun das WLAN nicht geht, muss man in Einstellungen/WLAN den Ländercode von „Europe“ auf „Deutschland“ umstellen.
  17. Man könnte nun nochmal das Handy ausschalten, und die SIM einlegen. Danach wieder starten und die PIN eingeben.
  18. Zur Installation der Google Apps fährt man das Handy wieder herunter, geht die die Recovery, und macht „update from zip“ und wählt die gapps-Datei.
  19. Seine Telefonbuchdaten kann man nun „Importieren“ (Eigenschafts-Dialog im Telefonbuch), oder das Handy holt die Daten ohne zu fragen aus dem Google-Account.
  20. Was ich noch nicht raus habe ist, wozu auf der Downloadseite für CM fürs Galaxy die „radio“-Downloads verlinkt sind. Oder was der Unterschied zwischen den verschiedenen Dateien wie jp5, jvk usw ist. ein Handy geht auch ohne die.

Veröffentlicht unter Handy

at-Daemon in OSX nutzen

Zuerst testet man, ob der Daemon schon läuft. Dazu ruft man als erstes ein Kommando mit prüfbarer Ausführung auf, bis es sauber funktioniert. Etwa [say „hello“].

Alsdann kann ein erstes Test gewagt werden:

at now + 1 minute
say "hello"
STRG-D

Wenn das NICHT klappt, dann läuft nicht der AT-Daemon. Diesen startet man so:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

Ab sofort kann man „at“ dann nutzen, z.B.:


at now + 3 minutes
say "Der Tee ist fertig"
STRG-D

ssh: Wie lautet der Fingerprint vom Hostkey?

Eigentlich sollte man den Hostkey-Fingerprint so ermitteln können:


ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

Wenn man jedoch in einer Umgebung ist, in der es „ssh-keygen“ nicht gibt… dann kann man mit ssh -v user@user auf den Server gehen und den Fingerprint vom Hostkey aus der Verbose-Ausgabe auslesen.

Dazu muss man der Verbindung natürlich vertrauen.