Archiv März 2012

Donnerstag, 29. März 2012

Windows Netzwerkverbindungen als Administrator öffnen

Wenn man als Standardbenutzer die Windows Netzwerkverbindungen in den Systemsteuerungen mit Administratorrechten öffnen will, verwendet man folgenden Befehl:

runas /user:<Administratorbenutzer> "explorer.exe /n,::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"

Tags: , , ,
Labels: IT

1 Kommentar | neuen Kommentar verfassen

Donnerstag, 29. März 2012

Mit Access eine Textdatei mit Pipe-Trennzeichen einlesen

Will man unter Access 2007 eine Textdatei einlesen, welche Datensätze enthält, dessen Felder mit einem Strich (engl. „Pipe“) getrennt sind, muss man folgenden Trick beachten:

Damit das Pipe-Symbol in das Trennzeichenfeld eingeben kann, muss der Inhalt des leeren Feldes zuerst mit der Maus ausgewählt werden (Ctrl-A). Erst dann kann das Symbol eingegeben werden:

Quelle: Import Text file with Pipe Delimited – 2007

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 27. März 2012

E-Mail-Adressenformat von Firmen herausfinden

Gelegentlich stehe ich vor der Aufgabe, ein Mitarbeiter unter seiner E-Mail-Adresse auf der Arbeit zu kontaktieren, dessen E-Mail-Adresse ich nicht kenne.

Damit ich das Format der E-Mail-Adressen der jeweiligen Firma herausfinden kann, besuche ich dann jeweils die Web-Site. Manchmal werden die E-Mail-Adressen von leitenden Personen auf der Web-Site angegeben, anhand derer man anschliessend die Adresse der gesuchten Person herleiten kann. Ist dies nicht der Fall, gibt es aus Erfahrung noch ein anderer Ort auf der Web-Site, wo man heute garantiert eine E-Mail-Adresse findet: Bei den Stellenangeboten. Normalerweise ist bei einem Stelleninserat die E-Mail-Adresse der verantwortlichen HR-Mitarbeiterin angegeben.

PS: Leider verhindert Google meines Wissens die Suche nach E-Mail-Adressen auf einer bestimmten Web-Site, um es Spammern nicht zu einfach zu machen, an neues Adress-Material zu gelangen.

Tags: ,
Labels: Web

1 Kommentar | neuen Kommentar verfassen

Montag, 19. März 2012

Eine laufende screen-Session übernehmen

Da bin ich heute wohl zu überstürzt aus dem Haus gegangen und habe vergessen, eine laufende screen-Session mittels Ctrl-A-D in den Detached-Modus zu verfrachten.

Als ich nun per SSH über 3G auf meinen Mac mini zugreifen wollte, kriegte ich eine Fehlermeldung zu Gesicht, dass der Screen „attached“ sei.

Die Lösung? Ganz einfach:

screen -r -D 5004

Mit der Option -D wird der derzeit aktiv in die screen-Session eingeloggte Benutzer „rausgekickt“ und ich übernehme den Screen. Nett!

Tags: , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 14. März 2012

Titelzeile eines Windows-Fensters ausserhalb der Bildschirmansicht

Wer wie ich gezwungen ist, auf der Arbeit mit Microsoft Windows zu arbeiten, hat im wechselnden Zweimonitorbetrieb vielleicht auch schon einmal das Problem gehabt, dass die Titelzeile eines Fensters ausserhalb der Bildschirmansicht zu liegen kam, wenn man ein maximiertes Fenster verkleinerte.

Es gibt aber tatsächlich eine Möglichkeit, um die Titelzeile wieder innerhalb den angezeigten Bildschirmbereich zu bringen:

  1. Alt + Space (Leertaste)
  2. M
  3. Das Fenster mit den Cursor-Taste verschieben
  4. Enter

Quelle: Move a window when its title bar is off the screen

Tags: , ,
Labels: IT

2 Kommentare | neuen Kommentar verfassen

Montag, 12. März 2012

Coop und MIGROS sind noch nicht bei Web 2.0 angekommen

