Programming Throwdown - LaTeX
Episode Date: December 9, 2012This 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)
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.
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
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.
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,
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.
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?
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
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.
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?
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.
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.
Is that it?
Okay.
And they switched the switch.
So I skipped two.
I skipped one.
So I skipped the intermediate.
Okay.
Maybe.
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.
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.
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.
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
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,
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.
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.
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
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.
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
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
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
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.
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.
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.
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.
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,
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.
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...
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
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
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
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
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
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
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
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.
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
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
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
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
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.
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.
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.
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.
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,
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,
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...
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.
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.
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.
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.
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.
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.
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
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
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
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.
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
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.
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.
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.
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?
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,
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.
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
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.
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.
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.
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
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.
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.
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.
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?
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.
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.
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.
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
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.
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.
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
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
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
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.
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.
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
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.
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.
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.
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.
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.
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?
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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
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.
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
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
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
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
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,
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?
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.
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.
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.
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
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
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
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.
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.
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,
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.
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?
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.
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,
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...
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.
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.
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,
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.
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.
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.
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.
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
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,
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.
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,
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
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.
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
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
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.
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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?
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.
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.
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
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
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
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
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
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.
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
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.
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.
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.
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.
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.
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.
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
and share alike in kind