Programming Throwdown - Logo Scratch Lego
Episode Date: July 10, 2015This show covers several programming languages we used as kids. Book of the Show Jason: Gödel, Escher, Bach: An Eternal Golden Braid http://amzn.to/1LWYOpJ ; Patrick: Leviathan Wakes http://...amzn.to/1HjpfAo ★ 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 44,
Logo Scratch Lego.
Take it away, Patrick.
I need to have an answer to
how many monitors should i have at work
how many um monitors does it take to get to the center of a problem so i feel like i need more
right now i have or maybe i need bigger monitors oh maybe that's the difference the size of the
monitor or the number of the monitors so what do do you have right now? So right now I have two 24-inch monitors.
Okay.
And like side-by-side, and I have them on like adjustable arms,
and I have them both in landscape mode.
Okay, right.
And so that's pretty good because the way I have it set up is like,
so I run Ubuntu, so I have like the virtual desktop side-by-side.
I only use two.
And on the first one i have
like email and like docs and stuff you know kind of on two windows so i can have my email up all
the time when i'm on that window or whatever and the second one i typically have like a browser
in one window documentation console command line and then the other one my ide um so you do this
so the second monitor is like a split screen and the first one's just email or something like that so well so like on my second virtual
environment yeah the first one the left side is like eclipse and then the second one is like
my command line or like documentation in the browser or whatever gotcha so i have two but
then yeah like you pointed out now i don't have space for my email and so maybe that's good
because i i don't look at my email but i feel like i need four monitors like i feel like i need two
more up above for like you know so i can have like my console in one my uh web browser that's like
doing documentation the other and my email in the fourth so i feel like but maybe i could just get a
bigger one like some people have the 30 inchinch monitors at work. Yeah, right. But then I feel like it's too, like the tall is wasted.
Like I don't need really that height.
See, I feel like this is one of those like thing that sort of bifurcates people.
Like some people are zero inbox people.
Some people have like 40,000 unread messages, right?
That would be me.
I'm actually a zero inbox person.
So some people are
like like you know it's like some people like skittle some people like m&ms i don't know whatever
but this is one of those things like i only have one monitor and everybody kind of like that gives
me a hard time but like every now and then someone says hey why don't you get a second monitor or
hey you know you have your laptop screen you just have a picture of your family on it and I just for some reason I cannot adopt more than one screen into my workflow even like
those virtual screens I've started to get into the virtual screens where like on the MacBook Pro
you can use three fingers and swipe if you do the three finger swipe then you go to other virtual screens and i've
started doing like my you know music like i'll have twitch streaming streaming music on one
virtual screen but even that it's like i i did it for a week and now i'm out of it again
yeah so is your you have a big monitor or just a normal monitor i have a it's a big monitor
it's probably like a 30 inch it's one of these thunderbolt displays oh so it's like a 4k or 5k
or something something like that okay i think that makes a difference too i don't have any
high resolution ones so oh i see yeah i just yeah i don't know uh i had two monitors at my last job
and uh i only ended up using one The other one was just always just...
So the thing I think might solve my problem, but I can never get into it,
is getting an alternative window manager.
So a lot of people use various...
What's the Haskell-based one? I always forget.
Why is it slipping my mind?
Anyways, the tiling window managers where you push buttons
and you flip your consoles up to corner, your ID over to the left,
and it kind of like resizes them automatically based on their positioning.
And whenever they show me, it's like, wow, that's really cool.
And then I try to use their computer.
I'm like helping them with something.
I'm like, I can't make it do anything.
And then it's like if you only ever use one one computer i guess it's good but for me the
context switching is so hard i also same reason i don't have a lot of aliases in my bash script
so i have like very minimal aliases because when i sit down at someone else's computer and i start
and it's like oh it's not working oh yeah oh because and then i don't know what the command
is because i don't type it do you use have you did you switch over to the oh my zsh after we did that show so i i did for my so actually you had baboon was it the same show
or a different show yeah yeah so i use that on a windows computer now and uh so yeah i have it on
there and i like it except that occasionally it has problems because i get auto updates
and then like it did like a bad update once and it took me like an hour just
to get back to where i needed and it's like stuff like that just kills me yeah yeah but the oh my
zsh i love the tap completion like i found out the other day it would actually if you're typing a
switch like a like a command line argument to a function um it actually has tap completion there
so when you hit tab it runs the command with dash dash help.
It pulls out all of the switches, and then it tries to complete.
It's like super awesome.
That's pretty cool.
So I saw the people who do stock trading,
and then I think they have the answer to how many monitors.
Oh, yeah, like 100.
Like the 3x3.
Yeah, right.
Or whatever.
So they have like three rows three rows and it looks like you
know almost like a surround screen but then i guess you just go to like a vr like oculus rift
with like total like immersion in like a sphere of monitor or something there's some guy with the
oculus rift right now who's just banking in the stock market i mean he's just every trade is just
he's pulling the he's pulling the the uh the one-armed bandit and getting a huge jackpot.
He is the high-frequency trader.
I feel like this is an NBC show coming this fall.
Oh, man.
Anyway, so I feel like I need,
wherever I is, I always need an additional monitor,
but then it's almost not always worth it.
Some people have a big monitor and a small monitor,
and that's just
jarring to me oh yeah i can't deal with that or some people have the monitor for reading like the
monitor for reading the portrait papers yeah that's a portrait and then one yeah i don't know
why but that i think i have like sort of like a ocd when it comes to symmetry on monitors but i
just cannot i can't even look at the people who have mismatched the same size but like different brands and so the bezels are different colors yeah yeah i can't deal with that
oh man i was that kid growing up though who if someone like even if a small corner of the tv
screen was blocked by someone's head i would ask them to move like like you could please move your
head a little bit you're blocking you know one one thousandth of the tv screen so you don't like
going to movies then okay yeah exactly although the movie they do it right yeah the the projector
is stadium seating yeah yeah right um all right so on to news the first article i have is um like
i didn't look at the guy's name i think it's andy gavin um making crash bandicoot
so crash bandicoot came out for the playstation one as i think one of the launch titles and um
this guy uh andy gavin was at naughty dog well i guess it was a very new company at the time i
think they had made one or two games anyways and he has a series that i saw linked to off of reddit
or something of like 13 series about writing him and the other guy who were kind of like the head people at naughty
dog um making crash bandicoot and how that like people at the time were just like i remember
playing crash bandicoot did you play crash bandicoot i never played it but oh okay so like
at the time i was a little younger i guess so i didn't really realize it was the
new playstation right like i just thought this was how everything was going to be now
um but i guess like at the time it was like one of the very first kind of 3d platformers
and um how to do level design how to get all the textures compressed and how to um put things in
your field of view that blocked like distant objects so the number of polygons
on screen was reduced all that kind of stuff he goes into in this blog and like you know it's kind
of funny when you read it he says that you know for doing like saving space after they'd already
done all the obvious things like using the lowest two bits of all the pointers to store data
it's like the obvious things and then it's like oh okay i know so all the addresses must be four
byte aligned then you can use the lowest two bits because they're always zero i saw i saw i think it
was a part of this article where they he was saying that they had this monte carlo based approach to
compress all of the textures yes and uh yeah they couldn't get it to fit on the cd so they just ran it over and over
again until it finally fit yeah they were trying random permutations of like placements of objects
hoping to find one that would pack more elegantly yeah it's unbelievable so i guess like but though
when it shipped it was like so far ahead of like what other people were doing with the playstation
at the time that it was like a massive achievement so yeah it's amazing but it's just kind of fun to read
those crazy hacks that people did uh you can also read like john carmack writes about them sometimes
and i mean a lot of times they're actually still even useful but you know there are things you
should never do unless you really absolutely have to but it's still kind of fun to read about them yeah i saw this um i did a little bit of work on ogre that open source graphics engine and uh i was just you
know flipping through that code one time a while back and it said uh it basically it had this square
root function that was done using like a division or something like that convert to float and then
using uh like a two iteration newton solver yeah this is a famous
john carmack hack yeah yeah and it had a reference to like some article john carmack wrote and
everything i was like this is amazing yeah i have i have some code that has that hack in it oh nice
so it's not it's not a hack it's just like a very fast way of doing a square root. Yeah, it's a fast approximation of a square root.
Yeah, so Apple will open source Swift.
We did a show on Swift.
That was back when there was Swift 1.0,
another Swift 2.0,
which is not backwards compatible,
but has a lot of extra features and things like that.
And Apple open sourced it which is pretty cool because that sort of people are
wondering if Swift will be the next sort of C sharp where C sharp was kind of
like contested territory and mono came out at the beginning Microsoft wasn't
really supporting mono now they are but it's kind of too late and the whole
thing kind of like is very ugly.
And so we were wondering sort of what's going to happen with Swift.
There's already a variety of open source projects
that are trying to do various things with Swift.
And Apple decided to just open source their implementation of Swift,
which I believe boils down to like a Swift to LLVM compiler, kind of
like Clang. So, but I don't know too much about the details. So that was announced at WWDC,
which happened since our last episode. Yep. So lots of Apple news came out. so now i i guess also there was recently rulings about the google verse oracle api
uh for java stuff but i always feel like when someone doesn't open source the language i guess
it's what what is the name his name starts with i the guy who did mono um oh i don't know i'll look
it up miguel's i something anyways um but he did Mono and implemented C Sharp,
but basically a different compiler runtime thing for Linux.
And I feel like similar to what Android uses
with a non-Sun or Oracle implementation of Java
to run on Android,
you can almost, these languages being open source
can be vague in what they mean i
almost feel like people have the opportunity to implement them but now it seems like maybe that's
not always going to be so legal so it's good to hear that apple is going to open source it so
people who want to be able to write a version of the front end for other systems will have the ability to do so yep the guy's name is miguel de y casa
yeah okay and uh he also co-founded gnome which is pretty awesome um uh he worked at novelle
which is pretty cool um well good i'm glad i wasn't completely off because i had like his
name i could see it in my head and then i was like oh i was gonna say ig something but i seem akaza okay yeah yeah all right so so yeah so i don't know is
it legal though or maybe it changed now it's like if someone has a language that doesn't have an
open source in any way can you use the uh the grammar of the language like is the grammar
copyrighted um well that's what that
lawsuit is about right it's it's is the well specifically the apis of the standard library
or something yeah right so yeah i mean you know that's right we're not lawyers i don't know
actually well the last i heard about that lawsuit just to report on it again. Yeah, we're not taking a stance here or anything, but I believe Google asked the president
to bring it up with the Supreme Court
and the president said no.
The president's staff said no.
And so...
Yeah, I think just this week or last week,
the Supreme Court basically said
they weren't going to hear it.
So yeah, it's just going to stay with the last appeal,
which was in favor of Oracle. Right, right right so i guess actually what does that mean just mechanically
like does that mean that google has to pay oracle a dollar for every android phone or something
or i mean i mean i think that'll go like that'll be decided like in the penalties phase or something
oh i see okay now i i'm curious what the implications of the
um actual ruling will be yeah right i mean how do you enforce that considering
you know it's been going on and everything it seems complicated yeah it is it's pretty wild
um so yeah we had wwdc we also had e3 yes all the video gamers out there in podcast
so cool did you watch any of it uh i watched some of the highlight videos okay so i watched
some about the oculus rift yeah that's the only one i saw i saw somebody playing minecraft like
on a table with the oculus no that was with the holo lens oh sorry sorry
you're right you're right how can you mix those up yeah you're totally right i'm an idiot but
yeah i saw someone playing minecraft like on their on some regular coffee table with the holo lens
and that looked freaking amazing uh so they had the oculus rift was there too and they have some
cool motion controllers um which people always say it's kind of awkward like a lot of the stuff now you still use your keyboard and so it's kind of uh not the most
natural but they're coming out with some controllers and i i kind of want to try an
oculus rift i've just never had the opportunity to try one yet but i feel like i wouldn't be
something i would be super into but but i want to try it i think it would be cool
and you know what got me into it
like i saw a ton of videos on oculus i saw i followed it since the kickstarter but it always
seemed like you said like something i wouldn't um be interested in and then i saw somebody
recreated um the first legend of zelda using the oculus and so it's by recreated i mean it uses
the exact same artwork and everything like that
and the level layout is the same and the missions are all the same but it's first person using
oculus and it looked pretty wild i mean someone you know kind of goes around a pillar and a
skeleton's there and it's just like it's very jarring it took a very benign game and made it
like extremely terrifying oh man yeah i mean
now that it's getting what would that be first party support third party support whatever now
that it's getting like you know a lot of games are going to start using it um or have it as an
option i guess maybe it'll be make more sense in my head but it has like a lot of tech demos
is what it seemed like to me like a lot of short little games people are putting out to kind of test out the technology but it's not
quite there yet so i'm really interested in it but i think i'm more interested in like the version
two of all these headsets yeah right so someone made oculus run minecraft um which i guess is
the same as hololens but but uh but that was a while ago, like a year or two ago.
It was pretty cool.
But I guess then now it'll solve this problem that the Wii U tried to solve with the tablet
for per person or whatever, or using other game controllers.
So if everyone's wearing an Oculus Rift, you can play like Madden, and no one can see what
plays you're picking or like...
Oh, yeah, true.
So you'll all sit on the couch playing games together, not being able to see each other.
That's what all the teenagers, teenagers will do okay so also i saw the video which i don't know if you've seen the actual gameplay video for star wars battlefront and i'm not a big online gamer
like i mostly just play by myself because i'm not friends i know it's sad well for i mean anyone who
has kids pretty much needs a pause button otherwise okay, it's the game. Okay, fair point. I was being self-deprecating.
But the Star Wars battlefront was really, really cool.
So I'm getting very excited about the new Star Wars movies.
And I feel like I shouldn't, but I am.
Oh, really?
Okay, I wouldn't go that far.
Okay, now you're self-deprecating.
Wait, what?
I'm just kidding.
Okay, anyways.
I just like the last one.
Anyways, you know, I know i was again i was a
little younger than some people well that's we're done anyways when the second set of star wars
movies came out so like jar jar binks when i went to see the movie i was still of an age where it
wasn't so appalling to me and uh so i actually have fond memories of even the second set of
movies i remember i mean i actually don't remember much even the second set of movies. I remember. I mean, I actually don't remember much about the second set of movies, which is kind of a shame.
But I do remember there was that one part in the first one where they were using some kind of submarine and a giant fish starts chasing them.
And then an even bigger fish eats that fish.
That was pretty cool.
But, yeah, for some reason, not to jump on the bandwagon here,
but the second trilogy just didn't resonate at all with me.
I didn't think they were bad,
but I remember absolutely nothing.
But the first trilogy I remember very vividly.
So also Fallout 4.
Yep.
People seem to be really excited about this at work.
Everyone wants to talk about this.
But I'm one of the few people
who I couldn't really get into Fallout 3. I tried i tried and it was just maybe it's because of kids or
whatever like i just couldn't get into it and like did you play melee or did you use a gun
i don't even think i made it far enough i made it like two or three hours in and i get just
like too much reading of text and uh or or i guess there's not text but um but dialogue the dialogue
yeah just uh anyways see i played it the first time and i i had a pistol and i kind of did what
i think is the you know a normal person would do who knows nothing about the game just kind of
going through it and it was kind of boring and then uh i got like i learned about vats
where you kind of go into this
did you get that far to where you had VATS?
no
VATS is basically
it turns a game into kind of like a
turn based game
basically it freezes time
and then you get a couple of
bonus attacks
kind of think of it that way
whether they hit or not isn't based on your FPS skills, but it's based
on just like some calculations based on your stats and things like that.
And so I got the Bloody Mess perk, which makes every time you kill someone they just get
like horrifically mangled.
And then I used a sledgehammer and I used this VATS thing and it was just so fun.
The game went from like
just okay to extremely fun just knocking people's heads off with the hammer maybe i'll bust out my
fallout 3 and try again because people seem to like at work they were saying how many times
they've played it through and get like all the achievements and yeah yeah definitely go melee
it's it's pretty fun okay i'll maybe i it another go. But then the other thing I'm really excited for is Final Fantasy VII coming out on iOS.
Yes.
It has been said that it's coming out this year.
And I remember playing through Final Fantasy VII, and I got pretty far before my brother
pulled the save card out while I was saving or something and corrupted my game.
I don't remember.
I think there was three or four discs, and I was on disc three or two or three.
And then I was so disheartened I didn't play it anymore oh man that happened to me on some games um but yeah that that feeling it kind of like
and then it gives you sort of like a vengeance you know like now it's like you have to get
redemption for that event well and this is your chance uh anyways so i but i will i'm excited to play it
on ios yeah super cool i i think they're gonna bump up the graphics things like that so yeah i
don't even like i guess i don't even care maybe if i saw it i'd be like oh wow this is actually
really bad but um yeah you'd be surprised nostalgia i just want the nostalgia all right
fair enough um but yeah it was totally awesome.
Did you see the Nintendo World Championship?
No.
So I didn't know about this, but maybe this happens every year.
Maybe it's the first year. I don't know.
But someone just kind of said, hey, hey, tune into this while it was happening.
And basically, they had this championship to see who was the best Nintendo player.
And so they had a person play just a variety of games or segments of games,
and it was based on time and score and things like that. They had narrowed it down to two people,
and so that's when they announced that Wii U is coming out with Mario Maker,
where they took all of the enemies, obstacles, terrain,
everything from all of the Mario games, and put it all into one editor.
And even some new enemies that never existed.
Put it all into one editor and give you crazy control to adjust the size of the enemies,
things like that.
And then not only did they make that announcement,
but they also had these two unfortunate
people play these
ridiculously hard levels that these
game designers made with
Mario Maker and it was pretty
awesome. If you haven't seen it definitely check it out.
I'll have to go check that out now.
Let's pause this while I go do that.
Alright.
Okay.
So next news story is
Chirp Distributed file system so um this is pretty
cool i i have to look more into it but it does address a serious use case of mine um
so you know okay you have a well i have a laptop at work and I have a desktop. And I typically want to use the desktop when I am there at my desk and the laptop the rest of the time.
But you constantly run into problems where, oh, I wrote some code on my laptop.
I have to just finish it on my laptop.
And so what ended up happening is I ended up just never using the desktop.
Some other people go the other way where they're remote desktoped into their desktop
But that always kind of is hokey
Remote desktop is never really 100%
And it's kind of ugly and things like that
So I started using
It turns out you can lock down BitTorrent sync
So you can set it up to where only if you're in the same class D network
Will you do the
sync.
So I locked down the BitTorrent sync and I got it running on both machines and I can
literally just build something on my laptop, go to my desktop and it's done.
Or do a code change on my desktop, etc.
It's cool but it's not really designed for that.
There is latency and things like that. So
this sounds like it's even better where you have some distributed file system and you
could just work off of that. Kind of like an NFS kind of thing. So I don't know too
much about it but I'm hoping...
Wait, so did you say the name? This is the Chirp distributed file system.
Yeah, it's called Chirp uh i'll look more into it and report
back but it looks pretty cool all right time for book of the show book of the show this is kind of
a cop-out but a ton of people have been asking recommending that i read this in fact i'm going
to uh read it with a buddy at work um we're going to do a book club or whatever.
I've never done a book club before.
Really? I've never done one either.
This will be the first time. I've done plenty of research
paper
reading clubs
or whatever they're called. Reading groups.
I've done plenty of reading groups
where you pick a research paper every week and go
over it. I've never done a book club until now.
Anyways, this book is called Godel Escher Bach.
It's super famous among computer scientists, linguists, things like that.
But basically, I'm not going to do it justice because I haven't read it yet.
But it's basically about language and about formal automata and formal systems.
It kind of like plays games with language, and it has a lot of puzzles in it.
But it's not a puzzle book.
It's not like this is puzzle number three.
It's written as a novel, but it has an incredible amount of information,
and it's just a fascinating read.
So I've,
I've heard a lot of good things about it.
And yeah,
I hope to report back next show on how awesome this book is.
All right.
Yeah.
I,
I feel like I've picked this book up before a couple of times and then
never made it through.
Did you,
how far did you get?
I don't know.
I'm trying to remember now I'm looking like I'm trying to read this like
table of contents, but I've read books like the you know people in the book wherever goddle and
others like have been covered in other books i've read so i don't know if i'm mixing up like i've
read several books about kind of the same same topics or whatever what is it called like popular
math or novel novelized math yeah like um this is like a
format is called something and i've read david deutsch has that book um and then uh simon sing
also has has books like this and so i've read several of those so i don't know
if maybe i'm mixing it up with one of those so i'm looking trying to look up what david deutsch's
book is um but but yeah the yeah, The Fabric of Reality,
David Deutsch. That's another good book if you're
if you like reading about popular math.
But just to finish it up,
so Godel is a mathematician.
Escher is a person
who's famous for writing these
or for drawing these
you know
these pencil diagrams,
pencil drawings that defy
logic.
There'll be
a waterfall that
falls in a loop.
You've probably seen them.
You just might not know that's what they're called.
Yeah, right. And then Bach is
of course a musician.
So I guess
my vague understanding of this book
is that it tries to link all of these things together
under the umbrella of formal systems.
And yeah, it should be pretty cool.
Interesting.
So how do you say his name?
I always think I said the first guy's name is Goddle.
Is that not right?
I will look it up.
Okay.
I'm pretty sure it's Godel.
Okay.
I say a lot of things wrong
because a lot of things I read growing up,
like I just get books from the library and read them because I was a nerd
and am a nerd.
And so I never heard them.
And then, yeah.
I was having this conversation with someone the other day about how I used
to say, oh, we were having it on the podcast, I think,
about Linux instead of Linux.
Yeah.
Okay.
It's Goodell.
So I went on Wikipedia and I clicked listen. And it said Goodell. i went on wikipedia and i clicked listen and it said goodell
kurt goodell goodell all right yeah well go on to wikipedia and listen to the pronunciation
right yeah i mean that's me trying to sound like a german so there you go my book is leviathan wakes
which is a science fiction by the what do you call a pseudonym yes pseudonymous yeah or
james s a corey which i believe is actually a pseudonym for two authors and um they wrote a
book this book uh i found it to be pretty good um it wasn't as good as some of the other science
fiction books i wrote but you know i definitely i give it a strong recommendation but not a you must read this like stop whatever else you're reading
and read it okay it was it was interesting and it was it wasn't so it's considered hard science
fiction but i didn't find it to be that uh wait what does that mean so i actually i was looking
this up the other day what hard science what defines hard science fiction. And I couldn't come up with a good definition.
But I think it's just science fiction with an emphasis on things that are like physics, math.
It doesn't necessarily have to mean that they're true or accurate, but that they just go into detail about the...
Oh, interesting.
Like world building, as opposed to just like a light you know pulp fiction kind
of thing taking place where gotcha ridiculous stuff happens and who cares like they they may
break the rules but they try to be consistent with the rules once broken gotcha okay uh that's
patrick's definition a lot of them i think do have do have rigorous worlds that they build.
And like I said, they suspend disbelief, but then they keep it consistent.
So things like Ringworld.
Ringworld is not actually possible because it's this idea that you build a ring around a star and then people would live on the ring.
But it wouldn't be stable because if the ring got got bumped it would kind of just like fall into the sun um i think anyways at least that's when i heard a talk by larry niven that's what he
said so he's like ring world is not practical he had this other thing that was practical but ring
world wasn't practical but oh i see like it made an attempt to try to say like oh it kind of makes
sense that you would build a ring around the sun and everyone would live equidistant from the sun and then it would spin to you know keep gravity
and like anyways gotcha so so it takes something that isn't true but like formalizes it and builds
the whole universe around it and you see sort of what that parallel universe would look like had
that right so like stuff may try travel faster than light but
then they'll impose some like arbitrary limit so that it's not like completely ridiculous it's just
a little ridiculous oh okay uh anyways and so leviathan wakes is uh i i never know what to say
without spoiling it so just check it out and read it it's a science fiction book about uh people in space in the kind of i
would say more near future so people are kind of in the in the solar system versus going between
the stars so and that way it's kind of different uh and uh this book is available on audible
and if you've not checked out audible audible before you can go to audibletrial.com slash programmingthrowdown
and get a free 30-day trial,
which means you get a free book that you get to keep at the end,
even if you don't continue your trial.
You can get Leviathan Wakes, or you can get Godel Escher Bach.
Oh, did you check? Is it available too?
I made an assumption.
They have, like, a lot of books.
I'm sure Godel Escher Bach is there,
unless it's so hard to explain verbally.'t see it there so um oh okay never mind then yeah jason was just uh psyching you up for
something that wasn't there but they do have lots and lots and lots of books so check it out they
probably have at least something you'd be interested in listening to and getting for free with this trial or check them out on amazon or anywhere else as well i'm not supposed to say that am i oh well
yeah it's fine um to to tool of the show so my tool of the show is not that useful but I think it's pretty cool it's called sell auto dot j s and
it's a library for cellular automata so for people don't know I think we've
covered it in the show but just in case you didn't catch that episode cellular
automata just means you have some huge grid and you have some rule the rule can only take into account you know a cell
and its neighborhood but that rule is tessellated across the entire grid to
make up a single epic or step so in other words the most common one is the game of life where the rule is if there's what is it like
five to seven people are in your neighborhood so think about like a cell and and it's in 2d
and so think about it like your phone your numeric pad on your phone and you're the number five
and so you have you know eight numbers around you and uh if five to seven of those numbers are are true so we're thinking each of these numbers two
to three oh it's two three like if each of these cells is holding like either holding life or not
holding life so if two to three are holding life then you will if you're not alive that cell has no life
in it it will flip and start having life if there's more or less if there's less
and there's not enough to reproduce if there's more than saturated and your
cell dies or if it was if there's nothing there it just stays in nothing
so it's a very simple rule but because of the way it's tessellated across the whole
grid and then that whole tessellation is applied over and over again across time, it creates
these really cool looking animations and interesting dynamics that just keep you mesmerized.
So that's the cellular automata.
So what would be cooler than being able to watch that on the internet just by going to a website and not having to download anything?
Anything on Netflix.
Yeah, right.
Oh, no, no.
I mean, nothing would be cooler than that.
Nothing.
Nothing.
Wait.
Netflix isn't in JavaScript.
Oh, but it is on a website.
That's true.
Cell Auto is pretty cool.
There's a bunch of different cellular automata,
and so you can kind of play around with them.
There's one that makes caves.
They have one that has water that kind of like flows down as if it was.
Oh, they do have the Game of Life.
They actually have the Game of Life, which is pretty cool.
They have this one called Forest Fire.
That's pretty cool.
Oh, wow.
There's one called Cyclic, which is some kind of like color cycling pattern.
This is fascinating podcasting listening to Jason.
Click through each one and tell us what it's doing.
Why don't you give us a play-by-play on ESPN de Ocho?
Oh, did I tell uh just random side note um i saw magic the gathering
tournament on espn at a sports bar the other day no and i thought what were you doing in a sports
bar this is shocking wait go back i went to a sports bar to watch the stanley cup finals
and the people sitting next to me were watching magic the gathering on espn i don't know infinity only
in only in california and in san jose bay area felican valley yeah and i mean they were like
really into it i mean at one point i didn't know that was actually a thing it's really on espn
it was literally on espn i mean it was like just a highlight it was like literally the entire
match was being filmed on espn and the announcers were
very young i mean the announcers were maybe like 16 or something it was unbelievable um i learned
that as an announcer they train you not to say anything negative because these announcers would
occasionally mess up because they were so young this announcer one time said um oh this one person messed up but then he went
back and corrected himself and said oh no this other person was did this very well to cause the
other person to do that so like i learned that that announcers always try to say just positive
things anyways i feel like they i don't know i tried google searching magic the garan espn and it seems like they did at one time but i I tried Google searching Magic the Garen on ESPN,
and it seems like they did it one time,
but I can't find anything saying they were doing it recently.
I know they do have the tournaments are broadcast,
and people do watch them and announce them,
and it's a big deal, but...
I'm pretty sure it might have been another station.
Maybe it was, like, MLG or something.
Okay.
I could have sworn it was, like, a big...
Well, you keep looking for that,
because I'm completely, like, maybe. They don't even show chess tournaments anymore, do they? lg or something okay i could have sworn it was like a big well you keep looking for that because
i'm completely like maybe they don't even show chess tournaments anymore do they i've seen them
on occasionally but i've never seen a chess tournament yeah on espn um i've seen spelling
b on espn did you really once i think anyways all right that's amazing this is completely off topic
my my tool of the show is a game for that's
been out on many platforms called transistor uh recently came out for the ipad and so that's where
i played it and so this is a game where uh you're a singer something has happened you befriend a
sword that talks to you and helps you uh try to discover kind of what happened. And it is similar to Fallout and what you were describing, Jason,
which is the only thing that I've heard before.
It's like you can either play the battles out kind of in real time
or you can push this button and then enter kind of like a turn-by-turn fight sequence.
Okay.
And your sword talks to you.
It's like the narrator.
Similar, it's by the same company uh that
made bastion uh and so so there's a narrator that kind of talks to you and says what you're doing
and then there's all these kind of like cool uh like side stories i guess in the game where you
like go up to a terminal and you know you can like vote in elections or like order pizza or like
stuff that kind of has nothing to do with the game but kind of gives you the feel of what's going on in the world oh cool and so i'm not like this is the
best game ever but i'm enjoying it so uh maybe when i finish i'll be like wow this is amazing
um so i feel like it's interesting like there's a lot of games you know like the elder scrolls for
example where they have they have books that you can actually read in-game, which have just a ton of lore and content in them.
And I've never done that.
But in Deus Ex, they had these computer terminals where you could log in,
and they would kind of drop hints about the game, but they'd also have lore.
And those I would read, even if it was, you know, 20 pages or something.
So it's like a fine line, but if you get it right,
it's actually really cool as a gamer to sort of like just, you know, experience this lore
if you're into reading.
Yeah.
Well, I feel bad because I kind of panned
both my book of the show and tool of the show.
I really did enjoy both.
I am enjoying both of them. Well, I finished the book and I and tool of the show. I really did enjoy both. I am enjoying both of them.
Um,
well,
I finished the book and playing through the game.
I really didn't try.
I just like,
I need a caveat and not everything can be five stars.
These are both like solid four stars.
Cool.
Cool.
All right.
Time for our discussion of languages.
Yes.
So,
uh,
hopefully you had everyone out there had a rich childhood
of uh messing around with something you know chemistry sets or um you know programming
languages or what have you um patrick's you're actually at least a second generation computer
scientist possibly more yeah if you include like mathematicians no
my grandfather uh programmed on mainframes operating oh nice the third generation so my
my dad is an engineer but my grandfather is a mathematician and so we have kind of geekery in
our family too um and so yeah growing up like my cousins cousins and I would do a ton of this. It was just super entertaining.
And I hope to one day, you know, my kid's very young, but I hope one day he will get into this too.
So the reason we're having this is if you didn't get it from the title, we're going to talk about various programming languages targeting kids in a not creepy way.
Not that kind of targeting.
So yeah, one of them is logo um i actually got introduced to logo through the delta drawing program that came out on atari but uh basically
logo just i mean well i'm going to specifically talk about the turtle graphics part because i
don't actually know anything about the rest of it patrick can probably fill in the holes here
but there's a turtle graphics, turtle cursor part of logo.
And it's pretty cool.
Basically, you had a little arrow and you could give that arrow instructions
like go forward but don't draw a line.
Go forward and, you know, leave a trail behind you or turn.
And I think there are other things too. But basically, it sort of taught you to have this like psychocentric view
where it's sort of like you had to, you know, if the cursor was pointed down,
you had to understand that turning right kind of meant that it was the cursor's right,
not your right.
And so you had to kind of sort of like displace yourself
and understand frames of references and things like that.
So it's pretty cool. It was very useful even useful even i think like to build that mental capacity it was also extremely fun like i was able to draw the book came with a bunch of things for
you to draw to kind of get you started and then from there you could you either cobble together
the things that it told you to draw to make other things like i drew like a half
horse half you know monkey or something um you could you know do all sorts of stuff like there's
one where i had you draw a car and so then i was able to draw a bunch of cars on a highway
uh just incredibly fun and uh highly recommended yeah the one i used I don't remember exactly which one it had,
of course the turtle and the drawing,
but then it had other ones where you could do things like more like,
uh,
ant kind of simulations where like they would leave pheromones and then
other ones would,
would follow the pheromones.
So like you could simulate having food and like your home base and the
ants would try to like go out to the food and come back to the home base
and they would leave pheromone trails.
And then they would kind of like, other ones in a given square
were more likely to move into a square with the pheromones
than move in a random direction.
And so then slowly they would kind of build up.
And so then it was showing this agent-based simulation
where similar to what Jason was describing with cellular automata,
each agent is obeying the same set of
small rules but then together you get this emergent behavior that their ants are randomly wandering
around the screen distributing hormone evenly but then once one finds the food it starts to head
back home and leaves a more directed trail and then another one will do it another one another
and then you know pretty soon they're all kind of going to and from the food source back to the home yeah yeah i remember that i played that
same game i don't remember the name or anything like that but uh and so it's called mason or
something but it's super fun yeah and um i i guess every version of logo isn't exactly the same there
isn't you know one standard um this is the logo language so all of them have
you know added various features uh and then you know they kind of teach fun making functions by
using new words so you can initially say like ford 90 and it'll go for 90 pixels or whatever
but if you want to say like draw a square won't know what a square is but you can tell it
you know make a square be the following steps and here's a function parameter right and so you can kind of start to build up your grammar
of functions and then that's how like kids begin to introduce this very graphical way which you
know is always even when i was learning uh basic and stuff like that was always the thing i wanted
to do was like draw stuff right like yeah just draw pixels and even it was when i was doing c programming
early on i did like you know the command line stuff but i always wanted to be able to just like
draw pixels and like make lines that moved and fill them and it was actually hard for me when i
was when i was very young because like in basic it was very easy to do that but in c it's like no
yeah like i never had it still to this day if someone came to me and was like hey i want to learn c and i want to use it to just like do really basic drawing or like implement
pac-man or something i don't know how to tell them like to get started quickly yeah i have no idea i
had the same thing where i went from making games in basic to and we're kind of leaping ahead here
because i mean we made games in basic we were i don't know 10 or 12 or something but i'm from making games in basic to trying to build a mud in c or just
edit the mud um that someone else was running in c and yeah it was the same thing i was just
i mean console was okay but trying to do anything graphical is just almost impossible yeah so i
thought i'd say like i think you'll see a common theme among these but i think in general like the graphics part is really easy for kids to grasp
because at some level you're it's very visceral like what's coming out as opposed to just text
which is kind of boring like you're seeing something and when it goes wrong it still
looks cool like oh it went wrong but you have the opportunity to learn something right because you
yeah see what happened and be like oh i didn't realize that's what was going to happen
versus just like crash right yeah i mean so the crash is a crash it's almost impossible well it's
not impossible it's other than syntax errors it's very hard to crash one of these i mean they're
kind of designed to be sort of a very constrained dynamical system and yeah you'll make very
unintended things happen but but uh but you'll
almost always see some kind of consequence not you know a core dump or something like that
yeah so the really common one that i think now is star logo um okay and uh they just released a new
one that has like open gl graphics so instead of just the boring like 2d uh palette on your screen
and you know moving the turtle cursor around you actually
have like a 3d view and you know more minecrafty i guess um i'm not sure that that adds anything
but but it's there um and then i found a nice tutorial turtleacademy.com and they have a web
version of logo so they both teach you to write code in logo and like you
can run the examples interactively on their website so that's really cool so
if you have like a niece or nephew or son or daughter cousin or somebody or
yourself are listening to this then you can check this out and it's pretty cool
I think the one thing that I saw when I was looking through a bunch of these one
common theme that I was like especially fond of was that it's much more collaborative like you can actually have
your turtle draw something and then post it to other to this central website yeah and other
people can not only see your drawing but also recreate it like they could hit go and watch a
turtle like you know draw your car
or whatever um and i think the whole collaborative part is pretty cool because when i was growing up
i mean i made that the cars on the highway actually i remember specifically i made cars on the highway
and then i went to show my parents and when i'd come back um one of my cousins had reset the atari
and it was gone i oh just so devastated yeah
i need to go back and redraw those cars and you need to play final fantasy 7
um one of these things is not like the other yeah but now i mean you know everything is permanent
um i'm sure these a lot of these are like google docs where you know you don't even have to save
it's just there's but i wonder... I bet there are people Twitch streaming
doing programming in Logo right now.
Yeah, that's right.
And it's much more collaborative
and ultimately way more fun.
So the next one is especially big in that Scratch.
And so Scratch has a really big community online.
And it was a project...
A lot of these are out of MIT.
MIT does a lot of
work with getting I guess kid-friendly do we based programming languages and
in scratch came from just not not to go too much on touch tangent but in this in
there was the 50s or the 60s when Sputnik was launched I think is the 50s
the government sponsored this gigantic program
which is an unbelievable amount of money to get the whole nation more into stem and people don't
know stem is science technology engineering and medicine math and oh math sorry and uh one of
those uh and so one of these grants was all around education and bringing forth like the next generation of mathematicians and things like that.
And so, you know, part of that, a lot of that went to MIT and that's sort of where all of these projects came from.
Yep.
So Scratch is different than Logo.
Logo is a graphic representation of your program.
But Scratch, sorry, you write in text, but the results are graphical.
In Scratch, the results are graphical, but you also program graphically.
So with blocks and building up programs.
And the really cool thing, which I think is also a great way to introduce programming
is not just making games like everyone wants to make games and that's good and like there's a
good python um a way to get started in games i guess pie game is what it's called um and it
works really well but uh you know and that's good but making games is actually pretty hard like um
especially making games people really want to play because people have very high expectations for games like they expect to be able to go to a menu and like start the game have lives or
you know die or like progress right have danger have risk and then like have an end to the game
right like there's a lot of stuff you have to do before you kind of can really call it a game
right exactly but what uh the scratches use a lot for and i think is is great is animation so
if you think about it you can kind of program your code to just run through a demo so like demo scene
would be similar where user input isn't really necessary it just plays out something that you've
programmed but it could still be just as complicated as a game but you can kind of build it up in a way
that's more controlled.
You don't have to worry about some of the same things.
And even when you just have a short snippet, people kind of get it.
It's like a short movie or whatever, right?
Yeah, exactly.
I mean, a game has to hold your attention for a long time, but an animation can be just as long as you want it to be right and so you know allowing kids to kind of build little uh animated scenes in a programming language style is is a great way to introduce
that concept and not have to worry about people doing unexpected things right that's a whole
another thing that is good to learn but you know one thing at a time yeah right and so scratch
supports both you can make games and use input um you can produce sounds
the animations there's even it looks like a functionality to be able to use your uh webcam
as an input um not as familiar with that but um they promoted a lot for using in uh like coding
clubs which i didn't have one in school but we had one briefly that i started which i'm sure was
terrible but that's fine um but we never had like a coding club but i know it is a thing that people
have or even like a class and so having this scratch for even like elementary age students
so kids you know would that be like seven eight nine ten ten i guess nine ten uh like third fourth
grade that those kind of age kids can begin to get started
in this and kind of begin to grasp the concepts um and so you know if you've never seen it before
check it out and the the graphical representation kind of helps you see what should come next right
so like when you type a for loop into you know c it's not obvious what should follow the for line or that oh you
need curly braces and the lines in between or whatever right like it's not immediately obvious
just from the word for that the next thing is going to be a loop but when you have these graphical
ones the structure of the block of a loop is actually such that you kind of see like oh
this thing is contained and is going to run over and over again and so it helps you to think about programming i think too like when we were talking a lot about
you know kind of kids and people who are just starting but even you know i'm one of these
people i tend to be like kind of like take a bottom-up approach and sometimes it causes
you to not actually get what you want like you started off wanting to make a basketball video game.
And what you end up with is, you know, one one hundredth of a graphics engine.
Right. Because like you just got so bogged down in C and and how to open a window, how to draw a triangle.
And that takes, you know, half a year and yeah so this
way you know starting with something like this it forces you you know it's
restrictive but it also forces you to think about the high level spot the high
level part and if if you can't get it looking just right because you know the
scratch won't let you it's fine and just you know being able to live with that is pretty useful for anybody.
Yep.
So the next one is Lego Mindstorms.
This is the kind of thing that every kid wanted,
but I never knew anyone who had this.
I didn't either.
Had these.
But it looks so freaking cool.
Everyone knows about the Lego Mindstorms robot
that can solve the Rubik's Cube
and how
amazing that is um but yeah i never had one oh i always liked the segue ones the ones that like
to self-balance the inverted pendulum oh yeah right right um so yeah lego mindstorms is a
combination as you might imagine of lego and then various kind of like logic um is it actually there's a there's a main blocks there's
like a big larger block that has essentially a processor in it and a little lcd and that's where
you load your code and then you can plug in sensors or motors to that hub and um you know
from your computer download the the code that you want to run on it and then you can build up a structure a car a robot
whatever it may be a rubik's cube solver out of lego blocks with these actuators and sensors in
them how do you actually connect the sensor so i guess you have to buy a very specific sensor
where they have integrated right so i think i believe the way it works now is actually an i
squared c protocol so people hack in other sensors now.
Oh, got it.
But yeah, basically there's a special block that has a sensor and a wire.
And then a special connector on the hub that you plug that block into.
Gotcha, gotcha.
But yeah, basically it talks I2C to that thing.
And they just have like a small set of sensors they support.
Well, small is relative i guess um but the cool
thing about this one is that they have of course a graphical programming language backed by labview
which i've maybe we might could do a whole show on labview but labview is a graphical programming
uh thing all of its own by national instruments uh and is more targeted to like i guess what you would call even serious programming
um but they have a version it backs this nxtg which is used to program lego mindstorms and the
cool thing there is like you're programming graphically and just uh like you would see
your gui and scratch or logo here you actually see something in real world move and inputs in
the real world affect it and so i think that's yet
another like great stimulation source for keeping people engaged yeah yeah it's amazing i wonder
can you actually make i guess there's nothing stopping you right from making like a little car
or something like that no no i mean does it have a battery yeah yeah so it has a battery and it'll
move around you can make line following robots yeah cool cool and so
then there's a lot of alternative languages that sprung up and it's actually surprising how many
there are like i went on wikipedia to look at how many there were and there's like i want to say at
least a dozen um so like you can code it in c you can code it in like any like visual basic the uh
there's this robo mind which uh has a simulation part to it as well so you can actually
like simulate your robot moving around in a simulated world um and uh so you can write in
like even like real programming languages when you're ready you can step to it from kind of these
uh i won't call them toy cool so it's like a bridge yeah so you start off just doing visual
but then you don't have the experience we had where
you there's not a huge divide to see and it's just like your whole universe falls apart yeah
so i was reading um and zed shaw a guy in python who wrote python the hard way um was talking about
this he was saying like he wrote python the hard way for beginner programmers and people don't
understand what beginner programmers mean they think it means like people who already do a lot of maybe like
shell scripting or something uh want to learn programming or people who've done a lot of like
excel and maybe did a little bit of dabbling with macros he's like no no no people who like
you can't tell them type the pipe character. They don't know what the pipe character is.
You know, they don't know like how you would even like get into manipulating files, like opening an editor, typing a file in, saving it to somewhere known in the directory structure, opening a command line, getting to that folder. Right. Like that whole process would be foreign to these people.
Like those are the people that, you know know we're really going to have to help we can't just expect the only people who are worthy to learn programming are people who
already know their way around a computer uh to a high degree um i never really thought about it
yeah like i guess i have a pretty high bar for where i would expect people to start before they
learn programming yeah i i have the same thing i mean i guess the issue is you know we grew up in the dos era
where if you wanted to use a computer you had to learn that and so it by you know the because of
that it became a prerequisite it's like you couldn't program if you couldn't use a computer
and you couldn't use a computer if you couldn't do dos and dir and pipe and all those things but
most people didn't want to use a computer
when that's all it could do.
Yeah, right, right.
So that's why we have sort of the skewed view.
It's interesting.
So I think these two we're talking about are great introductions.
And you have some others.
Yeah, so I use this one a ton.
It's called AuthorWare.
Apparently it was bought by Macromedia,
which was bought by Adobeobe and so it was
called adobe author where uh much later but i used it when i was in high school or maybe even
middle school it came with my packard bell so um it's pretty cool um basically it was this flow
chart based uh model where um think about kind of like Flash,
but the user experience is a little bit different.
So as you do in Flash, you have objects on the screen.
You would animate them by dragging them around,
things like that.
You could listen to user events.
But instead of having sort of that timeline in Flash, which
has all these objects
that exist, you know, in time, and exist in different states across time, things like that.
In this case, it was all flow based. So there'd be some root node that would get executed.
And then there'd be a node that says, you know, draw a car. And that node would have a child
node that says, wait four seconds, then it would have a child node that says wait four seconds then it would have a child node
saying you know move the car so on and so forth and then because you could have a many-to-one
relationship you could say okay once the car has moved then do these 10 other things so you can
imagine how it's kind of like a tree structure um but yeah i built a bunch of animations in it
and stuff like that it was super fun apparently it It was super fun. Apparently, it's discontinued.
Of course.
Yeah, so it got discontinued in 2003 or something.
So you can't use that.
But you can use Adobe Flash, which is a very similar idea and arguably better in almost every way.
And Adobe Flash is a great way to get into programming because you
start off just animating by you know literally just taking things you drew in
Microsoft Paint or or or GIMP or what have you Photoshop dragging them into
flash and then just moving around in time and then adjusting the scene how
you want it at various points in time and then adjusting the scene how you want it at various points in time
and i have this animation then you start you can learn about action script and and you gracefully
go from you know pure visual environment to writing code so adobe flash is pretty awesome
definitely check it out if you haven't already i've never used flash before i i don't know why yeah wow really um i mean i've used it
so i've used flash before that was poorly stated i've never like written or authored
any flash anything yeah you've never used flash studio yeah um yeah that's uh yeah i don't uh
oh you know i think because i have a minor in digital media so for me I had to take a bunch of
classes where we were forced to use flash
um so but yeah
if you take any like intro to digital media
or anything uh well maybe now
it's different but at the time they would teach you
they would definitely teach you flash
I wonder sort of what is replacing
HTML5
HTML5 obviously is replacing the technology
but what's replacing Flash Studio?
In other words, if I wanted to
take someone who doesn't know anything about programming
and get them into what I just...
Recreate what I just described,
what would I use?
No idea.
Put it out to the audience.
I think actually Adobe has...
You're not going to put it to the audience.
Adobe Flash has an HTML5 exporter or something, but I don't know you're gonna put it to the audience has an html5
exporter or something but i don't know yeah we'll ask the audience if you are an adobe flash wizard
um let us know sort of what the next step is i'm really curious i mean i i believe adobe
can export to html5 now but i'm not 100 i don't even know really kind of what that means
because i'm sure they're not just completely
compatible.
Let us know. I'm curious.
Alright.
We got one more?
Oh, just real quick.
We have a Wikipedia
link on our...
We'll put it on the website, which has a list of
educational programming languages. If you have a son
or daughter, or if you
uh want to uh you know look at a uh one of these kind of beginner languages i think it's really fun
to to do that and and create some cool stuff uh check out our link it has a ton of languages way
more than we could cover yep and if you're too if you're too leet for all of these, then try one of our other podcasts.
Yeah.
So the FeedBurner, last time we talked, we were, I think it was like 200 people away from 10,000.
We are now 140 people away from 10,000.
We only gained 60 people in a month
I know right
I know
welcome to 60 more of you
this is your second episode
yeah welcome you 60 people
to the show
and everything super awesome
either way man we're super grateful for
having such an appreciative audience
one thing that I kind of struggle with and i'd be interested to your feedback is you know we
have twitter people reply on twitter and retweet and ask us questions on twitter people ask us
questions on facebook and uh there's communications going on google plus and i really feel like we
should kind of bring this together. It's kind of silly
that there's just like three separate discussions happening at the same time. So I don't really know
what to do about that. If anyone there has any suggestions, post your suggestion all three times.
I'm a social hermit, so you can mail me a letter and uh i may respond to you oh man but yeah i mean i'm really curious sort of
you know anyone out there even if you have a small company that you run or something like that like
how do you solve this problem where you know we have a lot of followers but when you split it
three ways um it just uh it doesn't build enough of a core base.
Yeah. It sort of dilutes everything like,
like exponentially.
Like I think if we could get everyone on one platform,
it would be,
it would be really special.
There would be dozens of us.
That's right.
Oh man.
So,
uh,
uh,
yeah.
So anyways,
we really appreciate your support and,
uh,
thanks a lot for watching the show,
listening to the show.
Until next time.
Yep. see you later distribute, transmit the work, to remix, adapt the work, but you must provide attribution to Patrick and I and share alike in kind.