Δευτέρα, Δεκεμβρίου 29, 2014

Pebble θέλεις, αλλά δεν το ξέρεις.

Τι ώρα είναι;

Ώρα για νέο ποστ!


 Ήρθε ένας φίλος και μου έδωσε το Pebble του, σχεδόν το πέταξε στα μούτρα μου. "Να, εσύ ασχολείσαι με gadgets, πάρε να το δεις αν θες". Ξέρεις, βλέμμα τύπου "εσείς οι τεχνικοί..."

"Αααα νέο gadget. Δικόμουδικόμουδικόμου!"

(Στερεότυπα. Στερεότυπα παντού)

Ως άτομο που έχει να φορέσει ρολόι περισσότερο από δέκα χρόνια, ανάθεμα με κι αν ήξερα τι να το κάνω.

Δηλαδή τι; Το κινητό θα μου στέλνει νοτιφικέισονς στο ρολόι; Εδώ θέλω να μειώσω αυτά που παίρνω τώρα, όχι να προσθέσω άλλη μια πηγή φασαρίας. Και την οθονούλα ασπρόμαυρη την βλέπω, σαν Casio από τα νιάτα μας. Και γιατί δεν αντιδρά η touch screen; Α, ναι, δεν είναι touch η screen. Ααα τι μοντέρνα πράγματα, σε δισκέτες έρχονται τα firmware updates;

Μην αγχώνεσαι βλάκα dtsomp, το Pebble εχεί αυτό που χρειάζεσαι, όχι αυτό που θες.

Η e-Ink οθόνη έχει ανάλυση από μπρελόκ και μεγάλη γκάμα χρωμάτων, αρκεί να σου φτάνει το άσπρο και το μαύρο. Και παραδόξως δεν θα το άλλαζα με τίποτα. Έχει μια αίσθηση από 8-bitες εποχές (ή κατιτίς παλιότερα).

Κυρίως λόγω της οθόνης, η αυτονομία της μπαταρίας είναι αστρονομική για smartwatches: πιάνω σταθερά τις 6 μέρες. Πέρα από το Kindle, πότε ήταν η τελευταία φορά που είχες συσκευή που την φόρτιζες κάθε βδομάδα;

Πέρα από αυτό, η οθόνη έχει φτιαχτεί για να την διαβάζεις άνετα. Είναι απλά υπέροχο το πόσο καθαρή και ευανάγνωστη είναι η οθονίτσα στο δυνατό φως. Και αν δεν έχεις δυνατό φως, κάνεις μια ξαφνική περιστροφή του καρπού (accelerometers, bitch) και το backlight φωτίζει την οθόνη απαλά και φυσικά και μετά από 3 sec σβήνει μόνη της.

Το ότι τις πρώτες δύο μέρες έσερνα το δάχτυλο μου πάνω στην οθόνη χωρίς απότελεσμα μάλλον είναι θέμα μυϊκής μνήμης παρά κάποια έλλειψη από πλευράς Pebble. Το μενού είναι απλό, λιτό, κατανοητό και δεν χρειάζεται touch screen. Όχι ότι θα μας χαλούσε η touch screen, αλλά θα μας χαλούσε, γιατί το Pebble είναι αδιάβροχο και σαφώς πιο εύκολο να χρησιμοποιήσουμε τα κουμπιά του ενώ φοράμε γάντια. Οι σύντροφοι σε βόρεια κλίματα ΞΕΡΟΥΝ.

Η φόρτιση γίνεται με το ειδικό USB καλωδιάκι που κουμπώνει μαγνητικά πάνω στο ρολόι, α λα Magsafe. Γύρω στην μία ώρα είναι αρκετή. Δεν'ν'κακό.

Μόλις κάνεις pair το κινητό σου (iOS ή Android, το Pebble δεν είναι ρατσιστής), αρχίζουν και σπρώχνονται τα notifications στον καρπό σου. Το notification εμφανίζεται στην οθόνη ενώ ταυτόχρονα η δόνηση στο Pebble σου τραβάει την προσοχή. Δεν ρυθμίζεις ούτε διαφορετικά vibrations ούτε τίποτα. Όλα δουλεύουν ως πρέπουν and that's it. Πετάγονται τα sms στην οθόνη του Pebble, εμφανίζεται το caller ID του προσώπου που σε καλεί, βλέπεις και το subject από το email που μόλις έλαβες, ωραία πράγματα. Κάποια πράγματα δεν δουλεύουν τέλεια (πχ δεν βλέπω content μηνυμάτων από Whatsapp), αλλά μπορεί να φταίνε και κάτι ανωμαλίες που έκανα με τα notifications του Android ή το Whatsapp αυτό καθεαυτό.

