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

Samstag, 3. März 2012

Bye bye, Virgin Megastore Paris — hello Apple Store!

Das waren noch Zeiten, als ich um die Jahrtausendwende zusammen mit Gymerkollegen mehrere Male in Paris weilte. Ein Besuch im Virgin Megastore an der Champs Elysées gehörte bei diesen Trips jedesmal zu einem Muss.

Wir Schweizer ergötzten uns am Verkaufstempel von CDs und Vinyls in unsereins ungewohnten Dimensionen, und auch, dass man mit Barcode-Lesern die EANs der CDs einlesen und dann über Kopfhörer probehören konnte.

Mehrere Male kehrte ich mit einigen raren, internationalen Tonträgern von damals zeitgenössischen Künstlern nach Hause, unter anderem Brian Transeau oder kurz: BT.

Wie sich die Welt mehr als 10 Jahre später geändert hat: Damals hatte ich mir gerade mein erstes Mobiltelefon geleistet, ein Nokia 8210, mit welchem man für teures Geld telefonieren und — ganz neu — auch zwischen den verschiedenen Mobilfunknetzen SMS austauschen konnte. Auf den Reisen dabei hatte ich eine Sony DSC-P1, die zwar bereits 3 Megapixel aufwies, auf den 64MB fassenden MemoryStick aber kaum genügend Bilder aufnehmen konnte. Als frischverdienender Vollzeitangestellter steckte ich zudem viel Geld in den Aufbau einer CD-Sammlung elektronischer Musik.

Heute besitze ich zwei iPhones, ein iPad, ein MacBook Air … und kann mich nicht erinnern, wann ich das letzte Mal einen physischen Tonträger erstanden habe. Die Zeit der CD-Läden ist vorbei, die digitale Distribution von Musik (und bald auch Filmen) hat die altgedienten Distributionskanäle — und damit auch Virgin — gekillt.

Deshalb ist es die grösste Ironie an der ganzen Geschichte, dass Gerüchten zu Folge nach dem Auszug von Virgin aus dem Lokal an der Champs Elysée das Gebäude an den Musikdistributionsplatzhirschen Apple abtritt:

Business Insider points to a report [Google translation] from French newspaper Le Figaro noting that Virgin will be vacating its landmark retail store on Champs-Élysées in Paris and that Apple is one of the primary candidates rumored to be interested in taking the spot.

Quelle: Rumors of Massive Apple Retail Store for Paris as Virgin Vacates Prime Location

Tags: , , ,
Labels: Apple, Wirtschaft

Keine Kommentare | neuen Kommentar verfassen

Samstag, 25. Februar 2012

youtube-dl meldet „no fmt_url_map or conn information found in video info“

Wer Youtube-Videos auf seinen Rechner herunterladen möchte, um sie später ohne Internetverbindung anschauen zu können, wird das Python-Script youtube-dl längst kennen.

Wenn das Ding aber den Fehler

$ ~/youtube-dl.sh http://www.youtube.com/watch?v=QhhFQ-3w5tE
[youtube] Setting language
[youtube] QhhFQ-3w5tE: Downloading video webpage
[youtube] QhhFQ-3w5tE: Downloading video info webpage
[youtube] QhhFQ-3w5tE: Extracting video information
ERROR: no fmt_url_map or conn information found in video info

meldet, sollte man sich den Fork von Philipp Hagemeister herunterladen, welcher den Bug behebt:

youtube-dl (Philipp Hagemeisters Fork)

Youtube-Video als MP3 herunterladen

Wenn wir gerade dabei sind: Wer obiges Tool einsetzt, sollte auch zwingend nachfolgende Web-Site kennen, welche Youtube-Videos in MP3-Dateien umwandelt:

www.youtube-mp3.org

Tags: , , , , ,
Labels: Linux

2 Kommentare | neuen Kommentar verfassen