Coding 101 58 (Transcript)
Netcasts you love, from people you trust. This is TWIT! Bandwidth for Coding 101 Is provided by CacheFly. At cachefly.com.
And by Squarespace. The all in one platform that makes it fast and easy to create your own professional website or online portfolio. Now introducing SquareSpace 7 with even better site management tools and other improvements. For a free two week trail and 10% off, go to squarespace.com and use the offer code C101.
And by HipChat Plus. Collaborate, save time and be more productive with your teams. HipChat Plus is IM, video chat, plus file, code and screen sharing all in one place. Invite your team members and get a free 30 day trail of HipChat Plus at hipchat.com/c101.
Father Robert Ballecer: On this episode of Coding 101 we are petering off our Arduino embedded programming, so what better way to do it then by going for some Raspberry PI? ISS above is next. Welcome to Coding 101. It’s the TWIT show where we let you into the wonderful world of the code monkey. I’m Father Robert Ballecer, the digital Jesuit and I’m joined by my super special guest co-host Lou Maresca. He’s back as a guest co-host. He is a software lead developer for Microsoft. Lou, thank you very much for coming back onto Coding 101.
Lou Maresca: Hey Padre, thanks for having me.
Fr. Robert: We’ve gotten kind of jiggy the last couple of weeks with Arduino. We got into embedded programming, we did our first ever crossover with Know How. So if you’ve been watching the last 4 episodes of Coding 101 you’re going to want to watch the last 2 episodes of Know How and the next 2 episodes of Know How so you get the hardware and the software combined. Have you been doing any embedded programming projects yourself Lou?
Lou: Yeah, actually. I’m messing with the Microsoft band SK recently.
Fr. Robert: Ooh, and actually there is a nice little tie in here. We’re going to be talking a little bit about Raspberry Pi. Now Raspberry Pi was the board that really kind of inspired a new generation of makers who had a very stable platform with a lot of power for very little cash. We are going to be playing with this Rasp Pi, but the new Rasp Pi made some news awhile back because Microsoft announced that Windows 10 will be available in a version, a stripped down command line version, for that Rasp Pi. Is that still going to happen?
Lou: Yeah definitely. The interesting part is people thought oh, Windows RT is dead. If you think about it, it’s just a variant of that. So that’s why it’s really interesting to see that they’re actually doing this type of project.
Fr. Robert: Yeah. And it’s interesting because Microsoft’s strategy is pretty obvious. They want Windows 10 in that RT-licous format to be sort of the operating system for the IOT. And actually it’s pretty dang good. It’s a nice secure system, it’s very lightweight, and it should run on the Pi just fine. So I’m interested to see what’s going to happen once makers get that into their hands.
Lou: Exactly. Now you can build it for both the IOT and for your desktop app so now it becomes very cross platform too.
Fr. Robert: Yeah. Well, let’s not get too Microsoft-y because I actually want to talk a little bit about Java. We’ve had a lot of Java news the last couple of weeks and we’ve had people who’ve chastised us for conflating Java and Java Script, of course they’re not the same. But there is a few new Java pieces out in the programing world that people should probably be aware of. What’s the first one Lou?
Lou: So, you know, a lot of people have known that over the last couple of years when they installed Java run time, especially on their Windows machine, they get some applications, some additional applications and options to install as well. A lot of people like to call them adware. And they’re normally not on by default. But just recently Java’s new Run Time install, especially on Mac, is installing, especially the Ask toolbar, which is a search toolbar, by default. And the problem is people are not really sure exactly what that toolbar does. They say that it’s supposed to enhance your search and give you more relevant search, but between you and me, isn’t that what Google and Bing do? So the question really is what is this toolbar doing and why are they installing it by default right up front? They’re doing some funny things with how they’re bundling it too. So it’s very strange.
Fr. Robert: You know, it’s interesting because there is a bit if mini furor in the tormenting community. Because the latest version of YouTorrent, if you download it, buried in the --, they do tell you up front that it’s going to us the unused cycles of your CPU to mine currency or to do problems. Basically it says in exchange for getting you the software for free, and allowing you to access the service, we’re going to do something with your spare cycles. That was unheard of a while ago, and yeah, there is still a lot of people that are upset, but when you think about it, that’s really what the toolbars do. At some point they’re using system resources to get system information that they can monetize. And that’s what YouTorrent or Java is going to get out of it. They’re going to get a kickback from the company who wants data. They want clicks, viewers. Something just strikes me really wrong about that.
Lou: If you think about it, Google and Bing get their ad data from the search that you actually make on their website. So there’s no need to install something native on your PC. So when you install something native on your PC, to me it’s more evasive. It’s deeper down in the operating system. Because they can access a lot of things then from that perspective. So yeah, I think they should be telling you upfront rather than saying, oh yeah, we give you more relevant search data. Oh by the way, we’re also collecting all the relevant traffic on the HTTP level protocol, or something like that. Whatever they’re doing. They should make it more prevalent so that people understand what’s going on. But obviously that’s kind of not what they’re for. That’s why this seems kind of strange to me.
Fr. Robert: Yeah. Let me take the devil’s advocate here. And that is, if I’m a programmer and I just want to get my app out there, I want to get my software out there. And it could be something for a mobile device, it could be for a desktop or a laptop, I’m going to consider this strategy right? Because there’s too much competition for me to charge for my app if nobody knows about it. So I’m going to give it away for free. But if I’m going to do that, I still need to feed myself, so I’m going to consider looking for a 3rd party, a partner who will monetize my installs. Isn’t this the economy we live in? Every programmer needs to consider this, right?
Lou: That’s a good way of doing it, but the problem is, the way that they’re doing it is, they’re not telling you about this. Most apps you get for free they say hey that’s free, but there are going to be some ads in there. And they’re not normally in the way. They’re off to the side, they’re not collecting additional data if you click. It’s more of a click based ad type where they get credit if you click on it and do something. So it’s a little bit less evasive than this. Now this is actually installing something on your PC, there’s a run time that runs outside of the Java run time that kind of sits around for a while. There’s a bunch of system files that are there. So there’s one way of doing it where it’s less evasive and yeah, you can collect some data and make a good amount of money, in fact I know people who make hundreds of thousands of dollars on just click ads in their apps. Verses doing something kind of strange and weird and under the covers. So you know, this is one way to get your app out there for free, but don’t do things secretly.
Fr. Robert: Yeah. And I think that’s actually some great advice for anybody who is doing an IOT programming. Which is, if you are doing something with the IOT, you will be collecting data. That’s the whole idea of the IOT. And so now we need to figure out a way to tell people I swear I’m going to be good with your data. I’m not going to misuse it. I’m going to be upfront with where it’s coming from and where it’s going to. That is one of the defining natures of the programming and IOT world. Do you see much of that at Microsoft? Because it’s different for you because you charge for your software so you don’t feel the need to bundle a bunch of junk in there. In fact, Microsoft goes through pains to try to make manufactures not bundle stuff in with the OS, but what changes when you can charge for your software?
Lou: I think then it all depends. When you start to charge for your software you get the added autonomy to basically install whatever you want. And that’s where most people don’t want anything on there. If you see like the Surface Pro, it has basically nothing on it right. Just basic vanilla Windows and that’s it. And that really allows people to understand oh yeah, I know what I’m getting and I know what’s installed. And it might come bundled with a 30 day trial of Office or something but very little. But when you buy PCs from other retailers, they might install, there were some recent manufactures installing additional ad collection data on your machines that would open some security holes. So there’s these companies that do these things by default when you get their PC and they basically turn this beautiful piece of hardware into an ad machine. And then they get bad reviews on it. And it just doesn’t make sense to take your reputation down because of that. So be careful when you do ad based kind of revenue.
Fr. Robert: Right. Let’s use this as a Segway into another story that’s related. And that is specifically talking about Java on the desktop. On a laptop platform. Now Java is still going to be needed, at least understanding it, if you’re going to be doing any sort of programming for Android. But it wasn’t too long ago that people started saying, wait a minute, why do I need Java at all? Why do I have to install this? And one of the things that gave Java more life on the desktop and laptop was Minecraft. Because Minecraft does use Java. At least it did until recently. We’ve got a story here about how Minecraft is now going to be including its own run time element so that you’re not going to have to install that Java package. Tell me about this.
Lou: So what they’ve done is they’ve broken apart the Java run time in a way that they don’t expose a lot of the surfaces that security holes. For instance, the browser integration. Today you can go into Chrome or IE or Safari and be able to build out to the Java run time. Be able to have an app that’s in the browser. But with this new version that they’ve kind of broken apart, and they actually ship with their launcher, the Minecraft launcher. It’s broken apart to not include the browser component. So that means that the security surface area where a lot of the malware comes from is actually reduced almost to nothing. And so that really helps them not only ship that, but it helps them control what type of things go in it. So if there is maybe a patch to it that might create a security hole, they can control that roll out a little bit more, plus they can control the performance of it. So for instance, what people are seeing on the new version of the run time that they’re shipping is like on 32 bit versions they’re actually seeing a performance increase. Like load time and boot time. Bootstrap time. And also like for instance, on the 64bit version they’re seeing frame rate increase. So they can control the performance as well. So not only can they control the security whole possibilities but they can also control the performance, which is truly a manufacturing capability when somebody breaks apart the run time and that ships Java itself.
Fr. Robert: Right. And that idea of integrating it into the launcher for that specific program, for Minecraft. And then optimizing it for just the parts of the environment that Minecraft is going to need, naturally that’s going to lead to performance increases, but then I’m wondering how feasible is it to do that for other applications that may require Java? That’s kind of the thing right? Everyone has run an application at one time or another and it says well, I need the Java run time environment to be able to do this. So they install the entire package. What’s to keep some of the larger players from saying no, I’m going to the Minecraft route and just give you what you need out of the environment so that you don’t have to include that bloated package?
Lou: Really, as we’ve seen from Android, nothing really stops you from building out your own version of the run time. Even a lot of big players today like Microsoft Corporation making the CLR, the run time kind of open source, these types of things are capable of doing on these different platforms. So nothing really stops a manufacture, they just have to take the time to understand how the run time works and the valid components that they need. So do they need the bootstrapping component, do they need the memory manager, do they need all these things? All of this stuff. So they need to understand the components that they need. So Minecraft took a lot of time to build this out and to understand how it works in order to make it better for their customers. And I think that that’s very admirable if you think about it. That’s really what companies should be doing.
Fr. Robert: Right. Well, when we come back we’re going to be switching gears a little bit. We’ve been talking Arduino for the past couple of weeks, now we want to jump into the Raspberry Pi and some Python. I’m bringing back an old guest, someone who was here on one of the very first episodes of Coding 101, Liam Kenedy will be dropping in to talk about ISS Above. It’s a Raspberry Pi project that he created to help people who are interested in space. But before we do that lets go ahead and take a moment to thank the first sponsor of Coding 101. Let me ask you something. Do you want a presence on the internet? Of course you do. I mean, you kind of have to. Be it for business or personal reasons, everyone’s got that great idea, or picture, or those great portfolios that you want to show off. Everyone has some sort of even that they would like people to know about. You could use social media, that’s a good call, but you could also find yourself a spot to play on the web, and that’s where Squarespace comes in. Squarespace is that one place you can go to on the internet to easily get your project or portfolio on the internet and I love Square Space because they’re always improving their platform. In fact they just released Squarespace 7. That makes getting started much easier and they have a unique web presence that is built up over templates that they give you. It’s now more all in one, it’s simpler to navigate and it’s simpler to operate in 1 seamless experience. Squarespace 7 allows you easier editing. You can edit on 1 screen which means you no longer have to toggle between site manager and preview mode. You can even preview designs in divide modes - that you see exactly how it will look on tablets and mobiles. Now it also offers instant access to professional stock photography from… It’s now integrated into the package. They’ll allow direct purchases inside the platform from getting images at just $10 each for your site. No more having to jump out, get an image imported into Squarespace, make sure all your licensing is taken care of. It’s all in 1 interface. You can get google branded email with Squarespace 7 so you can have the branded email for your small business and it’s automatically set up when you set up your Squarespace account. They’ve got templates, designed for specific professions which this is a big one. All their templates have been beautiful but now they give you the option to switch between different classes of templates. You can move between templates for musicians, artists, architects, chefs. They designed those templates, those category specific templates so that you can find the one that looks right for the project, for the business, for the industry that you’re trying to represent. On Squarespace 7 the developer platform is now on a beta which means that you can customize your site exactly as you wish. If you’re a developer you have access to the same platform that Squarespace uses for its own site – complete code control They also give you e-commerce with all subscription plan levels that includes the ability to accept donations which is great for non-profits, cash wedding registries and school fund drives and it’s easy to use. Yes, sometimes you’ll run into a ram but it’s easy to get it solved because Squarespace offers you support; 24 hours a day 7 days a week. They’ve got an army of folk in their forums giving you self-help articles and video workshops to browse at your leisure. It also starts at just $8 a month so it’s not going to break the bank. That includes a free domain if you sign up for a year. The Squarespace portfolio, the note, metric and blog mobile apps are on the go extensions of your website so that you can monitor and make changes from anywhere. They include the hosting so again it becomes a 1 stop shop. You don’t have to worry about buying different services from different providers. It’s all from 1 place. It’s all in a square space. Here’s what we want you to do. We want you to start a free 2 week trial with no credit card required and start building your website today. When you decide to sign up for Squarespace make sure to use the offer code c101 to get 10% off and to show your support for Coding 101. To begin using Squarespace 7 now existing customers can go to the setting tab to activate all of your new features. We thank Squarespace for their support of Coding 101. A better web awaits and it starts with your new Squarespace website. Squarespace, build it beautiful. We welcome back to the show an entrepreneur and I just say coding geek, Liam Kennedy. Liam, thank you very much for coming back onto Coding 101.
Liam Kennedy: Thank you so much for having me, really pleased to be here.
Fr. Robert: It’s been about a year since we last had you on. And we also had you on one of these wildcard episodes that we do. This is one of the things we decided to do with Coding 101 at the beginning. Which is, we have our episodes, our modules that are heavy on the coding, heavy on the programming, and then we have these. Which are sort of, what else goes into creating a programmer? And you are a big part of that because you just decided to make something.
Liam: I did. I just decided to make it for my grandkids. A little device that lit up when the space station came over and I did the Kickstarter last Jan, finished Feb, that funded and since then I’ve shipped over 850. So they’re all around the world. It’s been a wonderful experience. Not least because I’ve managed to go NASA several times and meet like the future commander of the space station, Scott Kelly. And it all happened because I’m a geek. It’s just great.
Fr. Robert: Which is what we love. Liam, if you could explain the idea of ISS Above real quickly. This is what one of the very early modules looked like. This was the very first one you ever gave to us. And inside it’s just a Raspberry Pi, I think this was the original, it’s not even the B edition.
Liam: I think that is the B edition, but it’s not the B+. That case was 3D printed as part of the Kickstarter as well. So what you basically got there is the basic fundamental Raspberry Pi model B, and it’s got the PiGlow, that’s the little add on that’s sitting on the GPIO ports. All that does is just light up when the space station comes over, it also tells you how long it is until the space station comes over. So it’s a really simple device, the initial version. The code, I wrote it all in Python and its sitting on that SD card that’s just plugged in there. So it was a very simple project for me to put there but it actually involved a lot of different moving parts because there’s also a website on there. I had to make it easy for people to see. Detailed information about the passes so you’d never believe it but on that little Raspberry Pi it’s running a web server. It’s also doing all the calculations on the device itself. It’s not like going out to some website to pull the data down. It’s actually calculating it. And that was just the first version. The new version that I’ve been shipping for a few months now, it now plugs into a TV. It seems pretty silly that it didn’t do that initially, when I realized just what you could do with Python on the PI, so you can see some of the screens switching through in back. So you can see details about the next pass. So you can see the next one is in just 56 minutes. This screen shows the path across the sky, but it’s hardly rising above the horizon. You can see there’s a little yellow line across the west side of the screen there. And then it shows the orbit. So this is all done using Pi game. Which is a popular library of Python that allows you to easily bring in graphics and do light animations. Which is what I’m doing on it. And the amazing thing as well, on top of that, is now it supports live video. So whenever the space station is in sunlight, which it’s not right now, there are cameras in the space station that are active and you get to see live video from the space station, wherever that is. So that’s really half of each orbit. So every 46 minutes, for the next 46 minutes, it’s in sunlight and you’ll get to see those live views. And I just think it’s amazing that the Raspberry Pi can do all of that. Something that you may be interested in is I do have, in fact, the version that I’ve got running today is running on a Pi 2. And that does have significant improvements in CPU utilization. So on the previous Pi it would run pretty much full CPU usage, 95%. But on the new version it drops that down to 8% when it’s running the videos. I was beginning to sort of look for other ways to push the limits of what I was getting ISS Above to do. Now I don’t have to.
Fr. Robert: Liam, one of the reasons why it was absolutely great to have you on a year ago was because as we were starting our programming modules, one of the things that a lot of the novices in our G+ group were expressing was how daunting programming was. That they started and they’d start with our lessons, they’d learn a couple of loops, they’d learn how to push output and take in input from the user, but then when they started seeing how complicated some of these programs were, they’d just shake their heads and say I’m never going to be able to do that. And you were the first guest to come on and really show us what we could do with libraries. We could just input large swaths of code. And you yourself were mentioning how yeah, I brought these packages in and then I would just experiment and tinker to make them work right. And you came up with the formula to figure out exactly where the ISS was in its orbit. Is that the same? Have you had to do much more to expand the capabilities of your new version? Because obviously just blinking a light is a lot different than allowing people to stream feeds as the ISS is above.
Liam: Yeah, I know. When I look at it now. It does look like a very complicated program. And it does have a lot of moving parts. But I did it exactly the way that you recalled how you said it. I just bit off small chunks at a time. Just literally I’m- okay I want to see how I can display an image using pygame so I just do that.
Fr. Robert: Can you show us that? How did you display images using Pygame?
Liam: Okay, let me switch to my screen over here and bring that up. If you can see what’s going on right here, it’s my spaghetti code, so unfortunately it’s going to be still really tough to take you through all of this. But believe you me, these are some of the things that you do. You use in pygame. You just call some functions. Here I’m drawing a circle…
Fr. Robert: Those are just coordinates yeah. You’re calling a method that will give it at 192, 192, and 192. And then it just draws itself.
Liam: Yeah. So I think this is a color, an RGB color attribute. And then this is the actual centerX and centerY, the radius, and the width of the line. It’s pretty much messing around. So that’s how to draw a circle using pygame. I’m doing other things, drawing lines. Again, very much a similar type of way of doing things.
Fr. Robert: Liam, I’ve got to ask you, as you were tinkering around with this, did you just start coding different shapes on the screen and hopefully come up with something that you want? Or did you actually draw it down and then figure out the code that you would need to make it?
Liam: Oh gosh, yeah, do I really come clean here? So it was a mixture of the two. I really have trouble trying to figure out how to get the fonts to do what I wanted it to do. Because it’s pretty arbitrary as far as figuring out what the locations are of things. So I would just experiment and for instance if I just switch back here you can see that I’m displaying the text at a particular location and I basically calculate, previously a Stoll, previously a set of columns and lines. Which are really just coordinates. Where I’m going to display the text in a particular font. And when I first started out I hard coded everything and that’s typically the way that I go through it just to make sure that I know how things work. And then I just improve it through iteration. So that’s sort of how I started out with it. And this was just one aspect of the new coding that I got into using pygame. It was obviously important for displaying to the HDMI monitor. But there was also the way of using a really cool tool called Lied Streamer on the Raspberry Pi to display videos, really over the top of these screens. And that was again, something where I just started out experimenting with things and eventually found the library that really sort of did what I wanted it to do. For instance, I started out, I’ll just show you this one here, what I’m showing you is just a terminal command set up to one of my Pis. And I just wanted to figure out how to play videos. And I started out using the inbuilt player. Which probably many people have used on a Raspberry Pi. And I just simply – and you will see, this is playing out that video through the Raspberry Pi. Now what this was showing me that I could easily play videos that were locally on the system. But it wouldn’t actually allow me to display the NASA video stream, the live video stream which is through You Stream. So that’s when I found this tool called the Live Streamer. And that’s what I’ve implemented into this environment. It basically means that anyone with a Raspberry Pi can stream live You Stream videos including TWiT. It’s a really great way of doing it.
Fr. Robert: There are folks in the chatroom wondering how they get a hold of this code. This is the thing, this is Liam’s code, he actually sells the ISS Above and he has shipped quite a few. But what we’re hoping to show you is these packages, pygame and the streamer, you can get that now. Those are publically available. We’ll make sure that links to those packages are available in the show notes so that if you wanted to start playing around with that and maybe create your own solution based on python on the Pi, that’s absolutely going to be easy for you. Let me bring in my co-host here for just a second. Lou, this is a different kind of programming than you would be used to in your office. Microsoft has a definite dev process where you will go from everything from the hierarchy of the software to exactly what it’s going to be using and you’ll divide up the program into different departments and everyone will be responsible for their own little part. This is home brew. This is home brew computer club. Do you do any of this and do you see a correlation with what you do for work?
Lou: What I love that Liam has done is he’s found the ability to not only provide a service, but he’s providing it on a piece of hardware that he’s developed. A little bit of Raspberry Pi and a few other functional components to it. And the key to that is he’s kind of melded the two worlds where when you do a cloud service you can ship it really quickly and then incrementally fix it and update it as you go along. But he’s done it on a piece of hardware. So that’s really tough to do if you think about it. So I commend him for doing that. I think it’s what a lot of large companies like Microsoft, Apple and Google are trying to do is ship something really quickly what might have some real value but then slowly increment and update it and go along and add more value to it as you go along. So that’s a really tough thing to do so I commend him for that. And yeah, daily we try to figure that out at Microsoft, how to do that very well. So that’s really something that’s hard to do.
Fr. Robert: When was the last time you worked on a dev team of one? It’s probably been awhile. I don’t think there’s that one person you could point to and say oh yeah, he made Windows 8. Of course it’s far more complicated, but yeah.
Lou: Well maybe David Cutler might say he’s done that.
Fr. Robert: Yes. And actually, that’s a secret, they’re working on that. Liam, let me get you back in here. Last time, we had a lot of prompts thrown your way, when you showed the folks at home the formula you had to sort of hard crack in order to figure out when and where to display the ISS. Has that changed at all? Can you show us that code?
Liam: So just to be clear on that one, what I had to calculate was the visual magnitude of it. When its visible because there was a- I couldn’t find an equation that would allow me to figure out the angles that I needed to figure out in order to determine how bright the space station is when it’s going to be visible. So that was the code I wrote. The code that actually does the calculations, the hard calculations is done through another library called Pi Fm. So I’ll show you that right here. Before I do, do you mind if I just mention one thing, and that’s what I’m holding in my hand here. I do have a new Kickstarter going on and it actually bridges Arduino with Raspberry Pi. It’s a really perfect Segway between your previous shows. So I’ve actually worked with a local designer in Pasadena, DLY electronics firm called Acrobatic. And they developed this custom little device here which is RF duino. It has a Bluetooth chip on it and a RTC. And you can sew it onto this wearable thing here and it basically gets 50 passes of the ISS, up to 50 passes written onto it whenever it turns on. So you just plug it into a micro USB power type adaptor and away it goes. So we’re about half way through the campaign right now. It has 40 backers right now, this is a bit of an unusual type of add on and as well as that I’ve also supported these, I’ve got a new custom Pi hat that I’m holding up here that actually supports really long LED strips as well. So if that little Pi Glow isn’t sufficient for your environment, you can have what’s going on behind me over here with the strip behind me. And it’s either remote or with a Pi hat directly into the actual Raspberry Pi. So that’s my little Kickstarter that’s going on right now so hopefully you don’t mind that I did that. And all the details there on the Kickstarter. So a very good start to it and I happen to know this is a real big hit for kids in school because when I was in the UK for a couple of weeks I traveled to my grandkid’s school and gave a presentation to, in once case 200 very interested, very inspiring young students. And they just couldn’t get over this wearable ISS above. They all wanted to have one, it was really fun.
Fr. Robert: Liam, before we jump into your code, let’s go ahead and take a moment to thank the second sponsor of this episode of Coding 101. This is a sponsor that I kind of hold dear because they do exactly what I need them to do and that is business communications. When you think of the tools that you use to communicate today, there’s a bunch that come to mind. Text, phone, email, every sort of tool in social media, but the question is, does it keep your team in synch? Does it keep them on the same page because that’s what a good business communications tool will do? Which is why we’re happy to have HipChat as a sponsor of Coding 101. HipChat is specifically designed for businesses. And businesses are the ones who are going to love HipChat because it allows you to keep a history of what your communication looks like. I’ll explain why that’s important. When your team communicates, when they use a variety of programs, from email, IM, texting, cloud storage, document sharing apps, they have little bits of pieces of the answer everywhere. And if you’ve ever had to do forensics on your project planning to figure out where a good idea came from, or where a bad idea came from, you know that you want an easy way to look back through time. Through the time of your communications and figure out what happened when. That’s what HipChat lets you do. It gives you a time machine so you can see the genesis of that next great idea. They give you IM, video chat, document sharing, screen sharing, system updates, and code sharing integration, which is important for our audience, in one simple platform. Email is too slow, meetings get sidetracked and regular IM doesn’t work well for groups, but HipChat keeps your team in synch. And it works from any device no matter where you are. The best part is that HipChat integrates with the top developer tools like GitHub, Gira, Zen Desk and more. You go to their website and check out the 57 services that HipChat plays nice with to see if maybe you don’t have to do much integration at all. Just turn on HipChat and start working better. They bring your entire project and team together in one communication suite. It’s easy to set up, it’s fun to use, and it makes you productive. Now here’s what we want you to do. We want you to try HipChat Plus. You can get your team on the same page in seconds. I want you to try them for free, no credit card required. Visit HipChat.com/c101, click on “start chatting” to sign up now. Then invite a few team members and all the features are free for 30 days. After the free trial you can always stick with the freemium version. Remember, that’s hipchat.com/c101 and here is a super-secret piece for everyone who wants to act now. If you sign up now the first 100 signups are going to get their free trial extended to 90 days. That’s hipchat.com/c101. Hipchat.com/c101. HipChat, your team, your project, in synch, instantly. And we thank HipChat for their support of Coding 101. Liam, lay it on us. What does this look like when you need to figure out whether or not you can actually see the ISS above?
Liam: Yes, let’s do this. So what I’ve got on the screen here is the really simple piece of code, it’s actually this one line here that calculates when the next pass of the ISS is over your particular location. I’m not showing you all the code, but essentially what’s going on here, it’s using the library Pi FM, that’s very easy to get. There’s even an example code out there that you can see. Just install the PI FM library and what you basically do is you set this object, which is the observer, IE, you, wherever you are, with the latitude, longitude, date, time that you’re currently at. And then this little function here gets called and it figures out the next pass of this little object which is the ISS object which I’ve previously set elsewhere in the code as well. The way you do that is you just set the ISS to a particular satellite. It’s called two line element. It’s where you can define the orbital elements. It’s very easy to get those online for the ISS and with this one piece of code that basically gives you the time of the next rise of the space station in your sky. What angle it will be at. Which compass direction it will be on. This is the time of the transit. That’s the highest point in the sky. And this is when it is at that highest point, how high it will be. So is it going to be 60 degrees, 30 degrees, and 5 degrees, whatever? And then over here it tells you when it’s going to set. The time set, and then which direction it’ll be when it sets. And that’s pretty much all the code apart from setting the observer and setting the pass. That is involved here. So you can see it’s very easy to actually calculate that and the things that I’ve added on are really just the bits that allow you to easily get updates to the 2 line elements. Because despite the fact that the raspberry pi is obviously something that’s popular with makers, interestingly, or counterintuitively, the vast majority of users of ISS Above are actually not makers. They’re people who just want to get the device, plug it in, switch it on, and they have mission control for the space station on their own TV. So consequently, I’m giving you the under the covers view of it, but while there are definitely Raspberry Pi enthusiasts and makers who get this, that’s why I’ve got a download version. Just so you know, the download version usually lists for $30. But for Coding 101 people, or anyone who happens to stumble across the Coding 101 episode, if you just put Coding 101 as the discount code, you can get it down to $15. So it’s not free obviously, but then hopefully you’ll get an understanding of how much effort goes into this, to create something that is really useable by anyone.
Fr. Robert: We’ll talk about that in just a bit, I want to get Lou back in here. Lou, this is an interesting project, it’s very different from what we normally do in Coding 101 because most of our projects are from the start to the finish. They’re made for people who kind of want to progress a bit more. As Liam said, this is a weird, maker/DIY-er/plus project. Where do you rate this as far as building up your repository of programming knowledge, where would you rate doing something like an ISS Above with the Raspberry Pi? Or even the last module that we did, doing the Arduino steampunk clock?
Lou: I would rate this as one of those- even though it’s a do it yourself I think it definitely uses the knowledge of programming and kind of getting you used to that type of development environments. And then deploying it and testing it and verifying it and even built a UI with it. So this would be a great example of starting out. Some of the projects seem like they’re too complex but it doesn’t matter. It still gets your hands dirty with these platforms and it’s not like these other platforms are any more difficult than the next. Once you start to get used to them it’s a little easier to adapt and I think- get your hands in there, get your hands dirty and just start playing with it. And always have a purpose. And in this case he had a purpose, he had a reason to build these and to deploy and to give you data. And if you do the same with your simple apps you’ll always build out something really neat.
Fr. Robert: I’ve got to ask you something Liam, this is a little storm that’s been going on in the chatroom, there’s going to be those people who see something like the ISS Above, which is, by the way, one of the every first things that I wanted on Coding 101, because I thought it was such a neat project, who are going to say wait a minute, he’s using code that’s under GPL and he’s selling code that he’s modified including those modules he’s taken from the GPL. What is your take on that? I know you’ve heard this before, and personally I support you. I believe that programmers who put their time and effort into creating something should be able to receive some sort of monetary compensation. But if someone were to come up to you and say no, give me all your code now because you have to, what would you say?
Liam: Well, id answer that in one way, which is yeah, I’m using, I think many companies do, there are open source modules that are integrated into many systems that are sold commercially. So I chose not to make this open source because of the nature of where I see this going. It’s something that I’m supplying it mostly to people who really just want something that works. And then I’ve got to make sure that I do the effort to make sure that its reliable, its updateable, by the way, you do update it using a web interface as well. So I’ve got all of that going on. But on the other hand, yes, I’ve got to say it’s in the back of my mind as well. I agree with you. It’s one of those things where, in the back of my mind I’m saying, I’m using Pi FM which is free. It’s free because other people in the open source community have created it. I would say- and this is simply the way I’m justifying it, I’m not saying it’s right, it’s just my view on it- is that there are a number of different ways that products are developed and they’re brought to market and sometimes they utilize open source components and yet they’re still something where the actual developer of that particular expression, that project, is something that people pay money for. And also think of this, so there are often hardware components that are used on top of an open source environment, like that Pi Glow. Like other things that are hardware that go on top of it. Why is it okay to charge for hardware and yet not for software and the effort it goes to do it. So again, I’m not really saying I’m right in this, and I do really appreciate everyone who has an opinion one way or another on this, and that’s really sort of where I’m coming from.
Fr. Robert: Understood. Gentlemen I want to thank you so very much for being on this episode. We are going to have to start closing it up. Again, Liam, always a pleasure to have you on. A pleasure to talk about the projects that you’re working on. Could you tell the folks where they can find you? They already know where they can find your Kickstarter and they know where they can download the software, but if they wanted to find out what you’ve been tinkering with the last couple of weeks, where is a good place for them to drop by?
Liam: Well, that’s a good question. I have a twitter account, @issaboveyou. Although that’s mostly filled with tweets from the 850 ISS Aboves out there. I do have another twitter account, @liamkenedy. I’ll be sure to post updates to what I’m up to on that and also on my website, issabove.com.
Fr. Robert: Liam Kennedy, the creator of ISS Above, we thank you for being on the show and we’ll see you next time. Lou Maresca, lead developer for Microsoft. He’s a man who has been with the show since the first episode, so it’s nice having to work with you more or less on a weekly basis. Of course people are going to know they’ll find you here the TWiT TV network, it’s not just Coding 101, but we are going to have you on BYB very soon. If people wanted to know what you’ve been tinkering with, where do they find you on the internet?
Lou: On Twitter, @LouMM, and about me, Lou MM as well. And all of my work during my day job is at crm.dynamics.com.
Fr. Robert: Folks, I want to thank all of you who tune in every week to Coding 101. I know that this was a code like show, in fact we’re going to have another one, and it’s what we’ve been doing since the very beginning. We give people a chance to catch up between the intense modules. We just finished the Arduino module so naturally we’re going to have 2 interview shows before we dive back in. I will say we are going to hit it pretty heavy. We’ve got some C Sharp coming back on, some Perl coming back on, and then in April we’ve got a month long of Ruby and Ruby on Rails. So if you are interested in doing anything in that space, you’re going to want to mark that on your calendar. Remember, April is Ruby month. I also want to thank everyone here who makes this show possible. There is a lot of people who go into making Coding 101 what it is. There is Lisa and Leo who let us do the show, there’s also the staff, the continuity, the engineers, and of course my friend, my TD and my Co- Host, Mister Bryan Burnett. Also known as Cranky Hippo. Where can they find you Bryan?
Bryan Burnett: They can find me on Thursdays doing Know How with you, I also am on twitter, @cranky_hippo. And so we sometimes go back and forth on there.
Fr. Robert: If you don’t want to watch us playing games, you can download the old modules of Coding 101, drop by our show notes page, at twit.tv/code. You can find our entire back catalogue of episodes which is important because it’ll let you download entire modules if you want to learn what we did in C Sharp or Perl or PHP, it’s all right there. It also gives you a place where you can use that little dropdown menu to get every episode of Coding 101 automatically downloaded into your device of choice. We make it easy because we love you. Also, we do this show live every week Mondays at 2:30 pacific time. You can join us at live.twit.tv. And as long as you’re watching live, jump into our chatroom at irc.twit.tv. You can follow me on twitter, @padresj. If you go there you can find out what I’m doing for all my shows. Coding 101, Know How, Padre’s Corner, Before You Buy, and This Week in Enterprise Tech. I make sure to list my episodes and topics there so if you want to see what I’m doing on TWIT that’s a great place to go. Until next time, he’s Lou Maresca, I’m Robert Ballecer, end of line!