Τι εννοείς δεν θέλεις notifications
 από το Frozen Bubble;


Φυσικά, μπορείς να φιλτράρεις ποια notifications θα σου έρχονται. Όλη η διαχείριση του ρολογιού γίνεται μέσα στο mobile app που τρέχει στο κινητό σου, όπου βλέπεις την λίστα με apps που στέλνουν notifications και επιλέγεις ποια θες. Εδώ μάλλον είναι ο λόγος που ο φίλος σιχάθηκε το Pebble - το συγκεκριμένο μενού αυτό δεν ήταν διαθέσιμο στο iOS μέχρι την ώρα που μου το έδωσε, άρα μάλλον έπαιρνε στο ρολόι όλα τα notifications. Όλα. Λογικό να του έσπασε τα νεύρα ένα ρολόι που παθαίνει επιληψία σε κάθε Facebook chat. Too late φίλος, δεν το παίρνεις πίσω.

Α, εδώ να προσθέσω ότι τα updates είναι συχνά. Πολύ συχνά. Τα παιδιά δουλεύουν ενεργά και στο firmware, και στα mobile apps. Το τελευταίο major update πρόσθεσε multilingual support στο Pebble, αλλά όχι ελληνικά ακόμα. Η λύση εδώ είναι το hacking community: pebblebits.com
 Διαλέγεις ποια character sets θες να υποστηρίζει το ρολόι σου, δημιουργείς το custom firmware, κατέβασμα στο κινητό και από κει εγκατάσταση στο ρολόι. Δυστυχώς απαραίτητο βήμα για να βάλεις ελληνική υποστήριξη, αλλά πολύ απλό και είναι ωραίο να ξέρεις ότι το ρολογάκι είναι τόσο hacking-friendly.

Μιας που είπαμε "hacking-friendly", κατεβάζεις το δωρεάν SDK, ανοίγεις το developer connection μεταξύ κινητού-Pebble, γράφεις το hello world σου και το κάνεις upload στο Pebble. Συνολικός χρόνος: κάτω από 10 λεπτά, ακόμα και για άτομα σαν εμένα. 

Από λοιπό software... υπάρχουν δύο κατηγορίες λογισμικού που μπορείς να φορτώσεις στο Pebble: τα watchfaces και τα watchapps. Ότι και να'ναι, μπορείς να έχεις 8 από αυτά φορτωμένα στο Pebble σου. Λιτότης, κύριος.
Γούστο: προαιρετικό.

Τα watchfaces είναι το στυλ του ρολογιού, δηλαδή πως θες να σου δείχνει την ώρα το Pebble. Υπάρχουν μερικά προεγκατεστήμενα, όπως το διάσημο και πολύ ντιζαϊνάτο Text Watch, το οποίο γράφει με μεγάλα γράμματα "nine fifteen". Ή μπορείς να κατεβάσεις μερικά watchfaces από το Pebble Store. 
Κάποια έχουν έξτρα λειτουργικότητα, όπως το να σου δείχνουν τον καιρό ή μετοχές ή αριθμό αδιάβαστων emails στο κινητό σου. 
Κάποια άλλα πεταμένα έχουν κάτι bitmap εικονούλες από αυτοκίνητα ή Pokemon ή τον Justin Bieber, επιτρέποντας σου να κάνεις το ρολόι σου Nokia 3210. Μπορείς, αλλά μην το κάνεις. Ρίξε μια ματιά στο mypebblewatch και θα καταλάβεις.
Η προσωπική μου εμπειρία είναι ότι μόλις βρεις ένα διακριτικό και ευανάγνωστο watchface δεν πρόκειται να ξαναασχοληθείς με την κατηγορία. ΠΟΤΕ.

Τα watchapps είναι apps για το ρολόι σου. Ξέρεις, σε περίπτωση που η λέξη δεν είναι αρκετά επεξηγηματική.

