Placeholder Image

Subtitles section Play video

  • COLTON OGDEN: Hello, world.

  • This is CS50 on Twitch.

  • My name is Colton Ogden.

  • And I'm joined today by--

  • DAVID MALAN: I'm David Malan.

  • Nice to see everyone again, for real this time.

  • It's not just a pop-in.

  • I'm here the whole time.

  • COLTON OGDEN: The whole time, yeah.

  • This a very special appearance today.

  • What are we talking about today?

  • DAVID MALAN: So we thought we'd introduce render50,

  • which is a command line tool that CS50 uses internally,

  • and some of our high school teachers use as well, to turn source code into PDFs.

  • COLTON OGDEN: And what are some of the ways that you use this yourself?

  • DAVID MALAN: So over the years for CS50, especially

  • for our undergrads and our extension school students here and off campus,

  • we have typically given feedback, of course,

  • on students' code when they submit it for grades

  • and also for qualitative feedback.

  • And years ago, back in my day, so this is like late '90s,

  • the technology we used was paper.

  • And so literally, part of the process of submitting your homework, your CS50

  • problem sets, was literally print it out,

  • in addition to submitting the files, and we would have used big ASCII.

  • You print out a big sheet of paper and like Malan

  • would be printed in big M's and big A's and big L's all over the paper

  • to make clear to your teaching fellow whose it is.

  • And then he or she would write comments physically on the paper.

  • COLTON OGDEN: Is this also the era of the paper with holes

  • on the sides of it?

  • DAVID MALAN: Yes, dot matrix.

  • Actually, these were laser printers, but I think

  • those were still, for sure, around.

  • So that's obviously behind us now.

  • And so over the years, we transitioned to other techniques

  • where we would somehow generate PDFs out of students' code

  • and then use things like Adobe Acrobat, or Apple Preview, or Bluebeam PDF Revu

  • was another tool we used for some time.

  • So you could actually type the comments.

  • And actually, we went through a phase, thanks to some friends at Microsoft

  • a few years ago, where they kindly let all of our teaching Fellows

  • here on campus use tab--

  • they weren't called tablets yet--

  • what were they even called?

  • COLTON OGDEN: The like PalmPilots, like the--

  • DAVID MALAN: Touchscreens.

  • Well, they were the first laptops with touchscreens.

  • But I don't think they were called tablets yet.

  • I'm totally blanking now on the technology.

  • COLTON OGDEN: I don't remember either.

  • DAVID MALAN: So you could draw on the screen.

  • And this was marginally better, because then you

  • could circle things and be like good, or better, could be this, and so forth.

  • And just handwrite it as well.

  • And then most recently did we just write our own tool for generating the PDFs,

  • because then we can get them just right.

  • We can syntax highlight them.

  • We can do it automatically, programmatically.

  • And so thus was born render50, a tool that

  • just makes it super easy to render PDFs out of code.

  • And then also, unfortunately, to render files side

  • by side in cases of academic dishonesty.

  • If we suspect that a student has unduly copied someone else's work,

  • it's often helpful for folks on campus to go

  • to see their code in the GitHub repo or something else side by side.

  • So we use this same tool to do that.

  • So you can just very easily, especially if you're less technical,

  • look at the code on a PDF or a printout as opposed

  • to like a diff or GitHub or something like that.

  • COLTON OGDEN: Nice.

  • And another use case that, for example, to illustrate,

  • we're using it today here--

  • DAVID MALAN: Ironically, yes.

  • COLTON OGDEN: --for notes.

  • DAVID MALAN: This is very meta.

  • COLTON OGDEN: You probably won't be able to see it too well in the stream.

  • DAVID MALAN: This is my cheat sheet for today.

  • COLTON OGDEN: I've used it in prior streams

  • as well for code bases where I just want to have something

  • to look at as a reference, or in case I forget

  • how I wrote some function or something.

  • And you use it for lecture notes too.

  • DAVID MALAN: All the time.

  • Like literally every lecture and any stream where

  • I need some code to reference, just really as

  • a cheat sheet to remind myself so I'm not futzing with the computer too much.

  • I just run code through render50, get a nice pretty printed,

  • syntax highlighted, colorful PDF.

  • And then we just send it to a color printer.

  • And then do it old school like this.

  • COLTON OGDEN: Is this related at all to the old Annotate 50

  • that we were working on back in the day?

  • DAVID MALAN: This is like a simplistic version

  • of that where you rely on actual human hands for the annotations or existing

  • PDF tools.

  • We did have a tool in the past that was more digital,

  • but we've since deprecated that.

  • COLTON OGDEN: OK, cool.

  • Let's make sure that we're keeping up with the chat.

  • We have a lot of new names today that I saw.

  • DAVID MALAN: Sure, let's say hello.

  • [INTERPOSING VOICES]

  • COLTON OGDEN: So BELLA [INAUDIBLE] is a regular.

  • Hello, Bella, good to have you.

  • DROP4, VDHUG, again.

  • HASSAN-- the Twitch font on this sometimes is absurdly difficult to read

  • against the--

  • DAVID MALAN: It's very bright green.

  • COLTON OGDEN: I have it on light mode for some reason, but HASSAN [INAUDIBLE]

  • says hello.

  • DAVID MALAN: Hello.

  • COLTON OGDEN: Good to have you, Hassan.

  • I think that's the first time I've seen your name in the chat.

  • So Brenda, shout out to Brenda.

  • DAVID MALAN: Brenda, nice to see you.

  • Brenda tuning in, of course, from New Zealand,

  • one of our furthest away team members.

  • COLTON OGDEN: Good to have you, Brenda.

  • SHAMXR says good evening.

  • MATTHEWTHEGOODMAN.

  • DAVID MALAN: Montreal, nice.

  • COLTON OGDEN: In from Montreal.

  • So very good global representation.

  • DAVID MALAN: And Pakistan, the other direction.

  • Wow.

  • COLTON OGDEN: Yeah.

  • DAVID MALAN: Good night, nice to see you.

  • Thanks for tuning in before bed.

  • COLTON OGDEN: Yeah, awesome.

  • Some of the folks here are watching us like 4 or 5 o'clock in the morning.

  • DAVID MALAN: Yeah, well, it must be.

  • COLTON OGDEN: Which is awesome.

  • DAVID MALAN: Well, I'm up at that hour, too,

  • so we might as well just do the streams then too.

  • COLTON OGDEN: VDHUG acre in the middle of the Amazon forest, interesting.

  • DAVID MALAN: Wow, all right.

  • VDHUG, you're going to have to elaborate on that one and how that's working.

  • COLTON OGDEN: TWINTOWERPOWER, generic third quarter of the day

  • greeting from a country on one of the continents of earth.

  • Nice.

  • DAVID MALAN: OK, this is a puzzle, isn't it?

  • COLTON OGDEN: That's almost like a very political statement, like a very--

  • DAVID MALAN: Very generic, yes.

  • Hello, earthling.

  • COLTON OGDEN: Waves at folks from around the globe, says Brenda.

  • [INAUDIBLE] hello, everybody.

  • Hello, [INAUDIBLE], good to have you.

  • GARETHBUTLER2, hello.

  • That's a new name as well.

  • So many new names today.

  • POULTON1987, hello.

  • Hello, hello.

  • DAVID MALAN: Hello, everyone.

  • Yeah, the green really doesn't work very well.

  • COLTON OGDEN: Yeah, it's a little bit--

  • DAVID MALAN: [INAUDIBLE],, we've been chatting online too, often.

  • Nice to see you.

  • COLTON OGDEN: Yeah, yeah.

  • OK.

  • And VERONI, VERONI was here in yesterday's chat.

  • Hello, VERONI.

  • DAVID MALAN: Nice.

  • COLTON OGDEN: LITTLEJR, hello from Brazil.

  • [INAUDIBLE], hello.

  • Unspecified location from TJ.

  • And--

  • DAVID MALAN: This is great.

  • Siberia, Russia.

  • That's terrific.

  • Also far away, and pretty cold though.

  • Frankly, it's been pretty darn cold here lately.

  • COLTON OGDEN: Thankfully, today and yesterday not as bad.

  • We had that blizzard last weekend.