Was fällt dem geneigten Web-Entwickler an nachfolgenden URLs auf, die auf Produkte in Web-Shops von Coop (Coop@home) respektive MIGROS (LeShop) verweisen?

Mein Deutschlehrer aus dem Gymnasium würde sowohl die Detailhändler als auch die Entwickler deren Web-Shops fragen: „Sind Sie eigentlich bescheuert?!“ Es scheint, als wären die technische Entwicklung der letzten 10 Jahre spurlos an diesen beiden Buden vorbeigegangen.

Zum einen wäre der Nutzen kurzer, einfacher deklarativer URLs für die Endkunden deutlich komfortabler – und würde wohl auch sozusagen kostenlos SEO mit sich bringen. Wie wäre es bspw. mit:

  • http://www.coopathome.ch/product/coop-mango-lassi-2.5dl/1234567890
  • http://www.leshop.ch/product/selection-lassi-mango/1234567890

Zum andere Frage ich mich über die Überlegungen der Web-Entwickler hinter den beiden Web-Shops, insbesondere desjenigen von coop@home: Was zum Teufel sollen all diese Variablen, die per GET übergeben werden?

  • xcm=coop_dev
  • cpgsize=24
  • layout=7.0-1_0_3_7_8_9_10_11_14_13_51_18_15_21_46_47_52_6_26
  • uiarea=16
  • cpgnum=1

Und was sagt mir diese ellenlange URL b2c_coop/catalog/updateItems/ eigentlich aus?

Wir sehen, es bleibt bei Coop & Co. noch viel zu tun.

Tags: , , , , ,
Labels: Web

1 Kommentar | neuen Kommentar verfassen

Donnerstag, 8. März 2012

Fragwürdige Bauzonen

Heute verbaut man in der Schweiz entweder ausgezeichnetes landwirtschaftliches Kulturland (Stichwort: Kanton Aargau) oder aber man baut die Häuser in Gefahrenzonen. Diese erkennt man oftmals aber nicht als solche, weil sich die Erinnerungen an weit zurückliegende Ereignisse und Katastrophen aus dem sogenannten „kollektiven Gedächtnis“ verflüchtigt haben:

Die Besiedelungsdichte hat besonders in Zonen zugenommen, die wegen den ungünstigen geologischen Eigenschaften früher gemieden wurden.

Quelle: SEISMO 12: Abstract – Erdbeben, Ursachen und Risiken in der Schweiz

Tags:
Labels: Schweiz

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 8. März 2012

Bedingte Formatierung in Microsoft Access mit mehr als drei Prüfwerten

Von Microsoft ist man Benutzerunfreundlichkeit gewohnt, und so verhält es sich auch mit der bedingten Formatierung (Conditional Formatting) von Reporten in Microsoft Access: Der Wert eines Feldes kann mit den GUI-Tools nur auf drei Stati gleichzeitig geprüft werden.

Zum Glück kann man auf VBA ausweichen. Hierzu öffnet man die Design View des Reports, wählt die Sektion „Detail“ mit Klick auf dessen Balken aus, wechselt im Eigenschaftsfeld auf Events und erstellt dort für das Ereignis „On Format“ eine VBA-Prozedur mit dem Code Builder.

Dort kann man als geübter Entwickler dann mit dem Select Case-Konstrukt arbeiten:

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
    Dim sStatus As Variant 'To account for null values
    sWert = Me!Wert
    
    Select Case sWert
    Case "Yes"
        ' Grün
        cColor = RGB(0, 255, 0)
    Case "In most cases"
        ' Gelb
        cColor = RGB(255, 255, 0)
    Case "In almost half the cases"
        ' Orange
        cColor = RGB(255, 215, 0)
    Case "In a few cases"
        ' Fuchsia
        cColor = RGB(255, 0, 255)
    Case "No"
        ' Rot
        cColor = RGB(255, 0, 0)
    Case "Not applicable", "N/A"
        cColor = RGB(192, 192, 192)
    Case Else
        cColor = RGB(255, 255, 255)
    End Select
    
    Debug.Print "Setting Color to " & cColor & " based on " & sWert
    Me!Wert.BackColor = cColor