Εδώ τα πράγματα είναι πιο ενδιαφέροντα. Έχε πάντα υπόψη σου ότι σχεδόν όλες οι εφαρμογές είναι κάτι σαν dumb terminals για το κινητό σου, δεν μπορείς να τις χρησιμοποιήσεις χωρίς να είναι το κινητό σου εντός εμβέλειας Bluetooth. Έχεις πολλές mainstream εφαρμογές όπως Evernote, Swarm, Yelp κλπ. Τα fitness apps είναι μάλλον τα περισσότερα, με χαρακτηριστικό παράδειγμα το Runkeeper, το οποίο σου δείχνει την πρόοδο της προπόνησης σου στον καρπό σου, χωρίς να χρειάζεται να βγάλεις το κινητό. Κάποια από τα watchapps χρειάζονται ένα companion app στο κινητό σου, το οποίο θα χρειαστεί να το κατεβάσεις από το App Store ή το Play Store.

Μέχρι τώρα χρησιμοποιώ τα εξής:
  • Swarm. Είναι εκπληκτικό πόσο καλά δουλεύει. 
  • Slebble. Αναχωρίσεις τρένων-λεωφορείων στις συγκοινωνίες Στοκχόλμης.
  • Compass. Περισσότερο για να κάνω επίδειξη της hardware πυξίδας του Pebble.
  • Nav Me. Το Google Maps στο κινητό κάνει navigation και οι οδηγίες εμφανίζονται στο Pebble!
  • Glance. Πολυεργαλείο. Μεταξύ άλλων έχει preset SMS replies για γρήγορες απαντήσεις χωρίς να βγάλεις το κινητό από την τσέπη.
  • LATC remote. Χειρίζεται το Tellstick που έχω στο σπίτι, το οποίο χειρίζεται τις remote-controlled πρίζες που έχω στο σπίτι. Δηλαδή: ανοιγοκλείνω φώτα στο σπίτι από το ρολόι μου. ΤΟ ΜΕΛΛΟΝ ΕΙΝΑΙ ΕΔΩ!!!!

Από όλα αυτά μάλλον αρχίζει να γίνεται προφανές το killer feature του Pebble: αφήνεις το κινητό στην τσέπη σου.

Από τότε που πήρα το Pebble, έχω το κινητό μονίμως στο αθόρυβο και δεν το βγάζω από την τσέπη μου για να "τσεκάρω μήπως έχασα καμιά ειδοποίηση". Δεν έχασα καμία ειδοποίηση, το Pebble δονείται για τις ειδοποιήσεις που με ενδιαφέρουν και φιλτράρει αθόρυβα τις υπόλοιπες. Δείχνει την ώρα. Με ειδοποιεί για meetings που είναι στο calendar μου. Με ξυπνάει το πρωί χωρίς να ξυπνήσει όλο το σπίτι. Αλλάζει ακόμα και το track που παίζει στον music player του κινητού πάλι χωρίς να το βγάλω από την τσέπη.

Δεν ξέρω κατά πόσο το καταλαβαίνεις, φίλε αναγνώστη, αλλά είναι ένα περιέργο αίσθημα ελευθερίας που νιώθεις όταν συνειδητοποιείς ότι δεν χρειάζεται να κοιτάς το κινητό σου κάθε 2 λεπτά. Προσωπικά, είχα καιρό να το νιώσω αυτό, πάνω από 10 χρόνια. Και μ'αρέσει πολύ που μπορώ να το ξανακάνω.

Υποθέτω ότι και τα υπόλοιπα smartwatches της αγοράς προσφέρουν κάτι παρόμοιο, αλλά είμαι σίγουρος ότι η απλότητα και η εκπληκτική αυτονομία είναι που κάνουν το Pebble ξεχωριστό από τον συρφετό των Android Wear. Και σε πιο υποκειμενικό επίπεδο, προτιμώ το design του Pebble από οτιδήποτε άλλο κυκλοφορεί αυτή την στιγμή. Και τα χτυπητά του χρωματάκια αποπνέουν μια υγειή δόση ντιζαϊνάτη geekίλας, εγκρίνω 100%.

Κάπου εδώ πρέπει να πω και τα αρνητικά, ε;

Τα αρνητικά είναι ότι θα σε κουράσουν γρήγορα οι παρακάτω ερωτήσεις:
  • "Α, αυτό είναι το ρολόι της Apple;"
  • "Α, αυτό είναι το ρολόι που είναι και τηλέφωνο;"
  • "Α, τι ακριβώς κάνει;" 
Μικρό update: μια χαρά βλέπω Whatsapp μηνύματα στο Pebble, ή κάτι έφτιαξα χωρίς να πάρω χαμπάρι ή έπεσε update.

Σάββατο, Μαΐου 24, 2014

Android switch

(Κάνουμε και κανά ποστάκι για ξεσκόνισμα του blog)

