Subtitles section Play video Print subtitles 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.