rjacoby / pebblepoint

Pebble watch app for controlling PowerPoint on Mac OS X

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PebblePoint

PebblePoint is a watchapp for Pebble smartwatches that lets you control PowerPoint on Mac OS X.

Requirements

Installation

Install the app from the Pebble Store on your phone.

Running the Server

Download and run PebblePointServer.app.

Or, if you're more technical you can install the Node.js package, pebblepoint_server. It's a lot smaller than the .app version, which has to bundle all of Node.js, Chromium, etc.

Configuring your Pebble

When the server runs, it shows you what IP and PORT you need to use. Follow the on-screen instructions to get going!

Burning Questions

Why Mac OS X only?

I initially built this for myself, to use at Razorfish's Tech Summit. I work on a Mac. I build using open source software, which this is (except for the MS part). I don't develop on PCs and I know that building a simple, easily installable REST server to talk to PPT for Windows via VB isn't my bag of tea.

Well then, Mac Guy: Why PowerPoint and not Keynote?

Simply because our corporate decks are all PPT and that's what I had a need for. It also has a very rich AppleScript command dictionary, which let me bridge the last step into controlling a .app.

Will you do a PC version?

No. Will you? Please do!

I think the optimal way would be for you to fork the pebblepoint_server project and make it smart about OS integration. You'd also need to make the build of an atom-shell .exe for Windows happen.

However, running Node.js on Windows seems tough to me.

So, another option would be to just make a workalike server that speaks the same simple REST protocol. You'd just need to implement something that has the functionality of the POST /go/:command section of the server guts and have a way of showing the IP and PORT to the user for config purposes.

Your C is ugly.

I agree, but that's not a question.

What technologies are involved in this project?

Quite a lot, actually.

  • C code for the watchapp
  • JavaScript on the phone to let the Pebble make network calls to the server
  • JQuery/mobile for form validation in the config screen on the phone
  • Node.js for building the server
  • Express to give the server structure and some nice helpers
  • Coffeescript because I prefer it to JS
  • Applescript to control PowerPoint
  • Bootstrap for simple prettying of webviews
  • EJS because even tho I prefer Jade, I wanted the server to be a lightweight NPM package and have fewer dependencies, but then I used...
  • atom-shell to make the jumbo heavyweight (100+MB!!!) standalone app for people who aren't going to do Node package installs and command line stuff
  • Katon for running the server as I was developing the package
  • Grunt for building, because it had a task for grabbing atom-shell
  • ditto because I gave up on fighting with Node's glob behavior to allow me to copy the atom-shell and all its space-filled filenames and symlinks
  • Markdown for this file you're reading right now

Will you do this for other smartwatches?

If you give me a free one, I'll give it a shot.

I was a Kickstarter backer of the Pebble, so that's why I have it.

About

Pebble watch app for controlling PowerPoint on Mac OS X


Languages

Language:C 68.7%Language:JavaScript 20.8%Language:Python 10.5%