Το iPhone 4S μου αποφάσισε τελευταία ότι δεν έχει wifi interface, και η τελευταία απόπειρα για restore απλά χειρότερεψε τα πράγματα. Ήρθε η ώρα για αλλαγή τηλεφώνου. Για αλλαγή, γενικά, μετά από 6 χρόνια με iOS συσκευές.

Το LG Nexus 5 έχει κλείσει δύο βδομάδες στα χέρια μου. Ως καμμένο geek θα έπρεπε να κάνω ένα full tech review α λα Verge, αλλά με έχουν φάει τα γεράματα και η βαρεμάρα οπότε θα το συντομεύσω. Specs εδώ.


PART 1 - η συσκευή

Hardware:
Καλό. Το κινητό είναι σβέλτο, δεν έχω δει πουθενά καθυστερήσεις. Ζεσταίνεται λίγο ευκολούτσικα όμως, όχι υπερβολικά αλλά δεν θα έπρεπε να το προσέχω όταν τρέχω απλά πράγματα, πχ Facebook, Twitter ή Feedly.

Οθόνη:
5 ίντσες, καλή, μάλλον υπάρχουν και καλύτερες. Να πω εδώ ότι 5 ίντσες είναι too much, μου είναι αδύνατο να χειριστώ τη συσκευή με μόνο ένα χέρι.

Κάμερα:
Νομίζω υστερεί ελαφρώς του iPhone 4S.

Μπαταρία:
Μιάμιση μέρα, αλλά με 2300mAh (900mAh παραπάνω από το 4S) περίμενα κάτι πιο εντυπωσιακό. Γκουχ*battery management*γκουχ.

Κατασκευή:
Για πλαστική συσκευή, απρόσμενα καλή. Being me, το έχω ρίξει ήδη δύο φορές και δεν έχει ούτε γρατζουνιά.

Τηλέφωνο:
Ακούω τους πάντες καθαρά, αλλά έχω την εντύπωση ότι οι συνομιλητές μου δεν καταλαβαίνουν πάντα τι λέω. Μάλλον θα χρειαστεί να κάνω ένα μίνι γκάλοπ για περισσότερες λεπτομέρειες.

Τιμή:
Για να είμαστε ειλικρινείς, bargain. Για 350 ευρώ παίρνεις ένα smartphone με τετραπύρηνο CPU, 2 GB RAM, 16 GB flash, 4G και με άμεσα updates από την Google - ξέρεις, χωρίς να περιμένεις την κάθε Samsung να βγάλει το δικό της firmware update μετά από 5 μήνες. Αν ψάχνετε για Android συσκευή, θεωρώ ότι είναι πολύ καλή επιλογή ανεξαρτήτως του budget σας.


PART 2 - Android

Θα περίμενε κανείς να γράψω ένα πιο ενθουσιώδες κείμενο για ένα ολοκαίνουριο κινητό στα χέρια μου. Το θέμα μου είναι ότι μου έχει περάσει ο ενθουσιασμός του καινούριου hardware εδώ και μερικά χρόνια, καθώς λίγο-πολύ όλα τα gadgets έχουν φτάσει σε ένα επίπεδο που πλέον δεν υπάρχει κακό hardware. Με 40 ευρώ παίρνεις ένα Raspberry Pi το οποίο είναι ικανό να τρέξει ένα full desktop. Αυτό που εννοώ είναι ότι το καλό hardware είναι πλέον προσιτό, υπάρχει παντού και δεν εντυπωσιάζεσαι/εκπλήσσεσαι όταν το συναντάς.

Αυτό που με ενδιαφέρει είναι το software. Θεωρώ ότι το software είναι αυτό που κάνει την διαφορά, αυτό που δίνει την ξεχωριστή αίσθηση, που δίνει το έξτρα feature. Γι'αυτό με ενδιέφερε περισσότερο να δω το Android (του οποίου οι χρήστες το υμνούν), παρά το καινούριο hardware. Και το Android με έχει απογοητεύσει.

