Algorithms + Data Structures = Programs - Episode 13: I'm an Excel Wizard!

Episode Date: February 19, 2021

In this episode, Bryce and Conor talk about how awesome Microsoft Excel is!Date Recorded: 2021-02-13Date Released: 2021-02-19Microsoft ExcelHoogle Translate filter (Excel 2003 color palette)Hoogle Tra...nslate scan (full Excel 2003 color palette)GOTO 2016: Pure Functional Programming in Excel - Felienne HermansSimon Peyton Jones - Elastic sheet-defined functionsExcel Data ValidationExcel Pivot TablesPython pandasRAPIDS cuDFPainting in ExcelExcel SUMPRODUCTExcel SUMIFIntro Song InfoMiss You by Sarah Jansen https://soundcloud.com/sarahjansenmusicCreative Commons — Attribution 3.0 Unported — CC BY 3.0Free Download / Stream: http://bit.ly/l-miss-youMusic promoted by Audio Library https://youtu.be/iYYxnasvfx8

Transcript
Discussion (0)
Starting point is 00:00:00 I was I was switching back to the uh to the to the other podcast we're recording this is gonna it's like inception it's like inception there's a podcast inside the podcast welcome to ADSP the podcast episode, recorded on February 13th, 2021. My name is Connor, and today with my co-host Bryce, we talk about Microsoft Excel. Perfect intro, perfect intro to why Excel is the... So why are we talking about Excel? Did we say... I feel like at the end of one of our podcasts in a section that got cut, Excel came up and then you said,
Starting point is 00:00:52 you said, I'm the best at Excel. I do not think... And then I think I was like... I think I expressed a proficiency for Excel. You know what? I'm going to go back through all our... I think I know which episode it is. So I don't I'm going to go back through all our, I think I know which episode it is, so I don't think I need to go back through all 12.
Starting point is 00:01:07 I'm going to find the clip, and I'm going to cut it in, and we're going to see what Bryce said. I think Bryce said he was the goat at Excel, and then I just said, hold your horses. Hold your horses, Bryce. I used to have three different Excel programs, 2003, 2007, and 2010, all at the same
Starting point is 00:01:30 time installed on my computer because I loved Excel so much. And I just, Excel gets... I believe you referred to yourself as the Excel wizard. Oh yeah, that's for sure. Honestly, so here's an anecdote. Here's an anecdotal story. Back in 2011, I was interviewing for my first internship or first co-op or internship. I was in, what is that, third year going in, I was in third year university. called Manulife, which at the time owned the American insurance company John Hancock, which is the company I ended up working at in Toronto. And they asked me at one point, how would you rate yourself on a scale of 1 to 10 in Excel? And I'm a pretty modest, at that time, you know, I'd like to think I'm a pretty modest guy so instead of giving myself a 10 out of 10 i said you know there's probably some room for improvement and i gave myself a 9 out of 10 but i i gave the some color commentary so i said you know i don't i don't want to say i'm perfect so i want to leave some room for improvement i'm a nine-year-old. What did you use Excel for before you were working? Like graphs.
Starting point is 00:02:49 I thought that your passion for Excel came out of your brief stint as an actuarial scientist. It sounds like it predates that. It sounds like it may have been the other way around. You were like a nerd about Excel and then you decided you should become an actuarial scientist. No, no. So here's the punchline of the story is, you know, so I'm there thinking that I know everything there is to know about Excel. In hindsight, with the knowledge that I have now about what you can do with Excel, I would give myself a zero out of ten at that point in time.
Starting point is 00:03:34 I didn't even know what a pivot table was. I didn't know that you could filter rows. I literally knew like nothing about Excel, but I just didn't I didn't know Sorry? You didn't know you could filter rows? I didn't know anything. Like it's, it's comical that, but that's the thing is you don't know what you don't know. You know, it's people don't ever think that they have a bad memory because they don't remember what they've forgotten.
Starting point is 00:03:58 Right? Anyways, so at the time I, I thought knew about Excel. And then I ended up getting the job there and I went and worked for eight months. And that was where I had my eyes opened. And I came across this one file that was used for calculating, I don't know, some basis points on some boring insurance product. But you open up the file and you click a macro button and then this form popped up. And it was like a full-blown computer program. And I was like, what the hell is this? Like, this is not the Excel that I know.
Starting point is 00:04:31 And then I was like, started clicking on things. And I was like, this is a full-blown program. And sure enough, like the Visual Basic VBA, Visual Basic Application Code was like, the worksheet was protected. So then I spent like half a day figuring out how to hack Excel 2003 with a hex editor, which was pretty simple back in the day. So I hacked the file, and got access to the source code. And then it was just like I had entered the matrix. And it was honestly like, I... i is before you were programming yeah this was before and so this is the thing is i was an actuarial science major at the time i went and did my eight months at manulife slash john hancock and then i came out of it and i was like i have to double major
Starting point is 00:05:17 in computer science like like computer science is the future because I had fallen into the matrix that was Excel. And it's just unbelievable. And also, too, I use the best color palette that I've ever come across was in Excel 2003. There's like a pastel default color palette. I'll find a way. Actually, all of my Google Translate algorithm comparison like screenshots where show filter in 20 different programming languages, that uses the color scheme from Excel 2003. I went and got the exact hex codes for those colors and embedded them into the Clojure script that generates those pictures because it's just beautiful. It's like Easter it's happy it just it makes me you know they really dropped the ball when they
Starting point is 00:06:10 went to 2007 and added the ribbon and then they changed the color schemes to be these crappy you know one color different shades you know green you know orange anyways we should start to talk about why you know how do you feel about google sheets i have a soft place in my heart for all spreadsheet programs so like anyone that says google sheets is excel like doesn't know anything about excel mac excel is not excel libra office whatever sheets or whatever it's called, that's not Excel. Excel is hands down like only Excel on Windows or like Linux Wine. Although I've never used Linux Wine, but I think it's just the same thing. What about Office 365 Excel? That's the online one, right?
Starting point is 00:07:00 Yeah. I have not played with that enough. For for the times that I've gone and used it. It's done. It's been able to do everything that I've tried to do in the browser. All right. Time for me to tell an embarrassing Microsoft story. Microsoft will never be a sponsor of this podcast after this. I'm sure. I, I, about a year ago I had, it was a dot doc so not a dot doc x but um a dot doc file so like a 2003 um uh word file that i'm pretty sure it was an iso or insights thing so it was it was some form that one of the standards bodies i worked with had sent me and um i wanted to have it it was it was something we needed to fill out for like a response to some it was a response to some iso thing i think it was like comments on whether we wanted to retire some old standards but it had to be filled out in a certain form
Starting point is 00:08:00 so i'm like all right i'm gonna stick it in, in, in, you know, Office Online, and then everybody will be able to comment on it. And I, I uploaded it through Office Online. And it was like, hey, we're gonna have to convert your file. I'm like, okay, and I press OK, it completely crapped out on converting this file, like completely misformed. So I went and tried it with Google Docs, did it perfectly. So I'm not saying that Google's online versions of Microsoft Office Suite are better than real Office Suite. They're certainly not. But I am saying I'm pretty sure that they're better than Microsoft's online version of the Office suite. I don't doubt that at all.
Starting point is 00:08:48 And I will say that for the use cases that the majority of people, like I'd probably say 99% of folks that use Google Sheets, for what they're using it for, it's amazing. You do not need excel for you know you know for example when i played you know uh what do you call it co-ed soccer in toronto with some fellow actuaries we would you know have the schedule and attendance and whoever was showing up we did that all in google sheets like you do not need excel for that that's a very that's a very actuarial thing to do yeah yeah or like whenever the actual at my at my where i started my career whenever we would go out for uh this is gonna sound so lame whenever we would go out for like some fancier dinner or
Starting point is 00:09:36 lunch uh we would like we would just pay all one person would pay and then you'd just keep the receipt and then we would create a sheet and then calculate like the tax and tip and then everyone would just e-transfer. Instead of just like rounding up or down to the closest 10 or 15, like the actuaries, we like to get it right down to the penny. It makes us feel good to open up a spreadsheet just because we can and back out that tip and tax correctly. I do find myself spending a lot of time in the – like I think that the Google Office suite is like the most powerful collaborative tool out there. I would kill for a version of Google Docs but that supports Markdown natively. Like I wrote up this beautiful design document that I sent around last week,
Starting point is 00:10:28 and, like, three people replied with, and I just, like, stuck it in GitLab, and three people replied with, like, but how do I leave comments on things? And I'm like, no, this is, like, this is a later draft. The earlier draft was in Google Docs. Now I want it in, like, Markdown so that I can be mores. Now I want it in like Markdown so that I can be
Starting point is 00:10:45 more precise and I want it in version control. And there were some more complaining. And then I spent my whole day Friday converting this 40 page document back from a Markdown file to a Google Docs file. Like this thing started off its life in Google Docs, got edited a bunch, then it moved to GitLab. And then it finally ended up back again in Google Docs. And I mean, I do love it as a collaborative platform. I just wish it supported Markdown. And I wish it supported references too, like internal references. I wish it supported named internal references.
Starting point is 00:11:20 You can add bookmarks, but you can't give them a specific name. So it's hard to set up uh proper internal references that's one of the nice things about tools like markdown and bike shed but uh as a collaborative tool yeah google docs is amazing yeah sometimes for it for some things if it needs to be in markdown i'll still still use Google docs. I'll just like make it monospace font and no paragraph formatting. And I'll tell everybody editing it like this is, this is plain text. I know that's in Google docs, but edited as plain text. But, um, if, uh, for certain audiences, people will be sad if it doesn't look pretty, even if it's in Markdown.
Starting point is 00:12:06 So that wasn't an option here. So here's the thing, though. We got to talk about two things. One is why do I love Excel so much? Why is it so amazing? But two, I listen to and I've been on a podcast called Talk Python to Me. It's a super popular podcast. A lot of Python folks listen to, and I've been on a podcast called Talk Python to Me. It's a super popular podcast. A lot of Python folks listen to it.
Starting point is 00:12:28 And I'd say like one every three episodes, the host is like trying to convince people that have Excel files and that are building like models in Excel that they need to switch to Python. And it's just this like unusable tool. It's such a mess. You can't, you know, in Python, you can name your variables. You can look things up. In Excel, it's, you know, A1. What does A1 mean? And like there's just this constant sort of like bashing of Excel.
Starting point is 00:12:57 And I think a part of it is just a lack of understanding. Hang on. If you want to refer to columns with like, if you want to refer to, um, uh, columns with like proper names, not just like a one, you can definitely do that in Excel. I mean, it takes a little setup,
Starting point is 00:13:11 but so that's, that's what I was going to set. I was setting myself up to do that, but you stole the thunder. But that's, that's the thing is they're like, oh yeah, what is B for me?
Starting point is 00:13:18 Like, you know, where isn't it Python? You can give that, you can give that a name. Um, and it's like, well,
Starting point is 00:13:23 no, you can give that a name in Excel too. And then you can like, you can refer to it in other sheets as well. But so the thing is, is there's this like push of consultants that are like offering training and like, oh, the migrate your Excel to Python. And like, I have yet to hear anyone pitch that, that actually understands Excel because a lot of the stuff that they talk about, oh, like, oh, look how much more powerful this is in Python, you can do this, this and that, you can't do that in Excel. Every single time they say something like that, I'm like, you can do that
Starting point is 00:13:53 in Excel. And sometimes it's actually easier to do. So, so the first thing is that, and I actually haven't watched the Simon Peyton Jones, the individual who works on, you know, he's widely acknowledged as sort of being like the father of Haskell, and he works on the GHC compiler. He has a talk called Excel, you know, the purely functional programming language or something like that. I haven't seen it. But I think of Excel, and I probably will give a future talk at some point, as it's like the perfect combination of object-oriented programming in the way that most people think of it, not in the way that Alan Kay intended it to be, and functional programming. So in terms of object-oriented programming, you have at the top level workbooks, and then
Starting point is 00:14:40 inside your workbooks, like so a workbook is just an Excel file. Inside your Excel file, you have sheets. And inside your sheets, you have cells. And like every single one of these things has properties that you can control and manipulate using Visual Basic application. And also you can like refer to stuff using just like Excel formula stuff. But like it's a perfect like thing to like give an example of an object oriented system. Like you have one object that's made up of other objects, that's made up of other objects and they all have properties. So that's amazing.
Starting point is 00:15:11 And then on top of that, the formula where you go equals and then average of, you know, a column, that's like in a certain sense of functional language. It's a very bad functional language because it falls into the inside-out problem where you end up with the average and then inside of a sum if and then a conditional and then you end up with a bunch of parentheses and it's extremely hard to read. But technically that's a functional language. So you've got a functional programming language, an object-oriented model, and then on top
Starting point is 00:15:43 of that there's a ton of other algorithms and things that show up in programming that are like there in Excel. So one example is SumType, aka one of the algebraic data types. There is something called data validation in Python and they have this, or not in Python, in Excel. And they have the same thing in Google Sheets, where basically you can write a list of values, and then in another cell, set it up so that you are validating that the only values that can show up in that cell are in that list. And then what it does is it gives you like a little combo box, which is like, it's so nice. So if you want to set something up, that's like a yes or no option, you just type yes or no in a little list, you data validate it in a cell,
Starting point is 00:16:25 and then it gives you a little drop-down box of your options. That is purely a algebraic data type right there. And it's one of my favorite features of Excel data validation. And Excel has notions of mutability too, because you can protect cells. Yeah, there's this whole like, I'm not sure if it's like reactive programming, but like it's this graph model of where you have a dependencies where, you know, one cell is equal to the sum of a bunch of other cells and those.
Starting point is 00:16:51 And so there's this thing of like data tracing where you can trace what cells depend on other cells. So it actually visually shows you the graph, which is like, it's freaking amazing. So like, and people are like, oh, you can never debug. You don't know what depends on what. And it's like, you just, you literally click a button and then it shows you one level of data tracing and then another level and another level. And so like, you can literally see visually on the screen,
Starting point is 00:17:13 like what points to what. The only thing that has even comes remotely close to that in any programming language or IDE that I've seen is Dr. Racket. That if you highlight a variable, if you hover your cursor over a variable in DrRacket, it will draw arrows to every other instance of that variable in your program. And I guess you could technically argue in IDEs and editors, a lot of them when you select a whole word,
Starting point is 00:17:38 it will highlight every other instance of that as well. But you don't get arrows. If something is not on your monitor, you're not going to see like an arrow that's pointing towards it and then there's a whole other like you know we can do a whole other podcast on how basically pandas and rapids kudief is basically just uh pivot tables like pivot tables in excel are groups yeah yeah explain what pivot tables are for those who are not Excel wizards. So basically, a pivot table, you select a table of data where you have columns and rows. So imagine like in your rows, you have a country. And, you know, Canada, America, whatever. It's 200 plus countries in the world.
Starting point is 00:18:20 You got them all. And then in the columns is a bunch of data. So the first column is population. The second column is GDP, whatever. You go on and list a bunch of statistics about each of the countries. You highlight that whole table. You go to, you know, insert pivot table and you'll click next, next, next. And then you're given like an empty window and you can, and then it gives you like all of the options from your columns and your rows that you can drag and drop onto this empty table. And it automatically is going to do like group buys and reductions. So basically, if say you wanted to know in one of the columns, it might say the
Starting point is 00:18:56 continent that your country is in. So say you want to know the total population in each continent, you can do basically a group by continent. So it's going to group all of the countries together. And then you just specify what's the reduction that you want to do. So you can just do a sum reduction on the population. Like this is the essence of Pandas and, uh, Rapids QDF and like Excel did it first. And before Excel did it, I'm actually not sure. I'm pretty sure SQL came before Excel and Excel Excel pivot tables were just replicating what SQL joins and group bys. That's where I think they all originated. Interesting fact, in my meetup on Monday, the individual who named group by was there.
Starting point is 00:19:40 And when I said something about group by, he was like, oh, fun fact, I named that algorithm. And I was like, what? Anyways, so I just, I think it's just, and that's the thing is, so one of the things that on TalkPython to me, the host says, he'll be like, oh yeah, you know, and then in Python, once you've ported your app, you get access to like NumPy and Pandas. Those things are just like, they're just like replications of what you could do previously in Excel. And so anyways, I'll stop my ram my time doing benchmarks and, um, and benchmarking of like lots of low, lots of very low level niche metrics. Like I spent a lot of time working on, uh, uh, task runtime. So I spent a lot of time benchmarking things like, um, user space,
Starting point is 00:20:39 context, switching overhead, um, and latencies associated with, uh with task creation, et cetera. And then later I spent a lot of time doing parameter sweeps and tuning of like, you know, what's the right chunk size to use for this algorithm. And I actually, these days we do a lot of that in the libraries that we work with too, that we have, there's a bunch of different accesses that we have to tune all these libraries on and um you just get an explosion of data very quickly so like excel is ideal for um you know like simple benchmarking but once it gets more complex you start thinking oh maybe like i should go should go and write some programs for this. And I spent some period of time writing a series of terrible Python scripts to do this. I do not know how to write good Python.
Starting point is 00:21:35 So I just wrote bad hacky Python that parsed CSV and spit out more CSV. And I'm a big statistics purist when it comes to uh computer benchmarks if you show me like a benchmark graph and you don't have you know error bars and you don't you don't mention anything about you know your experimental uncertainty um then i'm just like your data is invalid like for all for all i know there like, you know, 50% relative error here and none of these are meaningful. So I always like, I wanted like my little stats package in my Python scripts. And, you know, when I would go and spend two months to get it doing just what I wanted, yeah, like it was pretty great. And then like if I needed to repeat the experiment, it was pretty great.
Starting point is 00:22:22 And it was nice to manage all the data in text files and just be able to run Python scripts. But boy, Excel is just like, if you just need to go do something in like five or 10 minutes, Excel is just so much quicker. So one of my rules of thumb for any benchmarking system is it has to output in CSV. And the reason for that is that if you output your data in CSV in a sane fashion, you can copy and paste the data into Excel and it will automatically text to columns without any other work. And so that capability of being able to do a copy and a paste from your raw output to Excel, and I don't mean like copy, paste into Excel,
Starting point is 00:23:15 and then you have to run text to columns. I mean, you should format your output from a benchmark in such a way that when you paste it into Excel, it is in a sane format there. That is just like so useful because then you can go into Excel and you can set up whatever graphs and metrics, like derived metrics that you want, whatever analysis you want to do. And then the next time when you need to update your data, you can just copy from the output of the script and just paste it right in. You don't even have to mess around with setting up. Excel does have support for external data sources. So you can set that up too. So that like you have some, some cells in your Excel sheet
Starting point is 00:24:05 that will be read in from some external files. So you can set that up if you want to get fancy, but for a lot of people, you know, that's too much work, but just copying and pasting in is so simple. And so that then it gives you a nice way to, to like get, get, get some benchmark, you know, graphs up and running really quickly and then be able to update them later. Yeah. I think like CSV files, you can just open natively in Excel. You don't even need to copy and paste them. And yeah, like even text to column.
Starting point is 00:24:41 But if, but if you're going to, if the idea is that is that, like, I'm not just going to have the CSV data, but, like, I want to write some... I want to put a graph into the sheet, or I want to write some, you know, some formulas that use that data. Right, yeah. Yeah, and, yeah, text to column. There's another, like, just extremely useful tool. Oh, yeah.
Starting point is 00:25:02 Just for general things. Like, I remember one of the first years i competed in advent of code which i think we've mentioned on a previous uh episode which is just the contest during december problem a day um where you have to solve solve something in whatever programming language you want and like half of the time it's parsing and like i think literally for like it might have even been this year i just solved it in excel because it was it was just like trimming white space and stuff and and the text a column for those that you don't know you basically when you copy and paste something in
Starting point is 00:25:34 uh if it doesn't automatically go to you know it's not just comma delimited it's you know whatever delimited it'll just paste into a single column you just hit you know alt de which is like the old school you know 2003 shortcut and thank you which is like the old school, you know, 2003 shortcut. And thank you so much, Microsoft. Cause that's the thing. They introduced the ribbon and a bunch of new shortcuts for everything, but they, they grandfathered in, is that an inclusive term? Grandfathered? I'm not sure. No, it's not. It is.
Starting point is 00:26:00 Whatever the inclusive term is for keeping something around, even though they had reinvented it. They kept all the old shortcuts from 2003, which is what I had, like, so I still to this day know, like, you know, I don't know them off, like, it's muscle memory, but they kept them all in, which is just, it's so, I'm so thankful. It's just an amazing thing. And, yeah, yeah, so you're'm so thankful. It's just an amazing thing. And yeah, yeah.
Starting point is 00:26:25 So you're going to hear me say, is that inclusive? And then I'm going to cut in myself saying, turns out it's not. Stay tuned for next time. But back to Excel. And then we'll loop back to this point now. Have you seen, have you heard about the guy who paints who like does paintings in Excel?
Starting point is 00:26:50 Yeah, yeah. So we, I will link I'm not sure if it's actually the same thing. There might be multiple Excel artists. All I know is that there's a talk that is given. There's actually, there was an amazing stay on topic. There's a talk that is given there's actually there was an amazing stay on topic there's a talk that uh there's a talk that's been given that demonstrates the power of like yeah
Starting point is 00:27:14 showing some image um in excel and then i was i've heard of managing up and i've heard of managing down but self-managing? Oh, no, don't go off on that tangent, Connor. That'd be bad. I've not heard that before. Well, it's just because in the midst of talking about this one Excel presentation that is, you know, a conference talk or whatever, it's 15 minutes, I thought about another one that's even more exciting. But the problem about that one is it was internally given at Amazon. And, you know, I won't go into details,
Starting point is 00:27:47 but basically it was a presentation on machine learning and convolutional neural networks, all given like from the perspective of like, you know, a 10 by 10 grid image in an Excel sheet. And it had some like animations and it was just, it was wonderful.
Starting point is 00:28:04 Like, you know, Facebook has a really good, I'll try and it was just, it was wonderful. Like, you know, Facebook has a really good, I'll try and get a link to it of like the basics of convolutional neural nets and it shows like, you know, trying to get image recognition for a C versus a D and it just shows a three by three grid. A C is, you know, it's got, what is that? Six of the nine colored,
Starting point is 00:28:24 or no, seven of the nine colored and Or no, seven of the nine colored, and a D has eight of the nine squares colored, all except for the middle one. And basically you end up with a mask that's just a one in the one cell that's different for Cs and Ds, and that's how you, like, distinguish the difference. But, like, the Excel presentation that I saw was like that, except it sort of went into more detail,
Starting point is 00:28:43 and it was just fantastic. It was a really, really good internal talk that I saw. And yeah, I'll try and find all the Excel presentations that I've seen in the past. But yes, the artist one is very... Yeah, I love Excel. I love Excel. I love APL, and I love Excel.
Starting point is 00:29:04 And I failed linear algebra. So what does that say about me? I don't know. All right. So the guy who paints with Excel. So we should explain the basic concept for people that have not heard of this before. You go ahead, man. You're the Excel wizard.
Starting point is 00:29:23 No, I've spent too much time in the Excel episode. Basically, there's a guy. If I recall, it was like an older guy who makes paintings in Excel by like coloring, individually coloring a bunch of small cells. And then you like you zoom out and it looks like a painting. And like this is his process. I don't remember why he came to this. Doesn't seem super efficient to me,
Starting point is 00:29:48 but hey, to each their own. I mean, I do a lot of weird like tech things too. Like, you know, like there's not a week that goes by that somebody on my team doesn't tell me like, why are you doing it that way? Why aren't you like using this Vim shortcut or whatever? And I'm like, because I'm old and cranky. I'm not actually old.
Starting point is 00:30:04 I am kind of cranky but that's uh that's kind of me i'm i'm bad at tech it's a wonderful piece of software um i'm sure i've even forgotten like 50 of what makes it um oh yeah that's i i totally forgot perfect um there's so many algorithms so uh inner product, aka transform reduced, that's some product equals some product in Excel. The classic stencil example from Thrust. So this is better known as projections in C++20 ranges where basically you're given... So the easiest example is copy if. So copy if, typically you provided a range and a unary predicate and you want to copy all the even elements. But what if you want to
Starting point is 00:30:54 copy elements from one range based on the predicate being applied to another range? In thrust, we call that a stencil. In C++ 20 ranges, we call that a projection. That came from Excel. It probably didn't come from Excel, but the first time I discovered it was in Excel, and it's the sum if or insert algorithm underscore if, where you basically give it two ranges of predicate, and then you're summing one range based on some other range. I'll stop there, but the point is there's so many algorithms that exist in programming languages. They're all there in Excel too. And like half the time when I discover an algorithm, I'm like, oh yeah, that's that algorithm from Excel. Because that's where I grew up.
Starting point is 00:31:32 I grew up in Excel 2003. I probably written like 10,000, 20,000 lines. Oh yeah, and I totally forgot to mention I have like Excel spreadsheets for everything. Yeah, and there is one. I was about to say there's a great spreadsheets for everything yeah and and there there is one i was about to say there's a great teaser here for a future episode we've given this teaser before i think uh connor has this spreadsheet that i don't even know how to describe it it's like a catalog of connor's pursuit of knowledge oh yeah yeah i was wondering which one you're talking about that tells you a lot about connor he just has all of his crucial aspects of his life
Starting point is 00:32:13 it's has some spreadsheet so here's what's perfect i have i almost always have this spreadsheet open um and it's called portfolio of words and this. And this, this, this, this, I'm so excited I can't even speak. This Excel spreadsheet, it started back in 2011, the same time when I was at Manulife slash John Hancock. And I'd fallen into the Excel matrix, but then I also had fallen into the world of finance and was like, oh my goodness, there's so much to learn and so I started reading and it
Starting point is 00:32:46 was at that point that I became a voracious reader and I you know I started reading the big short by Michael Lewis and a bunch of other books you know the essays by Warren Buffett but there was a ton of words that I I just like you can read a book and you'll come across a word and you understand the sentence but if someone asks you to to define one of the words from that sentence, you wouldn't actually be able to define it. What I started doing is while I would read, even if I was on the subway, I'd enter it into my phone on a little notepad and then copy them over to the Excel spreadsheet later.
Starting point is 00:33:22 I would keep a list of every single word that I wasn't able to explicitly define. And I've come across some amazing words. One of my favorite words is perspicacious. It means keenly observant. I absolutely love that word. I was hoping we were going to get to your favorite word. And that's, I have to, that one and then ephemeral.
Starting point is 00:33:43 I love ephemeral too. It means something that is fleeting. It only lasts for, you know, a limited amount of time. You know what word I've really been liking lately is liminal and in particular liminal space. I've never even heard that before. It like, liminal is like, sort of means like transitionary and a liminal space is like a space in between some other
Starting point is 00:34:06 space so like it's like a transitionary space or a transitionary time interesting yeah that's a nice word how do you spell that um l-i-m-i-n-a-l relating to a transitional or initial stage of a process. Damn, so that's, I'm going to have to add it to my sheet. But see, so this is the thing. So it started, this document just started as a list of words. And then I added a tab called books. And it started, and then I started keeping track of the date that I finished a book, all of the books that I wanted to read.
Starting point is 00:34:45 And so there's like literally like six different reading lists. One of them's, most of them are finance ones. One of them's like the Financial Times Book of the Year Award. To this date, I've read, since 2011, I've read 164 books. And then from there, when I started watching cpp con videos i started adding tabs for that and then i started setting goals anyways so the whole thing's exploded this this spreadsheet is like connor's like one so we will do a future episode where connor will share his screen with me and we will review this spreadsheet in its entirety and i will ask questions and it will be
Starting point is 00:35:23 a great episode yeah there's a couple embarrassing i mean i think uh i think the 50 shades of gray books they're they're in there um so there's there's some uh i'm happy to share it though i mean sometimes when i'm uh that that that was not an optional thing i was i was saying what's gonna happen not asking permission oh look i have an apl, I have an APL. Interesting. I have an APL tab. But that was set up in back of December 2019.
Starting point is 00:35:51 How many sheets does Portfolio of Words have now? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16. How do I? 17. But a lot of them, a lot of them I never look at. Like, well, yeah, one of them is, it's a sheet called witticisms, which is just little like two word or three word phrases that i would come across in books that i just thought were fantastic and honestly i haven't looked at this in maybe a couple years um do you have a tab for bryce quotes uh i do not um i do have a i do have a file called quotes that i believe there's a couple of quotes from you in um but uh yeah like so in witticisms the first one is infelicitous
Starting point is 00:36:47 remark um number four is intellectual pioneer six is a jocular remark um eight is palpable falsity that's fantastic um ten is mechanistic objectivity whoo that is just rolls off the tongue. A shrewd observer and a judicious writer. Yeah, so these are great. And then I think, oh yeah, warm-up words. And so I have another tab. So I used to, this is getting way off in the weeds. I used to do professional theater. We never do that.
Starting point is 00:37:17 We never get off in the weeds. Anyway, tell us about your acting days. Well, that'll be a whole other episode. But the point is that you learn phrases that are difficult to pronounce. And the one that everyone has heard of, or I would assume a lot of people have heard of, maybe not everyone,
Starting point is 00:37:32 is tip of the tongue, the teeth, the lips. So that's what after say... Never heard of it before. Really? Never heard of it before. And my father's a theater director. Yeah, you're from New York, bro. I'm surprised you haven't seen that.
Starting point is 00:37:44 I'm a theater director. Yeah. Yeah, tip of the tongue, the teeth teeth the lips so i i had heard that one before um the one that i learned from my theater days was unique new york um to try and say that like five times fast like unique new york unique new york unique new york you try now bryce this will be fun new york new york unique new york unique new york unique new york unique yeah yeah it's hard well it's already well established that i am bad at pronouncing things that's well it's when i started doing it you get like one word into it and then you fumble you really have to you really have to practice it and so i set up this tab that when i came across words that i had trouble pronouncing uh i would
Starting point is 00:38:22 just add it so like the first three are interdisciplinary, sole proprietorship, and hierarchical. And then number 13 is unlexicographically. When I first read that word, I was like, WTF, what is this? One of the ones that's tough for me is amicable. And there's a few others that are sort of like that. Amicable? Yeah.
Starting point is 00:38:42 You have trouble with amicable? Yeah. There's a couple others in that family. Amicable? Yeah. You have trouble with amicable? Yeah. There's a couple others in that family. There's another one that I'm thinking of that I have, there's another one that I have trouble with that I can't remember what the word is because I'm old. So we've established. Yeah, lexicographer.
Starting point is 00:39:00 Yeah, I don't even know if that's lexicographer. I think I'm pronouncing that right. Oh, then yeah. And then sometimes saying words side by side. So like commensurate and commensurable. And then commensurately and commensurably. And I think I may be messing that up. But yeah, these are great. Excel. So we didn't even get, I was going to mention, and we'll end here because your girlfriend's going to kill you. She's not back yet um but she's gonna come in and i'm gonna be well excel is amazing and she's gonna be like what's going on um but so uh two different programs that i wrote that were extremely useful um over time um was one was a study tool when I was studying for my actuarial exams.
Starting point is 00:39:45 And Excel is so amazing because in the VBA code, you can execute shell scripts. And so basically what I did is I had like all of these questions that were loaded in from a study guide. And they would have like an abbreviated answer and then link to a page in a PDF for like the full-blown context to review. And so what I did is I got all these questions into an Excel spreadsheet and I set up some macro buttons. And so it would just randomly generate like a pop-up window with a question. And then I would answer it myself in my head. And then you could click a button in the pop-up window called answer and that would execute a shell script, which would use the Sumatra PDF,
Starting point is 00:40:26 which is only available on Windows. It's not available on Linux. And it had like, if you opened it up on the command line, you could pass it like a flag with a page number. And so I would click this button for Answer and it would launch me the PDF file to the exact page with the answer on it. And it was freaking fantastic.
Starting point is 00:40:46 It was fantastic. And I was just like, when people would see me and they're like, what are you doing? This is like these PDFs popping up and shutting down. And it was just the best. And then I also built a study tool when I was learning Chinese that had so many different modes. Cause that was the thing.
Starting point is 00:41:02 You just, you'd put like the word in one column and then the Chinese character, the pinyin, which is the phonetic translation, the definition. And then I had modes where I was just practicing Chinese reading, where I was practicing the pinyin, the pronunciation. And the beauty of building these tools is that you could gamify it. So you could set up a tab or a little graph that while you're generating these pop-up windows, so like the word, you know, woe shows up on the screen in the Chinese character, which means I in Chinese. And so then you can say woe, which is – it has the third tone, which is like a little up and down.
Starting point is 00:41:42 And so you have little like checkbox check boxes for what you got right. Did you pronounce it right? Did you get the actual word right? Maybe you can't recognize it. And then over time, in the little graph, it'll show you what your percentage of right and wrong is. And then you can set up color highlighting that if you're above 80%, you have a nice little green box.
Starting point is 00:42:02 And if you're below 80%, you have a yellow box. And if you're below 50%, you have a nice little green box. And if you're below 80%, you have like a yellow box. And if you're below 50%, you have like a red highlighted box. It's fantastic. You look bored, Bryce, but I tell you, it's the best. It's the best. Connor, I am never bored when you're excited. But yeah, that's just a couple of the spreadsheets. And the same way that I feel about all programming languages and that we should be kind to whatever insert programming language,
Starting point is 00:42:35 you know, Perl. Everyone loves to hate on Perl. And I love Perl. The little I know about Perl, I love it. When I worked at LSU, there was this professor, Steve Brandt, was one of the guys I worked with, and he was a PL guy. You and him would get along very well. Yeah, you and him would get along, like, troublingly well.
Starting point is 00:42:58 But he knew how to write Pearl. And if you wanted a script that did some like you know something like you know some some some typical lennox hackery thing like you could just send steve an email roughly describing what you'd want and like five minutes later a like pearl script with like no white space and like as few lines as possible would be sent back to you and you wouldn't know how it would work but it would do exactly what you wanted yeah that's awesome uh i've heard yeah i've heard pearl was it i heard it used to be like an absolutely loved language back in the day when it first came out.
Starting point is 00:43:45 We should do an episode on it sometime because it used to be really popular. I think it has a few really good features going for it, and then it's become a lot less popular recently. So it'd be interesting to do an episode on the history of Perl. Perl has one of the properties, and we're going to do an episode on Bash someday. Perl and Bash have a similar property, which I really like, which is one of the reasons why I'm such a big fan of Bash is Bash makes it very easy to invoke other processes and to like chain them together.
Starting point is 00:44:17 And as does Perl. Like if you've ever done any scripting in Python, you know, Python's great, but it is a bit more verbose and a bit more work to construct, like to cobble together a task by invoking a bunch of other programs in Python. You have to go through a more verbose, you know, subprocess API, whereas in both Bash and Perl, the idea of invoking other tools and processes is a much more inherent part of the language. You know what we should do? We should try and get Larry Wall. Let's try and get the creator of Perl to come on our podcast. We'll have Sean Parent on first, and then we'll have Larry Wall wall on and uh sean that's this is your this is
Starting point is 00:45:05 your notice that uh you were going to be the first guest on our podcast we're not sure when but uh we can't we can't not have him as our first guest on because that just it wouldn't be right it's like the planets would be misaligned and um something it can be like sean then tony then larry oh yeah also yeah do you want to while we're wrapping up, there was a lot of discussion last week on the What Goes in a Standard Library episode. Anything you'd like to say to the folks at large? I will say I have no edits to my stance, and I will be giving a talk at C++ Now called What Belongs in the C++ Standard Library.
Starting point is 00:45:47 And I expect that talk to be exactly in line with my tweets. That's where we'll call it. Thanks for listening. We hope you have a great day and we'll see you in the next episode.

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