Coding 101 20 (Transcript)
Shannon
Morse: Today on
Coding 101, we have the creator of IPTV and more. Stay tuned.
Netcasts you love from
people you trust. This is TWiT! Bandwidth for Coding
101 is provided by Cachefly at cachefly.com.
This episode of Coding 101 is brought to you by
lynda.com. Learn what you want when you want, with access to over 2400 high
quality online courses all for one low monthly price. To try it free for 7 days
visit lynda.com/c101. And by hover.com, Hover is the best way to buy and manage
domain names. It's simple, honest, and easy to use. For 10% off your first
purchase, go to hover.com and enter the promo code: C101.
Fr. Robert Ballecer: Welcome to Coding 101 it's the show where we
introduce you to the world of the code monkey I'm Father Ballecer.
Shannon: And I'm Shannon
Morse and for the next 30 minutes we're going to get you all learned up on what
you can be with your programming knowledge.
Fr. Robert: That's right. Now
Shannon, you may remember we always have to remind the audience this is not a
regular episode right?
Shannon: That's right it's
not. So we usually have an 8 episode module where we talk you through a certain
type of programming language. Between those we're going to do 2 episodes where
we interview really cool people that are in programming, this is what they do
with their life.
Fr. Robert: Exactly, and it's
just a nice way to remind people that we aren't just throwing code knowledge
into your head, there is light at the end of the tunnel. And these people are
that light. Speaking of light, we want to welcome to the show Mr. Karl Auerbach. Karl, thank you so much for coming on. I know
you're a busy man, we've had you on several TWiT shows before including This Week in Enterprise Tech, you may be a little bit of
a man of mystery to many people out on the internet but whether or not they
realize it, you've probably created something they're using, yeah?
Karl Auerbach: Almost certainly.
Shannon: I am intrigued.
Fr. Robert: Okay, I'm going to
ease you into this because I think that our code monkeys are going to love
knowing who you are but let's start with something very simple, which is how
did you get into coding. How did you get into computers, how did you get into
the IT revolution? You've been around a while, including a time before the
internet so how did you get to where you are now?
Karl: Well I was one of
the infamous members of the UCLA computer club in 1968 next to imp number one
and I set forth to learn basic programming. My first language back then was PL1
and it was a simple program. It took me a year to get my first piece of code
running, of course then it was on card decks and things like that. Aside from
imp number one, I also happened to be right next to the transportation
institute where we were doing early car crashes and I was hired as a film
scanner, which is where we had these machines watching cars getting off of
freeways from helicopters and we're punching cards, showing coordinates in a
big program that would use those. So I had an IBM 70-94 to myself whenever I
wanted so I set forth to learn how to use that and I wrote some trivial
programs then. And I've been on to bigger and greater things since then.
Fr. Robert: The mention of those systems are probably bringing some bad
flashbacks for the older programmers.
Shannon: For me I'm like,
what is that?
Fr. Robert: Yeah, blinky boxes are the ones with the switches. You actually
have with you a piece of gear from one of those early computers.
Karl: This wasn't that
early this was from the 80's or 70's. PDP-11/70 console.
Fr. Robert: Oh gosh, that
brings back all sorts of memories.
Karl: And I used to load
boot codes into this thing and load it into memory and just get this thing
going. You could tell a lot from these lights, you could tell whether your
program was idling, whether it was in supervisor mode, what part of memory it
was in... You could get a lot of useful data by watching those lights.
Fr. Robert: Let's talk a
little bit about that because in our first module we did a binary to decimal
conversion.
Shannon: Right.
Fr. Robert: And there were
people who were like, why would I need to know binary? It's because the old
programmers, that's how we had to program. You didn't have a keyboard, you had
to flip switches and then you committed it to memory. Could you actually show
us what you would typically do for a sequence?
Karl: Well most of the
time, we would do the boot sequence and I can't remember the codes but it was
something like this... One of these switches went up to store things in memory,
then you'd finally hit the 'Go' button which would cause it to jump to that
location, which would begin to bring the system up. And that system back by the
way, was Unix. Well before DOS even came out from
Microsoft so Microsoft went backwards because we had multi-user operating
systems before DOS even came out.
Fr. Robert: Karl, one of the
things that often fascinates the new generation of code monkeys is when they
start stepping back and realize that a lot of things that they're learning,
that they just take for granted, actually have a backing. There's a reason why
programming works the way it does and that's because we're basing it off of the
first generation of computers. We see that a lot, we see that in learning
Binary, we see that in learning hexadecimal. We see that because that's how you
originally had to program those computers.
Karl: I was going to
raise the point that most people today don't even know the difference between
Ones' Complement arithmetic and Two's Complement arithmetic and that's kind of
important.
Fr. Robert: (Whispering)What's the difference...? I don't know what that is.
Shannon: (Whispering) I
don't know, what is the difference?
Fr. Robert: We'll get to that
in just a little bit. But Karl, it's good that you're a geek, it's good that
you're an old-fashioned geek, it's good that you were on the cusp or the start
of the IT generation. But that's not-
Karl: Oh I'm a long way
from it.
Fr. Robert: Right, but that's
not the only reason we brought you on. You also have a lot of experience with
things that are not just hacking together computers. You were on the Board of
Directors for the Open Voting Consortium, you were a member of the Intellectual
Property section of the Cal State Bar, you are a co-founder for the Boston
Working Group, you are part of the IETF the Internet Engineering Task Force,
and you're on ICANN.
Karl: I was affiliated
with ICANN, I was on the Board of Directors. Most of
these are past sort of things but I'm doing new and greater things, going back
to first generation coding. I can't forget, the first programmers were doing
the ENIAC machine and the Sage computers and those were almost exclusively
women.
Shannon: Yes, go women!
Fr. Robert: With all of this
experience and all of the influence you've had over the internet, you've seen
it change a lot over the years, right? I mean, this was a geek project at
first, but how have you seen it evolve?
Karl: Well when I first
came across the Internet, there was no word for it, but it was a collection of
communications vehicles for us to do exchanging basic applications like email,
file transfer, things like that. We got pretty much down and dirty with the
hardware modems and wires and what-have-you. It's evolved a lot since then, but
the first 10-20 years of the internet were largely people playing around with
not a lot of restrictions. What's happened, and what scares me the most
recently are the changes of the legal environment around the internet. The restrictions that are rising and the attempted transformation
of making the internet a utility. And we're not clear whether it's a
utility or a vehicle for innovation anymore. Same thing has happened in
programming. Programming used to be like a Wild West kind of thing where
everybody could write their own piece of code. But we're getting to the point
where not everybody is going to be able to write code for say, the braking
system in a self-driving car. You're going to need some pretty stringent tests
on that kind of code.
Fr. Robert: I want to get back
to that but before that, Snubs had a question about something I was talking to
her about before the show and she got really excited by it.
Shannon: I did, so I know
that you were one of the creators of IP TV and this is what we're doing now.
This is the basis of what we have created our careers around so I got really
excited about it, myself. And you were also one of the first paid employees of
Precept Software before it was acquired by Cisco. So I want to know from you,
how do you feel IP TV has changed since the late 1990's?
Karl: I've been an
unpaid employee of several start-ups. I think I've done like 6 or 7 and if you
want to make billions of dollars, you go to the places I turned down. But IP TV
was part of Precept Software and that was the start-up done by Judy Estren in 1995. She brought me in with Steve Kasner and Chachi Quan and her sister Debra Estren.
We gathered together one evening and said, what should
we do should we do IPV6, should we do this or that, should we do multi-media?
We said, oh multi-media, that seems like a lot of fun.
Well Steve Kasner had spent a long time at USCISI. He
was part of the team that sent the van out in I guess the 1960's and 70's doing
the first internet voice projects, mobile voice. He was also one of the
co-inventors of the RTPRTCP protocols so we took that and held it up with IP
Multicast and there was a model already put together by Van Jacobson on the
internet which was... I can't remember the name of it. It was what the IETF
used for sharing low-level videos and things like that so we decided to start
building that up and commercializing it. So what I did at this company, Steve
handled all of the real time algorithms. How do you synchronize lip sync, lip
sync is really really hard to do especially when you
have multiple streams. I did the RTPRTCP code which was a heavily asynchronous
piece of C++ code that handled multiple media streams, handled the
synchronization, handled the hand-offs to the codecs and all that sort of
thing. We put that together into a commercial product and made it work.
Shannon: Wow...
Fr. Robert: Karl it's amazing
because- Something that we are taking for granted right now, the fact that we
can reach people, it's something that when you think about it a bunch of geeks
had to sit around and say, I wonder what would be the best way to do this. I
wonder how we could push this over networks. And even though it's simple now,
oh we just install this plug-in-
Karl: It's not simple
now.
Fr. Robert: Well yeah, but it
seems simple because there are so many different products that we can use. At
some point, you go back far enough and it's you. It's you and a bunch of other
people saying, let's solve the issues.
Karl: Do you know Simon
Hackett?
Fr. Robert: I do, yes.
Karl: Well, I used to
work with him. He used to be affiliated indirectly with TGV here in Santa Cruz.
He put together all kinds of fun things, he was in Adelaide most of the time
and he set up the remote jukebox. So we had a jukebox of a couple hundred CD's
here in Santa Cruz, he set up a protocol control to stream radio stations and
music between Santa Cruz and Australia. So he could sit in Australia and listen
to KPEG which is a local Santa Cruz station or vice versa he could also change
our volume and things like that. So we were doing multimedia stuff way back in
the mid 80's. He also went on to say let's move voice over ethernet and put together the first etherphones I'd seen.
There was a T-shirt made with a remake of the painting from the 16th Chapel and
God was handing off a mobile phone to Adam. Also Simon went on to build the
first internet toasters and several other tools.
Fr. Robert: Now Karl, if
you'll on for a second. Ladies and gentlemen we are with Karl Auerbach of Interworking Labs. He was a geek way before
being a geek was cool. But before we get back to that interview, Shannon, Karl
has a wealth of knowledge and he has a wealth of experience on the internet.
I'm wondering if you could maybe tell us a little something about another
repository knowledge source we could find on the internet.
Shannon: I might. You've
probably heard of it, there's a website online called lynda.com where you can
find thousands and thousands of video tutorials about everything from
programming to photo shop, to creating your own website if you wanted to. So
our first sponsor for this episode is lynda.com. Lynda.com is the place where
you can learn and keep up to date with your software, you can pick up brand new
skills of anything that you want to, or you can explore new hobbies with their
easy to follow video tutorials. Whether you want to master the fundamentals of
programming, or you want to learn new programming languages like Python, or you
want to build your own first iOS app lynda.com offers thousands of courses and
a variety of topics. At lynda.com you can explore programming fundamentals. You
can get started in everything from data bases and object-oriented design to
code efficiency and test driven development. They also offer a brand new course
on the new features of Java SE8 and foundations of programming. This is pretty cool, it's called Programming For Kids. So this teaches kids
to program using techniques, apps, and hardware and I feel like this is so
important for our educational process especially here in America. I want to see
kids growing up knowing how to code, and I love the fact that lynda.com is
offering these kinds of tutorials for these kids. There are over 2400 courses
with more added every single week so you'll never run out of something to
watch. There's always going to be something you can learn, and all lynda.com
courses are produced with the highest quality. Not like homemade videos on
YouTube with a terrible webcam from the early 2000's and no mic. Lynda.com
works with software companies to provide you updated training and it's on the
same day that new versions hit the markets so you'll always have the very
latest skills. And at Lynda.com, the instructors are accomplished professionals
who are at the top of their fields and are so passionate about teaching. I
mean, just look at him, he looks so interested. I love it, I love watching
people that get so interested in what they're doing. Of course, the courses are
all experience levels so you're able to do beginner level, intermediate, or
advanced if you wanted to. This vast variety of tutorials can be viewed from
your computer, tablet, or your mobile device whether you have 15 minutes or 15
hours each course is structured so you can start and finish whenever you want.
You can also search transcripts to find quick answers or so you can read along
while watching the video in case you feel like you missed something so you can
be like, okay where was the part where he specified on
this certain thing. Lynda.com also offers certificates of completion when you
finish your course, which you can then publish on your LinkedIn profile, which
is a really great way to get an awesome job at that company that you are so
interested in. Now, it's only $25/month so go and get it now for access to the
entire lynda.com course library. Or for $37.50/month you can subscribe to the
Premium plan which includes exercise files that let you follow along with the
instructor's project, using the exact same project assets that they do. Super,
super cool, you can download everything that you need and you can just follow
along it's very simple. And you can try lynda.com
free. For a 7 day free trial, visit lynda.com/c101 to access the entire
library. That's over 2400 courses so go get it now, free, for 7 days. That's
lynda.com/c101 and of course, we thank lynda.com for their wonderful support of
our show right here on TWiT, thank you.
Fr. Robert: We're back with
Karl Auerbach of Interworking Labs. He's really one
of the fathers of the useful internet.
Shannon: He's quite an
interesting character I'd say.
Fr. Robert: I've known Karl
for a while and I've worked with Karl actually. We were both part of the
Interop Network which was a lot of fun, especially in the early days where you
were playing around with protocols. Now Karl, I want to ask you this: It's one
thing to be a geek, but you've been very active. I dare say you've been
politically active and you definitely have some strong feelings about what the
internet is supposed to be, what it's supposed to represent, and how it should
develop. I think we can see that in the Boards that you've been on. Everything
from the IETF to the ICANN, you've always taken the stance of, we want the
internet to be more than just information sharing, we want for it to be more of
a community. Can you talk a little bit about that?
Karl: Well the internet
is based on commercial things but it's real value is
the fact that we can all communicate with each other with relatively open
channels and with not a lot of money. The one thing I always hearken back to is about 1928 there was this- The telephones. -Those old
carbon microphone things you'd see people screaming into, you know, hold the
presses, in all of the old movies? Well they had terrible microphones and
somebody invented a plastic hand for it. Here would be microphone area and they
would put this plastic widget around it and begin yelling into it and that was
called a Hush A Phone. It's purpose was to sort of focus the sound coming
into the microphone to try to keep other people from overhearing you screaming
into the microphone. Well several years later in 1948, some AT&T guy-
Remember Bell AT&T The Great Monopoly, TPC the phone company saw this thing
and they said, oh my God we can't have somebody building add-on's to the
telephone network. This is going to sound real familiar because of what's going
on with Comcast and net neutrality, things like that. So they AT&T got the
FCC to come along and with the FCC being the technical body said, wow this
plastic device is going to cause operators to go deaf, it's going to
electrocute lineman so they would be blown off of the telephone poles while
they're working on circuits, so they got this little widget band. But the
people who had this widget said no, they went to the court- And it was the same
as the Hush A Phone case in the early 1950's. -That
said, this is crazy this thing is totally passive.
There has got to be some trade-off between your private use of the utility and
the public use, so they created the rule that states you have the ability to
make private use of these utilities as long as there wasn't a public detriment and there
was a balancing act. Well that eventually lead to the Carter phone case, the
MCI case, the break-up of AT&T and that was the thing that allowed the
internet to evolve in the cracks that opened up because of AT&T's
restrictive constraints on the telephone network were not there. AT&T in
the 60's and 70's was very hard pushing on ISDN, as that was going to be the
network of the future. The world would be very different if that had gone
through. Well the internet is suffering from the same thing right now as we're
getting tighter and tighter closure on what people are allowed to do. Like if you are a customer of most ISP's, you
can't set up servers in your house. You have to go set up servers in a
cloud or some permanent place and if you do get static IP addresses they're
usually expensive and there is bandwidth constraints, it's asymmetrical-- We're
being closed down so I promulgated a rule based on the old Hush A Phone case
which basically says, any private use of the internet is permissible as long as
there is no significant public detriment and I go on further to put the bird
into proving that public detriment on to the person who is saying that this
interactivity should be shut down. I call this the First Law of the Internet and
it's my model- You can see it on the front of my website, cavebear.com. -It's
my model for what rules should guide use of the internet. We can't have
unrestricted use but it's got to have a strong bias towards open and liberal
use and those who want to shut a person down should have to carry the burden of
shutting it down and being a lawyer I know the value of what that is, placing a
burden on someone, it makes it very hard.
Fr. Robert: You've got Shannon
here, with her mouth agape because she's just like oh, well duh... That makes
sense!
Shannon: Yeah, I was
like... No way!
Fr. Robert: Exactly, and yeah
the first rule of the internet. That was actually the title of one of our This
Week in Enterprise Tech shows where Karl was a guest. It's amazing that the
same utilities that were claiming that this technology and that technology were
going to destroy this public utility, they're the same ones that we could now
make the argument that they are doing things that are a detriment to public
use. So yeah, I think the first rule of the internet still holds.
Shannon: That's exactly how
I feel and that is just crazy.
Karl: A very useful book
to look at by the way, it's related to the current thing with net neutrality
and things, is to take a look at the old 1900 book about the Southern Pacific
Railroad called "The Octopus," it was about the Southern Pacific in
California using rules to strangle farmers and essentially force them off their
land.
Shannon: Oh wow.
Fr. Robert: Okay let's talk
about something else. Like some other internet activism that you were apart of.
Shannon: Yeah, I know you
were a part of this lawsuit against ICANN because you wanted to see their
financial records, is that correct?
Karl: Well it was my
lawsuit. It wasn't actually a lawsuit, it was a motion
to compel them.
Shannon: Wow.
Karl: I was on the Board
of Directors of ICANN and I was elected by the public as the only person ever
to be elected by the public to the Board of Directors of ICANN, at least for
North America, I represented 330 million people. I represented more people than
the President of the United States.
Fr. Robert: They stopped doing
that after you, right?
Karl: They erased my
seat and that of four other publicly elected people because they hated the
system so much since we were uppity and asked questions.
Shannon: Good for you.
Karl: But ICANN is a
California corporation. California's corporation law says a director has, in
the words of the statute, the absolute right- Air quotes are appropriate.
-Absolute right to inspect and copy the papers of the company. And you don't
want that, another passive Board of Director sitting around allowing another
Enron or something like that. So I said, I want to
look at the financials I want to look at the ledger. What's dangerous about
that? And I want to see if we're paying bills that have invoices or are we just
paying things, or are we spending too much and stuff you know, just the general
business stuff. And they said, no. So I said, what do you mean no? They told me
I'd have to sign a non-disclosure agreement and I said I'm on the Board of
Directors, I have a fiduciary duty. I'm bound to protect the corporation no
matter what. If you signed a contract, you're shifting the older contract law,
which is lower standard. That's a very legalistic argument and it's an
important one. And they insisted so I sued, the EFF backed me and we went
through, spent 18 month wrangling around, got to court and the judge said,
ICANN, you lose. Tell me why you shouldn't. And they were told to hand over the
documents, which they eventually did. Over the years since, they've tried to
white wash and say they didn't lose but they lost completely and absolutely,
and they should have.
Fr. Robert: Karl see, here's
the weird thing about that... Once they did turn over the records, there was no
big deal right? I mean...
Karl: Standard typical
stuff on a start-up. They didn't have an employee handbook, they were
over-paying their law firm, they were not tracking travel expenses very well,
just the standard kind of stuff that is not embarrassing and is easily fixed.
Shannon: It sounds like the
same kind of stuff that I've dealt with for start-up companies you know,d things you forget to charge
for or other things that you just charge way too much for, it happens.
Karl: And what there response was is of course, to use the most expensive
law firm in the world to pay for this stuff or they could have bought a Nolo
Press Book and done the same thing for a couple hundred dollars.
Fr. Robert: But you're a
dangerous combination, and we talked about this a little bit on one of our
other shows, This Week in Law where we discussed the fact that you're a
hardcore engineer. I mean, you know exactly how protocols work, how network
works and how they're put together but you also know law.
Karl: I am an attorney.
Fr. Robert: That's very
intimidating, right? I mean, because that combination doesn't usually really
exist. Sometimes you have lawyers with technical knowledge and sometimes you
have an engineer with legal knowledge but you're really both. You wear both
hats at the same time.
Karl: Well I've been
named a Fellow of Law and Technology at Caltech-Loyola Law School in Los
Angeles. But I'm a trouble-maker, in my family it's an honor to be arrested for
civil disobedience and unfortunately, I've never been arrested for that.
Fr. Robert: I could fix that.
Shannon: With the people
that I generally hang out with- I go to Defcon and
things like that. -I have to say yeah, I always question authority whenever it
comes to any kind of rules that I'm supposed to follow, I'm always the person
that raises my hand and asks why?
Karl: One of my favorite
phrases, in fact my personal motto is a phrase that I can't quote the Latin
with you but it says, the argument based on authority is the weakest of all
arguments, and that comes from Thomas Aquinas. And I really like the notion of
using an authority of the Catholic Church as an authority for the proposition
that one should question authority.
Fr. Robert: Yeah, that's kind
of our thing. That's why we got removed at one point, eliminated or supressed. But Shannon mentioned Defcon, do you attend Defcon at all?
Karl: Occasionally, I go
to the not-to-be-named conference in Santa Cruz every December but it conflicts
with the Intellectual Property Conference that I have to attend so I haven't
been to Defcon, but I go to the other secret
conference.
Fr. Robert: Super-secret, the
Lead Conference.
Karl: Well it's called
the Think Conference.
Shannon: Oh Think, okay.
Fr. Robert: Now you know what
it is.
Shannon: Yeah.
Karl: It's kind of cool.
Fr. Robert: It's like Defcon on steroids. With not as many unshowered people.
Shannon: Oh that's good.
Karl: Oh it's definitely unshowered.
Shannon: Are you one of
them?
Karl: Well it starts
Friday afternoon and goes through Sunday afternoon, there's not a break.
Shannon: Oh wow.
Fr. Robert: Now Karl, we need
to take a break but when we come back I want to talk to you about something I
know has been on your mind lately. I've seen it on your blog, I've seen it in your emails specifically talking about programming. Talking
about this current generation of programmers and talking about this current
generation of electrical engineers and the disconnect between the two. I think that's an important issue for anyone who's considering
a career in IT and I think you could give us a unique perspective. Can you hang
around for just a bit?
Karl: Of course.
Fr. Robert: Okay. Now, we are
all about great ideas and that's why we've got Karl on the show, that's why
we've got Snubs and myself talking about coding
knowledge that we drop into your knowledge hole. But the question is what do
you do with that good idea? Hopefully you know that in order for a good idea to
become a great idea it needs to be spread, it needs to undergo scrutiny, it
needs to be seen by your peers and by people around the world, and in today's
age, there's really no better way to do that other than publish a website,
publish a blog, to get the word out of the interwebs or the internets, those tubes that blow knowledge around the world. And folks,
if you do that you've got to work with Hover. Now, why do you want to work with
Hover? You want to work with Hover because you'll get a secure domain name,
you'll get something catchy and memorable to represent your online identity,
your ideas. Hover gives you exactly what you need to get the job done. You'll
find the perfect domain name for your ideas so you can get started working on
it and then you move on to the next thing on your to-do list, you don't obsess
over getting that TLD that's just right. People love Hover because when you're
looking for the best place to register a domain name, you ask the people who
know a lot about domains and that's Hover. Geeks, developers, designers,
programmers all love Hover because they know that
they'll have the best tools and support. But you don't have to be an expert to
get a domain, since the service is easy enough to use that you'll be
comfortable figuring it out by yourself and the support team is always ready to
give you a hand. Hover takes all of the hassle and friction out of registering
a domain name. They give you easy to use powerful tools to manage that domain
and they let you get that perfect domain name with top level domains of their
own. It's easy, all you have to do is search a few key words and Hover will
show you the best available options and suggestions. Hover has a clean and
simple website, in less than 5 minutes, you can find the domain name you want
and get it up and running. And they've got a huge variety of domain extensions
like of course, .com and .net and country codes to best suit your need so you
can get .just-about-anything. Hover is honest, this is something that we prize
on TWiT, they don't believe in heavily added
up-selling or charging you for something that should just be there as a part of
your package. You'll get everything there with your domain, no more and no less
including your custom email. You'll get a Smart Control panel so you can do
what you want with your domain with the click of a button, plus Who Is Privacy
is included free on every domain that supports it. If you ever need a hand,
Hover also has the best customer service around, they're known for their no
wait, no hold, no transfer phone service and when you
call, how about this... You get a real-life person! Not a bot, not a relay, not
an email message, it's someone who can address your concerns in real time.
Also, TLD's... You know how you always have to do that little name game where
you're looking for something that someone else hasn't used? Don't do that
anymore, instead, why not use .club? Hover is constantly making new TLD's
available for you including brand new TLD's that just came out like .club.
These TLD's make it a whole lot easier to get the domain name you really want
because a lot of them, as we know, are already taken in .com, .net, or .org.
You don't have to settle for something less than perfect by adding a dash or
dropping a letter or adding a word like 'the' or 'inc'
instead, just get .club. It's great for any kind of club or social group.
Country club, book club, sport club, even Facebook groups. There are so many
different applications all available to you through Hover. Here's what we want
you to do, we want you to register your domain name and get 10% off your first
purchase. Go to hover.com and use our promo code: C101 and we thank Hover for
their support of Coding 101.
Shannon: Guess what Padre?
Fr. Robert: What?
Shannon: I am interested in
this...
Fr. Robert: Uh-oh. You've got
that serious face on.
Shannon: Remember me saying
how when I was a kid my dad taught me how to build computers?
Fr. Robert: Yeah.
Shannon: Well that's all he
did, he never taught me about software.
Fr. Robert: Yeah, yeah this is
actually something I hear about a lot where someone says, I'm a hardware guy.
Or someone says I'm a software guy.
Shannon: Yeah, I had to
force myself to learn programming when I got into college, I took Java courses.
Fr. Robert: Exactly and I
think that's something that Karl actually- I think you're pretty passionate
about it, right Karl? Because there are a whole generation of programmers out
there who think that the hardware is just the generic stuff that my software
runs on. Or you've got engineering guys and hardware guys that just think, software is the stuff that kind of works on top of what
I've created but you take a different approach. You take a more integrated
view.
Karl: Well people who
write code without knowing what's underneath them, that's fine for building one
time applications or something that you don't care about long-term performance
or a long-term reliability is not a concern, it's good for a lot of code but if
you really want to build something serious where you are concerned about
performance and reliability and all of the other aspects. My world is off in an
embedded system so you have to know your context and I started out with vacuum
tubes and I had to learn about triodes and grids and anodes and all that sort
of stuff, pentodes, all the differences between vacuum
tubes. So I had to learn and start from circuits and I was really fascinated by
how one took logic and put it together to form gates and then formed stored
programs to go between that- The basic notions of program counters, stepping
through and that sort of stuff. But in today's world, if you try to write a
piece of code, it's going to do anything to fat other
than trim it. You're going to get into a world of multi-threading, you'll have
pieces across the network, you're going to deal with a lot of asynchrony and
that means you've got to start learning about what's really happening underneath
you. You can't just simply point to a number space, an increment. Is that a
safe operation or not. Do you have to put a lock around it, what is a lock, how
much does locking cost? What kind of dead locks can you get into? As you get
deeper into systems like I am down in Kernels, you've got to worry about
interrupts. Like I'm worrying about interrupt infinity. Which CPU am I on, which cache am I blowing away when
I switch between one core and the other? If you want to build serious code,
you've got to know that stuff. Also, you've got to know what you're language is
doing underneath you like Python. You don't really have that much control over
when an object goes away and whenever code is bound to the object destruction
happens. That's why for real time systems I prefer C++ because I can control all of that sort of stuff, but again, you've got to know
what's going on. I mentioned early one's complement arithmetic, two's
complement arithmetic. One's complement is mostly dead these days but it's
still alive and the internet checks them. And you've got to know in One's
complement, there are two kinds of 0's a positive 0 and a negative 0. Two's
complement has it's own
strange things at the end points. You've got to know what happens when numbers
spaces wrap around. We do software testing at my company, Interworking Labs.
And rather than doing fuzz testing, where you test every possibility of an
input to a code, we know that people always screw up. Like at places where a
sign bit or lack of a sign bit rolls over. Or where- So you always look at the
magic numbers, every power of two you look at and run tests right around that
point because you'll know somebody has screwed up. People are really sloppy in
C type languages, about the unsigned versus signed integer types. You just have
to know how all of this maps into a computer and most
people don't.
Fr. Robert: Karl, you are the
CTO of Interworking Labs, which is the first company to specifically try to
test protocols and the interworking of protocols and networks and you've
developed software like the Maxwell Series that allowed you to create virtual
networks and see how different applications and different protocols would
interact so of course, you are deeply involved with the software, the way it's
written, the code that goes into the software, and the hardware that the
software runs on. I'm wondering if this is a symptom of the death of the
generalist. We seem to be getting so specialized these days, that there are
very few people who are willing to become an expert on multiple things. They
want their thing that they do and then they hand off responsibility to somebody
else and they don't need to worry about how it works with say, the hardware
extraction layer.
Karl: Somebody has to be
a generalist, everybody needs to know something about
general things. We were down in Florida last year for the robotics thing
involving the DARPA test, and I was talking to one person there who was highly
concerned- They're dealing with robots who are balancing so they've got to have
extremely fast reaction time between their processors to the motors that are
effectuating mechanical control. And he was worrying about cache misses. He had
gone away from AMD processors because they had uncertainties in cache
refreshing, to Intel type processors because they had more certainty on their
caching and those kinds of delays mattered to him. Right now, I'm fooling
around with- Just today, I discovered a bug in one of codes. It was just being
highly unstable when I was delaying packets just like between 95 and 105
milliseconds. Any other value, fine. So I dug and dug
and dug and discovered that the Linux Kernel people are going towards tickless kernels because ticking costs. Interrupts are
expensive, you blow away caches, they burn power, all
kinds of bad things so they're moving towards tickless kernels. Well, for my application, I really need high time resolution and I
want those ticks. So I dug deep deep deep and found out that the Linux Kernel people had changed
a setting that turned my kernel into a ticking kernel. So I had to go back in
and build some new kernels today that started ticking again, and fix the
problem. But you've really got to dig deep to find that and generalists aren't
going to see that.
Shannon: We do have to wrap
up pretty soon but before we do, I wanted to ask you a question that came from
our chatroom audience. We always get the kind of
questions that I've been wondering, they aren't advanced.
What kind of answers could you give to a new coder to tell them, yes there is something
more than just learning this code, you can get a career out of it. Where would
they go from just the beginning?
Karl: Well, several
years ago I made the prediction that coding is going to become a lot like
auto-mechanics and that a lot of people are going to end up getting boring jobs
working on the code equivalent of Chevy's. But there's only going to be a few
people lucky enough to be the Ferrari race car mechanics and that's still true
today. You've got to start reaching out and you've got to get away from simple
web-based programming. If you're living in a Java script
world with restful interface and stuff. To my mind, the interesting
areas are getting into robotics where you're dealing with real-time aspects,
getting into high availability systems or highly trustable systems that are
going to be needed for self-driving cars or anything else automated that has a
health factor in it. Moving towards more expert systems, we have a long way to
go to make systems more quasi intelligent. That's where I think programming
gets fun. I've always been heavily involved, I like seeing things move like
touching a piece of code or seeing something mechanically move.
To me that's fascinating. But you've got to find environments where you can do
that sort of thing. Fortunately, you can do it yourself in your home lab but
people tend to not challenge themselves, you have to work with others to make
that happen.
Shannon: That's very true.
Fr. Robert: Karl Auerbach, Interworking Labs a good friend of the TWiT network and an absolute friend of the interwebs. I want to thank you so much for being our
special guest on this Wild Card episode of Coding 101. Can you tell the folks
at home where they can find out more about you? Of course, they can just go to
the Wikipedia entry and look at it, it's fascinating.
Karl: It's not very
accurate.
Fr. Robert: Well we can fill
it out a little bit more.
Karl: Well you can't
talk about yourself, other people have to talk about
you.
Shannon: I'm still waiting
for my Wikipedia.
Fr. Robert: Code Monkeys, I
want you to go over to Karl Auerbach's Wikipedia page
and fill in the blanks because it's just giving bare bones, let's give him some
love. Karl, aside from the fact that they need to look up Interworking Labs if
they are interested-
Karl: And cavebear.com.
Fr. Robert: And cavebear.com.
Where can they find you?
Karl: The
historyoftheinternet.org.
Fr. Robert: Oh yeah, tell us a
little bit about that project because that's a fascinating project.
Karl: Well, what we're
trying to do is before the people who are there die, we're trying to interview
100's of people who were involved in the creation of the internet from
1965-1995. We're trying to get this all down and we're going to edit it into a
story and edit it into about 200 YouTube episodes but we're taking all of the
raw takes and publishing those under creative comments or public domains so
that we can create an archive for this story in the future. To dig into and
find out actually what happened. Because it's not a story of 1 or 2 guys that
created the internet. There were hundreds and hundreds of people involved,
there were lots of ideas many of which worked, many of which didn't go
anywhere, many of which evolved. There are a lot of loose ends still out there
to be picked up and used. Very valuable loose ends. It's a history of ideas and how people fought over those ideas. It's a lot like Guttenburg who was trying to take credit for the
printing press but there were all these other people around, people who did
paper and ink, people who published and distributed the books so we're trying
to get that whole synoptic story recorded for the future.
Fr. Robert: Karl thank you,
thank you so very much and we look forward to seeing what you have next. Now,
folks this is the end unfortunately, of Coding 101 this Wild Card episode. We
will be back next week teaching our newest programming module which is Pearl
along with our Code Warrior Patrick Delahanty.
Shannon: Yay!
Fr. Robert: What we need you
to do is drop by our show notes page and you can find us at twit.tv/coding.
There you'll find not just all of our episodes, but you'll also find the links
to the get Hover pository where you can find the
actual code we used during our shows. We're not only at twit.tv, where else can they find us, Shannon?
Shannon: We're also on
iTunes, so if you search for Coding 101 in iTunes, you'll find all of our
different SS feeds in there. Please do subscribe and let all of your friends
now about the show. Tell them to download and subscribe, especially if they're
interested in learning the code and just haven't gotten around to it yet.
Fr. Robert: Yeah, help us get
our iTunes mojo back. You can also find us at our G+ page, actually this is the place that you'll want to go. Find us g+.to/twitcoding101,
it is a fantastic place for you to go, over 1,000 members now and no matter
what level of programmer you might be, there's something for you. If you are a
brand new geek to coding, we'll find people who can help you. If you're intermediate,
you can have people who actually point you into projects you should be doing
and if you're advanced, we need you because you need to help us teach the next
generation of Code Monkeys.
Shannon: There's been a few
times where I tried the audience's code on my own computer and when I ask a
question about it, they are super quick to answer. Also, if you're not
interested in Google+, we're also on Twitter, myself and Padre SJ so if you
want to check us out over there, we are constantly answering questions over
Twitter. I am @Snubs...
Fr. Robert: And I'm @Padresj. Also, you can find us online live every Thursday
1:30pm Pacific, actually not the next two Thursdays but most Thursdays you're
going to find us live here at live.twit.tv.
Shannon: I'm busy getting
married next week.
Fr. Robert: She's getting
married and I'm marrying other people, which is weird right? That's kind of
symmetrical. But also if you're going to join us live, why not jump into the chatroom? You see we sometimes pull questions from the
people who interact with us during the show, find that at irc.twit.tv. I think
that's about it.
Shannon: I think so, I
think we're good.
Fr. Robert: So until next
time, I'm Fr. Robert Ballacer...
Shannon: I'm Shannon Morse.
Fr. Robert: End of line.