Κάποια πράγματα που δεν περίμενα και που κανένας Android user δεν σου λέει πριν πάρεις μια συσκευή:
  • Το Android είναι ο τρόπος με τον οποίο συλλέγει τα δεδομένα σου η Google όταν δεν κάθεσαι σε υπολογιστή. Το λειτουργικό είναι φτιαγμένο για αυτή καθεαυτή την λειτουργία, όλα τα υπόλοιπα (δυνατότητα να κάνεις κλήσεις, να σερφάρεις, να παίρνεις email, τα πάντα δηλαδή) είναι περιφερειακά features για να έχεις λόγο να συνεχίζεις να χρησιμοποιείς την συσκευή.
  • Απόρρεια του προηγούμενου είναι ότι τα Google Apps που ταίζουν τα data σου στην Google είναι όλα καλοσχεδιασμένα και με φοβερά σφιχτό integration. Βάζεις το account σου μια φορά και ΟΛΑ είναι αυτομάτως έτοιμα και σεταρισμένα. Email στο Gmail app, η ατζέντα σου στα Contacts, το πρόγραμμα σου στο Calendar, τα chats σου στο Hangouts - είναι εντυπωσιακό πόσο καλά δουλεύουν όλα μαζί. Χωρίς ίχνος ειρωνίας, εκπληκτικό. Νομίζω κάτι τέτοιο ήθελε να κάνει η Apple με το iCloud αλλά μου φαίνεται ότι η προσέγγιση της Google είναι πιο αποτελεσματική εδώ.
  • Παρενέργεια του tight integration: λόγω αυτόματης σύνδεσης με το Picassa, στο κινητό μου βρέθηκαν όσες εικόνες έχω προσθέσει στο blog αυτό. Μπαρντόν;
  • Είναι επίσης εντυπωσιακό πόσο παραμελημένο είναι οτιδήποτε δεν είναι Google service-related, με φαεινότερο παράδειγμα... τα Settings της συσκευής. Το UX των settings είναι απλά γελοίο. Επίσης γελοίο το ότι πρέπει πχ να κατεβάσω third-party εφαρμογή για να μπορώ να ρυθμίσω το notification led (γιατί πολύ απλά δεν υπάρχει τίποτα που να βοηθάει στα settings).
  • Από την μία είναι πολύ σημαντικό το ότι μπορείς να αλλάξεις οποιoδήποτε default app με κάποιο άλλο. Δεν σ'αρέσει το SMS app; Βάζεις το Χ third-party SMS app. Δεν υπάρχει άλλος τρόπος να το περιγράψεις, απλά γαμάτο.
  • Από την άλλη, το default SMS app του stock Android είναι... (drum roll)... το Hangouts.
  • Κάπου εκεί αρχίζεις να καταλαβαίνεις ότι όταν οι Androidάδες σου πρήζουν τα ούμπαλα για την δυνατότητα customization, εννοούν σε μεγάλο βαθμό ότι πρέπει μόνος σου να φτιάξεις αυτά που αμέλησε η Google. Και προφανώς αυτό κάνουν και οι Samsung, HTC, LG, Sony με τα custom UI τους.
  • Το Google Now είναι ότι πιο creepy έχω συναντήσει σε ηλεκτρονική συσκευή. Ναι, φοβερά αποτελεσματικό, το AI από πίσω του είναι καταπληκτικό, αλλά δεν θα πάρω.
  • Το Play Store είναι ΜΠΟΥΡΔΕΛΟ.
  • Συνεχίζω την αναζήτηση του killer app για το Android. Μέχρι τώρα χρησιμοποιώ ακριβώς τις ίδιες εφαρμογές που είχα και στο iOS (πχ Evernote). Δεν βλέπω και καμιά τρομακτική διαφορά.
  • Κάποιες εφαρμογές είναι απλά καλύτερες στο iOS. Εφαρμογή που ποτέ δεν πίστευα ότι θα χρησιμοποιήσω ως παράδειγμα σχεδιασμού: Podcasts app. Ότι έχω κατεβάσει στο Android ως τώρα φαίνεται σα να είναι σχεδιασμένο από αυτιστικό παιδάκι με φετίχ το κυνήγι θησαυρού.
  • UPDATE: ξέχασα να προσθέσω, όσοι μισείτε το flat design του iOS, δεν έχετε χρησιμοποιήσει Android μάλλον. Γιατί χρειάστηκε να γκουγκλάρω πως να προσθέσω ελληνικό πληκτρολόγιο; Γιατί η σχετική επιλογή ήταν πίσω από πλήκτρο με μορφή label.

Κράξιμο over.

Υπήρχαν τέσσερα πράγματα που περίμενα πως και πως να δω στο Android, τα οποία πραγματικά τα ζήλευα όσο είχα το iPhone. Στα τρία από αυτά ευτύχησα.
  • Firefox browser. Ναιιιιι! Πολιτισμός.
  • Notification LED. Παρομοίως. Έχω αρχίσει να αφήνω το κινητό μου στο αθόρυβο όλο και περισσότερο και το notification LED είναι ο λόγος που μπορώ να το κάνω αυτό.
  • Micro USB port. Ας παραδεχτούμε πια ότι οι connectors της Apple είναι απλά για το licencing. Ένα καλώδιο για όλες τις συσκευές είναι αρκετό, δεν είμαστε στο 2002 με ξεχωριστά καλώδια για Alcatel, Nokia, Ericsson και Siemens.
