Going to NYCBigApps

The dean of the Flatiron School asked us to enter the NYCBigApps competition. They think we actually have a pretty good shot at winning, which would be amazing. The prize money would be enough to buy a lot of sensors for people who need them. We should really look at getting the cost down so we can have a bigger impact.

Huge win at NYTM

Everyone loved us at New York Tech Meetup - there are people coming out of the woodwork asking to help out with the project. We got so many business cards we don’t even know what to do with them. It’s crazy how this went from a school project to a serious piece of open source software almost by accident. The fact that the community is so excited about it really speaks to the need for more innovators out there designing tech solutions for community problems. Hacktivism, digital advocacy, whatever you want to call it - we’re really excited to be a part of it and using our tech skills to improve lives.

New York Tech Meetup

We’ve been selected to present at the largest meetup in the world! Crazy. We only had one day’s notice so we’ve got to really cram for this presentation. Looks like we’ll be spending the entire day going over the demo; it’s crazy to think that thousands of people will be seeing this.

BetaNYC

We got approved to present at BetaNYC! They want us to do a 5 minute lightning talk, so we’ll have to cut out about two thirds of the presentation, but it’s still super exciting. BetaNYC is a perfect place to present because its specifically focused on technology, civic engagement, and community service. You can read more about their other awesome projects here.

Continuous Deployment

Now that we’ve got deployment mastered, we thought it would be good to set up continuous deployment. William connected our repo to CodeShip and now any time we push to master it redeploys so long as our test suite passes. It’s been great.

Deployment!

We finally deployed! We gave up on figuring out multipacks and deployed to Digital Ocean instead of Heroku. It took a whole day and lots of advice. But now there are no more missing readings due to William’s computer being down. Major progress.

Presentation went well!

Our presentation went really well! It got such a good reception in fact that the dean of the school told us to apply to present it at New York Tech Meetup. It’s the largest meetup in the world and has a huge audience, so I’m sure we won’t get in, but we might be able to get into some smaller meetups. We’re also going to apply to present at BetaNYC. Wish us luck!

Bootstrap Makeover

Tristan’s been pounding away at the UI. He taught himself Bootstrap and has been getting help from Jon Grover, the front-end instructor at the Flatiron School. The app is starting to look pretty nice actually, and he’s got some fancy AJAX and client side javascript to make things sleek.

Custom Authorization

We decided to hand-roll our own authorization system instead of going with an off-the-shelf library like CanCan. Thanks to Avi Flombaum, dean of the Flatiron School, for the advice! We’ve also updated the architecture of the application to create database relationships between tenants and their advocates, like lawyers and tenant union organizers.

Devise Authentication

Tristan somehow managed to set up our authentication system, which is now actually really robust. We’re really concerned about protecting user privacy so this was a big accomplishment for us. We’re using Devise, which is an open source library from Plataformatec. It’s pretty complicated but once Tristan got it up it was great.

SuperMechanical API is SuperLame

We are trying to move away from using Capybara to scrape the SuperMechanical site so we don’t have to figure out multipacks on Heroku. You’d think an API for a heat sensor would let you ask it for the temperature, but for some reason they haven’t gotten around to that feature. I even contacted them and they said they are not implementing that functionality any time soon. Without a workable API, it looks like we’re back to figuring out multipacks.

Urban Justice Center

Today we got in touch with Stephanie Rudolph from the Urban Justice Center. She and other lawyers at UJC often represent tenants in low-income housing who have no heat. You can read more about the Urban Justice Center below:

The Urban Justice Center serves New York City’s most vulnerable residents through a combination of direct legal service, systemic advocacy, community education and political organizing. Our 10 Projects assist clients on numerous levels, from one-on-one legal advice in soup kitchens, to filing class action lawsuits to bring about systemic change, to pushing social justice legislation forward.

Stephanie is really excited about our project and has two new users for us. She asked for more, but we’ve only got two sensors available for now. We’re hoping that by working with UJC, we’ll be able to better understand the housing court system and how heating code violations are lodged and resolved in court. If Stephanie can advise us on the best way to make our app and sensors user-friendly to tenants and lawyers, we can tailor our temperature logs to look like the ones people submit in court. We’re really excited about the partnership and look forward to working with Stephanie!

Technology Is Power

Everyone who works in technology seems to be building things for the people who have money. I get it, they want to get paid. But if technology is power - more than ever these days -  what will happen if we continue to build technology only for the rich?

Deployment Problems

William tried to get Heat Seek up on Heroku but it looks like we need a second buildpack. We’re using Capybara in production as part of the process of collecting readings, which requires PhantomJS, and that uses a separate buildpack. By default, Heroku only lets you have one, and we’re using it to run Rails. We need to figure out how to use multipacks.

Missing Readings

Our first user’s apartment is showing tons of violations. It’s amazing that even this late in the heating season we’re still showing such a huge problem. Its hard to imagine living in such a frigid apartment, and his readings are only underscoring how difficult it is for tenants to resolve the problem. Now we really need to get deployed, since we’re missing readings whenever William’s computer is shut down. It’s been extremely difficult getting to production in such a short amount of time, but its so frustrating that every time William’s computer dies or he loses internet access, we stop collecting readings from our user. Once we’re fully deployed, the sensor will be able to take readings regardless of whether William’s computer is up and running, since the data will feed into a server instead of directly onto his laptop.

First User

We’ve officially got a sensor in our first apartment! We won’t post the user’s name due to confidential, but he lives in the south Bronx. He has struggled with inadequate heat in his home for some time, and we were lucky to connect with him through Tristan’s mom to install a sensor in his apartment. He doesn’t have internet access, so we set it up with 3G using a Clearbox. We think many of our future tenants will lack reliable wifi, so it was important to us that the sensors be designed to work regardless of whether tenants have an internet connection. Using 3G is a bit more costly, since we have to pay for a data plan, but it means that tenants should be able to use the sensors without fear that they’ll miss readings if their internet goes out. Thanks to the Flatiron School for paying for our hardware!

It Works!

We’ve got the web app working locally in development mode! It’s amazing how quickly you can get something done when you’ve got a fantastic team.

Now we just need to figure out how to deploy the thing to production so William can turn off his laptop without bringing the whole site down.