Minds + Machines 2017 Appathon Developer Live Blog

Jayson DeLancey
8 min readOct 18, 2017

--

I’m helping support the Minds + Machines 2017 Appathon in San Francisco October 24th — October 26th and will live blog updates here with my perspective, background, technical tips and tricks.

THU OCT 26

7:16AM: The Appathon is over so participants will have some time to check out the rest of the conference today. I missed the pitches for the Startup and GE tracks so taking a look at the final project submissions that you can find on the DevPost site:

WED OCT 25

6:10PM: Winners announced and team photos being taken in a few moments.

  • Enterprise: Runner up is TCS — Boiler Optimization for Greeenhouse Gas Optimizations, and Winner is Microsoft for Responsive Things for Renewable Energy Grid
  • Startup: Team DevBootCamp for Urban Space Park Optimization; Winner is Team 12 with Optimizing energy storage and generation systems with 3 team members that only met at start of the Appathon yesterday
  • GE: PBI Team #1 built a Predictive Analytics to direct Autonomous Vehicles where to charge.

5:36PM: Pitches are complete, judges will tabulate and announce winners at cocktail reception this evening. I could only capture a quick summary of the pitches so if I missed any updates don’t hesitate to let me know!

5:24PM: Evergreen, using Traffic Image Data with intention of improving flow of traffic because traffic control lights doesn’t account for stop-and-go traffic carbon emissions. Fleet carbon dioxide emissions lower(Exelon)

5:17PM: Dynamic pricing to balance power consumption across peaks to transfer sensor data from Predix Kit to Time Series / UAA. (Accenture)

5:06PM: Planning long trips for Electric Vehicle Charging stations based on usage conditions with Plan & Plug app. (GenPact)

4:52PM: Boiler Optimization & Greenhouse Gas Emissions Monitoring, using provided services but also adding Predix DBaaS, Predix Cache, and Predix Analytics. (TCS)

4:42PM: PowerVista to sell power at optimal rates and efficiencies depending on location selected and equipment installed. (TCS)

4:38PM: SmartCity center combining energy, buildings, public safety, water, and initially transportation. (Tech Mahindra)

4:28PM: Park-E, Go Green — Park Green. Used Predix Time Series, UI, CityIQ data. (Accenture)

4:20PM: Presenting zenWalk pedestrian centric design so you don’t spill coffee on your shirt heading to work. (Exelon)

4:10PM: Next pitch, how to maintain devices from a field technician perspective once CityIQ goes live collecting data from Smart Cities. (Deloitte)

4:05PM: First pitch under way using PowerBI, Azure ML, and substation weather data in Predix Time Series as part of their app. (Microsoft)

3:55PM: View from the stage at the judges get set up.

2:49PM: Just 10 minutes left to go, some teams are wrapping up and polishing their pitches. A few teams are taking the opportunity to walk over to the Machine Shop and experiment more with the Predix Kits.

1:43PM: Crunch time. Lots of questions coming in for final deployments.

  • If you run gulp --dist and don’t get a rendering page you may want to look in the polymer.json config file to make sure all of your views are defined. If you added any views from the original seed can result in fragments that are not packaged correctly. The cf push for a node app will run npm and start your app, but it will not run bower so any polymer dependencies, sass dependencies, etc. must be done by gulp before you push.
  • The Predix Developer Kit has a “Customize” button that lets you switch data ingestion from the multi-tenant demo application to your own Predix Time Series instance. You need to provide the uaa id, timeseries zone id, and client/secret to talk to your own timeseries for that to work.

12:30PM: Machine Shop is underway for those onsite that want to open a Predix Developer Kit and complete the workshop. The Countdown Timer is up for final 2.5hr crunch and Lauren is doing some administrative announcements.

9:00AM: Haven’t done a head count yet on who slept last night. Keynote is beginning soon.

TUE OCT 24

7:37PM: The repository and space setup for teams has several services that may have caused some confusion.

These service instances have data that can be used:

  • MMSanFrancisco_timeseries_heatPump
  • MMSanFrancisco_timeseries_loadData
  • MMSanFrancisco_uaa_admin

These service instances are empty, you need to bring your own data:

  • mmsanfranciscoteam-time-series
  • mmsanfranciscoteam-uaa

Using a bit of python like this I can get a list of tags starting with this:

import logging
import predix.app
logging.basicConfig(level=logging.DEBUG)
app = predix.app.Manifest()
ts = app.get_timeseries()
print(ts.get_tags())

With the logging you can see under the hood what is going on in terms of URI, HEADERS, etc. To connect to the loadData instance the details are in the GitHub, and I stashed them in my manifest like this to experiment.

