Coding 101 60 (Transcript)
Netcasts you love, from people you trust. This is TWIT. Bandwidth for Coding 101 Is provided by CacheFly. At cachefly.com.
It’s time for TWIT’s annual audience survey and we want to hear from you. Please visit twit.tv/survey and let us know what you think. It only takes a few minutes and your anonymous feedback will help us make TWIT even better. We thank you so much for your continued support. TWIT.tv/survey.
This episode of Coding 101 is brought to you 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.
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.
Father Robert Ballecer: Today on Coding 101 it’s a wild card episode with Myriam Joire. 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 joining me today is our super special guest cohost, Mister Lou Maresca. Lou, thanks for coming back on to the show as our cohost.
Lou Maresca: Thanks Padre, for having me again.
Fr. Robert: We’re here to talk about dogs and cats living together, the end of the world. The 2 titans of tech, Google and Microsoft are working together?
Lou: Yeah, this is an interesting story because angular is a framework that Google has kind of come up with a while back and it’s what they call a MVC framework and you remember we talked about it a while ago, MVC framework is just the model view controller pattern where you’re separating data from like when you get back from a service or a database, to the way the user actually sees it. So that’s what MVC framework allows you to do. And that pattern makes your code easier to maintain and test and those are really both good characteristics to have in today’s code. So that’s really what Angular is. And so they basically tried to iterate on that framework and make it better. And the new version of it is built on top of ACK script. And that was debuted back in October last year and it’s also another super set on top of Java Script. Very similar to the type script that Microsoft developed. We talked about that before too.
Fr. Robert: Lou, I have to ask, it seems like the space gets more and more crowded every year. There’s always an alternative to something to fix a particular bug or feature that someone didn’t like in another language. Why would I go with Angular or Angular 2? Why would I look at this at all as a framework that I develop in?
Lou: That’s a really good question because a lot of times these companies think well, they build these things specifically for a particular need internally for the company. But what Angular was built for is more to allow people to build better UI in the current web framework and make it easier to kind of maintain and test and also hook it up to some of the newer standards. For instance, Angular 2 is made to kind of work on top of both the current Java Script as well as the new Ecma 6 script stuff which we talked about in a previous episode. So these frameworks are supposed to make it easier for you. And also, the whole purpose of moving to Ack script and now we’ll talk about in a second the collaboration of moving to type script, is the code that’s actually emitted from these frameworks is code that you can take and give it to someone else and say, here’s the Java Script that was compiled out of this framework. And they can look at it and actually understand exactly what it says and maybe even improve on it. So its readable and reusable code and it makes it easier for people to actually share it. And so that’s why these frameworks are so big now days. When to choose one over the other? That’s a really hard question to ask and in fact, it’s actually a religious war now days in web development.
Fr. Robert: Well, Lou, let me push you on that. When would you choose to use Angular over another framework? For example, give me a project and then give me the potential frameworks and tell me which ones you would choose.
Lou: Sure. So for instance if you’re building an application that is very heavy on the UI and you don’t necessarily need to do a lot of data binding, like for instance, maybe it’s just a website or something for information, like Wikipedia or something and there’s no data entry or something like that, you really don’t need these types of frameworks. Because they’re not really made to be able to bind and do dependency injection all special things on the server. So you could use something that’s maybe more popular for user interface type development. There’s a new framework by Facebook called React. Basically UX related. It allows you to do really – things in the UI so it really depends on the projects that you’re doing. So if I’m just doing a very simple UI but I need to be able to update data all the time on it, then React would be a good idea. Because that allows me to update things incrementally on the page and it’s very --. But if you’re doing a data entry type system, even like a social network, you might want something that allows you to bind to the way that you’re sending data back and forth to the server and make it easier to test.
Fr. Robert: Okay. And this is one of these areas where I know that the code warriors in our audience are going to love it. And they understand that yeah, there’s another framework, there’s definitely a use case for is. There’s going to be those times where this framework is going to make more sense. When we want that MVC model. The noobs in our audience, all the code monkeys, the people who are just getting learned up, this is going to be daunting. Because they’re going to go wait a minute, is this a language I have to learn? Is this a thing that I need to add to my store of knowledge just as I’m starting to code? And that’s not really the case, right Lou? These frameworks can take multiple languages and put them into a particular hierarchy. That’s what we’re talking about.
Lou: And honestly to just point it out, a very hard lesson that you’ll learn when you start developing code is when you’re using frameworks, they hide a lot of things. They try to do things for you so they hide a lot of things. And then they don’t actually tell you how they’re doing it. And they just emit things for you. And so it creates a very complex scenario where people say oh, it’s going to be easy for me as a beginner to write an app. But then when I actually write it, I don’t actually know how it got written. So that’s really the problem with some of these things. So if you’re a beginner, my recommendation is just to start with low level stuff. Like start building your app with just straight Java Script and using external services and databases and so on. And trying to build your app that way. And then you’ll start to see the pains of doing that. And you’ll get into trouble and say okay, what framework or other things can make my life easier? And then that’s really kind of the learning way of doing it. If you jump right into using these frameworks you’ll never really understand what you’re doing.
Fr. Robert: Right. And that’s why in the next module we’re actually going to start with Ruby and then we’re going to go to Rails. The whole idea is start with something and then you should figure out what it can and cannot do. And the things that it cannot do is when you start asking for a framework. Lou, if people wanted to find out more about Angular, Angular 2, about this cooperation, are there any good resources for them? Is there a lot of momentum for this new framework?
Lou: Yeah. So the type script team Microsoft, they’re basically working together with the Google Angular team to basically do better things in type script so that Angular can be built on top of type script instead of Ack Script. And so you can go to MSDN or even some of the blogs even by Microsoft or by the Google team and there’s a lot of information about how they’re collaborating and they’re making it easier to generate better code and all that type of thing. So feel free to check those out and those links and blogs.
Fr. Robert: Fantastic. Now folks, when we come back we’re going to be bringing our special guest, Ms. Myriam Joire. That’s right, she’s a code monkey, she’s a code warrior, and she’s been on quite a few TWIT shows. I thought maybe you’d want to take advantage of her experience. But before we do that lets take a moment to thank the first sponsor of this episode of Coding 101 and its HipChat. Now what is HipChat? It’s fantastic. Its business communications. I know there’s going to be people out there going wait a minute, we communicate in my business. We’ve got email, we’ve got text, and some of us have pagers. We have voicemail, we have video calls. But even though that may work and even though that’s a good way to communicate, there are plenty of sweets out there, 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. We welcome to the show, a friend of the TWIT TV network, I’ve had her on Padre’s Corner, and I thought well, she has to be on Coding 101. A longtime friend of the TWIT army, Myriam Joire. Myriam, thank you for joining us.
Myriam Joire: Hey Robert, thanks for having me. I’ve never been on Coding 101, so good to talk about my coding days I guess.
Fr. Robert: We’ve seen you all over the place on TWIT. So I had to have you back because even though you don’t do it now, you were actually quite the prolific coder.
Myriam: Yes, I still dink around from time to time, obviously, but no professional coding recently.
Fr. Robert: Yeah, one of the things that we talked about on Padre’s Corner when I had you on was that you were involved in a project that is near and dear to the hearts of gamers everywhere. A beloved game known as Homeworld. Now I think this kind of harkens back to some of the material we talked about when I had Steve Gibson on the show. Where back in the day, 10-20 years ago, coders had to be ingenious. You had to be very efficient. You had to be sneaky because you didn’t have a lot of resources. Now a days you can just throw memory, CPU and storage at the problem and basically get away with inefficient coding. But when you were creating the original Homeworld, you had to make next generation graphics with last generation hardware. Can you talk a little bit about that process?
Myriam: Sure. So just a bit of background, I went to school studying electrical engineering and applied mathematics and primarily because I was tinkering with electronics and computers early on in the 70s and I thought hardware was really something I wanted to get under my belt. But I quickly realized software was going to be it so I went into- I didn’t formally learn any software. Back when I learned software, you kind of had to- if you wanted to do something interesting you had to do grad study. If you just took computer science you’re going to end up writing crappy code in Cobalt for a bank somewhere in the 90s. So I decided I wanted to do some cool stuff so I’m going to do hardware and then the software will kind of come with it. And quickly I became a software engineer on the side and I did some medical research work, medical imaging so I have a lot of background in single processing and basically extracting signal from data. And so somewhere along the way I moved to Vancouver Canada and I was very active on a lot of audio boards. And back then we just had small digital audio tape recorders and mini disk recorders. There was no way to quickly pull out your phone and have a good set of microphones and record. So through that community, they found out that I knew a lot about single processing and some guys were leaving EA to start their own company to make this crazy game Homeworld. And at the time when I got hired, I was basically employee number 9 at Relic Entertainment, something like that. And I spent two years making this game. And Homeworld was my first foray into video games. It was the beginning of a career that ended up spending 15 years in and I worked for a whole bunch of companies. I eventually moved away from PCs into consoles. I was kind of always at the leading edge of doing the consoles. I did launch titles for PS2, for Original Xbox and GameCube, etc. eventually PS3 and beyond. But Homeworld has always been dear to my heart because it’s really the most fun I ever had coding. Because once I got into consoles we kind of had to use a lot of the tools that were provided by Nintendo, Microsoft and Sony, and stick with that. And it was a little more restrictive in what you could do. My expertise of video games was sound coding, so writing audio engines for games. And on the PC you had a little more freedom. Homeworld- the challenge was, we had this epic story line with fantastic graphics. The first real time strategy game with full 3D rendered universe where you could put the camera anywhere you wanted. So it introduced the 3rd dimension to RTSs. Before then it was only isometric view. You really didn’t have the concept of placing yourself anywhere you wanted. So we needed- in addition to an awesome render and great graphics, we needed a way to do the audio justice as well. And because it was a great story line to be told in a single --, we had a ton on content to put on disk. And you have to remember back in late 90s, when you wanted to ship a CD for a game- first of all, it ran on DOS, and if you’re lucky it ran on Windows. And then you had to ship it so that it would fit in 650 megs. 650 megs was what you could get. To actually reliably print a CD at the factory, it needed to be 650. So my challenge was to kind of find a way to put about 5 hours of audio, if you add all the voice chatter from the radio transmissions in Homeworld, the music, the sound effects, everything that’s audio in Homeworld, and you put it all together, it’s about 5 hours of audio. And I had to find a way to squeeze that into the CD alongside the textures and the game and the executables and the installer and all the other stuff and the level editor and all that stuff. And it was challenging. Back then there was MP3, there was a bunch of Codex that were lossy that would allow us to do this, but the decoding time, the amount of CPU required to decode that audio, especially if you played multiple streams, was just not possible. You could try to use accelerated audio like a direct sound and there were a bunch of other standards out there like --. Because no one had gelled yet on a hardware acceleration for PCs at the time. But the problem with using those is that you kind of boxed yourself in. it was very much like consoles. You were very limited in what you could do. So I said to the team, look, I think I can create an audio engine that’s a software renderer basically. That doesn’t require any accelerated audio hardware. You can treat your sound card like a digital analog converter. Stereo dack. And my sound engine will do all the mixing and all the decoding of all the compressed audio in real time and all the filtering in real time. And it will scale up depending on how good your processor is. So the minimum requirements we set out were Pension MMX 200 megahertz. So wrap your head around that for a second. The average micro controller today that’s – based in a wearable like this watch I demoed on Before You Buy, is more powerful today than that Pension I was having to use. And I was allowed 10% of that CPU budget. And so I created the sound engine that would allow to mix a minimum of 16 channels at 22 kilohertz sample rate in real time and output them in stereo. And that was on a Pension 200 MMX. I used some of the MMX extensions to that if they were available but not too much trickery. Just really efficient coding, very compact footprint. But here’s the cool part, all the audio was encoded 44.1. And so if you have a faster CPU the audio engine would scale up to 44.1 and the more CPU horsepower you gave it, it would take up more of that bandwidth. The audio engine would always use 10%. You could manually change that in the setting if you wanted to. But it would decode up to 44.1 and it would do it up to as many voices as the CPU could handle really. I think I capped it to something like 64 voices. Beyond that it starts becoming very bru-ha-ha-ish.
Fr. Robert: Let me ask you about that for a second. That idea of working in such a limited amount of resources, we’ve got one person in the chatroom who is already saying oh, that looks horrible. But it’s like wait a minute, you put yourself back 20 years and remember what we had to work with back then, and as you were saying, we were working with a Pentium MMX. The MMX, the multimedia instruction set, did make things faster, but you didn’t know, especially if you were working on the PC side, this is what makes it different from the console side, and I think this taps into you saying it was so exciting to program for PCs, you had to design for the worst possible computer that they’d be playing in, but let it expand up to the best possible computer that they could be playing in. what are the decisions that have to be made to make that happen?
Myriam: Yeah so I was touching on that. We kind of set a minimum bar for what the hardware would be and we coded everything so it would work on that. And then it would beautify as you added horsepower. In terms of graphics hardware, we supported (video skips) APIs for the voo-doo cards back then. And then the direct x stuff. And then open – that’s 3 of them. But there’s a little hidden gem in the original Homeworld. So if you get the original CD, its actually, you can see it on my shelf right behind me, in that box there is a CD and on that you have a software renderer as well. So the software renderer is genius because it scales. You can go up to 4k, it gives you the maximum performance, the maximum textures, all the lighting. So on a modern machine, if you find a virtual Doss box, you can, on the original Homeworld, add some resolutions and performance that we never tested it for. But it scales and my audio renderer scales as well. So that’s kind of what we did. Of course the textures are very compressed and limited. So you can only get so much in terms of quality. One of the nice things about the re mastered is that they were able to redo a lot of the code for Homeworld was made open source along the way, so they were able to take a lot of the assets and redo them and improve them. And that way it’s been modernized. But I think there’s a certain charm to the original if you pull it out and play it.
Fr. Robert: I have a question about that, because both Bryan and I have spent a lot of time over the last month or so playing the re mastered version of Homeworld. Bryan, how many hours do you think you’ve put into that game so far?
Bryan Burnett: I’m going to say 60ish hours.
Fr. Robert: It’s been a lot of hours, I’m probably half way to him. But here is the re mastered version. So of course the graphics look incredible. They’ve bumped everything up. But Myriam, how many of the old assets did they use here? How much of the structure did they pull over to the re mastered? Or is the re mastered truly just a brand new set of code.
Myriam: I honestly don’t know. I’m not familiar with the development process and the team here. It looks to me like they would have had to redo a lot of stuff. They probably hired a bunch of artists to redo the extras. There’s no way I can see them reusing what was there. It’s the same with the audio. They probably had access of the original wave forms, and they were able to redo it. And I bet you they used zero of my coding in here. There’s no need. Now days you can mix MP3 compressed audio in real time without any ill effects, or probably hundreds of voices with 1% CPU right. So it’s a different world but of course you can also see the improvements in lighting.
Fr. Robert: But they’re just using a much stronger engine.
Myriam: Exactly. It’s really what it is. I think, looking at the original today, still blows my mind how good. And if you listen to it with headphones, I virtualized the audio in 3D so actually when you’re looking at a spaceship and it’s in front of you and you get the exhaust into your face, it sounds really different than if you move the camera and put the exhaust facing away from you. Like I did all that filtering in real time and it’s outputting a stereo. And I did face shifting so that if you have a surround sounding coder and you pro logic, and you pro logic 2, because it needs to take a 2 channel audio source and turn it into 5.1 surround, if you have one of those Pro Logic receivers, most of them have a mode for that, you’ll actually get stuff coming out from your rear speakers. So we didn’t get the Dolby logo because we couldn’t get the official stamp of approval from Dolby. Homeworld and Relic opened up a whole bunch of doors for my career as a software engineer and really let me be creative. They basically trusted my judgement on how to implement this crazy technology. Because what they were doing themselves with reinventing the whole thing, they reinvented the storyline, the story telling, the RTS strategy, the actual game play with the 3D, they reinvented how to render graphics and how to create a 3D rendering engine. And so for the audio they said “she’s crazy enough, we’re going to hire her and she’s going to make this work.” And I did. It was start up. It was a lot of blood sweat and tears. I did like 60 or 80 hour weeks for years. In fact, we thought we were going to ship this thing in ’98 and then it kept slipping because our publisher was in the process of getting acquired by a French company. And they kept pushing back the deadline. So we were in final mode for like a year and working these crazy hours. And having no life. But it was so much fun. Part of the reason Homeworld is so good, I think, is because we were able to keep iterating on a game we thought was final for a year. So we kept polishing design. I kept polishing the audio renderer. I kept trying to make my code better every time.
Fr. Robert: Wait, you’re saying it got better because you had time to reiterate, but the most famous example of just code bloat in the world, Duke Newcomb Forever, they had that same opportunity. They kept reiterating, reiterating, reinventing the code, and it made that horrible. So it’s not necessarily time right? Different team.
Myriam: Different team. We were very selective about what we did. Towards the end I wasn’t even working on audio anymore, I did the entire installer. So if you run the original PC game, when you see the installer run, which I can’t remember off the shelf installing system we used, I wrote all the scripts for it and made sure that everything worked. I also did the copy protection for that CD. There is a big gaping hole if you want to copy this because I didn’t believe in copy protection so, they gave me the copy protection to do and I made it basically good enough so that the average casual person wouldn’t be able to break it. But if you just know how to use a hex editor, trust me, you can get around the copy protection without changing the binary.
Fr. Robert: Let me ask you about that because I remember from back in the day when a game would be newly released and probably the same week of the release there was an incredibly detailed way to break the copy protection. And it always felt to me that it had to be someone from the team. There was someone on the team who was like, yeah, I put this in here-
Myriam: It was a contract we had with our publisher that we had to have copy protection. We all were rolling our eyes. And one day we’re all sitting around and they point at me and they’re like, you’re it, you did the file streamer. It’s the file thing. You get us some copy protection on that CD. So I did it and its good enough. It passes the minimum requirements that they set out at the publisher. But trust me, it’s really easy to crack.
Fr. Robert: Let me bring my cohost in here, because he can bring us an interesting angle on this because he is a current programmer. He doesn’t program games but he does program a lot of software that people use on a daily basis. Lou, let me ask you, first of all, that idea of being able to scale your code up, take Homeworld. A project that started almost 20 years ago, got better, was a phenomenal success at release, and was re mastered more than a decade later. What would Microsoft do with a typical code project that might span decades? Do you look at scalability at the very beginning or is that something that just gets tacked on at the end?
Lou: So if you’re talking about some of the original code, like for instance maybe even some of the Office products, they didn’t necessarily believe that it was going to be used by a million kabillion people. So I think it might have not been designed for scale. But most products today are built for the need for scale. So scale out, scale up is really the basic property that most software has to build on today. So the client install applications, maybe not so much. But anything that has to do web, services, even really light or thin clients on your machine, those are all built to be able to scale out, scale up. So if you’re not designing for that then you’re making a big mistake.
Fr. Robert: We’re here with Myriam Joire. One of the programmers from Homeworld, if you’ve ever played the game then you have admiration for her work. If you haven’t played the game you can download the re mastered version from Steam and see a part of the universe that she created. Now we’re going to get right back to her but first let’s take a moment to thank the second sponsor of this episode of Coding 101. Let me ask you something. Do you have a presence on the web? Of course you do. Even if it’s something like Twitter or Facebook, you’ve got some way to tell people where you are. They can locate you on mobile devices, on their laptop, desktop. But do you really have a presence? Do you have a place that spells out who you are and what you work on? 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, start here, go anywhere. Myriam, let’s get back. So Homeworld, this was something that was big in your life. It’s something that you’ll always remember and it’s something that you can point back to and say “I did that, I did that”. But you’ve kind of left the world of coding. Can you tell me why?
Myriam: So you know one of my passions was to create these audio engines and really develop them into things that would be used by multiple games. My engine was used by catacalist, which is a Homeworld variation. And although I didn’t write the code for Homeworld 2, some of it ended up in there. I also did all the tools. So all of the packaging tools, the packaging assets into something that would end up on the CD were made by me. But you know, the thing is, consoles seemed to be more of a challenge to me eventually, especially once consoles started using and supporting wave form audio properly. And that really started with the PS2, Xbox, and GameCube. So I jumped into consoles and did a whole bunch of challenging work there. Again, most of my work was creating audio engines that would be used by the game programmers without having them worry about the hardware specifics. So I would create basically a set of APIs in house that the studio would use to play and manage audio in any game that was done by the entire studio. Such that they didn’t have to worry about the specific of how the audio is played on a PlayStation vs. a GameCube vs. Xbox. And so think of it as a virtualization layer, API layer that the game developers could just call directly and they would know it would just work and behave the same on all platforms. And the same with content providers. So the audio, the mixers, the sound designers, those guys would use my tools to package the audio for each platform and they never had to worry about the specifics of what codex to use and how does this work best on this platform. And so that’s a lot of what I did. But eventually there was some commercial sound engines off the shelf that became available out there. And they started getting used by console developers and by game developers. Kind of like the central tech aspect of the big studios, even at EA, started to fade away. So I’m not at the core, really, a gamer. I love games. I find them technically challenging. As a developer the fun about it for me was the challenge technically but it wasn’t about the game so much. So I found that the challenges were starting to erode. And there wasn’t really enough room really for me to be creative with the technology anymore and it was starting to become a chore a bit. So I try to recycle myself not doing more mentorship and teaching people my tricks and what I’ve learned. And so I started doing developer support, developer evangelism. That’s how I ended up at Sony Computer Entertainment. I basically was the person, for a few years, there at Sony, that if you went to a developer conference about the PSP, PS2, PS3, and eventually the – there was an audio track at the PlayStation conference, a developer track, I was the one on stage doing the talk. I would be the person who would get a call at 3am from my boss that would say Myriam, pack your bags, you have a flight at 5am, we’re dropping you by parachute at Rock Star Games or whatever in whatever city in the US so that you can fix this bug for this major game like Rock Band or whatever that is going live and needs to be gold tomorrow. So find the problem, fix it. This is what I kind of ended up doing towards the end of my career. And honestly, it thought I was going to continue. I was actually thinking of starting my own company around making mobile games. I felt that mobile was the next frontier. A lot of the challenges we had seen in PCs and consoles now apply to making games on IPhone and Android. And so if I hadn’t become a tech journalist, professionally, I think I would have ended up starting a company with some friends making some really cool technology driven mobile games. And eventually non-games, like apps. And that never happened because I started blogging in 2006 or so for my own fun. And my own blog took off like crazy and eventually I got hired by Engaget. And I was faced with a choice. Do I change my career and leave coding behind and become a professional blogger, a professional tech journalist, tech reporter, or do I continue keeping that as a hobby and be a game developer? And I just felt like it was a great opportunity to try something else. I thought I’d try it for a few months and here I am five years later or whatever still working as a professional tech reporter. However, my title down here cheats a little bit but I do more than that now. I do a lot of consulting. I make most of my money actually advising startups on how to launch and how to do their media campaigns and how to do their product strategy. But that’s what I do now. And I’m kind of between gigs in terms of full time employment but I do a lot of consulting which is great. And it’s opened a lot of doors to me. I think the biggest thing is, contrary to a lot of tech journalists, I know the tech. I understand, when I see an app I can visualize in the back of my head what the software architecture for that app is. When I see a piece of hardware that launches on Kickstarter like the original Pebble, I kind of know what’s inside. Like I understand what a micro controller is, I know how an – runs. All this stuff really helps me when I write a story about technology because I actually get a lot of the challenges around power management, efficiency, thermal efficiency and all these things that are really critical to mobile technology today.
Fr. Robert: Its funny because I’m getting flashbacks to the session we did with Steve Gibson and one of his sticking points was he wanted people to get more interested in the foundational technology. And the idea was, you may not be a programmer, but you should know how programming works. You may not be an EE major, but you should understand how electronics work. And you need to move from just being able to know how to use a tool to knowing how the tool actually works. And I think you’re absolutely right, I think that’s one of the unique pieces that you bring to tech journalism, which is, you’re not just talking about a press release, you’re talking about the tech. and you know how they probably put it together and you know how they programmed it and you know how they probably should market it. That’s an amazing combination. I’ve got to ask this. I’m going to throw a little bit of fire here. Because you’ve broached on a very sensitive topic for both gamers and programmers alike, and that is this world of the PC vs. the console. I have spoken with people who love working with console development because they know exactly what kind of hardware they’re developing for. And they know what the parameters are, they know how many resources they’re going to have and they’ll squeeze as much performance out of that console as possible. But it sounds to me as if you’re saying that when consoles started to take over the gaming world, it made it less interesting for you as a programmer.
Myriam: I don’t think that’s really what I’m getting to. What I’m getting to is that the big money game industry, like the big studios that I was working for have no interest in creativity on the technical level. They are just using engines off the shelf that they’ve used for years, they changed the asset, last year it was Madden 2014, this year it’s Madden 2015, we tweak a few things, we add what we need to do, but I don’t feel like there is a creative outlet in console and mainstream PC gaming anymore. Very rarely do I see a game where I go wow, this was cool. Bio shock was one of them. And to me, on a developer side, I don’t see too much progress there either. I think the cool stuff is really happening on mobile right now. And back to what you were saying about understanding the guts of stuff, to me, I find that like when I talk to web developers and kind of younger developers that have come to age as developers in the last five to ten years, it’s amazing to me how little they know and understand about the hardware. And to me, that’s why a lot of the – like raspberry Pi and Arduino, because it brings us back to kind of like this really important symbiosis between hardware and software. I truly believe that if you want to be a good software engineer, you have to understand hardware. Even if your work involves writing database, that’s virtualized on some server out there running some kind of virtual machine of Windows on top of Linux, it doesn’t matter to me. All that I get, I understand how it works, but I think if you’ve never coded at the register level and actually seen those LEDs turn on and off when you flip the bits in software, right in front of you, then you haven’t actually coded. Because that’s really what it’s about. Software is this malleable world that lets you change your environment around you through hardware. And to me that’s what makes it fun. That’s why I say if you’re out there and you’re a super guru at Ruby on Rails, that’s all you know and all you breathe and you’re really good at it, please do me a favor and buy yourself an Arduino, connect some stuff to it. Flip some bits, and then come back and talk to me. Because then you’ll really have experience what it is like to code. I’m old school, a lot of people disagree with that, but I really believe that’s something that we all need to have. As much as we all need to understand that sometimes you want to prototype an app and not worry about memory management. And you don’t care. Because your machine in all practical purposes is 8gig with 16gigs of ram has “unlimited” memory, right. It doesn’t matter. And that’s great. It’s nice to be able to iterate really quickly and prototype stuff without having to worry about the constraints of the hardware, but I think that it’s more fun when you start – build a box for yourself and try to stick to that box. Like just be bound by the parameters and try to do the best that you can within this box. To me, I think it makes us more creative and push the envelope better. And then the skills you learn from that apply to the bigger problems that are much more complicated and not nearly quite as tightly bound. And that’s how I see it.
Fr. Robert: Words of wisdom, thank you Myriam so much for being here on Coding 101. You’re a wealth of knowledge. Could you please tell the coding 101 audience where they can find you online?
Myriam: Sure thing. So the best way to probably find me is follow me on twitter, @tnkgrl. My blog is at tnkgrl.com. You’ll find a bunch of YouTube videos of reviews and whatever I find that’s interesting. So you’ll find my YouTube channel from there which is probably something that you should subscribe to, and then you’ll find me on TWiT, various shows. BYB, sometimes All about Android, you’ll find me on Padre’s Corner, on TWiT, here on C101. So a bunch of different shows. I also do my own podcasts, which is on my YouTube channel. It’s about once a month. And then guest appearances on all kinds of other podcasts. The virgin gadget, android central, etc. I also write. On Read Write, on Mobile Geeks and on Android Central. IMore, Windows Central. So I do freelance work. You’ll find me out there. Add me to your social networks.
Fr. Robert: Always a pleasure, we’ll see you next time. We salute you, our code warrior.
Myriam: Thanks so much Robert, thanks everybody, I have to sign out, bye everyone.
Fr. Robert: Cheers. Of course we also need to thank our super special guest cohost, he stuck around with us forever. I know we had you kind of silent there for a bit. Sir, it’s always a pleasure to have you. It makes the show better, I think you bring a wealth of knowledge in being, of the three of us on the show today, the only active coder who does this for a living. Could you please tell the audience where they can find you? You have a presence that’s growing online and we want people to jump on.
Lou: Absolutely. Well, coding is like riding a bike so you can always get back on. Find me on Twitter, @LouMM, and about me, Lou MM as well. And all of my work during my day job is at crm.dynamics.com. And active on the Coding 101 Google + community.
Fr. Robert: And very soon he will become one of our regular reviewers on Before You Buy. You’re going to get a heaping dose of the LouMM. Lou, thank you very much for being our super special guest cohost.
Lou: Thanks for having me.
Fr. Robert: 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. We want to thank everyone who makes this show possible. To Leo and Lisa, to my producer and TD, Mister Bryan Burnett. Bryan were can they find you on the TWiT TV network?
Bryan Burnett: On Know How with you on Thursdays, and follow me on twitter @Cranky_Hippo.
Fr. Robert: One last bit, if you want to see more of Myriam, she was on Padre’s Corner, episode 22 of Padre’s Corner. Until next time, I’m Robert Ballecer, end of line!