Το τέταρτο δυστυχώς το έφαγε η μαρμάγκα. Η ανάπτυξη του Ubuntu for Android σταμάτησε λίγο πριν πάρω την συσκευή. Κρίμα. Αυτό για μένα πραγματικά θα ήταν killer app.

Κυριακή, Ιανουαρίου 12, 2014

Replace Apple's Find My iPhone with a Raspberry Pi

This is a small project that took about two weekends to figure out, but admittedly most of this time was spent on trial-and-error - and there were a LOT of errors.

The aim was to roll out a proof-of-concept clone of Apple's Find My iPhone service. As always, this kind of projects are more about learning about new technologies rather than making something production-ready.

Most of the information here is already available on the web. Jan-Piet Mens is the man to follow for MQTT related stuff.

So, how does this work?

< required intro >
MQTT is a relatively new machine-to-machine protocol for transmitting telemetry data. It is based on a client-server architecture, where the server ("broker") receives messages that clients send ("publish") for certain topics and relays messages to clients that have "subscribed" to certain topics.
< /required intro >

The broker we are going to use is Mosquitto, an excellent piece of open-source software. For extra Nerd Points, Mosquitto will be running on a Raspberry Pi. Start installing!
apt-get install mosquitto mosquitto-clients python-mosquitto

You don't need to do any special configuration on Mosquitto, just make sure it's listening on port 1883. By the way, now would be a good time to forward that TCP port from your router to your Pi.

On the phone side we are going to use MQTTitude, a handy little app that transmits location data in a JSON format using the MQTT protocol. Download and configure through Settings:
  • DeviceID: myPhone
  • Host: this should be your server's public IP/hostname
  • UserID: something
  • Password: something  (yeah, not really important, they just need to be there)
  • Expert Mode Settings:
  • - Subscription: mqttitude/#
  • - Client ID: mq  (also not important, just pick something)
  • - Port: 1883
  • - TLS: off

Alrighty, now you should be good to go. Go back to your shell on the Pi and try to subscribe to messages with the topic mqttitude:
mosquitto_sub -h localhost -p 1883 -t 'mqttitude/#'

Run MQTTitude on your iPhone and tap on the blue pin (center of bottom line). If everything went fine, you should see something like this:
{"tst":"1389527088","lat":"59.430221","_type":"location","lon":"17.951341","acc":"65","batt":"75"}

Actually, this is a very good point you've reached. You can now use MQTTitude on your phones as a replacement for Find My Friends - as long as your friends connect to the same server. You won't have a web interface but the app should be sufficient.

The web interface is the complicated part, mainly because the tricky part is to update your position on Google maps on-the-fly.

There are two options here: the proper one is to set up a web server with Websockets support and load Node.js and some Websockets javascript library and use Websockets to read from webserver + mosquitto.

Sooo... the lazy option we're doing here is a small Python script (stolen with no regrets from Jan-Piet Mens' related article) to write down the location data on a flat text file on the web server's root that will essentially replace Websockets. Ugly lazy hack, yes. Also: works. My version of the script is a bit different - some things just wouldn't work for me.


Keep that script running. It should write data in /var/www/location.current every time your location changes.

You'll need a Google Maps API key (go get it!).

Now you need a web page to display your location on Google Maps. This is where my big disclaimer comes in: this was written by a person with below zero knowledge of Javascript (i.e. me). It's a miracle that it works. No need to comment on how bad the javascript is in this.

Here's what I'm working with:
This will create a page that will open up centered in Stockholm (because that's were I live) and will read that location.current file every 5 seconds and update the marker position.

So, what I ended up with is this:

Congrats! You are now ready to disable Find My iPhone! (don't do that)

Some comments on this:
  • The webpage will take a little bit of work to support more than one user. As I said, proof-of-concept.
  • MQTTitude's battery life is a bit horrible. One way to combat this is to set up Geofences and only update your location in predefined places ("home", "work", etc) and manually.
  • Actually, predefined Geofences are awesome. OpenHAB is a home automation software that supports -among other things- MQTT. That means you can hook it up to your mosquitto broker and have it do stuff (eg turn on lights) every time you return home. This is probably my next weekend project.
I hope this will be a good starting point for some of you.