Brian Gray

Brian Gray

I am a high school teacher working on the REU-IOT/RET (Research Experience for Teachers) project this year.  I work at St. Stephen's Episcopal School in Austin.  I teach Computer Science students at the into and advanced levels.  I am also a programmer for the school and manage several systems for the school, including Google Apps.  

I worked as a programmer and system manager for several companies before I started teaching in 1995.  I have a BS and MS in Computer Science, and an MA in Teaching from Kent State University.

In my spare time, I look around for a baseball game to watch.

Progress notes and other observations are below - in reverse chronological order.


July 2..July 4 - FitBit Surge does not allow direct data collection of sensors.  We're sending the device back and getting another MS Band.


June 29..July 1 - more work on documenting Android setup and extracting data from FitBit.


June 28 - Visit to SwRI in San Antonio. In the division we visited, much of what they're working on is related to computer vision and image processing.  Package selection, autonomous vehicles, traffic flow (and lack of flow due to accidents).  Many cool toys to play with.


June 27 - I finally got the OAuth2 data flow working.  I can read and write data on FitBit's cloud database.  The data flow is: data from watch is sent to smartphone app via Bluetooth and is processed there.  The data is then uploaded to the FitBit database.  There are no APIs to read actual sensor data from the Surge.  We can only get the processed data (steps, calories, heart rate, etc.)  Will work on generating a CSV file with data in a reasonable, parsable format.

Working on documentation of  the process for installing Android Studio, updating, etc, and using it to run the Google Fit sample programs on a phone or emulator.  There are pieces of the process documented in several places, but much of it assumes more knowledge that some users will have.


June 23, 24 - Working on OpenIot and FitBit API.  No real progress with either.  Having trouble with the OAuth2 data flow on FitBit.  I think that the OpenIoT installation did not work completely - even though it looked like it did. 


June 22 - Presentations by students from Tx Tech and Tx State.  More work on FitBit Surge API.  


June 21 - Visit at IBM Research in Austin.  


June 20 - I found my errors while installing OpenIoT.  (I confused the keystore keypass with the sudo/account password.) I wiped out the virtual machine and started over.  It's working now.  I have links to starting points suggested by Prem Jayaraman [This email address is being protected from spambots. You need JavaScript enabled to view it. ].

The Google Fit Android Studio sample app BasicHistorySession requires an additional entry in the project's AndroidManifest.xml.  See The line should be added to (inside) the <manifest> but outside the <application>.


June 19 - Minor progress on OpenIoT, but still not working.

The OpenIoT discussion page for the project at GitHub has an entry from May 2016 that describes the problem.  A comment from contributor jbjares on 5/20/16 contains the instructions for getting past the problem I ran into.  (The original repository for some of the utility code used in the project is now empty.  jbjares describes how to deal with it by getting the code from another source and adding it to the Maven project locally.)

That solution only led to another problem - an error accessing a web service on port 8443.  That problem is at the top of the list for tomorrow.

On the Android side, I can make three of the four sample programs work.  One fails with a null pointer exception that I have not been able to track down yet.  I have had no luck in building my own program to use the Fit APIs - I've just been able to modify the existing programs a bit.  But I don't have a solid grasp of what they're doing yet.


June 16 - made some progress getting sample apps to run on my phone.  The documentation creating the project is a bit sparse, so I'll look for a more concise set elsewhere or write them up myself.  So far, I've been able to run the sample apps - which prove that the APIs are working, but no actual data is revealed.

I found several sites with larger examples, so I should be able to get some actual data out of the phone soon. 


June 15 - working on making my phone talk to Android Studio, and playing with some of the demo programs.

Learned about the R environment from Dr. Zare.  It might be useful in my CS classes.  Stats teachers will also be interested.

Learned about data mining and machine learning (and Weka) from Dr. Metsis.  I'm still absorbing and processing what he showed me.

Finally got my phone to talk to the Android Studio environment.  Running some of the example code - just to verify that it's working as expected.  

The Google Fit app is collecting data and uploading to the Google site (  The only option for getting data out of the Fit site is with Google Takeout. It produces a CSV file for each day, with a record for each 15-minute interval in the day.  All known activity is reported for each interval.


June 14 - overview of the other projects

REU student teams presented a description of their projects to the other teams and faculty advisers.  Anne Ngu showed me a couple of tools that we might consider using - Ptolomey and a bit of GSN.

Started to work on configuring Android Studio on my computer and to work with my phone.



June 13 - first day for us teachers.  Learning how much I don't know about many things.  

We heard what Brock, Andrew and Joie have been working on - detecting when a person has fallen based on sensor readings.  Applications in hospitals, nursing homes, and for older people or people with disabilities.  Who is going to volunteer to be the test subject, and how many different ways can a person fall?  What does the sensor data look like during and after a fall?  Can that data be processed on a phone (as the gateway device), or does the data have to make it to a higher level?

Anne Ngu talked about IoT in general and the work being done this summer.  So many options for how to collect and work with the data from sensors.

We have to start thinking about how IoT fits into a high school CS course, and what kinds of projects can be used to teach the concepts.