175 RR Civic Hacking with William Jeffries

00:00 0:41:52
Download MP3

02:27 - William Jeffries Introduction

See Also

Book Club

Refactoring: Ruby Edition: Ruby Edition (Addison-Wesley Professional Ruby Series) by Jay Fields, Shane Harvie, Martin Fowler, and Kent Beck

Refactoring in Ruby by William C. Wake and Kevin Rutherford

Next Week

Rails as an SOA Client with Pete Hodgson

Transcript

[This episode is sponsored by Rackspace. Are you looking for a place to host your latest creation? Want terrific support, high performance all backed by the largest open source cloud? What if you could try it for free? Try out Rackspace at RubyRogues.com/Rackspace and get a $300 credit over six months. That’s $50 per month at RubyRogues.com/Rackspace.]**[This episode is sponsored by Codeship.io. Don’t you wish you could simply deploy your code every time your tests pass? Wouldn’t it be nice if it were tied into a nice continuous integration system? That’s Codeship. They run your code. If all your tests pass, they deploy your code automatically. For fuss-free continuous delivery, check them out at Codeship.io, continuous delivery made simple.]**[This episode is sponsored by Hired.com. Every week on Hired, they run an auction where over a thousand tech companies in San Francisco, New York, and L.A. bid on Ruby developers, providing them with salary and equity upfront. The average Ruby developer gets an average of 5 to 15 introductory offers and an average salary offer of $130,000 a year. Users can either accept an offer and go right into interviewing with the company or deny them without any continuing obligations. It’s totally free for users. And when you’re hired, they also give you a $2,000 signing bonus as a thank you for using them. But if you use the Ruby Rogues link, you’ll get a $4,000 bonus instead. Finally, if you’re not looking for a job and know someone who is, you can refer them to Hired and get a $1,337 bonus if they accept a job. Go sign up at Hired.com/RubyRoguesPodcast.]**[Snap is a hosted CI and continuous delivery that is simple and intuitive. Snap’s deployment pipelines deliver fast feedback and can push healthy builds to multiple environments automatically or on demand. Snap integrates deeply with GitHub and has great support for different languages, data stores, and testing frameworks. Snap deploys your application to cloud services like Heroku, Digital Ocean, AWS, and many more. Try Snap for free. Sign up at SnapCI.com/RubyRogues.] **CHUCK:  Hey everybody and welcome to episode 175 of the Ruby Rogues Podcast. This week on our panel, we have Avdi Grimm. AVDI:  Hello, hello. CHUCK:  Saron Yitbarek. SARON:  Hey. CHUCK: I’m Charles Max Wood from DevChat.TV. And this week, we have a special guest, William Jeffries. WILLIAM:  Hello, everybody. CHUCK: Do you want to introduce yourself really quickly for the folks who don’t know who you are? WILLIAM:  Yeah, absolutely. So, I am a software developer. I currently work for SunGard Consulting Services. And I have been hacking on this project that I think is doing really good stuff called Heat Seek NYC. And we are an organization that tries to help keep the heat on in the winter using the internet of things. CHUCK:  Do you want to explain how that works, “keeps the heat on”? So, you’re not working for a utility are you? My understanding of it was more of a social hacking kind of thing. WILLIAM:  Yeah. So, the way it works is in New York City there are building codes in place, because a lot of the buildings are very old and historic. And they don’t have thermostats in each apartment. So, tenants can’t really control their own heat. They just rely on the landlord to heat the building enough in the winter time. And sometimes there are problems with the heat. And it’s sometimes difficult to get the building codes enforced. So, you call the housing department for New York and they send out an inspector. But it can take up to 72 hours for an inspector to come out. And in the meantime, you don’t have heat. And then once the inspector comes, that’s not always the end of it. Often the landlord still doesn’t get the heat back on. And people try and go to court about this, but the only way for them to show that it’s been cold in their apartment is to take a heat log. And so, you get, people will actually write down by hand what the temperature is inside their apartment, when they remember, when they get the chance, when they’re not busy working or taking care of their kids or whatever. Then when they go into court, they have to testify that it was taken properly. And there are a bunch of rules that often people don’t understand fully, like the fact that you also need to be checking the outdoor temperature. And the rules are different depending on the time of day. So, what we wanted to do was to empower advocacy groups that represent tenants, especially low-income tenants, and to empower the housing department to make sure that people are obeying the law and to do so more efficiently. So, we created these temperature sensors that mesh network. So, you can have many of them in a building and they all can communicate with each other instead of all connecting directly to the internet. And only one of them needs an internet connection. And you can do that over 3G or Wi-Fi. And they send a signal to our Rails app. And it analyzes the readings and determines whether or not there’s a violation and produces a lot of pretty charts and graphs and things that advocacy groups and attorneys and inspectors could print out and use as evidence in mediating cases. SARON:  How did you find out about this problem? Is it something that you were dealing with or someone you knew was dealing with? WILLIAM:  Yeah. Well, you know it’s funny. About a significant percentage of the people who I talk to about this issue in New York say, “Oh man, I’ve had issues with the heat in my apartment.” And I personally had issues with the heat. Not to the scale of the kinds of people that we end up giving these sensors to. And at least a little bit of pushback, because the landlord is busy and he’s got other repairs to make. And often, some of the apartments in the building will be too hot. So, to them it seems like, “How big of an issue could this really be?” So, it started while I was actually at The Flatiron School and I needed a project. And I had bought this Twine, the Supermechanical Twines. They’re a fun developer toy and they do a lot of things, including but not limited to taking temperature readings. So, I wrote a blog post about how that sensor could be used to help people who have this problem in a more serious way where it’s like 40, 50 degrees in their apartment in the winter. And their kids are getting sick and missing school. And it’s much more serious than the kinds of issues that I had. And one of the other students at The Flatiron School, Tristen Siegel, read the blog post and said, “Hey, my mother is a social worker and her patients have this problem all the time. And so, if you wanted to actually build this tool, I would love to help out with that.” And then it sort of snowballed. And at this point we have nine people on the project. And we just won NYC BigApps. CHUCK:  So, this makes me really curious. You have nine people working on it. It’s not a business, so it’s not bringing in money in the sense that people are going out and paying. Maybe I’m wrong. Maybe people are paying for the sensors and paying to be involved. I don’t know. But how does it support itself? WILLIAM:  So, we’re an open source project. That’s where we started, was me and Tristen writing open source. So, because this has turned into a hardware project, we’re having to expand the rules and definitions of open source to allow for things like fund raising. So, we had a successful Kickstarter campaign. And we got some prize money, got actually quite a bit of prize money out of NYC BigApps. We took home multiple awards and $25,000 from that. So, that’s how we’re financing the sensors themselves, which we want to give away for free to tenants who need them and to non-profit organizations that can administer them and make sure that the data gets put to good use. SARON:  What I find most interesting is the number of fields and industries I guess that you’re working with, since you’re working with government and social workers and lawyers. And I don’t think any of those are considered fast or speedy or very efficient. And technology is very fast and usually very efficient. So, how did you manage to get so many people involved in a tech project without losing speed or efficiency or just progress? WILLIAM:  We were just really lucky to put together an amazing team. There were a lot of people who thought this was a really good idea and something that was really worth doing. And so, we got people coming out of the woodwork offering their help on the project. We have a fantastic designer. The guy who’s doing the hardware is amazing. Everybody on the project is just really talented. And the government seems to be moving a lot faster than anybody would have predicted given government’s reputation. But we presented at New York Tech Meetup when the mayor was there to announce his new CTO, the first CTO of New York City ever, Minerva Tantoco, who is also really amazing. And after he saw our presentation he said, “This is a great idea. I’m going to get you a meeting with the HPD commissioner.” And then he did get us a meeting with a whole bunch of top officials in city government, including NYCHA, HPD, NYCEDC. And I’ve been really impressed at how quickly these organizations are moving. We’ve got another meeting next week to go over exactly what the details are of how we can help and how we can best empower these organizations that are really doing great work and may use technology to make it even easier for them to efficiently make sure that people are following the law. CHUCK:  I think it’s interesting too that you’re working on a social application that works with the government, because it seems like a lot of the times when I hear about things like this, it’s watchdog groups going after the government instead of working alongside them. WILLIAM:  Yeah. You know, we were really surprised to see. We shouldn’t have been. But after meeting with HPD in particular, the deputy commissioner at HPD was extremely supportive. And after the meeting he stayed and talked to us and gave us his ideas and lots of guidance. And he corrected us on a lot of facts that we had wrong and explained to us. We thought that HPD inspectors came out for heat complaints and just took at temperature reading. And as it turns out, they do a bunch of other stuff. There’s a six-point inspection. And they make sure that the building is up to code in lots of different ways, not just in terms of heat. CHUCK:  Now, when you say HPD, who’s that? WILLIAM:  That’s the Housing Department. So, he was really helpful and introduced us to some of the inspectors who actually are in the field, who are the boots on the ground. And we had thought that, because we heard from tenants, “Oh, sometimes we call 311 and it takes days or weeks, or sometimes they never come at all.” And after talking to him, we found out that actually, HPD always comes. It’s just that an individual tenant might not know that the HPD inspector came because if you get ten different people all complaining about the same building, often you can confirm that there’s a problem without going to all ten apartments. So, they are experts really in this area of how to properly ensure that buildings are up to code and people are following the law and doing this efficiently. And so, I think we have a tremendous amount to learn from them. And I’m really excited that they seem so open and excited to letting us empower them through technology to do this even more efficiently. SARON:  So, this was one of your first projects while you were learning to code. Is that right? WILLIAM:  That’s right. SARON:  So, what was the hardest part about that, being a new programmer and building something that ended up being pretty important to a lot of people? WILLIAM:  I think the hardest part about it was probably that, oh I don’t know. We had so much support from the Flatiron School and from BetaNYC, the New York Code for America brigade, and other organizations like them that things have really gone pretty smoothly. But I think not really being able to contribute much on the hardware side was difficult. We’re lucky enough to have somebody who really knows hardware and has been able to take that and run with it, Harold Cooper. But you know, I think that this really speaks to the Ruby community, because it’s not just Heat Seek NYC that is doing things like this. There are lots of other organizations, volunteer groups that are putting together really cool civic hacking style applications. And they’re doing it with Ruby on Rails, which I think is really cool. And here in Philadelphia, I’m calling from Philadelphia today, there’s a Code for America brigade here as well of course. And they have a really cool Rails app called Textizen that allows people to make surveys relating to civic issues more accessible, because over 90% of the population has access to SMS, one of the easiest ways to get in touch with a really diverse set of the population. And there’s another cool one out of New York that’s now expanded quite a bit, SeeClickFix. It’s another Ruby project. And they allow people to report problems in the city, in their community, online and get that information to government officials and people who can help remedy them. I spent some time in Brazil and there’s a big Ruby on Rails community down there, especially in Sao Paolo. There’s an organization called Engage that is a social incubator. And they’ve got some really cool projects. One of them is Catarse, which is like a Kickstarter platform with an emphasis on community-based projects. And I think it speaks highly to the Ruby community that our developers really care about these kinds of issues. CHUCK:  Yeah, that’s really cool. And I’m glad that it’s helping people out. I have a couple more questions about Heat Seek. One is that if a sensor is reporting a problem, does it actually tell somebody? Does it actually get the inspector sent out? WILLIAM:  So, right now we’ve been working with non-profit organizations like the Urban Justice Center, which has a big team of lawyers that handle a lot of housing cases. And they find people who have lots of problems with their housing. And usually one of them is heat. So, we’ve put sensors in their clients’ apartments. And then their lawyers can just log onto the Rails app and they can see, “Here’s a list of my clients. And I can click and check and see what the temperature is in their apartments right now. And here’s a graph that shows how many times it’s been in violation over the past X amount of time. And here’s a pdf that I can quickly download and print out and take into court.” And it’s formatted to look exactly the same way that the heat logs that judges are used to seeing a lot, because that’s what we based them off of. AVDI:  Did you have to jump through any hoops to make these admissible in court? WILLIAM:  Yeah. So, right now the way it works is a tenant takes a handwritten log themselves and then they go in and they testify that they took it fairly. So, if you’re going to use a Heat Seek sensor then you need an expert witness from Heat Seek to come in and testify that the technology works and that the sensors have been tested and to explain why it’s reliable. What we’d like to do is eventually get these into the hands of government inspectors because HPD reports are automatically admissible. It just goes in. It’s called prima facie. There isn’t much room for anybody to question it. And that’s what happens right now with the regular thermometers that inspectors use. CHUCK:  That makes sense. I’m looking at your cold map here. I’m curious. What did you use to build that? WILLIAM:  We used Leaflet, Leaflet.js. So, that type of map, we call it a cold map. Technically, it’s a choropleth, is what they call it. So, we took 311 data and we mapped out by zip code which zip codes have the most heating complaints. So, you can see the darker blue zip codes are the ones where people have been calling more about this problem. And so, what we’d like to do is overlay our actual data as pins on that map so that you can see live where violations are happening in the city. And we think that would be a really great tool, especially for inspectors so that they know before they even hit the road where there are going to be problems that day. CHUCK:  Yeah, that’s cool. One other question I have is, are there any restrictions on how you use the data collected by the city of New York? Because I’ve heard things about government data and how it can and can’t be used and all that stuff. WILLIAM:  We got all of the 311 data off of NYC Open Data. And they have over 1100 databases with public data available. And we actually worked with 311. They gave us a prize for the 311 Connect Challenge for taking 311 data and doing something useful with it. So, if there are any restrictions [chuckles] they haven’t mentioned them. CHUCK:  Okay. WILLIAM:  We actually, we get to do a tour of their office and meet a director, some higher up, because we won their prize. CHUCK:  Very nice. Now, are you being paid to work on this? Because I keep coming back to this being civil hacking. And sometimes they’re community-supported and sometimes there’s actually some money behind it. WILLIAM:  We’re entirely a volunteer project. CHUCK:  Okay. WILLIAM:  We’re a bunch of New Yorkers who just want to do something good for New Yorkers. CHUCK:  Are there any other projects that you’ve seen that you think would be interesting to do that you don’t have time because you’re working on something like this? WILLIAM:  Oh, man. [Chuckles] All the time. I think that’s got to be the plight of every developer, right? You see projects everywhere that you wish you could contribute to all of them. CHUCK:  Yup. SARON:  I’m curious. What was the biggest technological hurdle that you had to overcome to build the final version of Heat Seek? WILLIAM:  I think interfacing with the sensors. That was the hardest part. Originally we were using those Twines. And the Supermechanical API does not actually allow you to query the sensor for its temperature, which I was really surprised by. That seems like, if you’re going to have a temperature sensor and an API for that temperature sensor, the most obvious feature would be an endpoint that you can query to get the temperature. But they don’t have that. Before we had our own hardware, the weirdest part was they have a dashboard. And if you sign onto their website and you go to the dashboard, it has the temperature. So, they definitely have the information. So anyway, in the first iteration before we had our own hardware, our solution was just to scrape the dashboard. Now that we have our own hardware, we have the hub unit and the mesh network is Raspberry Pi. And so, we just have a script on that that can fire off HTTP requests. And so, it hits an endpoint at the Rails server and communicates the readings and the timestamps in that way. AVDI:  It’s not clear to me. Are you using Ruby both on the hardware and on the server side or just on the server side? WILLIAM:  It’s a Ruby script that sends the HTTP requests. There’s also some Python. And we’re using the DigiMesh protocol with XP radios. So, they have they own sort of DSL, I guess, that we have to use. AVDI:  Okay. SARON:  How did you end up picking the tech tools that you used? WILLIAM:  The tech tools in terms of the software or the hardware or both? SARON:  Yeah, everything. WILLIAM:  Well, we started with Ruby on Rails because it’s just the easiest thing to start with when you’re not really sure exactly how far a project is going to go. You can get really far really quickly. And that was the tool that we were learning. So, that seemed like an obvious choice. And then the Twine started out just because I had one. And then once we got a hardware person, we started talking about how to bring the cost down because Twines are really expensive. And if you’re going to try and help people in lower income areas who already don’t have a lot of money to pay for lawyers and stuff, cost is a really big factor. And so, by using a mesh network, we were able to remove one of the most expensive components from all of the sensors and that’s the component that allows it to connect to the internet. CHUCK:  Now, is the mesh network some feature that you get out of using Raspberry Pi and installing a package on it? Or is that something you had to build into the software yourself? WILLIAM:  So, the way that works is the XP radios, they come with firmware. And it’s not open source. But it does just automatically work. And so, it handles all of the meshing in between the different nodes. And then you have one coordinator node. And that plugs into the Raspberry Pi. So, it has a port and communicates the data to the Python script, which then stores all those readings into just a text file. And it’s pretty low tech, but each line of the text file represents a reading. And it’s got the temperature, the timestamp, the ID of the sensor that it came off of. And then the Ruby script goes through every line of that text file and it formats and HTTP request, plugs that data in, sends it off, waits for a 200, and if it doesn’t get a 200 response back, then it retries. And there’s an exponential back-off in case there’s a server issue. But that’s really useful because then you have offline storage. And one of the big issues is what happens if the internet goes away? CHUCK:  That makes a lot of sense. How much data are we talking about you collecting here? WILLIAM:  Each individual reading we’re talking about bytes. It’s tiny, because it’s just a couple of numbers. But our goal is to have a thousand sensors in the field this winter. And each one of those is going to be collecting a reading every hour. So, in the aggregate it’s a pretty substantial amount of data. CHUCK:  How are you handling that data? How are you making sense of that data? Do you really only care about real-time or are you building reports? So, over the last week these places were too cold? WILLIAM:  So, all of the readings just get thrown into a SQL database. We’re running Postgres. And then when you log on as an attorney and you go and visit a particular tenant page, that will populate a chart that queries for all the readings associated with that particular tenant. It’s got an algorithm that determines whether or not there’s a violation. So, the rules are if the indoor temperature is below 68 degrees during the day or 55 degrees at night, and the outdoor temperature is below 55 degrees during the day or 40 degrees at night, and it is between October and May, then there is a violation. So, the chart will display dots on a time series line graph. And the dots will be orange if there’s a violation. If there is no violation, then the dot won’t appear. And there is a hover. And then if you download, there’s a pdf version and you can download that. And it populates not a visualization but rather just a table. And the table has a column for the time and date. And then for the indoor temperature, the outdoor temperature which we get from the Weather Underground, they have an API that we hit. And then there is a comments column. And we’ll just include the word violation if it’s in violation so you can quickly just flip through it and see whether or not there’s a problem. That’s apparently been a really big issue in the past, is that it’s a time-consuming process to go through and determine based off of the rules whether or not it’s a violation. And then in court, they almost always question whether or not the outdoor temperature was recorded accurately. And so, then someone goes and pulls up the national weather service. And then somebody has to go through and verify all of the outdoor temperatures, and if there are differences to reconcile that and see if it’s still in violation. So, having all of that just done for you is a big weight off of the shoulders of the tenants and their attorneys that have to go into court and present this. SARON:  So, when you built and launched Heat Seek, it wasn’t yet winter time, right? This happened spring and summer? WILLIAM:  It was the tail end of winter. I needed my project. I started looking for a project to present for school in February, late February. And so, we didn’t really have sensors in the field until it was starting to warm up again. We had this summer, the spring and the summer, to put everything together and have it ready for this heating season. SARON:  So, how many homes do you think you’re going to be in this winter? WILLIAM:  We’re shooting for around 200 building, so with the assumption that we’d be in probably ten apartments per building. SARON:  And how do you pick the residents in the homes that you’re in? WILLIAM:  We work with advocacy groups. We don’t really have the capacity to man the phone lines and work with individual tenants. And we also probably wouldn’t be very good at it, because we’re mostly developers and hardware people. So, instead these organizations, these partners that we have like the Urban Justice Center and CASA and UHAB, they know and have been doing this for a long time. They know which buildings are going to have problems. And they know which tenants are really active and able to participate. And so, we give the sensors to these organizations and then they just get to pick who gets them. CHUCK:  Now, do these sensors know where they are? Do they have a GPS in them? Or do you just trust that whoever sets them up knows where they are and set them up properly? WILLAM:  The sensors all have a unique ID. And so, when they get set up, you attach it to a wall or to a bookshelf with tamper-evident tape. And then you take photos so that you can see the ID and you can see where it’s been placed in the apartment. And then when you’re done with the sensor, you go back and you take a picture of it before you take it down so that you can see based off of the tape that it hasn’t been moved, it hasn’t been put into a freezer or anything. Then, that’s your support. That’s your proof that it was in the apartment that it was supposed to be in and that it was there the whole time. CHUCK:  Very nice. If people want to get involved in this kind of civic hacking, do they just need to go out and look for a project? Or are there organizations that they can get involved with to do this kind of stuff? I don’t live in New York City, so I don’t want people there to be cold, but it doesn’t directly affect, I don’t know very many people that this is going to make a difference for. So, I’m probably more interested in something closer to home. WILLIAM:  Yeah, absolutely. I think if you want to get involved with a project, then going to Code for America and seeing what kinds of projects are interesting to you personally is a really good place to start. There are lots and lots of projects you can help out with. There are also a lot of hackathons and organizations that are asking for volunteers who have programming skills to build things. One organization that I’ve worked with that is not quite so geographically specific is the Environmental Performance Index or EPI. They participated in the Ecohack, which is a hackathon, a regular hackathon that occurs all over the world. And their whole thing is to create city-specific data about environmental performance, things like air quality, water quality. And by making that information available and by comparing cities to each other, you could get cities to compete. So, they had a big success story where they compared New Delhi and Beijing. And it turned out that New Delhi’s air quality was lower than Beijing’s. And at first the city didn’t believe them. Then they looked at the data and they decided they wanted to make a bunch of policy changes and clean up their air quality because they’re very competitive. And they see Beijing as a competitor that they thought had worse air quality. And so, for their hackathon, for their participation in the hackathon, they asked people to come up with data visualizations and stuff to show the environmental performance of these different municipalities. And they had a lot of success with it. They got a map that was made with CartoDB into the news. And while I was at that hackathon I built a very basic API for them so that other developers could use their data to produce visualizations and things more easily. And after the hackathon, they took that and ran with it. And they’re rewriting the whole thing and adding way more data than we had time for in the 48 hours we had for the hackathon. CHUCK:  Cool. That’s really interesting, too. And we have air quality issues out here in Utah, especially during the winter. So, that might be something interesting to go after here. WILLIAM:  You know, I guess I would add that I think right now is a really good time, especially if you’re in New York, to be trying to do civic hacking projects. The mayor, Mayor de Blasio, has made that a big part of his platform, is building up the New York tech community. And he’s really empowering EDC which does an amazing job of helping grow the tech community. And they’ve really proven, to me at least, that they’re willing to walk the walk and not just talk the talk in terms of supporting technologists who want to pitch in and solve civic issues. CHUCK:  Alright. Well, let’s go ahead and do some picks then. Saron, do you want to start us off? SARON:  Sure. I got a few. The first is this website that I really like that I found recently called Meet the Ipsums. And the idea is that it’s Lorem Ipsum but all different flavors and versions. And I think it’s described as different families of Ipsums. So, there’s one that I love called the Cat Ipsum. And the Cat Ipsum has things like, “Cat snacks hack up fur balls. Have secret plans to chew foot,” and all different kinds of flavors and things. It has a Cupcake Ipsum, a Bacon Ipsum, a TV Ipsum. It’s just fun and interesting if you need placeholder text. Another one that I really liked is if you’ve listened to me on the podcast before then you know my lovely issues with CSS. And I found this really awesome blogpost called ‘4 ways to create CSS that’s modular and scalable’. And one of the ways, which is SMACSS, was one of my picks from a few weeks ago. There are a couple of different styles and ways of thinking about it that I’m just discovering that I’m really excited about. And they include Object-Oriented CSS, DRY CSS, and BEM, Block, Element, Modifier. So, just different ways of thinking about CSS that is more program-y and code-y which I am personally very excited about. And my final pick is that I have my own podcast now. And it’s called the CodeNewbie Podcast. And it’s based on the CodeNewbie weekly chats that I host every Wednesday at 9 PM Eastern Time that’s geared towards people learning to code and are more beginners. And so, our very first episode is called ‘Bootcamps, Water Coolers, and Hiring Devs’. And so, if you are a code newbie or you are in support of code newbies then I would love for you to listen to it and tell me what you think and give me some feedback. And that’s what I got. CHUCK:  Awesome. Avdi, what are your picks? AVDI:  Yeah, I got a couple of picks. First of all, a couple of weeks ago I was talking about some of the things that I’ve been using to finally learn to touch type. And as I recall, we had a quick discussion of typing.io where I said I didn’t really see the use of a site that’s based around typing code because if I want to practice typing code I’ll just actually do my job and type the code that I need to type. I did give that a second look and I’ve actually gotten a subscription there now. And the biggest reason is just that the vast majority of typing tutor programs, they really don’t address properly hitting code-related symbols very much. So, it’s a lot of typing text, very little punctuation. And if there is punctuation, often they don’t have the finger guide for which finger ought to be hitting that bit of punctuation on the keyboard. And so, I gave typing.io a second look and I’ve actually been using it a bit. And it’s been nice for figuring out where my fingers should go on the keyboard when it comes to curly braces and square brackets and all that kind of stuff. And they’ve also got some nice stats that they calculate if you sign up with them. They can tell you how many extraneous keystrokes you’re making as a result of mistakes. And the answer for me is a lot. CHUCK:  [Laughs] AVDI:  [Laughs] That’s one big adjustment. And another thing that I’ll pick is GelPro mats. I’ve been wanting to try one out for a long time. And there was an Amazon sale on recently so I got one. These are basically the mats that people at retail stores have to stand on all day when they’re standing at the register all day. I got one to try it out on my standing desk. So, when I adjust the desk up to standing position, I’ll pull the mat out and toss it on the floor in front. And I’ve been liking it. I like to vary things with my position and it’s a nice switch from instead of wearing my Docs and just standing on the regular floor I can go barefoot but stand on the squishy mat. And I find myself moving around a lot on it, and I think that’s probably a good thing. I don’t really find myself standing still so much. But it’s definitely a nicer surface to stand on than just a hard, concrete floor. I think that’s it for now. CHUCK:  Awesome. Alright, I’ve got a couple of picks. The first one is a tool for Gmail. And yes, I’ve picked this on all four other shows that I did this week, but it is called Boomerang. And it is a Gmail plugin. And basically, if you’re a freelancer, it’s just a lifesaver. Because if you’re like me, you’re super busy. And it’s really hard to remember to follow up properly with everybody. And so, what I’ve wound up doing is when I’m sending somebody an email, I will tell Boomerang to bring it back to my inbox if they don’t reply within a week, or something like that. And so, what I wind up with then is then I can email them back in a week and say, “Hey. I bet you got busy and you forgot to email me back, or I haven’t heard from you,” or however I want to phrase that. But people get busy. A lot of times they’re not trying to blow me off. Or sometimes they’re embarrassed because they hired somebody else. But most of the time, they’re just busy. And if you follow up, then you’re the one that wins the contract. And I’m finding that this is really the case. So anyway, I’m going to pick Boomerang. And basically yeah, the functionality is that it adds it to the email form where you can just say, “Bring this back to my inbox.” So, instead of FollowUp.cc, or whatever you’re using where you have to send an email to a service that will then bring it back, this just handles it for you right there where you’re doing your email, because I use the web interface. The other pick I have, I’ve been reading this book and it’s an awesome book. It was written in the 1920’s and you’ve probably heard of it. It’s called ‘Think and Grow Rich’ by Napoleon Hill. It’s an awesome book. I can’t recommend it highly enough. I’m listening to it on Audible. And I totally love it. And finally, my last pick is another book series. It’s called The Iron Druid Chronicles. I’ve probably mentioned it on the show before. I just finished book three and I’m really digging it. So yeah, if you’re interested in any of those, go check out the show notes. And yeah, William, what are your picks? WILLIAM:  Well, so first I’d like to plus one Boomerang and typing.io. Those are both great picks. I’d like to pick Polymer Web Components, which is something I actually meant to talk about during the podcast. But it’s something I’ve been using at work a lot. It’s really cool. It’s a project from Google. And for the listeners who aren’t familiar with the idea behind Web Components, it’s that we have these very limited native DOM elements. We have the div and the h1 and the p, and these tags that were remnants from a time when the internet was a way of sharing documents as opposed to apps. And the idea behind Web Components is that you should be able to build your own building blocks of DOM. And in doing so, you can encapsulate all of the logic and all of the interface necessary to do something. So, instead of just having a date picker, why don’t you have a profile? You could have a profile element the same way that you would have a date picker element. So, I think it’s really cool. It’s a really powerful tool. We’ve been using that at work and it’s been a lot fun. They’re still in beta. But the Google team that’s working on it is doing a really good job. Speaking of people who are doing a really good job, my next pick would be the HPD, especially after having met with them where we have a new sense of respect for the work that they do and we’re really excited to be working with them. And then my last pick would be Flatiron After School. I sort of met Saron because she was the first Flatiron student to present at New York Tech Meetup, which is the largest meetup in the world and a big deal here in New York. So, I looked up to her as a role model when I was trying to get into New York Tech Meetup. And lo and behold, we just had a third person from the Flatiron School present at New York Tech Meetup. And it’s a 17-year-old high school student who’s in the Flatiron After School program. And that blew me away. If I had had the opportunity to do something like present at New York Tech Meetup when I was in high school, that really would have set a trajectory for me to have a career in computer science. And not just Flatiron After School, but really any kind of after school program or even in school programs for kids and getting kids involved in programming. I think it’s a sector that’s booming. It needs a much bigger workforce here in the United States. And we should be doing everything we can to let people know as early as possible how much fun programming can be. So, those are my picks. CHUCK:  Awesome. I just want to give people, if you want a longer overview of Google Polymer, you can go listen to JavaScript Jabber episode 120. We talked to Rob Dodson and Eric Bidelman about Polymer. And they both work for Google and are involved in the project. So, definitely go check that out. And I also want to be fair, and Avdi pointed out FollowUp.cc also has a Gmail plugin. So anyway, if you need automated or semi-automated follow-up, go check out both of those, because I know Avdi uses FollowUp. AVDI:  Yeah, just to speak up for that way of doing things. I definitely get the convenience of having it just be within Gmail, not sending the email off to an external service. One of the things I do like about the external service is that I can CC it. Sometimes, I actually want it to follow up with both me and the other person I’m talking to, maybe a conversation with my wife that I want us both to be reminded of in a month or something. And so, the external service makes it nice for that. CHUCK:  Very nice, good to know. Alright, well thanks again for coming, William. WILLIAM:  Thanks for having me. CHUCK:  And if you are following along at home, we are still going to do the book club episode next month on ‘Refactoring: Ruby Edition’. So, go pick up the book. And then there’s the companion copy, or the companion ‘Refactoring Ruby’, the spaghetti on the cover book that you can also get. So, go check those out. And we’ll catch you all next week.[A special thanks to Honeybadger.io for sponsoring Ruby Rogues. They do exception monitoring, uptime, and performance metrics and are an active part of the Ruby community.]**[Working and learning from designers at Amazon and Quora, developers at SoundCloud and Heroku, and entrepreneurs like Patrick Ambron from BrandYourself, you can level up your design, dev, and promotion skills at Level Up Con taking place October 8 **th and 9** th ** in downtown Saratoga Springs, New York. Only two hours by train from New York City, this is the perfect place to enjoy early fall and Oktoberfest while you mingle with industry pioneers in a resort town in upstate New York. Get your ticket today at LevelUpCon.com. Space is extremely limited for this premium conference experience. Don’t delay. Check out LevelUpCon.com now.]**[This episode is sponsored by MadGlory. You’ve been building software for a long time and sometimes it’s get a little overwhelming. Work piles up, hiring sucks, and it’s hard to get projects out the door. Check out MadGlory. They’re a small shop with experience shipping big products. They’re smart, dedicated, will augment your team and work as hard as you do. Find them online at MadGlory.com or on Twitter at MadGlory.]**[Hosting and bandwidth provided by the Blue Box Group. Check them out at Blubox.net.]**[Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit CacheFly.com to learn more.]**[Would you like to join a conversation with the Rogues and their guests? Want to support the show? We have a forum that allows you to join the conversation and support the show at the same time. You can sign up at RubyRogues.com/Parley.]

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.