End Sub

Ein Nachteil hat das ganze aber: Die Hintergrundfarbe wird nur in der Druckvorschau angezeigt. Auch das wieder: Typisch Microsoft. Unbrauchbare Software aus dem letzten Jahrhundert.

Tags: , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 4. März 2012

Geburtstage von Apple AddressBook nach iCal übertragen

Damit man die gesammelten Geburtstage seiner Mitmenschen immer im Kopf behält, empfehle ich jedem Mac-Anwender die nützliche Apple Automator-Action iCalBirthdays.

Mit dieser Action ist es möglich, für alle im Apple Adressbuch enthaltenen Kontakte mit Geburtsdatum einen Alarm in iCal zu erstellen. Führt man die Automator-Action quartalsweise (oder häufiger) durch — je nachdem, wie oft neue Geburtsdaten ins Adressbuch aufgenommen werden — hat man so immer einen aktuellen Kalender und somit auch eine Erinnerungsmeldung, damit man Bekannten pünktlich gratulieren kann.

Nachdem die Action heruntergeladen und installiert ist, öffnet man Apple Automator und erstellt einen Workflow mit der iCalBirthday-Komponente in der Calendar-Library. Den Workflow speichert man anschliessend am Besten als eigenständige Applikation, die man unter /Applications ablegt.

Meine Einstellungen für den Workflow schauen folgendermassen aus:

Screen Shot 2012-03-04 at 21.55.18

Tags: , , ,
Labels: Apple

3 Kommentare | neuen Kommentar verfassen

Sonntag, 4. März 2012

Aktuell geöffnetes Fenster unter Mac OS X minütlich aufzeichnen

Seit mehreren Jahren zeichne ich jede Minute auf, welches Fenster auf meinem Mac OS X-Desktop aktiv ist. Ich nutze diese Aufzeichnungen nicht zuletzt dazu, um bei ungefähr zu wissen, wie lange ich für Kundenaufträge gearbeitet habe — und dementsprechend Rechnung zu stellen.

Das AppleScript lautet folgendermassen:

tell application "System Events"
	set app_name to name of item 1 of (every process whose frontmost is true)
end tell

tell application app_name
	try
		if (count of windows) > 0 then
			set mouseToolsPath to "usr:local:bin:MouseTools"
			set {mouseX, mouseY} to paragraphs of (do shell script quoted form of POSIX path of mouseToolsPath & " -location")
			
			set title to (app_name & "&title=" & name of window 1 & "&x=" & mouseX & "&y=" & mouseY)
		end if
	on error
		set title to app_name
	end try
end tell

Damit das Script auch gleichzeitig die Position des Mauszeigers erfasst, müssen noch die MouseTools heruntergeladen und — in meinem Fall — unter /usr/local/bin/ abgelegt werden.

Um dieses Script regelmässig auszuführen, habe ich mit der kostenpflichtigen Applikation Lingon einen launchd-Job erstellt (in der Steinzeit hat man noch auf Cron-Jobs zurückgegriffen), der jede Minute ausgeführt wird. Hierzu verwende ich ein bash-Script als Wrapper, um die Informationen an ein PHP-Script auf einem im Intranet stehenden Linux-Server weiterzuleiten:

#!/bin/sh

LOGGEDIN=`who | grep "^mario" | grep console | wc -l`
WGET="/opt/local/bin/wget"
#WGET=`which wget`

if [ $LOGGEDIN -lt 1 ];
then
        echo "User mario not logged in. Exiting."
        exit 0
fi

if [ ! -x "$WGET" ];
then
	echo "wget executable '$WGET' not found. Exiting."
	exit 1
fi

APP=`/usr/bin/osascript /usr/local/bin/FrontMostApplication.scpt`
#echo $APP

URL="http://tld/save.php?app=$APP"

#echo "Accessing URL '$URL' using $WGET"

$WGET -q -O /dev/null "$URL"

exit 0

Tags: , , , ,
Labels: Apple, Linux

Keine Kommentare | neuen Kommentar verfassen