$ cat manifest.yml
---
applications:
- name: staff-app
env:
PREDIX_APP_CLIENT_ID: timeseries_client_readonly
PREDIX_APP_CLIENT_SECRET: s......t
PREDIX_SECURITY_UAA_URI: https://.....predix-uaa.run.aws-usw02-pr.ice.predix.io
PREDIX_DATA_TIMESERIES_QUERY_ZONE_ID: 2dc1e...aed3
PREDIX_DATA_TIMESERIES_QUERY_URI: https://time-series-store-predix.run.aws-usw02-pr.ice.predix.io
PREDIX_DATA_TIMESERIES_INGEST_ZONE_ID: 2dc1e...aed3
PREDIX_DATA_TIMESERIES_INGEST_URI: https://time-series-store-predix.run.aws-usw02-pr.ice.predix.io

5:51PM: Dinner out of the way, hacking continues. A few clarification questions about length of pitches, presentation formatting, and pointers to the dataset descriptions / units.

3:59PM: Ryane getting a few of the participants to take a break and answer some questions for the cameras about what they are building.

2:50PM: One team is branching out from some of the provided services to use Database-as-a-Service (PostgreSQL) and ran into a Server error, status code: 502, error code: 10001, message: Service broker error: Per-org instance limit reached. This required some onsite support from support staff to provision additional compute resources as every org is limited in the number of a particular service even if under their total service instance limit.

Per-org instance limit reached

2:24PM: More involved questions about Predix Time Series starting to come in. Results from Time Series are not often paginated, but if you wanted to there is a limit in the spec so you can request only the number of data points desired. After that you can use the timestamp of the last entry as your start timestamp in the next query. (pydoc, rest)

1:46PM: The CityIQ API brings in data for pedestrians, traffic, etc. but there is some interesting applications being thought of for data we don’t quite have. Monitoring smog and CO2 data or status of traffic lights but unfortunately that data is not available yet.

Some teams are working with pandas and python to see if they can understand data load for electrification in correlating weather data and load in a local environment.

11:30AM: (INTERCUT TO THE INTERNET) If you aren’t at Minds + Machines Appathon but want to hack, the Predix Digital Volcano Challenge is still going on and still has almost 2 days left to make a better Volcano.

11:15AM: A few teams huddled around whiteboards working out their ideas and architectures. I’ve seen a few tool install issues with permissions. Some teams have checked out the Predix Kits to get sensor data running, but many seem to be looking through API docs and experimenting with some of the Postman collections.

9:21AM: Priyanka and Stewart Christie from Intel introducing the Predix Kits with Yocto image and Predix Machine pre-installed ready to send sensor data to Predix Cloud.

9:16AM: Justine Chen introducing CityIQ IoT Platform Challenge and APIs for getting data on pedestrians and traffic including traveling speed and direction from data gathered in San Diego.

9:12AM: Elizabeth Wayman kicking off Ecomagination challenge that over 50% of energy installed is renewable energy, but trend is distributed sourcing on rooftops, remote locations, etc.

9:09AM: Lauren Schutte kicking off some important logistics, deadlines, etc. Participants can ask questions on the Predix Developer Forums and tag them so support staff can be on the look out.

Keep an eye out for hashtag #GEMM17.

8:11AM: Registration, check. Seat, check. Wifi, check. Coffee, check. Breakfast Burrito, check.

SUN OCT 22

Get some rest.

SAT OCT 21

7:08PM: Modified the basic example websocket-client code to demonstrate talking to the CityIQ APIs over websocket such as with Traffic and Parking.

4:42PM: For Python developers looking to use CityIQ, a few helpful references for working with websockets:

9:14AM: (INTERCUT TO SAN DIEGO) Meanwhile, the SDHACKS17 hackathon kicked off last night which includes a GE Current / AT&T challenge to use the CityIQ nodes being installed in San Diego. There are some tips about some of the same CityIQ APIs that can be used in the M+M Appathon.

FRI OCT 20

5:00PM: Appathon participants just received a helpful update — early access to a GitHub repository with details on the data sets and APIs. Participants already had access to participate in Predix Training to get the basics of services like Asset, Time Series, Edge and Analytics but since it can take some time to really read through and get your head around the data corpus of the Appathon challenge the GitHub repository has been shared. This will give teams a few extra days to review the schemas and APIs and think about the challenge objectives in the context of some data.

11:30AM: Appathon participants will need access to compute resources in Predix in order to compete. In particular, to collaborate they will need to be given access to the same space dedicated to the team but not given access to any other team’s work. In this case the command px set-space-role <hacker@their.com> <hackathonorg> <team#> SpaceDeveloper can be run for each participant to add them to their respective team space so that everything will be ready to go. This type of user / team management is something an organization owner may need to do for real production applications when setting up different space environments for projects and managing their teams. (Find out more about the px command from the predix-cli repository on GitHub.)

TUE OCT 17

We’re just one week out so I’m starting to explore the challenge myself so that I’ll be ready to help the teams.

Challenge Basics:

--

--

Jayson DeLancey
Jayson DeLancey

Written by Jayson DeLancey

Head of Developer Relations, Semgrep; Manager Developer Relations Foundation Resources Working Group

No responses yet