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!