Aug
19
2011
Hier einmal eine kurze Beschreibung wie man am besten Etherpad-Lite auf OS-X Installiert.
Probiert habe ich es mit Mac OS-X 10.7 Server (Lion Server).
Vorraussetzung für die Installation ist Xcode welches im Mac App Store runtergeladen werden kann.
Der Packetmanager Homebrew kann die Installation vereinfachen, muss aber nicht genutzt werden.
Möchte man Homebrew nicht verwenden kann einfach die Installationsanleitung für Linux befolgt werden.
Interessant wird es dann wieder bei der Einrichtung als LaunchDaemon.
Installation mit Homebrew
- Zu aller erst muss der Packetmanager Homebrew installiertwerden:
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
- Dann sollte erstmal git installiert werden damit Homebrew anständig läuft:brew install git
- Mit
brew install node wird node.js installiert.
- Der node Paketmanager npmist leider wegen Problemen nicht im Homebrew enthalten, muss also manuell installiert werden:
curl http://npmjs.org/install.sh | sh
Continue reading
no comments
Mai
6
2011
Für das MTDrawing-Projekt musste ich aus Perfomancegründen zu malende Pfade vereinfachen.
.
Douglas-Peucker-Algorithmus
Um den Douglas-Peucker-Algorithmus zu Implementieren habe ich eine C#-Implementierung als Vorlage benutzt.
Um die NSBezierPath_DouglasPeucker Category zu benutzen muss nur das NSBezierPath+DouglasPeucker.h Headerfile importiert werden. Dann kann man mit der Methode
- (NSBezierPath *) pathFromDouglasPeuckerReduction:(double)tolerance;
ein neuner vereinfachter NSBezierPath produziert werden.
Damit die Methode funktioniert, darf der Pfad keine NSCurveToBezierPathElement-Elemente beinhalten.
FitCurves-Algorithmus
Der von Philip J. Schneider entwickelte FitCurves-Algorithmus wurde 1990 in den GraphicGems veröffentlicht.
Die ANSI-C Implementierung ist theoretisch direkt in ObjC verwendbar. Ich musste die Funktionen aber noch soweit anpassen, dass ich einen NSBezierPath bilden konnte.
Ruf man die Methode
- (int) schneiderCurveFit:(double) error;
auf wird der bisherige Pfad durch einen neuen Pfad mit NSCurveToPointElement-Elementen ersetzt.
Der ursprüngliche Pfad darf keine NSCurveToPointElement-Elemente enthalten.
Durch die Benutzung beider Algorithmen nacheinander kann man die Elementzahl eines NSBezierPaths erheblich reduzieren und so auch die Zeichengeschwindigkeit beschleunigen
Die Categories können auf GitHub runtergeladen werden.
Wenn jemand Verbesserungsvorschläge oder Anmerkungen hat, freue ich mich über Kommentare, Nachrichten oder Pull-Requests auf Github.
no comments | tags: Cocoa, NSBezierPath, ObjC | posted in Projekte
Okt
2
2010
Hier ein Apple-Script, dass als Folder-Action an einen Ordner angefügt werden kann.
Wenn eine Datei oder ein Ordner in den Ordner gelegt wird, werden automatisch die Zugriffsrechte für allen Unterobjekten auf Lese- und Schreibzugriff für alle Benutzer geändert (chmod 777), zusätzlich wird an jeden Unterordner das Skript als Folder-Action angefügt.
Das Skript kann zum Beispiel dazu genutzt werden auf einem File-Server alle Objekte in einer Freigabe für alle Benutzer les- und schreibbar zu halten, auch wenn ein Benutzer ausversehen ein Objekt mit “falschen” Zugriffsrechten in den Ordner kopiert.
on adding folder items to this_folder after receiving added_items
tell application "Finder"
repeat with this_item in added_items
my theScript(this_item)
my subfolders(this_item)
end repeat
end tell
end adding folder items to
on subfolders(this_folder)
tell application "Finder"
repeat with each_folder in (get every folder of this_folder)
my theScript(each_folder)
my subfolders(each_folder)
end repeat
end tell
end subfolders
on theScript(action_folder)
set script_file to ((path to library folder as Unicode text) & "Scripts:Folder Action Scripts:chmodPublic_and_addScript.scpt" as Unicode text)
tell application "System Events"
attach action to (action_folder as alias) using (script_file as alias)
end tell
set posix_path to quoted form of POSIX path of action_folder as string
set ScriptReturn to do shell script "/bin/chmod -R -f 777 " & posix_path
end theScript
no comments | tags: Apple-Script, Folder Action, OS-X, Skript
Aug
6
2010
Nachdem ich durch Abistress und viele Veranstaltungen wie Abistreich, -entlassung und -ball lange keine Zeit mehr hatte an diesem Projekt weiterzuarbeiten habe ich mich jetzt mal wieder drangesetzt die TUIO Mouse weiter zu entwickeln.
Ich habe jetzt den Rechtsklick implementiert. Wenn man mit zwei Fingern innerhalb einer einstellbaren Zeit die MT-Fläche berührt hat, wird in der Mitte der beiden Punkte ein Rechtsklick gemacht.
Als nächsten Schritt möchte ich Scrollen implementieren.
Noch möchte ich das Programm nicht ganz öffentlich zur Verfügung stellen. Auf Anfrage stelle ich es gerne zur Verfügung.
no comments | tags: Cocoa, TUIO | posted in Multitouch Tisch, TUIO Mouse
Jun
13
2010
Das andauernde Vuvuzela-Geräusch in den Fernsehübertagungen der WM nervt viele Zuschauer.
Um das Geräusch irgendwie wegzubekommen, aber gleichzeitig WM gucken zu können habe ich mir überlegt einfach mit nem Equalizer die Frequenzen der Vuvuzela rauszufiltern. Continue reading
2 comments | tags: Garage Band, OS-X, Vuvuzela
Mai
23
2010
Um mich erstmal wieder in Cocoa einzufinden und in das Framework einzuarbeiten habe ich mir vorgenommen ein kleines, einfaches Projekt anzugehen. Mir kam die Idee, dass es doch ganz gut wäre, wenn man mit dem Tisch auch ganz normal im Finder navigieren kann. Also wäre eine “MT-Maus” ganz gut. Nachdem ich ein wenig im Internet nach bisherigen Lösungen gesucht hatte und keine zufrieden stellende Lösung gefunden habe, war für mich klar, dass ich versuchen werde eine gute “MT-Maus” für den MT-Tisch zu entwickeln.
Continue reading
no comments | tags: Cocoa, TUIO, WS-Touch | posted in Multitouch Tisch, TUIO Mouse
Mai
23
2010
Wenn die Hardware funktioniert werden Berührungen der Tischoberfläche auf dem Bild der Webcam als weiße Blobs sichtbar sein. Diese Blobs müssen von einer Software erkannt und verarbeitet werden.
In dem Wiki der NUI Group bin ich auf eine Liste mit Frameworks, Software und Libraries zum schreiben von Multitouch(MT)-Programmen gestoßen. Für mich ist klar, dass mein Endprodukt auf einem Mac laufen soll und ich am liebsten Cocoa programmieren möchte um mich weiter in die Sprache einzuarbeiten. Das in der Liste aufgeführte Touché von Georg Kaindl macht einen recht ausgereiften Eindruck, ist komplett in Cocoa geschrieben, bringt ein eigenes Framework zur Entwicklung von eigener Software mit und die Beispielprogramme sind eine gute Basis um sich in das Framework und überhaupt MT-Programme einzuarbeiten.
Sehr schön finde ich auch, dass man auch eine Wii-Remote als Input benutzen kann und ich so auch meine Programme testen kann bevor der Tisch fertig gebaut ist. Touché kann auch TUIO-Nachrichten ausgeben und ist so auch als Tracker für andere MT-Programme geeignet.
Wie schon beschrieben soll man mit Berührungen auf dem Tisch Pfade zeichnen können, die an die Roboter übermittelt werden und dann von den Robotern abgefahren werden. Die Roboter sollen während der Fahrt aber Hindernissen ausweichen und so ist der gefahrene Pfad u.U. anders als der gezeichnete. Der gefahrene Pfad soll also vom Roboter an den Tisch übertragen und dort dargestellt werden.
no comments | tags: Cocoa, TUIO, WS-Touch | posted in Multitouch Tisch
Mai
21
2010
Die verschiedenen Module der Robotersteuerung müssen über ein Protokoll kommunizieren.
Bei dem entwickelten Protokoll werden einzelne Elemente mit “,” getrennt. Ein Befehl wird mit “;” abgeschossen.
Continue reading
no comments | tags: WS-Touch | posted in Multitouch Tisch
Mai
21
2010
Da ich in der Gruppe für die Table-Software bin, kann ich die Planung leider nur Auszugsweise wiedergeben.
Der für den Multitouch-Tisch verfolgte Ansatz ist die Totalreflexion:
Ein Stück Acryl-Glas wird von allen Seitenkanten von IR-LEDs beleuchtet. Da die Strahlen sehr flach auf die Flächen auftreten werden sie komplett reflektiert. (Die Lichtstrahlen werden an der Grenzfäche reflektiert, da sie aus eine Medium mit hoher Brechzahl an die Grenze zur Luft mit niedrigerer Brechzahl in einem größeren Winkel als dem kritischen Winkel kommen.) Continue reading
no comments | tags: WS-Touch | posted in Multitouch Tisch
Mai
21
2010
Die Idee
Die Abi-Klausuren sind geschrieben und das vierte Semester bricht an. Dem letzten und sehr motivierten Informatik-Leistungskurs der Wichern-Schule fehlt es an Arbeit. Es werden Ideen gesammelt, was man die letzten Monate produktives machen könnte. Nach längeren Diskussionen fallen Ideen wie “3D-Tracking von Händen anhand der kapazitiven Verschiebung” oder “Warenhaus-Roboter” weg und die Idee eines Multitouch-Tisches kristallisiert sich heraus.
Continue reading
no comments | tags: WS-Touch | posted in Multitouch Tisch