Programming Throwdown - LaTeX

Episode Date: December 9, 2012

This show covers LaTeX, a digital typesetting language. Tools of the show: Cocos2d-X and Snapseed. Books of the show: Algorithms in C++ http://tinyurl.com/agbc8t7 and Head First Design Patter...ns http://tinyurl.com/ayxb7q6 ★ Support this podcast on Patreon ★

Transcript
Discussion (0)
Starting point is 00:00:00 Hosting provided by Host Tornado. They offer website hosting packages, dedicated servers, and VPS solutions. HostT.net. Programming Throwdown, Episode 22, LaTeX. Take it away, Patrick. All right. So thank you for that introduction, Jason. Yes, yes.
Starting point is 00:00:24 You got the smooth radio voice going. Yeah, I want to, you know, keep myself all rounded. So I figured, you know. So I'll do some, you do some. Alright, I'll steal the thunder. Yeah, yeah. You guys missed the other three takes where Patrick did it. I just started screaming. No, you were crying
Starting point is 00:00:39 because it was so beautiful. Oh yeah, that too. Yeah. Alright, anyways. So I'm behind the times, but I finally decided to upgrade my computer to a new version of Ubuntu. So I actually went to the long-term support one or whatever because I figured I don't really like this. I hate this.
Starting point is 00:00:56 So I'm just going to the LDS one. So I went to Precise Penguin. Yep, yep. Precise Penguin. Bad idea. Yeah. Do not, like, do not, like, wish I could just uninstall. So on my home computer, I've been on Precise Pengolin for,
Starting point is 00:01:12 well, I was on Precise Pengolin. I'm on 12.10 now. And that, there's a whole slew of issues there. But, yeah, you know, when I switched to Unity, I didn't mind it too much, you know? So I think this is the issue, right? So Unity, this is the new, I guess, UI kind of name thing. So it's replacing GNOME.
Starting point is 00:01:30 Okay. All right. So GNOME is what we had before. And yeah, now we have Unity. I wish we didn't. So the whole left bar thing, I don't like. You want to be united? I feel like they're just trying to be different just to do something different, right?
Starting point is 00:01:44 Maybe I'm sure. I don't get into the whole. I'm not really involved in the community very much. I don't really know the backstory, so I'm probably offending a million people here. Yeah, everyone's so offended. That's okay. Yeah, I don't like it, personally. My personal preference is I hate it. So, like, I want my thing at the bottom back or at the top where I can click on each instance of like, if I have, you know, five, five Chrome
Starting point is 00:02:05 windows open or five, you know, command windows open, like whatever it is, like I want, I want to be able to like switch between them on the task. I don't, it doesn't work for me to not be able to like, I don't, I feel like it's constantly in my way instead of helping me. Yeah. So I, you know, I've had it for a while. At first I, I hated it. Now I've started to like it. There are some things that still drive me crazy. And one of them is they have the dash. They moved to this dashboard. So you actually have to click on dash home and then type in.
Starting point is 00:02:38 So if I want Chrome, I click on dash home, and then I have to type in Chrome and then it comes up. Whereas before, they had that bar at the top that had like applications, utilities. And it's like effectively like this multi-start menu thing going on. But you can push alt and get that too, right? You can do what? I think if you just tap alt, it comes up. Really?
Starting point is 00:02:59 I think on my computer it does. Maybe that's a setting. I don't know. I feel like I did that on mine because every time I alt-tab and then I don't get the tab fast enough, that thing comes up. So maybe my setting is different. I don't know. Yeah, maybe.
Starting point is 00:03:11 Maybe that's something, too. Maybe I just haven't tweaked in the settings right. So I upgraded also a while ago to the new version of OSX. I don't even know what the names are. They're really bad. It was like Mountain Lion for a while. I don't know if it still is. Yes, that's it. Is that it? I don't know if it still is. Yes, that's it.
Starting point is 00:03:25 Is that it? Okay. And they switched the switch. So I skipped two. I skipped one. So I skipped the intermediate. Okay. Maybe.
Starting point is 00:03:33 I'm really bad with the names. This is horrible. I think I should have researched this. It doesn't matter. I went from scrolling normally on the trackpad to scrolling the reverse way. I tried it. I'm like, I'm going to like this.
Starting point is 00:03:44 This must be great. And then one day later, I turned it off.. I tried it, I'm like, I'm gonna like this, this must be great. And then one day later I turned it off. Yeah, me too. I'm like, nope, I don't like it. I don't think you lasted a lot longer than I did. I only lasted about an hour. I was like, I can't take it. And so it's like, it's funny, I still think about it.
Starting point is 00:03:56 So let me just give everyone sort of a mental model for what's happening here. So it used to be that if you put two fingers on the pad and you moved your hand your fingers down you scroll down if you move them up you scroll up and it logically makes sense but if you think about it in terms of like putting your hand physically on a piece of paper no if the touchpad were the screen right exactly it was a piece of paper yeah and you touched it and slit it up the screen would move down like yes the paper would, where you're viewing would move lower on the page.
Starting point is 00:04:28 Like if you focus your eye on a spot and then you took your fingers, you put them down on a piece of paper and you moved up, that spot, what you're looking at on the page would be lower. So you would actually be scrolling down by moving your fingers up. It's basically like the tablet. That's what happens on the tablet. You touch on the screen and then the words underneath your finger stay underneath your finger exactly yeah which is why it makes sense yeah but on my trackpad because i've been doing it for i'm an old person i don't know what it is like oh people are like they're now they're making fun of us because uh they're
Starting point is 00:04:56 like oh those people are they're not old what are they talking about these crotchety old no they're like they're like those guys aren't old. Anyway, so, like, scroll. Anyways, yeah, I don't like that. So that was my rant, but the Ubuntu thing I really didn't like. And, I mean, there's all sorts of ways to get out from under it. The problem is, like, when you deviate from this, like, you're stuck in this thing. So there's always been, like, when before I was a big Windows user, and I still do use Windows for a lot of stuff, you know,
Starting point is 00:05:21 there's, like, all these shell hack things you can do to, like, make your computer look different. And that's cool, but then if you go to upgrade the next one, it doesn't work and you're used to something different. So I feel like I want to stay as close to vanilla default installation as possible, because then I don't always have to reinstall stuff and change stuff.
Starting point is 00:05:37 I used to do this. I used to even, when I ran Windows, I used to have all of these things. I had one which split my desktop into four if I wanted it to. I had another one where the terminal, it was easier to paste. If you just right-clicked, it pasted instead of having to do something else. I don't know.
Starting point is 00:05:53 But I made all these tweaks to it, and then I updated to, I think it went from XP to 7, and I lost everything, and I just said, forget it. I'm not going to waste time. And then the same tools don't work anymore, and you can't do that. Or if you go use somebody else's computer, doesn't work the same yeah yeah i have a friend who's addicted well he's like a real a zealot for devorah keyboards and like he came over to my house and couldn't even like type an email it was hilarious so i mean same thing they've always thought like oh i should do this right like it makes the way the qwerty keyboard is set up is
Starting point is 00:06:21 retarded like it's literally meant to make you type slower. Yep. And that's why they invented it. And we've probably all heard this story, right? So, like, I want to switch, but the problem is, like, I know if I switch, not every computer, like, I don't have complete control over every computer that I use or I go to somebody else's computer or somebody, you know, like, especially, like, at work.
Starting point is 00:06:38 Somebody, like, it's rare, but somebody sometimes needs to use, like, show me something on the computer or type something in. They can't use it. Yep. Like, you know, if I reboot or something updates like auto updates and like somehow removes it and I boot up and like my password won't work like it's gonna take me forever to figure it out like yeah then you're typing things that don't match a keyboard yeah I just I don't know it it
Starting point is 00:06:58 should be good and I should do it I guess I just but it's not worth it that's the same thing with a lot of a lot of tech not just software but even other stuff i remember like having early versions of ipads right like essentially these other tablet devices or you know palm pilot style things and it's never worked they didn't have wide adoption you were kind of out on the fringes and they just didn't have the same support once something goes mainstream we don't like it because now it's not elitist and cool at some level, but at another level, it's just so much
Starting point is 00:07:28 nicer because now I can go to Target or Walmart or wherever, Amazon, and I find like a hundred different choices for what phone case I want if I have a current popular phone or an iPad or whatever. Because stuff is more mainstream. Yeah, I mean, I have an Android phone and I still
Starting point is 00:07:43 suffer from this a little bit. And not so much anymore because Android phones are getting more popular. But especially like a year ago, it was like I want this cool case, but it's only for iPhone. Well, so, yeah, so I have an iPhone. This is what my main phone is. And, like, it works really well. So I had an Android phone. And the nice thing is that they've gotten less split.
Starting point is 00:08:00 So it used to be, like, everybody had a slightly different version of the same Android phone yeah right you know it's very fragment now they're going like less so like one phone will be released across all the carriers yeah and so that's nicer because then you can make a case but if you have like oh one has a keyboard and one doesn't and one has a little antenna and one doesn't like then yeah that never happens yeah yeah it's a nightmare anyways yeah don't don't like the unity thing I I'm sorry. Not a fan. We'll see. I want to know your opinion in like three or four months. So I've been at it for like two or three weeks now.
Starting point is 00:08:30 Yeah. And I gave it a fair shake. I'm really tempted to turn it off. I want to figure out the best way to turn it off. But you know what? Or install something else. Especially with Linux or any of these OSs, you know what's going to happen. The next version, like whatever hack you're doing to get around it now will be gone.
Starting point is 00:08:45 Yes. Like it won't even be there. That's my rant. Yeah. Okay. So now onto something slightly happier. I'll take the first news story. Now something slightly happier.
Starting point is 00:08:55 A lot of people are killing each other virtually. So Call of Duty Black Ops 2. So I'm not a huge like current gamer. I like video games, but I play a lot of old video games. Same here. Cheap. Sorry, I wait for them to, like, crash in price,
Starting point is 00:09:09 and it would be, like, really cheap Steam sale. Oh, yeah, I'm thinking really old. Oh, or let's not, like, I love playing my Super Nintendo games or my NES games or, like, I like old stuff. No, no, it's just simpler, and I don't have a lot of time to play video games, or I don't make a lot of time to play video games, I should say. But it has 150 million hours of in-play.
Starting point is 00:09:29 That's crazy. It's absolutely insane. A billion dollars? A billion dollars in 15 days. Faster than Avatar hit a billion dollars. So the new media consumption is so interesting. It's so expensive. Personally, I feel like...
Starting point is 00:09:41 Like $60 or something? I don't know how much. I would say probably $70, right? It can be really expensive, and I don't know. I mean, we should look at it. It's like $60 or something I don't know how much that's why I would say probably $70 right like it can be really expensive and I don't know I mean we should look at it it's probably $50 or $60 but still like
Starting point is 00:09:49 it's just crazy to me like that's a lot of and I'm not saying like if you're going to play it for a lot of hours like well worth it oh no it's totally worth it
Starting point is 00:09:55 like the dollar per hour thing but I'm just like hitting a billion dollars is crazy like people have talked about this a lot like oh are video games eating into the movie market
Starting point is 00:10:04 or vice versa and video games are becoming more like movies and like back and forth and all this stuff. And I feel like they're two very different styles of entertainment for me personally. I don't replace one with the other. I feel like they're just different. But, yeah, I mean, it's a serious business being in this now. The thing that blows me away, so movies, right? So you could watch, watch you know some people watch
Starting point is 00:10:26 let's say rocky horror picture show right that's that's like a cult classic some people watch that show like every month like they'll go and watch rocky horror and it's like a big event people have fun so so it's it's not true that you only watch a movie once that part isn't true but if you look at like overall most people only watch a movie once, like a particular movie. With a video game, the hours that you put into it vary wildly. Like some people might play Call of Duty or any game for a couple hours and they're done. And some people play it for like months and months and months, right? And so this whole like dynamic of sort of like just having this extremely variable mileage
Starting point is 00:11:06 that you get out of this entertainment i think is just fascinating and then you have this other thing too where some games are like you know have this massive budget like call of duty i'm sure their budget was in the tens of millions right yeah but then some games are just like like like super meat boy have you played this game no it's a platformer where you have to like run and jump and uh like there's a little like things trying to grind like you're a blob of meat and you're in this like meat processing facility and you have to go through all the blades without getting cut or whatever and uh so and it's like one guy made it or two guys made it in their spare time or i guess maybe it was their full-time job but these two guys made
Starting point is 00:11:43 it and it provided me like hundreds of hours of entertainment like trying to like navigate these mazes and all this stuff and just the fact that like this ratio of like investment to entertain investment to return and then return to entertainment like these dynamics are just incredible and it's something that like is very hard to explore right now or very hard to know quantify yeah and the enjoyment like over time changes right so like if you go play especially like this black ops 2 like day one people probably got online started playing right away and got good yeah and then like you jump on like a couple weeks later whatever like no let's see and then you're
Starting point is 00:12:18 like no like it's bad even with matchmaking and all that stuff like yeah okay i mean you can alleviate some of that but still like i mean, you don't always have the best. You have to stick with it before it becomes really enjoyable, right? Like, before you're at least doing well enough where it's kind of fun. I mean, maybe it's fun before that, too, for some people. I guess it depends. You know, with the Xbox, they actually have modes. They have a hardcore gamer mode.
Starting point is 00:12:39 Then they have another mode, which I can't remember. But then the third one, which is what I picked, was family mode. And it doesn't mean you don't see blood or anything like that. It just means, like... You can get through the whole game without dying. Oh, yeah, yeah. It's like, basically, it's like, well, it's for multiplayer, but it's like, you have a family, you're not going to be able to beat
Starting point is 00:12:55 this kid who, like, practices all day. So, like, you play in this league on your own with the rest of the people who can't play well. Yeah. It's like at the airport they have this they have like different lanes like the business lane the normal lane the family lane i always see people going in the wrong lane it's like what is the purpose of this is like the family with like 30 bags like going in the one that shows like business traveler travels all the
Starting point is 00:13:19 time has one carry-on or whatever you know you anyways, okay. So the price is retail $60 for the console and the computer, but it looks like you can get it for cheaper than that. So this is the thing that blows my mind, right, is I bought, and this is going to make me sound really pathetic, but I bought Super Mario 3 right when it came out. Actually, to be fair, my mom bought Super Mario 3 for me right when it came out, and it was i think 70 dollars and now it has been over 20 years and video games are still selling for 70 dollars
Starting point is 00:13:54 well i never thought about that yeah like the price of a video game hasn't changed in two decades and like just the amount of content and the budget has gone up dramatically. I'm sure the budget for SMB3, Super Mario Bros. 3, was not what the budget of Call of Duty is, even with inflation, right? So it's just that part is wild. The margins have come way down, right, on video games. Yeah, but they're selling a lot more. Yeah, that's true too. I'm pretty sure 150 million hours weren't played
Starting point is 00:14:24 in the first two weeks of super mario brothers three yeah totally um yeah i don't see the initial price you're probably right i mean i remember seeing something about consoles being really expensive like we complain about them being expensive now but like that they used to be crazy expensive especially if you take into account inflation um So, yeah. All right. Our next news story. You found something that you want for Christmas. Well, hang on. I also found on Answers.Yahoo.
Starting point is 00:14:55 How much did Super Mario Bros. 3 cost when it first came out? This guy said $50. Oh, no, but somebody else said $70. Yeah. Okay. So, around $50. Yeah, so about the same price. Yeah, yeah. Okay, sorry.
Starting point is 00:15:06 All right. Anyway. Ruined that transition. Yeah. So, yeah, so I totally, you know, actually my mom today was like, I don't know what to get you for Christmas. You know, she always says this every year. Well, now you know she's going to spend $70.
Starting point is 00:15:20 Adjusted for inflation. Yeah, exactly. So I want a Super Mario 3 cartridge uh so i actually think this thing is totally cool i only found out about it minutes before before um recording the show but i immediately want research after lots of research um they have an android stick pc and the idea is it has the hdmi, so you can plug it into your television. This one that I linked to... And it looks like a thumb drive.
Starting point is 00:15:47 Yeah, that's right. It's very small. This one I linked to apparently needs, like, certain type of TV that can provide power through the HDMI cable. Now, that one, I mean, it looks like it has a port there for, like, a USB power everything. Yeah, so you can either... If your TV support's getting power from HDMI, that'll work,
Starting point is 00:16:03 which the newer TVs do, but there's a way to power it alternatively as well. Oh, perfect. Yeah, so imagine you have the kind of Android power that you would in a phone or something, but it can connect to your TV without having a mini HDMI. It just has complete HDMI. And you can have it hook up to your TV 24-7,
Starting point is 00:16:21 and you do all sorts of cool stuff with it. So I think it's a really fun toy. I think that there's a lot of cool stuff i'd want to do with it yeah it's kind of like the raspberry pi style thing right yeah yeah they you can plug in uh or you can use a wireless keyboard and mouse so i'm assuming it has a kind of bluetooth receiver or transmitter um so yeah it seems pretty fun i i haven't really you know i just found out about it so i haven't thought about what immediately thought that comes to mind is to get MAME running on it and then have, like, a...
Starting point is 00:16:49 So, to play arcade games? Yeah, yeah, have, like, the smallest arcade cabinet ever. Actually, I want to get into, like, woodworking. Like, not serious, like, where it looks good, but just, like, a saw and a piece of wood and have, like, be able to make stuff, because, like, I'm really inept. We'll have to talk about this another time. I actually started doing woodworking, but, like, the kind where it looks good. Oh, wow. We'll do that next show. That'll be our next show. COLTON OGDEN:" We'll have to talk about this another time. I actually started doing woodworking, but the kind where it looks good. DAVID EASTMAN:" Oh, wow.
Starting point is 00:17:06 We'll do that next show. That'll be our next show. We'll have to remember. So I want to make--" COLTON OGDEN:" Well, I should say the kind that looked like attempting to try to make it look good. Sorry. DAVID EASTMAN:" The goal is good.
Starting point is 00:17:15 With mine, the goal is just mediocre. Yeah, it's functional. See, I want to make an arcade cabinet with one of these little sticks and a really tiny, or maybe an arcade cabinet that fits in your pocket. COL like, I don't know, like a really tiny or maybe like an arcade. I think somebody did that. I saw that. On one of the like hacker, like computer hacker things. Yeah.
Starting point is 00:17:30 Like super miniature arcade cabinet or something. It was like really small. Oh, that's cool. Yeah. Who knows what I'm going to do? Maybe it'll be a kit and then you don't have to do any woodworking. Oh, perfect. Your woodworking can just be to glue it up and then you don't even have to worry about.
Starting point is 00:17:43 So this one looks like it houses your phone. Oh, that's awesome. But you could do like, I mean, you could hack it to just be something glue it up and then you don't even have to worry about it. So this one looks like it houses your phone. Oh, that's awesome. But you could hack it to just be something else. Okay, anyways, we're looking at pictures and you guys cannot see them. Awesome. Best podcast ever. Speaking of woodworking.
Starting point is 00:17:57 So, yeah. So on my notion of crazy things to do with woodworking, so one of my goals with woodworking is to build automata. Really? So automata are those, uh well they means a variety of things but the ones i'm thinking over wooden contraptions where you have like a little hand crank on the side and you crank it and there's like a scene that takes place like almost like a diorama if you know what that is on top of the little box so you like crank it and there's like you know like a horse that pretends like it's running or like a caterpillar pretends like it's running or like a caterpillar pretends like it's crawling. Or some guy that's like pretending like he's eating a sandwich and waving or a dog that jumps through.
Starting point is 00:18:30 I saw something that's totally epic. That's along the lines of what you're talking about. This guy made a bicycle. And as part of pedaling the bicycle, a mechanical, like a set of mechanical actuators and stuff went. And it's totally analog. So it's not computer or anything um it a Pen drew his signature or like something pretty close to his signature Yeah, yeah, yeah
Starting point is 00:18:51 Yeah So like so this would have like gears and yeah pulleys and screws And yeah all these crazy things to make the things on top do something and you leave the bottom where all those things are exposed So people can kind of see it working as part of the nostalgia of the nostalgia of it yeah right that's what i kind of want to do that's amazing uh it but it's a very lofty goal i don't know when i'll make so the other thing i want to do is make a wooden clock so you can make like all the gears and the pendulum and the escapement everything that makes it tick and it's all out of wood all right so i have crazy grandiose ideas oh that's amazing so so do you have a woodworking like i mean do you have some kind of benches? I'm like, I'm like, uh, acquiring it. So like, I'm like in the
Starting point is 00:19:28 process of like starting, like doing some small projects, learning the skills, that kind of stuff, working my way up. That's great. So I saw this and it immediately intrigued me because when I was growing up, I would always be the kid in the class who like, when somebody asked me, I'd be like, why? But like, not just to be like a jerk but like I wanted to know like why is it that way and so like one of the things was computers like oh it counts in binary it's like for the longest time I thought like Oh binary couldn't represent every number because like somebody just told him I like that's crazy like ones and zeros only like seriously yeah nobody bothered like nobody my teachers the
Starting point is 00:20:03 time didn't know how to really explain that to me that like no this is it's a number system here's why it can represent every number two nobody no no none of that right it's like um completely more obscure and one of the things once i figured that i was like on this quest like i want to understand how a computer processes things because people know this right like oh people who know a little bit about computers would say like oh it has an instruction set you'd be like what what's an instruction set what does it do how does it like how does it know the number know the other number put the numbers together you know and make something right like how does that work and so this kit called the digicomp 2 yeah um is a something that was made in the 50s and what it is is i'm just going to try to describe it. It's like a wooden flat piece of wood that's on an angle.
Starting point is 00:20:48 And it has like, looks like one of those labyrinth things where the marbles kind of like flow through or whatever. And there's little toggle, wooden toggle pieces. Those are all toggle. And it has the little ball bearings. I think they're actually pachinko balls. So little ball bearings that flow through these wooden channels down this slanted board. And then there's little toggles you switch left and right that are like essentially the
Starting point is 00:21:09 instruction set, the bits that you can kind of like put into positions. And as stuff flows through, you can do things like create an adder or create a, you know, maybe even a multiplier. It has like a whole instruction set that you can do. I didn't fully kind of read through everything because I was like, oh, I'm going to want one of these and it's going to be a terrible thing. So the old one made in the 50s was like this plastic thing and it was kind of cheap.
Starting point is 00:21:30 And people use this to learn like how did the binary work and how to like set the instructions and make it go. And these people created it out of wood to kind of like for a new generation of people. So it's fairly expensive. It was like a couple hundred dollars. But they said they were trying to like do this to be able to make another one out of like a sturdy plastic and kind of educate people.
Starting point is 00:21:48 And it was like supremely fascinating to me that like doing general purpose computation in something that isn't, you know, electrical. Yeah, that's amazing. So it's all completely in like the real world. There's no, it doesn't plug into the wall. There's no batteries. Yeah, you guys should definitely, you know, we have links for every article. This is like a highly visual, you should definitely click on the link and check this out.
Starting point is 00:22:10 Cause this is really impressive. I wonder if they have a YouTube video. No, that'd be cool. So, I mean, I just kind of like have this like thing, like teaching. So I have a daughter now, she's just a year old, but I have like this grandiose vision of like teaching her to program on this thing, right?
Starting point is 00:22:25 Yeah, yeah, totally. Like, oh, I'm going to like just here, this is how you do your instruction set. And here's how you program in the numbers. And here we're going to learn. Oh, I don't know. Maybe that's probably completely unrealistic. Probably completely just turn her off of like ever wanting to do this. So if you go on YouTube and you type digicomp2, but with two you do two I's,
Starting point is 00:22:46 like the Roman numeral for 2, you'll actually see a video from the Evil Mad Scientist team where they've assembled a gigantic version of Digicomp 2. Oh, so they're using pool balls. Yeah, in this case they're using eight balls. What? That's crazy. And they have an absolutely gigantic, and I'm assuming, yeah, at some point they'll show you how.
Starting point is 00:23:04 Oh, so yeah, so you can set the instructions. So this is where they're setting the numbers that they're going to operate on. And then they're going to turn it on, and then the balls will begin to flow through. And then one of the operands will turn into the answer. Right, so things will switch position, and then when it's done, you can read it, and the computation is performed. That is amazing. How do they know how many balls like
Starting point is 00:23:25 how many cycles so i think so typically that so they actually ask so it depends on exactly what instruction is being said but they said typically 30 so when it finishes i think essentially there's a ball that hits the off switch and it stops the flow of balls at the right time and then you know so it's like only kind of like one as like each ball flows through it kind of triggers the next ball right so eventually when the operation is finished, that no longer happens. So that's the final thing. That's how you know the statement is over. Oh, this is amazing.
Starting point is 00:23:52 Yeah, you guys have to watch this video. It's not amazing to sit here and watch us talk about it. Yeah, I'll also link the video. Watch us talk about it. Wow. No. Listen to us talk about it. Yeah.
Starting point is 00:24:02 Okay, anyways. Cool. So I don't know about you. I think you did. We talked about this on our earlier show. But I made a lot of games for the calculator. Did you do this? Yes.
Starting point is 00:24:13 You told us about your cheating. I mean, creative. Yes, I did as well. You told us about our RPG on my calculator. Oh, I also made an RPG. And one funny thing was I knew just enough about regression models to sort of get by so I had a quadratic regression That I did on the calculator to to fit a function curve to like a set of points So I kind of knew that like somebody at level 13 should have like this many HP and somebody level 15 should have this many HP
Starting point is 00:24:43 So I kind of like did like some some some testing on my own at different levels to sort of figure out good values. And then I use like a regression curve to like, and then I did not do that. So, so, so, so as an artifact of using this regression curve, the levels and everything, even the monsters levels could go up to infinity because it would just like follow the curve um and so i had people like like like classmates of mine saying dude once you get to level like 57 this game's impossible and i'm like uh i only designed for it to go to like 13 he's like yeah he's like at first i was fighting like and i used also the text like like, Chromantic meant, like, five times the level, you know? So he's like, I was fighting, like, Chromantic, like, insane, like, hardcore black dragons.
Starting point is 00:25:36 And all of a sudden I was fighting random characters because I couldn't generate the name for these guys. And he's like, and then the game got impossible. You need to fix it. I was like, how many hours did you spend? He's like, I don't know, like, hundreds. But, yeah. And then he filed a bug report against your code, right? Yeah, exactly. I'm like, I'm 13.
Starting point is 00:25:53 And then he threw you in the trash can. Yeah, he just filed a bug report against my face. So somebody actually made a clone or a game inspired by Portal on their calculator, on their graphing calculator. And so it looks pretty awesome. You actually have eight directional controls, so I'm assuming he's using the keypad to shoot the laser and then maybe the left-right.
Starting point is 00:26:20 The portal gun. Oh, right, the portal gun, and then the left-right to move around. But yeah, you should see this. It's pretty awesome. If you're a. Oh, right, the portal gun. And then the left, right to move around. But yeah, you should see this. It's pretty awesome. If you're a fan of like, if you have a graphing calculator, you could probably get this on there somehow. So it's all written in TI basic. And I think there's a, does he have a web version?
Starting point is 00:26:39 Oh, no, I don't think so. So it runs on the TI-83 or the TI-84. Ah, OK. I believe the TI-83 or the TI-84. Ah, okay. I believe the TI-83 and the TI-84, shameless plug here, and the TI-84 are emulated by MESS. Because that's what I wanted to do. Which is a project I work on my spare time. So you can actually play this in MESS, I'm assuming.
Starting point is 00:26:59 I haven't tried it, but if you could download it, you could probably play it on MESS. If we do that, I'll let you know. So for all those people with time to waste in their math classes yeah totally this is from you this is way better than ti Mario which is what I remember from from my high school classes all right so now it's time for tool of the show tool of the show yeah we dropped that we dropped the bye week yeah we dropped the bye week.
Starting point is 00:27:25 Yeah, we dropped the bye week. Sometimes, you know, I think this week, it's actually been less than two weeks. No. Has it not been? Man, time flies. Basically what happens is we're operating on dog time, like dog years. Like every week is really eight weeks. So I don't know.
Starting point is 00:27:43 I'm making that up. That doesn't make sense. I think that's the opposite. We, I don't know. I'm making that up. That doesn't make sense. Yeah. I think that's the opposite. We need something that runs slower. Yeah, but I think, like, the outside world is going at eight weeks, but we feel like it's a week
Starting point is 00:27:55 because we're really busy. Okay, so that would be something that lives a long time. Oh, yeah. So, we're the dogs. What? I don't know. Stop, stop.
Starting point is 00:28:04 This is going downhill. So, the tool're the dogs. What? Stop, stop. This is going downhill. So the tool of the show. My tool of the show is... He said all that to say we're really busy. We're sorry we don't get these out more often. Yeah, yeah, definitely. I want to try and keep it more regular. So we're going to try to keep it on a two-week schedule.
Starting point is 00:28:20 But, you know, it's pretty erotic right now. So Cocos2DX and Cocos2DHTML5. These are my tools of the show. DAN GALPIN- Like hot cocoa? DAN GALPIN- Very much so. They're both steaming hot. And so a little bit of history here. So it started off as Cocos2D, which was a Python game
Starting point is 00:28:46 library for programming on the desktop. And then when the iPhone came out, they made Cocos2DIphone, which was written in Objective-C for the iPhone. But it had a very similar API. And a lot of the functions, a lot of the things you could do were the same. That got really popular. It became the number one game development environment for
Starting point is 00:29:06 iPhone for a long time. They made a Cocos 2D Android. There's a whole bunch of Cocos 2D everything. Then somebody had this genius idea. And the genius idea is you can run JavaScript on iPhone because you can compile the
Starting point is 00:29:22 JavaScript interpreter on the iPhone. Yeah, you can run JavaScript on iPhone. You can run JavaScript on Android, and you can run JavaScript on the browser, obviously. So we just make a system or a set of, like, a framework so that you write your code in JavaScript, and it'll run on the browser, the Android, the iPhone, and, like, 10 other things all for free.
Starting point is 00:29:46 And that's what Cocos2DX is. And so it's pretty awesome. I mean, one of the cool things about it is you can write in Cocos2DHTML5 and you can test and do all your testing and development on the desktop. In the browser. Yeah, in the browser window.
Starting point is 00:30:00 You can show it to your friends. You can be like, hey, go to mycoolwebpage.com and check out my game or whatever. So they can play it, you know. Once you've sort of to your friends you can be like hey go to my cool webpage.com and check out my game or whatever so they can play it you know once you've sort of got like you know a prototype something that work you feel pretty you know confident about then you can just go to the iphone or android um back ends and it's most of it just works nice yeah so you'll have to change the ui obviously because you're going from a mouse to a touchscreen. So you might have to change some stuff there. But the vast majority of the code
Starting point is 00:30:28 stays the same, which is totally awesome. So highly recommended if you want to do any game programming on mobile. COLT MCANLISLEIGH- Very cool. I have another non-open source tool. Surprise! All right, so mine is Snapseed. So Snapseed used to be pay and is now free on both Android and iOS.
Starting point is 00:30:49 And it is a photo editing application for your devices, your mobile devices. And this is produced by a company, Nick Software, who I think recently was bought by Google. But Nick Software, they do actually really high-end Photoshop plugins, and they're really expensive, and they're really well-recognized among professionals, but Snapseed is a really intuitive, easy way for you to kind of like do, think like if you ever used Picasa, like think like Picasa, but like on your phone, like, oh, auto-correct the colors, auto-correct the exposure, apply these filters, those kinds of things.
Starting point is 00:31:26 And I was testing it on my Nexus 7 earlier. I also have it on my iPad. And wow, that sounds like really bad. I shouldn't say things like that. Like, oh, I have it on all of these 10 devices. Well, everyone knows you just total. It balances us out though, because I am not a technophile at all.
Starting point is 00:31:43 Well, that's not a right word of saying it. I like tech, but I don't like gadgets. Like I'm not a gadgetophile at all well that's not a right word of saying it i like tech but i don't like gadgets like i'm not a gadgetophile if that's a word uh so i you know i just got the smartphone not too long ago and like i'm a late adopter to like almost all tech so um gadgets so uh we make a good compliment we compliment each other so for everything i don't have you have oh it's not actually showing i was trying to show Jason, but it's not. So wait, what are you trying to do? So this is like I have a picture here open. This is going to be really boring to everybody.
Starting point is 00:32:10 So you can just apply things. And you drag left and right to adjust. Oh, that's cool. Change the brightness. Up and down to select what you're adjusting. So here I'm adding more grain to make it look like film. So he's showing me a picture of his daughter that is just turning into like a zombie with all these. It's kind of weirding me out. Sorry. Don't offend. You're unoffended. You're making fun of his daughter that is just turning into like a zombie with all these crazy effects. It's kind of weirding me out.
Starting point is 00:32:25 Sorry. Don't offend. You're unoffended. You're making fun of my daughter. No, that looks really cool, though. Can you do like – so one common thing that I want to do in pictures is blur out like my license plate, let's say. So, for example, I took a picture – Do I want to ask why you want to blur stuff out in all your pictures?
Starting point is 00:32:43 So, anyways, I don't know. We can look into that. I don't know. I took a picture of the back of my car to show I was carrying some really heavy things in my car. Now you're like sticking out the top of the car. And I wanted to blur the license plate of the car in the picture. And so will this do that kind of thing too? Maybe.
Starting point is 00:32:58 I don't know. I haven't looked at that. That's very specific. I don't know. This does like general correcting and color correction, that kind of stuff. It works really well. It's very specific. I don't know. This does general correcting and color correction, that kind of stuff. It works really well. It's really intuitive. It's one of those things where instead of just porting the phone version
Starting point is 00:33:09 or the desktop version, and they really tried to go a little bit farther with the interface and make it more intuitive about what you're supposed to do and how to do it. And, yeah, check it out. I mean, it's free, right? Like, you know, can't be that terrible if you can check it out for free. Well, I guess it could be terrible, but it doesn't allow a lot of risk to you. So, okay, now you're trying it.
Starting point is 00:33:29 Now Jason will not be paying attention for the rest of the show. It's very grungy. I chose grunge, and it definitely feels, I feel like that's pretty... Industrial grungy picture. It's a pretty grungy tree. Yeah, alright, so he's trying it with the default picture. Okay. So, yeah, so check it out, Snapseed. All one word. You can check it. We have a link to Snapseed.com, yeah. Check it out.
Starting point is 00:33:45 Snapseed. All one word. You can check it. We have a link to Snapseed.com, which I assume has one to both the iOS App Store and the Play Store. Yeah. So, yeah. For all those devices you guys may or may not have. Cool. If you don't have them, I guess it's not helpful.
Starting point is 00:33:58 But, yes. Yeah, yeah. Well, it supports the ones you have and the ones you don't have. It's pretty cool. And it's cool because sometimes you take a picture and it just didn't turn out quite right. And you want to just fix it a little bit before you send it out or post it on a social network or whatever. Yeah, that's great. That's amazing.
Starting point is 00:34:13 So we're starting something new this show. Yeah, totally. Something new, 22 episodes in. I know. We should have done this episode once. A great idea. Wow. Wow.
Starting point is 00:34:22 Jason's tuning his horn. I'm already happy about this. So a lot of people, you know, message, email us, post on our G+, and they say, you know, I want to get into programming. How do I do it? Or, you know, I want more resources on programming. You guys don't yak enough. Yeah, exactly.
Starting point is 00:34:41 And so, you know, one thing about this show, we can't say, like, oh, and then type C out this. Because that would be the most boring episode ever. No one would want to listen to that. I wouldn't want to listen to myself saying that. So, you know, we started talking about things at a high level. But the reality is for somebody to just start coding, they also need some help. They need some resources, like some text that they can look at.
Starting point is 00:35:03 And so we are starting the book of the show book of the show book of the show where Jason and I recommend a book for you to read check out this book it's gonna be awesome oh yeah yeah so I think everybody's tuned out now just you and me what is that guy called the guy who busts through the wall goes oh the Kool-Aid man oh is it the Kool-A and goes, oh, yeah. The Kool-Aid man? Is it the Kool-Aid man? Yes. Yeah.
Starting point is 00:35:29 We need the Kool-Aid man guest speaker for Book of the Show. I will insert that sound effect here. Oh, yeah. Oh, okay. No, that was just still Jason. No, that was me again. Okay. So Book of the Show.
Starting point is 00:35:42 Keep in mind, we're going to provide links for you to buy these books. And we're going to set this up through the Amazon affiliate program. So running the podcast actually costs us a significant amount of money. And it also costs host Tornado, who's our benevolent benefactors, or we're their benefactors of their bandwidth. There are a lot of Bs in that statement. So what Jason's trying to say here, I'll break it down into plain English. He's saying, yeah, so I mean, there are some expenses associated with this show.
Starting point is 00:36:13 And, you know, to help offset that, we're going to try to recommend some stuff that we think is useful for you guys. Yeah, totally. And if you, you know, if you do decide you want one of these books, if Amazon has a good price and, you know, delivers in a good manner to where you live and you'd be interested in buying it that way, that would help out the show and we'd appreciate that yeah i mean just to put things in perspective we used uh what can you add these add these numbers and off top of your head no like 80 is about 200 this is about it's like uh like a terabyte yeah we used about a terabyte of bandwidth um uh last last month alone so that's that's a lot of bandwidth. And so, yeah, so if you are going to buy these books or you're interested, please, please help us out. Buy them through the Amazon link that we provide.
Starting point is 00:36:52 That would be awesome. But in general, we're going to recommend these books. If they haven't met your library and you want to get them that way, I mean, that's totally cool, right? These are things that we think are good resources in general for you to consider looking at yeah we're not going to tell we're not going to show you either like we're not going to just recommend anything
Starting point is 00:37:09 like if we don't have a book we won't recommend it and uh we're only going to recommend books that we've at least read most of so yes uh and we know are good so anyways without any further ado my first book of the show is algorithms in c++ by++ by Robert Sedgwick. This book got me all through college. It's an amazing book. So it does algorithms in C++, but if you're like a Python or a Java coder, you shouldn't worry. You'll have to learn basic C++ to know what's going on, but that shouldn't be too bad. And the nice thing about C++ is there's no hidden complexity. So, you know, if he did algorithms in Java, and I think actually there is an algorithms in Java book, and they are pretty good about not doing this, but you could see the case
Starting point is 00:37:57 where someone's like, oh, you know, there's a for loop. And so because of that, it's order, it takes n time because you have a for loop. And so because of that, it takes n time because you have a for loop. But the reality is inside that for loop, you're calling some Java function, like collections.sort, which takes n log n. So some languages that have a lot of, as you say, batteries included can hide the complexity, which is nice, but in this case is bad.
Starting point is 00:38:21 So by using C++. I think most algorithm books are pretty good about not doing that. Because that kind of obscures what you're trying to learn. Yep, totally. But this algorithm is the C++. C++ is a good language for doing this kind of stuff in. And he goes through the code pretty thoroughly.
Starting point is 00:38:37 Has many different categories. I think there's one book where the whole book is just graph theory. So this is five books oh that's right so it's actually oh well it's confusing it's two books but one book has parts one through five in it or one through four in it and the second book has part five so a little confusing wow okay that's that's not a little confusing dude that's very good yeah it's very confusing so confusion aside book is totally worth it even then um so i actually realized we should have done a different book based on our topic today. But we'll save that for another day.
Starting point is 00:39:08 You can change. No, that's okay. I like mine. All right. You're going to steal it if I don't do it. Okay. So what's your book of the show? My book of the show, which I'm not changing because I like it.
Starting point is 00:39:21 This book is awesome. Actually, we've both read this book. Yes, this is good so so um jason did something algorithms i mean that's very technical that's very like you know high level so something else which um i think sometimes people think it's a very complicated topic but it's really not it's kind of one of those things where is so algorithms are something where you wouldn't necessarily think to do that on your own i mean if you're really smart maybe you would and maybe some of the algorithms are kind of like
Starting point is 00:39:46 a natural outcropping of something you would already do, and it's just formalizing. But it really is like aha moments. Like, I didn't know. That's how you would find the distance to the closest thing in the graph or the shortest path between two points, nodes in a graph.
Starting point is 00:39:59 Those kind of things are, you can sit down and work out something, but it is really teaching you the formalization of it and also new techniques. Yeah, like often you might have some problem and there's some brute force way to solve anything, right? So pretty much almost any problem, there's some brute force way to solve it that's really easy to code up, but it'll take, you know, years and years to run. Yeah, and that's when you really need algorithms. But the book you're going to present, you always need yeah so so this is um headfirst design patterns yeah so headfirst design and we have we'll have a link in the show notes and so design patterns we've
Starting point is 00:40:33 been asked about a little bit maybe we'll do it in a show but i mean design patterns a lot of them like when i first heard i was like whoa like this sounds crazy and people talk about like revolutionizing the way they do coding and i mean I don't mean to say those people are wrong or discount them. I mean, it could be. I mean, it was in some way for me that. Like it was able to teach me to recognize things in my code that I was doing and I wasn't aware of. Change them slightly to make them more kind of generally accepted approach or refine them slightly. But what it is is design patterns is really kind of finding common themes and things
Starting point is 00:41:07 you need to do in your code. And formalizing them, saying like, hey, here's a really good way to do this. So kind of the most common one people think about is, at least I think most people think about, is the singleton. So that's the first one you learn about. What is a singleton? And then if you hear about this concept
Starting point is 00:41:22 and you don't understand the structure of it, you kind of use it incorrectly. And people are kind of like, oh, this is really clever. Like I learned this slight coding trick that most languages have to do it. And then I use it as a way to kind of do naughty things that I wasn't supposed to do in other ways. But headfirst design pattern will go through. It goes through singleton. It goes through, you know, publisher subscriber, I believe, is in there. There's all sorts of the decorator pattern what are these things what do they mean kind of taking
Starting point is 00:41:50 object oriented a little bit farther and saying like hey let's formalize some of those structures provide a common way to do them what they're good for what they're bad for and the book is really interesting to read like it's actually of programming books are normally very cut and dry and like oh this feels like reading a textbook. This one's not like that. The examples are very fun, kind of like loose ways. Like, oh, I want to have a pizza shop and, you know, I want people to be able to create new kinds of pizza in my program, right? These kinds of things, very easy, very real-life kind of things. And lots of little pictures and drawings and kind of – it doesn't teach you the very, very in-depth, deep, deep read,
Starting point is 00:42:26 but it's a very easy read. So you can get through it. You can get an idea and then say, like, do I want to go further from here? What do I want to look up? What do I want to consider? Yeah, and it's got that little bit of that – I don't know what the art style is, but sort of like the – you know how you'd see, like, Rosie the welder or whatever, right?
Starting point is 00:42:41 Like from the 50s? Oh, okay. Yeah, where she's like – there's, like, just pictures of Rosie and then she's saying some quote that was rosie the riveter oh you're right rosie what did i say so rosie the riveter so it's like a picture of rosie and she's like be tough girls or whatever and so they they have this same kind of art style like they have this guy who's just like yeah coding is totally cool and he's like there's like a picture like black and white picture this guy. Yeah, I mean, it's a little, I mean, they don't take themselves too seriously.
Starting point is 00:43:08 Yeah, which I think is great. I actually really like the style. So, I mean, there's a whole series, this head first stuff. And a lot of it is really good. I've read some of them. A lot of them have it. And the cover has a woman with a gigantic head. Well, yeah, because it is a strange picture.
Starting point is 00:43:20 But it's because it's head first. Oh, you know, that's one of those things that like you, once you find out that you didn't get it, you feel really dumb. It's head first. It's the one with the gigantic head, of course. Okay. Anyways. So yeah, check it out. You know, I like it.
Starting point is 00:43:39 I've read it. Yeah, it's a great book. Yeah, yeah, yeah. I mean, it's not going to probably get you through a design pattern class in school, but it's going to introduce a topic to you, provide a jumping-off point. And like I said, it's an easy read, which is rare in computer science books. And it's good to formalize these things. So, for example, you know, I played a lot of chess, and then eventually I got to the point where I went to, like, a chess school
Starting point is 00:44:00 or someone taught me a lot of chess. I didn't know that. Yeah, I actually won the Florida State Championship. nice i was like 17 yeah so and so then it's like there was you didn't have to play me oh so there are things that i uh that i did you know but i didn't really know you know i didn't really know for know them formally like for example there's something in chess called pinning where you have like a piece that could like hit the enemy's king like it could get a checkmate but there's a piece in the way like one of the opponent's pieces is keeping you from checkmating right or from checking the king well that piece is like pinned like if he moves the piece then you would
Starting point is 00:44:41 take his king in theory right and win the game so that piece can't move and so that there's things you can do like you can move to where that piece would have attacked because you know it can't move for example and so it's like you might do these things like as just a chess player but not really like completely understand them and like completely understand the scope and what you're capable of how they can get out of it and and so when i got like formal training in chess it like improved dramatically like over just things i was doing on my own and it's a common language too so now like this pinning concept of which i do not know anything um would like now if you wanted to google that like you could look up strategies related to pinning yeah now that you know it right so in computer science to bring this like into like a
Starting point is 00:45:24 little bit more, if you don't know what a singleton is, it's unlikely actually singleton you'd probably figure out on your own. Like publish or subscribe. But publish or subscribe. You totally might do that. Or the decorator panel. You totally might do those on your own.
Starting point is 00:45:35 But now that you know what it's called, you can look at it and you can find new ways of doing it or better ways of doing it. Or if you have a problem with it or is it the right case to do it. And it provides a language for you to talk to people in. Yeah. And you might be using, let's say, Java and Java has PubSubs for all of their event handling for their GUI, for the Java swing GUI.
Starting point is 00:45:55 By knowing the design pattern and knowing that's what, you know, so you could immediately look at that and say, oh, this is what Java is doing. And you know sort of in like what is going on under the covers. Because they're probably using the design pattern. Yeah. I mean, design patterns can have many forms of implementations. But again, they're just their patterns. And there's also anti-patterns, which are also design patterns,
Starting point is 00:46:18 but they're ones you probably shouldn't be using. So like spaghetti code. We've heard that term. OK, that's a design pattern. It's very common, but it's actually a bad one. You shouldn't do using yeah right right so like you know spaghetti code like we've heard that term like okay that's a design pattern it's very common but it's actually a bad one like you shouldn't do that right yep so all right time for our talk about la tech la tech and tech and tech it's not latex or yeah i used i i won't lie until i was preparing for this show i always called it latex i actually called it latex until my professor, my advisor criticized me. He's like, no, it's latex.
Starting point is 00:46:48 And so... I kind of feel like, I know that's what I guess is the common way or the accepted way, but it's kind of one of those things like it's a word you don't really hear said. You just read it. And the thing is, especially not so much with tech, but with, or even with tech, like you have Tex-Mex food, right?
Starting point is 00:47:04 Or like you have latex gloves, right? Right. So, like, you're used to using the word a different way or saying the word a different way. So, spelling pronunciations. So, it's because tau, epsilon, chi. Right. Which are Greek letters, is what tech is spelled as. And they're kind of, if you ever see it written, it's written and it looks slightly funny.
Starting point is 00:47:22 Yeah. And that's because it's, you know, trying to show the typography capabilities of being able to write, for instance, Greek letters in your stuff. So who wrote the original tech? Donald Newth. Donald Newth. You know, I think I already said this story once,
Starting point is 00:47:38 but it was many episodes ago, but I go to the same optometrist as Donald Newth. Yes, I think you did. I still have yet to see him. So I've been to optometrists. Ah newth yes i think you did i still have yet to see him so i've been to optometrist i see what you did there ah totally not intentional i get to see him yeah i just keep seeing spots in front of my eyes no donald so i actually think it's knuth as well oh it's topic that's what uh the pronunciation key says okay but uh if you ever see him at the optometrist...
Starting point is 00:48:07 I don't think he could see me. No, I'm just kidding. But Donald Knuth is rather old. But... 74. 74 years old. Oh, we shouldn't talk about people's alias? That's not polite.
Starting point is 00:48:18 Well, he's a public figure. Okay. If Wikipedia could do it, we could do it. That should be the new rule on the show. That's a very dangerous rule. Yep. So, yeah, tech was written by Donald Knuth, who was a math professor, I believe.
Starting point is 00:48:33 I mean, he's known for his computer science contributions. Right. I think he originally started off in math. All right. And so, yeah, so, I mean, he was writing a book, a kind of famous set of books, Art of Computer Programming. And he was disappointed when he was trying to actually do the second revision of his code with the current technology for printing books, typesetting. So way back in the day with Gutenberg, you would have little letters which were carved,
Starting point is 00:49:03 and you could move them. And that was the movable type printing press. You could take the block that had the letter carved on it in a specific way and you could move them around to change for each page. And you would bring that whole shelf of letters onto the paper and they would print it, right? But, I mean, it was a long time before we kind of got to where that wasn't the way things were done anymore. Because, I mean, you really require computers to be able to do something digitally to kind of shape the letters or put them on a disk or image it or project it.
Starting point is 00:49:30 And that was a relatively modern invention. Mm-hmm. Yeah. Yeah, so he was dissatisfied with the, you know... So one thing with the computers is, like, I mean, you've all seen those, like, old terminals now that you see them in the cash registers as, like, DOS terminals with, like, the DOS box art where it's, like, they've made art out of old characters. Oh, yes, yes, yes.
Starting point is 00:49:52 So, I mean, computers clearly didn't have the flexibility as these printing presses where you could, like, you know, if you wanted to do a subscript, you could just take a smaller number and just put it there because, like, everything was sort of floating in a sense so he was dissatisfied with this and he wrote tech as a way to formally describe you know exactly the typography that he wanted with you know superscripts and subscripts and all sorts of you know formulae formula and things like that so um and then after tech, somebody started writing macros for tech, as you do with any language. As the language grows up, most of C++ is written in C++. We've talked about this. DAN GALPIN- Bootstrapping. DAN GALPIN- Yeah, bootstrapping.
Starting point is 00:50:37 So people have written a lot of tech macros to simplify their life. And they'd written so many that it got compiled into something that is now its own program which is essentially tech with all these macros and that's called latech latech and latech is called so because it was made by leslie lamport so um he decided to prepend his the first two letters of his last name called latex. I guess that's your privilege if you make such a large contribution. Yeah, definitely.
Starting point is 00:51:11 So, I mean, people may not have ever used this before. So it's like me, I've heard about this a lot. I haven't very, very rarely used it. And people just think, oh, this is like Word? And it's like, well, kind of. Part of what Word does is related to this yep yeah so um so yeah one thing that really separates us from word is you know Microsoft Word and like similar products they call them WYSIWYG which
Starting point is 00:51:37 means what you see is what you get and so you know with word as you're sort of typing and you go you put an image you drag the image into your Word doc and it's there, right? Like you see the image. You know, you do different things. Like you create a formula and there's a little formula, Microsoft formula editor. And when you're done, the formula is there, like in the page. And you expect when you print it to just look like it does on the screen. Tech is not like that. Tech is what you see is what you mean,
Starting point is 00:52:07 which is, I don't know if that's a cop-out. So tech is really a programming language. And the idea is, you know, you program your document. And so, for example, the biggest way in which this is noticeable is with figures. So the way tech works is you have what's called a reference to a figure. So you might be talking about a figure in a document. And then in parentheses you might say, see, and then in the tech code you do slash ref figure one.
Starting point is 00:52:40 And then it'll actually change that to see figure one. But you can actually in tech put all of your figures at the bottom of your source file. Like, you could be writing a 300-page book and write all 300 pages of the tech source code, and then at the bottom have three pages of just images. And tech will put your images in the right spot based on your references. So it's a very different paradigm. And in some ways, you're kind of at the mercy of the tech compiler, in the right spot based on your references. So it's a very different paradigm. And in some ways, you're kind of at the mercy of the tech compiler,
Starting point is 00:53:09 although there are directives you can give it if you really want something a certain way. In some way, you're at the mercy of the compiler. But in other ways, you don't have to think about that stuff. You can put all your figures at the bottom and just say, look, put my figures wherever it looks pleasing. Or you just write your equations and you say look just make this equation work you know so um so it is kind of like an up it's a double-edged sword but uh and yeah i mean so like as like a language like anything it kind of gets adapted and people are
Starting point is 00:53:41 using it for very certain things so so you use it fairly frequently, right? Yeah. So you encountered it in academia or before you got to school? Academia, yeah. Okay. So many, almost all academic conferences want you, or even textbooks, things like that, want you to write in LaTeX or Tech. Which is these computer science ones.
Starting point is 00:54:02 Yeah, that's true. I can't speak for, although I believe this is, well, I don't know, actually. I can't speak for outside of computer science. I know computer engineering does. Oh, there you go. So one of the reasons that a lot of people want you to use LaTeX is because you're writing the source code, it actually takes your source code, dot tech file that you write and then it also takes as an input a dot sty file a style file and the style file sort of tells all of those
Starting point is 00:54:34 things like what font to use like when like should the chapter headings be this point or that point font should the you know should you have a table of contents or not like the style file can actually tell a tech whether or not to generate a table of contents you might not not have one right so it'll do all this crazy stuff and another thing is a style file short of is a way that keeps the publishers stuff keeps the publishers like IP in a sense. So for example, we talked about headfirst design patterns, right? Well, they have a certain style, a certain font, you know, they have certain like a way their books look and things like that. And that style is private. Even people who, if you were to write a chapter for headfirst design patterns, you still would not have access
Starting point is 00:55:23 to their style. Like it would look totally different to you than when it went into print. And so that way, you know, you couldn't just steal their style and like make your own headfirst Patrick Wheeler patterns thing, you know, book. So it's really common in the professional industry for this reason. Another thing is there's something called Bibtex. So is that what you wear when you eat lobster? A bib? No, it's a digital bib.
Starting point is 00:55:50 It's BibTech. A tech bib? A technology bib. That's one with LEDs. Oh, man. I totally want an LED bib. Blue LEDs. That's what Tron would wear if he was eating lobster.
Starting point is 00:56:03 He would be wearing a BibTech. So BibTech is amazing. You can actually go to scholar.google.com, which is a Google scholar, like a research academic paper search. So you can go to scholar.google.com. You can type in Donald Knuth. You'll see a bunch of articles written by him and books and whatnot. And if you wanted to cite one in one of, in something you were writing, you could click on import BibTech
Starting point is 00:56:32 and you'll get a dot Bib file. So, you know, you export, export. Oh yeah. Well, you're, you're actually, you're exporting from the article to a snippet of code that you're importing into your tech file. COLT MCANLISTER FOREHERSHERD, Right. Yeah, so I think this Scholar thing actually says import. And what they mean is you can import it anyways. DAN GALPINIUSKAYA, Oh, OK. I see. That's why you were confused.
Starting point is 00:56:55 COLT MCANLISTER FOREHERSHERD, Yeah, it's confusing. So you end up with this tech file, this sty file, and all these bib files that you've gotten across the web. And the tech program sort of munches it all together into this document. So it's pretty freaking cool. It can export to many different formats. This is the part I really like.
Starting point is 00:57:14 So I did my resume in tech. And the reason why is because... Oh, sorry. That's so confusing it sounds like technology. But sorry, go ahead. Your tech resume. In LaTeX. I'm resume. In LaTeX. My resume in LaTeX.
Starting point is 00:57:27 And so the reason why is because I can do LaTeX to HTML. It exports to HTML. Put it on your website. Putting it on the website. LaTeX to PDF. It's actually called PDF LaTeX. Okay. Submitting to a website's submission form.
Starting point is 00:57:40 Yeah, exactly. And I also have on the website, it's like for a PDF version. Oh, download. Yeah, yeah. And so it have on the website, it's like for a PDF version. Oh, download. Yeah, yeah. And so it even does things which I don't really need. There's a DVI format which is basically an image for every page. Just like scrunch, squish together if you need that. There's PostScript if you're
Starting point is 00:57:58 into that. So it has support for many different formats. It's pretty awesome. So this is pretty flexible and it kind of is right up our alley as programmers. This is similar to writing HTML and CSS. Yeah, totally. So you kind of write your markup for what you want to type, and you don't worry about all this other stuff.
Starting point is 00:58:15 Yeah, exactly. And then you can kind of worry about formatting as a separate process. Yeah, that's a perfect analogy. It's just like that. And then that way, later on, if you decide, oh, I totally want to change the look and feel of my website, but I don't want to have to, like, redo all the HTML and JavaScript. Well, you just change your CSS file. So this is the same kind of thing. Like, you can actually have a paper that you submit to one conference or that you put on, you know, your website.
Starting point is 00:58:41 And if somebody else likes your paper, you can you can you know give it to them and they shim out content and then they can you know put their own style on it so yeah this is pretty flexible it's something that you know it's good to be aware of because it does it's useful it it's kind of one of those like as a programming topic it's not like is it a dynamically typed language yeah that's right i mean we're not getting into those kind of it is turn complete oh okay i'm sure that's not pretty code to look at. You know, maybe we'll have to get back into some where we're talking about a lot of those kind of deep topics.
Starting point is 00:59:12 But this is something that's definitely helpful because people writing resumes, people writing any sort of, you know, to practice with this and to kind of learn it and understand that it's out there. If you see it on somewhere, you'll know what it means. Yep. I think the biggest use case is going to be resumes.
Starting point is 00:59:26 So, I mean, other than people who have to write, you know, conference papers and things for school. But, you know, if you're going to do your resume, I highly recommend that you use LaTeX. And we'll show you, we'll talk about a little later some tools which will make it easy. Actually, later is now. Okay, later is now?
Starting point is 00:59:43 All right. Some tools that make this easy when you're ready to write in the tech. Yeah. So I use Lix, which is it sounds dirtier than it is. Wait, it didn't sound dirty. Lix? It didn't sound dirty. Now it does.
Starting point is 00:59:59 Now I gave everyone the mental image. Okay. So Lix, L-Y-Xx you dirty people out there licks is a whizzy wig editor that supports latex where are these exports to latex no this is whizzy wig oh so this is a cool thing so licks looks and feels like microsoft uh word but then it exports to tech, which is pretty awesome. And, you know, of course, they did the thing where you can give it an installation of LaTeX, and it'll do the whole thing.
Starting point is 01:00:32 Like, it'll go straight to PDF, HTML, all these things. But so LaTeX also kind of wraps up this idea, like these algorithms for actually doing, like, justification and what should go into the new line and how stuff should be rendered, that kind of rendering rendering it is not only just the language and the style but also this rendering yeah to kind of so call it an image right like pdf or this dvi like as an image right like how how many letters should be on each line what should the font look like i mean it handles that as well yeah totally and it handles the placement of images you know on the page right
Starting point is 01:01:02 right you'll know to like move an image to the next page and all that stuff. So it's even more clever than that. It will actually, if you have one line by itself on a page, it'll move it to the next page. So you don't have what's called an orphan line on a page. So it does all these really clever things that if you're doing it in Word, you'd have to manually do it, like hit enter a few times. It just does that for you. Just pretty clever. So yeah, you could write your
Starting point is 01:01:28 resume in Lix using like the Lix, you know, WYSIWYG editor and get it to look kind of how you want. And then you just with a couple of clicks, it goes to HTML and it goes to PDF. And, you know, you could do this in Word, like Word actually exports to HTML. But the HTML that Word generates is complete garbage. And it's because Word doesn't have this decoupled, you know? Like, when you export LaTeX to HTML, you have your source code, which it creates, like, an HTML file for. And then you have your style that turns into a CSS file. Like, it naturally flows from one to the other. If you've ever exported from Word to HTML, it is just the most
Starting point is 01:02:08 god-awful thing you've ever seen in your life. You can tell the machine generated is just complete garbage. Do your resume in Lix and you'll be well rewarded. You'll be able to put your resume on your website and it'll look awesome. I assume it's also able to do the whole
Starting point is 01:02:22 view source and then edit your tech file directly. So if you can't figure out what button combination to push to make this thing do this. Yeah, so it's a little bit trickier than that. What you can do is you can do view source and I'll show you what it looks like. But if you want to manually put in tech code, you have to actually go to insert and say insert tech code. So you can manually put in tech code you have to do like you have to actually go to insert and say insert like
Starting point is 01:02:46 tech code so you can manually put tech code but um but uh um it'll actually let you do anything tech will do and it'll actually when you're creating functions and things like that like mathematical functions it'll let you write tech code oh okay so yeah it's pretty pretty freaking cool um so i have not used this a lot so i will not have any tools yeah for tools i mean like i said licks is a great tool if you're going to write latex um definitely use licks it makes your life a lot easier um we talked a little bit about the uses of latex you know mainly academic writing people people writing books, textbooks. Any reference material that you read will probably be generated in Vitae. I'm intrigued by this bibliography generation thing.
Starting point is 01:03:30 This seems like a good idea. Yeah. I hate making bibliographies. Yeah, that's a nightmare, right? So, yeah, clearly resume. And we found this out today. You know, someone often says, oh, look at my CV. Well, CV is curriculum vitae which i we knew that we
Starting point is 01:03:47 knew that much but if you have two cvs that is actually curricula vitae that's right not curriculum vitae yeah vitaes or you're you're making plural the wrong word yeah yeah in latin you pluralize the the first word or maybe vitae is an adjective or something i don't know that's like life story right so like curriculum is like the the noun part and vitae is the adjective part oh we're nerding out now yeah so you don't say i i uh i have three reds dog three red have three red dogs. But just like in many languages, the adjective follows the noun. And so then, I don't know Latin.
Starting point is 01:04:31 That's what Wikipedia said. I think it makes more sense that the adjective should follow the noun. It does in a way because you know what you're talking about. Yeah, you should know that it's the dog. Bad English. That's red and fluffy and furry. You should write a letter. Yeah, otherwise you get the wrong thing in your head.
Starting point is 01:04:44 Yeah, letter to the English editor. I don't know who that is, but you write it. Actually, you should email the president of the internet. Oh. And then the president of the internet could help you find who the president of English is. There you go. There you go. Totally.
Starting point is 01:04:58 Maybe I'll email the inventor of the internet because that's the person who I know. Al Gore, right? You know Al Gore? No, but I know that he invented the internet. Oh, you just know his name okay so we're gonna start there okay uh I think we're definitely out of time now okay so uh any parting words no uh check out check out our book recommendations yeah we uh this is our first book recommendation so we purposely chose one that we believe strongly is a good book so we chose two I like that you, so we purposely chose one that we believe strongly is a good book. We chose two. I like that you chose one.
Starting point is 01:05:28 We each chose one. Oh, okay. That's what I meant. So we chose one book that really mattered, and then we chose Head vs. Dime Pattern. Oh! People are going to get the wrong idea, man. Both of these books are amazing.
Starting point is 01:05:42 And so, yeah, thanks for listening to the show. Thanks for, you know, we complained about it using a terabyte of bandwidth last month, but it's amazing. It's great that we have that many people listening to the show. Keep listening. Yeah. And we won't turn this into an advertisement palooza. Oh, no, it won't be like that at all.
Starting point is 01:05:58 Like I said, we generally believe in these books. And the other thing is the next show we're going to do is definitely going to be a real programming topic that i know a lot of people will be interested in so okay we've done the mailbag now we did latex so you kind of hardcore we want hardcore programming yeah show off next time for us to show off our programming chops next time we're going to we're going to show some pretty awesome stuff all right well till next time all right see you guys later the intro music is axo by biner pilot programming throwdown is distributed under a creative commons attribution share alike 2.0 license you're free to share copy distribute transmit the work to remix adapt the work but you must provide attribution to patrick and i
Starting point is 01:06:43 and share alike in kind

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.