Einige Kunden von mir benutzen eine eigene FileMaker Datenbank. Diese Datenbank wird oft auch über das Internet freigegeben. Um für den Kunden jedoch ein einheitliche Startskript anbieten zu können hab ich folgendes AppleSkript geschrieben.
Hier kann man es herunterladen
Eine kurze Erklärung:
Es wird ein interner Server angegeben (meistens direkt der FileMaker Server) welcher auf pings antwortet. Beim Start des Skriptes wird ein ping-Paket an diesen Server abgesendet. Wenn dieser antwortet wird davon ausgegangen das man sich im internen Netzwerk befindet. Falls dies nicht der Fall ist, wird über den öffentlichen Zugang zugegriffen. Die beiden Serveradressen werden im Konfigurationsbereich des Skriptes angegeben.
PS: Das Skript ist ein AppleSkript welches als Programm gesichert wurde. Einfach wieder mit dem Skript Editor bearbeiten.
Freitag, 28. Mai 2010
Mittwoch, 19. Mai 2010
Golden Triangle/Magic Triangle
Ich habe mir heute die Frage gestellt warum muss bei einer Golden Triangle Installation der Mac OS X Client sowohl an das AD (Active Directory) als auch an das OD (Open Directory) angebunden werden.
Die Antwort war dabei ganz logisch. Der Mac OS X Server der dieMCX DB hostet, wird nicht als Replika an den ADC gebunden sondern als Client. Somit muss die Authentifizierung weiterhin über das AD erfolgen. Nur die MCX Daten werden über das OD bezogen.
Hier ein guter Artikel (mit vielen Bildern)
Update (11.08.2010):
Leider ist der Artikel nicht mehr Online! Leider hab ich auch nichts im Google Cache oder der Wayback Machine finden.
Die Antwort war dabei ganz logisch. Der Mac OS X Server der die
Update (11.08.2010):
Leider ist der Artikel nicht mehr Online! Leider hab ich auch nichts im Google Cache oder der Wayback Machine finden.
Mac OS X SL UID in Namen auflösen
Seit Mac OS X 10.6 verrichtet Dovecot den Dienst als Mailserver. Soweit muss ich sagen besser als erwartet. Jedoch wurde etwas ganz entscheidendes verändert. Unter Mac OS X 10.5 wurden die IMAP Verzeichnis der Benutzer im Dateisystem durch ihre Kurznamen repräsentiert. Seit Snow Leopard wird hierfür die BenutzerID (UID) verwendet. Um diese, für beispielsweise Reports, in leserliche Namen umzuwandeln hier ein Codesnippet:
dscl localhost search /Search/Users GeneratedUID $userid | head -n 1 | awk '{print $1}'
dscl localhost search /Search/Users GeneratedUID $userid | head -n 1 | awk '{print $1}'
Freigabe von XSAN Volumes über AFP
Ein Kollege von mir hatte heute das Problem, dass ein XSAN Volume nicht über AFP freigegeben werden konnte.
Das Problem war dann folgendes:
Es wird durch XSAN ein Mountpoint unter /Volumes/.Volumename angelegt. Leider wurde der Punkt vor dem Mountpoint beim Erstellen der Freigabe auch mit in den Sharepointnamen aufgenommen und führt dazu das diese durch Client's nicht mountbar war. Abhilfe schafft das Freigeben unter einem anderem Namen.
Das Problem war dann folgendes:
Es wird durch XSAN ein Mountpoint unter /Volumes/.Volumename angelegt. Leider wurde der Punkt vor dem Mountpoint beim Erstellen der Freigabe auch mit in den Sharepointnamen aufgenommen und führt dazu das diese durch Client's nicht mountbar war. Abhilfe schafft das Freigeben unter einem anderem Namen.
Freitag, 7. Mai 2010
Tools for OS X
KeyCode Reader
Das Tool KeyCode liefert für bestimmte Tastenanschläge den entsprechenden KeyCode. Ist zwar schon etwas älter aber ist noch immer das beste seiner Art.
ACL Editor
Hier kann ich Sandbox anbieten. Ist zwar noch nicht 100%ig ausgereift, aber immer sehr hilfreich.
Dockless
Setzt den LSUIElement in der Info.plist einer App so, dass diese nicht mehr im Dock und im Taskswitcher angezeigt wird (z.B.: für Hardware Growler). Hier der Download
FSEventer
Auf der Suche nach einem Configfile oder ähnlichem: FSEventer zeigt alle Dateien an die innerhalb des Überwachungszeitraumes verändert wurden. Benutzt dabei die Spotlight API.
SQLite Database Browser
Ein Cocoa SQLite Browser (beispielsweise für das Durchsuchen des Adressbuches des iPhones)
Smultron
Mein absoluter Lieblingstexteditor unter Mac OS X.
PS: Alle diese Tools sind Freeware/Open Source
Das Tool KeyCode liefert für bestimmte Tastenanschläge den entsprechenden KeyCode. Ist zwar schon etwas älter aber ist noch immer das beste seiner Art.
ACL Editor
Hier kann ich Sandbox anbieten. Ist zwar noch nicht 100%ig ausgereift, aber immer sehr hilfreich.
Dockless
Setzt den LSUIElement in der Info.plist einer App so, dass diese nicht mehr im Dock und im Taskswitcher angezeigt wird (z.B.: für Hardware Growler). Hier der Download
FSEventer
Auf der Suche nach einem Configfile oder ähnlichem: FSEventer zeigt alle Dateien an die innerhalb des Überwachungszeitraumes verändert wurden. Benutzt dabei die Spotlight API.
SQLite Database Browser
Ein Cocoa SQLite Browser (beispielsweise für das Durchsuchen des Adressbuches des iPhones)
Smultron
Mein absoluter Lieblingstexteditor unter Mac OS X.
PS: Alle diese Tools sind Freeware/Open Source
Mittwoch, 5. Mai 2010
CVS Cell Runner
Wer hatte folgendes Szenario noch nicht:
Der Kunde gibt ein CVS/Excel oder eine sonstige Tabelle mit Daten vor die importiert oder verändert werden sollen. Dieses kleine Pythonskript läuft Zeile für Zeile durch und stellt in einer Funktion alle Spaltenwerte für die weitere Verarbeitung zur Verfügung. In der beigefügten Demo wird das Anlegen von Usern simuliert
Der Kunde gibt ein CVS/Excel oder eine sonstige Tabelle mit Daten vor die importiert oder verändert werden sollen. Dieses kleine Pythonskript läuft Zeile für Zeile durch und stellt in einer Funktion alle Spaltenwerte für die weitere Verarbeitung zur Verfügung. In der beigefügten Demo wird das Anlegen von Usern simuliert
Dienstag, 4. Mai 2010
Video rotieren unter Mac OS X
Wer von euch hat schon mal versucht unter Mac OS X ein Video zu rotieren? Beispielsweise ist das notwendig wenn man Videos in iPhoto importiert und bei der Aufnahme die Kamera falsch gehalten hat.
Als Lösung kann ich hierfür die zwei folgenden Droplets anbieten. Dazu einfach das Video aus iPhoto auf die Droplets werfen, Rotierungstyp wählen und fertig.
Im Diskimage gibt es zwei Versionen. Eine deutsche und eine englische Version. Diese haben jedoch nur etwas mit der Sprache des Betriebssystems zu tun.
Als Lösung kann ich hierfür die zwei folgenden Droplets anbieten. Dazu einfach das Video aus iPhoto auf die Droplets werfen, Rotierungstyp wählen und fertig.
Im Diskimage gibt es zwei Versionen. Eine deutsche und eine englische Version. Diese haben jedoch nur etwas mit der Sprache des Betriebssystems zu tun.
Internet Plugin für Webkit und Videos im Fullscreen
Videos abspielen im Browser kann doch nicht so schwer sein... sollte man denken. Unter Mac OS X scheint es aber so zu sein wenn man kein Flash benutzen will/kann. Hier mal die Anforderungen die ich gestellt habe:
VLC WebPlugIn
Genau das was ich gesucht habe! Leider jedoch mit Bug. Wenn Videos wiedergegeben werden und der Tab geschlossen wird, bleibt der letzte Frame stehen, bis der Webbrowser beendet wird. Der Bug besteht leider auch schon länger und es ist auch noch kein Datum für dessen fix bekannt.
QuickTime
DIE Multimediaplattform unter Mac OS... Kann alles tut alles... bis auf eines: keine Fullscreenunterstützung im Browser.
Flash
Würde alles abdecken bis auf die HW Bescheunigung. Ausserdem war ich mir nicht ganz sicher wie es mit dem abgreifen von Multicast Streams in Netzwerk aussieht.
die Lösung
Meine Lösung sieht folgendermaßen aus: erstelle ein WebPlugin das ein QTMovie benutzt um Videos abzuspielen (mit Perian dann sogar fast formatunabhängig). Dann erstelle mit den Cocoa-JS Bindings die nötigen Schnittstellen und schon kann man aus dem Browser hw-beschleunigtes Video im Fullscreen wiedergeben und über JS steuern.
- muss Videos unterschiedlicher Formate abspielen können
- Unterstützung für Hardwarebeschleunigung (1080i Videos mit Längen >1 Stunde werden sonst anstrengend)
- Vollbildwiedergabe
- Einbindung in eine Webseite und Steuerung über diese (Events/Callbacks/API)
VLC WebPlugIn
Genau das was ich gesucht habe! Leider jedoch mit Bug. Wenn Videos wiedergegeben werden und der Tab geschlossen wird, bleibt der letzte Frame stehen, bis der Webbrowser beendet wird. Der Bug besteht leider auch schon länger und es ist auch noch kein Datum für dessen fix bekannt.
QuickTime
DIE Multimediaplattform unter Mac OS... Kann alles tut alles... bis auf eines: keine Fullscreenunterstützung im Browser.
Flash
Würde alles abdecken bis auf die HW Bescheunigung. Ausserdem war ich mir nicht ganz sicher wie es mit dem abgreifen von Multicast Streams in Netzwerk aussieht.
die Lösung
Meine Lösung sieht folgendermaßen aus: erstelle ein WebPlugin das ein QTMovie benutzt um Videos abzuspielen (mit Perian dann sogar fast formatunabhängig). Dann erstelle mit den Cocoa-JS Bindings die nötigen Schnittstellen und schon kann man aus dem Browser hw-beschleunigtes Video im Fullscreen wiedergeben und über JS steuern.
WebView unter OS X
Ich bin gerade dabei eine größere Javascript Web App zu schreiben. Diese läuft im ersten Schritt in einer WebView. WebView alà WebKit wird ja auch von Safari zum Rendern genutzt. Leider gibt es jedoch einige Dinge die mich stören:
- Kein wirkliches Firebug für WebKit/Safari
- Keine window.onerror Unterstützung (wäre cool für DamnIT)
- Keine interne Unterstützung für Javascript's alert
- HTML 5 Audiotag mit Unterstützung für pause
- localStorage
- Rendergeschwindigkeit von Javascript Animationen ist genial
Montag, 3. Mai 2010
BezelServices
Ich war die letzten Tage im Internet unterwegs um Informationen zum Thema BezelServices zu finden.
Kurz und Bündig: es gibt einfach keine! Es handelt sich im groben um ein LoginPlugin (file:///System/Library/LoginPlugins/BezelPlugin.loginPlugin) und ein privates Framework (file:///System/Library/PrivateFrameworks/BezelServices.framework). Bisher gibt es keine API Doku weder offiziell noch inoffiziell.
Hier zusammengefasst die Lösungen die angeboten werden:
Kurz und Bündig: es gibt einfach keine! Es handelt sich im groben um ein LoginPlugin (file:///System/Library/LoginPlugins/BezelPlugin.loginPlugin) und ein privates Framework (file:///System/Library/PrivateFrameworks/BezelServices.framework). Bisher gibt es keine API Doku weder offiziell noch inoffiziell.
Hier zusammengefasst die Lösungen die angeboten werden:
- Growl
- do it yourself
- Reverse Engineering
Und hier zusammengefasst die meinige:
Ich habe eine kleine App geschrieben die im Hintergrund läuft und am DistributedNotificationCenter auf eine Mitteilung wartet. In dieser ist ein Titel und ein Pfad zu einem Icon vorhanden. Was meine App von Growl unterscheidet ist folgendes: anstatt eine zusätzliche Meldung anzuzeigen wird die bisherige überschrieben (siehe Laut/Leiser Bezel).
Zusammengefasst: War einiges an Arbeit bis alles so lief wie es sollte, aber sicher noch hundert mal weniger als das Reverse Engineering.
Abonnieren
Posts (Atom)