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.
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.
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.
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.
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.
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.