Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z Service Coding Crash Course Willkommen zurück! 4.5 wilde Tage! alle Aufnahmeklappen öffnen – WIDE OPEN INPUT SENSORS Ziel heute: SQL begreifen, eigene Tabellen vorbereiten – Positionsverarbeitung kennenlernen, APIs finden – Rails auf dem Compi an der Start bringen Varianten dazu und Reflektion für eigenes Projekt © 2012 Magnus Rembold. Alle Rechte vorbehalten hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z Arbeit mit DB Systemen Datenbanken sind typische Client-Server Systeme – Nutzer sitzt am Client (eigener Rechner) – Nutzer verwendet DB-Client Programm – YourSQL, SequelPro, etc. – phpMySQL über Browser – DB läuft auf Server und bedient mehrere Clients – MySQL, Oracle, DB2, PostgreSQL, etc. © 2012 Magnus Rembold. Alle Rechte vorbehalten hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk Abfrage von Datenbanken Durch stabilen Funktionsumfang über längere Zeit entstand schon früh eine allgemeine Abfragesprache für Datenbanken: SQL structured query language Befehlssatz ist relativ reduziert und beherrschbar – Erzeugen von Tabellen [create table ...] – Einfügen von Zeilen in eine Tabelle [insert into ...] – Ändern der Daten in einer Tabelle [update ...] – Löschen von Zeilen in einer Tabelle [delete from ...] – Abfragen von Informationen [select ... ... ... ] © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk SQL Abfrage - Der Select Befehl Select ist der Befehl mit dem alle Varianten von Abfragen formuliert werden. Er ist der umfangreichste und mächtigste Befehl der Sprache. Select besteht aus mehreren Teilen select <feldname>, <feldname, ... from <tabellenname>, <tabellenname>, ... where <bedingungen> group by <feldname>, <feldname>, ... order by <feldname>, <feldname>, ... es gibt noch weitere Satzteile für diesen Befehl, die weniger gebräuchlich sind. Details findet man z.B. im MySQL Manual © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk SQL Beispiele .1 Welche Leute ausserhalb der ZHdK sind als Nutzer registriert? SELECT id, email FROM menschen WHERE email NOT LIKE '%@zhdk.ch' ORDER BY LENGTH( email ) ASC © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk SQL Beispiele .2 Welcher Nutzer hat die meisten Positionsinformationen in der Datenbank? SELECT name, count(*) AS anzahl FROM positionen, menschen WHERE mensch_id = menschen.id GROUP BY mensch_id ORDER BY anzahl DESC © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z SQL Beispiele .3 Welcher Nutzer hat sich in der Nähe des Limmatplatz aufgehalten und wann? SELECT menschen.id, menschen.name, zeit FROM menschen, positionen WHERE latitude >48.9 AND latitude < 49.1 AND longitude> 6.9 AND longitude < 7.1 AND menschen.id = positionen.mensch_id © 2012 Magnus Rembold. Alle Rechte vorbehalten hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk Weitere Befehle für Datenmanipulation Beispiele für Einfügen, Ändern und Löschen von Zeilen – insert into positionen (lat, long, zeit, genau, mensch_id) values (49.2881, 7.0123, ‘2012-05-12 10:42’, 5, 1); – update wegstrecken set fortbewegung=”Zug” where mensch_id=3; – update menschen set email=”[email protected]” where name LIKE ”%Zimmerm%“; – delete from positionen where long>7.5000 and zeit< ‘2012-05-10 12:34’; © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z Aufgabe Tabellen Überlegt, welche Informationen ihr aus einer gefüllten DB abfragen wollt, wenn euer Programm einsatzfähig ist Wie können diese Informationen durch select Statements abgerufen werden? Welche anderen Statements treten in eurem Programm typischerweise auf? Testet eure select Statements mit den Demodaten Experimentiert mit weiteren Daten & Statements © 2012 Magnus Rembold. Alle Rechte vorbehalten hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 ...? © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk Positionierung Zentraler Aspekt TripCompanion ist Positionsbestimmung – eigene Position – Position von Diensten, Orten, Wegen – Position von anderen Menschen (Freunden) Position wird mit Koordinatenpaar auf gekrümmter Fläche festgelegt Position wird von Gerät ermittelt... Aber wie? © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Navigation © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Steuermannskunst Wirtschaftliche Vorteile durch Seerouten Kluge Köpfe entwickeln Instrumente © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Sonne, Mond & ... Sextant Instrument zur genauen Positionsbestimmung anhand Sonne, Horizont & Sterne © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 GPS Global Positioning System Satellitengestützt, 20Tkm Höhe 24 Satelliten, 60° verdrehte Ebenen, 55° zum Äquator gekippt jeder Punkt der Erde sieht mindestens 4 Sats © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk Funktion des Sat Versenden des Zeitsignal: „Ich bin Satellit X, ich befinde mich an Position Y und habe das Signal geschickt zur Zeit Z“ Atomuhr mit hoher Genauigkeit pro Sat © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 2 Satelliten Positionen der Sats Laufzeiten der Signale Position auf Erdoberfläche Meereshöhen-Niveau Problem: Empfänger-Uhr © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 2 Satelliten, Fehler Uhrenungenauigkeit Laufzeit der Signale ~0,00000003s 1/100s Fehler --> 3000km daneben A echte Position B Pseudoposition © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 3 Satelliten Weitere Messung eliminiert Laufzeitfehler A echte Position B Pseudopositionen 4. Sat ermöglicht echte 3D Position © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z GPS Technik Mehrkanalfähige Empfänger (pro Sat einer) Algorithmus und Prozessor zur Differenzenberechnung Kleinster Chip `09 Passives System nur Empfang, keine Verfolgbarkeit © 2012 Magnus Rembold. Alle Rechte vorbehalten hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Quellen http://de.wikipedia.org/wiki/Karte_(Kartografie) http://de.wikipedia.org/wiki/Spiegelsextant http://www.kowoma.de/gps/Satelliten.htm http://www.kowoma.de/gps/Positionsbestimmung.htm http://www.geosoft-gps.de/gps_infos/info_1.html http://www.oberlehrer.de/?p=224 © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk Aufgabe GPS Recherche nach GPS Funktionen zur Positionsbestimmung – Welche Information liefert iPhone/Android? – Was kann man mit dieser Info anfangen? – Wer bietet Funktionsbibliotheken für Positionsberechnungen / Lokalisierung / Visualisierungen an? – Welche MapAPIs gibt es und wie sind sie sinnvoll für den Prototyp einsetzbar? – Wie lassen sich die MotionGPS Daten einsetzen? Experimentiert mit den gefundenen Informationen © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 ...? © 2012 Magnus Rembold. Alle Rechte vorbehalten Z hdk Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk Rails Setup Rails ist ein Framework für WebApps auf Basis eines Webserver Programms wie Apache und der Programmiersprache Ruby Die einzelnen Komponenten des gesamten Frameworks sind meist in C Code vorhanden und können auf *nix Computern compiliert werden Pragmatic Programmers – bieten sehr gute PDF Bücher zum Thema – bieten (Web-) Kurse zu RubyOnRails – bieten Installationsanleitung als Vorbereitung http://pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-mac © 2012 Magnus Rembold. Alle Rechte vorbehalten Service Design - SQL GPS Setup Interaction Design - FS 2012 -10.05.2012 Z hdk Aufgabe Rails Setup Bis morgen eine lauffähige Version von Rails auf dem eigenen Compi installieren – Ruby 1.9.3 – Rails 3.2.x – CodeEditor (TextMate, Coda, CodeWrangler, etc.) – Browser (Firefox, Safari, Chrome, etc.) – Debugging Werkzeug (Firebug, WebDev Toolkit, etc.) – Terminal Fenster... Viel Erfolg!! © 2012 Magnus Rembold. Alle Rechte vorbehalten