Embedded - 505: Potato in a Number Field

Episode Date: July 10, 2025

We spoke with Peter Griffin about Jumperless Breadboards, no-install GUI development, Excel, and puppies. Jumperless Breadboard at CrowdSupply Colab GUI for Jumperless Breadboard Website GUI for ...Jumperless Breadboard Excel GUI for Jumperless Breadboard (though it has some USB DTR issues as noted in the show: Jumperless_V5_GUI (Shared).xlsx. Note Microsoft Datastreamer is a serial interface to Excel  Teardown 2025 will have talks up soon! Cory Doctorow wrote about ‘Enshittification’ in Wired. We didn’t bleep the word for this episode since it’s becoming an essential part of tech criticism. The Flag of Maryland. You know what you did. Joel Spolsky’s You Suck at Excel Miso Come Here (Instagram, TikTok) shows puppy communication buttons. Transcript Mouser’s Empowering Innovation Together hub dives into all sorts of topics like renewable energy, energy-efficient systems, and sustainable design. Whether you’re looking for the latest in clean tech trends or just need some inspiration, you’ll find articles, videos, and podcasts all geared toward engineers who want to make a difference. Head over to Mouser.com/empowering-innovation and check out their clean tech content.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded. I am Alicia White here with Christopher White. Our guest this week is Peter Griffin. We're going to talk about communicating with dogs, pivoting tables, and making non-traditional GUIs. Or we might talk about, you know, sunshine and flowers. All right. Hello, Peter. Welcome again. Hello. Good to be back on. Talk to you guys again. Could you tell us about yourself as if we met at Supercon? Let's see. I, oh gosh, the at Supercon one, I'm tempted to try and recall what I've actually said to people.
Starting point is 00:00:48 Usually it's something along the lines of I do programming or consulting for my day job, but I'm an embedded enthusiast and I'm excited to be at Supergon or Teardown to learn more from people who do this more seriously. Did you go to the recent turnout? I did. It was awesome. Yeah. It was even bigger than last year.
Starting point is 00:01:13 They had two stores that got kind of taken over in the mall to host all of the spaces, and it was absolutely incredible. Was was there anything in particular from that that you were curious about or had heard about? I don't think we've talked to anybody about this year's Teardown, have we? No, I was gonna actually turn it back on him. Is there anything particular that you saw that was- Pretend we are completely ignorant
Starting point is 00:01:39 of this year's Teardown. I mean, I saw some Instagram posts, but- I saw very little. What was the best part? Oh gosh, the saw some Instagram posts. I saw very little. What was the best part? Oh, gosh. The whole thing, honestly, like start to finish, that is a packed weekend. The keynote speaker was Corey Devereux, who I didn't know about beforehand. He gave a talk about, and this is a wonderful word, inshitification, right?
Starting point is 00:02:02 Which I was kind of familiar with the process, but like he laid it out in exquisite detail of like how it is that companies acquire users, lock them in, acquire businesses, lock them in, and then just squeeze them for everything they're worth. It's kind of disturbing to be honest, but it was also eye-opening. There were pieces of that that I was already aware of, but the extent and exact causes and remedies, it was nice for someone to kind of put all of those pieces together in a coherent story. So that was a really interesting keynote. There were a lot of interesting talks. A lot of people have been on the embedded podcast before.
Starting point is 00:02:46 I couldn't see all of them. Oh, I also did a workshop there. That was, I put together a Jumperless graphical user interface workshop. And I was really worried before I left for the conference because I looked and only two people had signed up. And so fortunately, Kevin and I were able to kind of talk this up throughout the conference because I looked and only two people had signed up. And so, fortunately, Kevin and I were able to kind of talk this up throughout the conference. Kevin is the guy who actually made the jumperless hardware that I was using in the workshop and he was kind enough to bring enough for everyone to play with. But yeah, we were able to get a
Starting point is 00:03:19 full house by the time we actually had the workshop. So that was quite a nice surprise. What's Kevin's full name? I am going to mangle his last name if I have to guess. I should look that up, but I'm also not 100% sure how to pronounce it. Look at this part. Yeah, maybe... We'll put it in the show notes when we get there. We'll put it in the show notes when we get there. So Jumperless, for people who haven't heard of it, it's a breadboard, right? That's software configurable.
Starting point is 00:03:53 And so you can place your, I mean, it says what it does on the tin, but you can place your components on the board and then using software, you route the rows and columns of the breadboard to other rows and columns. Is that right? That's exactly right. I got interested in it after I think Supercon last year. I had a project where I wanted to work with parallel flash memory and it's just a lot of rows to wire up. And so I started being like, okay, I got the original version jumper list from the previous year's Teardown during one of the workshops that Kevin did and was playing with it and was like, okay, this would be the perfect project to do because there's just lots of
Starting point is 00:04:41 things to wire up. And so that kind of got me started. And the more I played with it, the more I wanted to play with it. It's a really cool device. There's not, especially the new one, there's not just one way to interact with it. So you can interact with it with software, but it also comes with like a probe, which is like a needle with a button on it. You can click the button and then just tap the different. Rows and columns connected. And so you don't actually need to hook it up to a computer.
Starting point is 00:05:09 I just do that because I'm silly and I like graphical uses, but it works. Yeah. Completely standalone. Um, there's also like a scroll wheel so you can like, it's got a single click. So you can either click it once or click and hold for like a second to do the. The alternate function, but then you can scroll back it once or click and hold for like a second to do the alternate function. But then you can scroll back and forth to also set rows and columns. Like he's tried to make all of the menus work with all of the interfaces, which is an impressive
Starting point is 00:05:34 challenge given how different some of these interfaces are. But yeah, it's a really cool device. I had a lot of fun playing with it, building stuff on top of it for the workshop. And then seeing people use it was also kind of eyeopening because it was everything from what is an LED, what is a breadboard? How do I plug it in? Like just excitement, getting the first LED to light to someone was trying to debug something else and trying to interface with it over like bus lines.
Starting point is 00:06:05 And I was, I was just like, that's okay. That's beyond what I had imagined people trying to do with it in the workshop. But there was even, there was another guy who I met at the conference. I think his name was Brett. He was a web developer and during the workshop from an e-tablet, he was able to transform the GUI that I had built from like a Colab notebook, which is like a hosted Python notebook, to a completely standalone website. So you can just go to a website and it'll access your device over serial and give you a user interface, which was like mind blowing to me. So what was the, the GUI that you built?
Starting point is 00:06:46 Was this a way to talk to Jumperless from, from Jupiter notebooks or? Yeah, that's, that's exactly it. It's, um, it's a little Rube Goldberg-y in how it works, but it's a Python notebook that generates JavaScript and it injects the JavaScript into your browser. Because a Colab notebook hosted by Google, it's running on Google server somewhere. And Google server, of course, doesn't have access to your USB port. And so that's why you have to jump through these.
Starting point is 00:07:15 Well you hope it doesn't have access to your USB port. So you jump through these hoops of like injecting JavaScript into the browser and then it's your browser that's actually talking to the device. And so it generates a little terminal window, kind of like the Arduino serial IDE, or not IDE, what do they call it? Serial monitor, I think it's called. And then I added some buttons on the side that do a lot of the basic things in the menu. And you can always type those things. But some of the cool ones are like, instead of typing,
Starting point is 00:07:47 I forget what the command is to adjust the voltage. I just made it a little slider bar. So you can just click and drag to adjust the voltage on the two different rails. Okay, I'm sorry. I wandered off and got distracted with the jumperless breadboard because that was, I mean, you said jumperless breadboard and my brain filled in solderless breadboard, those white things that you use
Starting point is 00:08:15 the wires and you wire it together. The jumpers. With the jumpers, but. That's a jumper-full breadboard. Right. And I know how to use those and they're irritating because you end up in the wrong place. For one thing, the jumpers don't always sit there. Various components pins don't like the... They never line up.
Starting point is 00:08:36 Well, the holes are sometimes grabby for some things and not grabby for other things. That's a technical explanation. Grabby. Yeah. And you can ruin them. You can ruin them. You can ruin the breadboards by putting in ICs that have too wide. Yes. Yes, go on.
Starting point is 00:08:52 Yeah, I think of them as not disposable but semi-disposable because they only last for a few projects before you have to just let the project sit there forever. So this, this jumperless thing, it's looking at it, it's got LEDs and I don't really understand where you put the components, but. Well, there's a, if you go to that page, there's one component, at least a couple of components populated on the. Crowd supply page. On the YouTube screenshot. But it looks just like a normal breadboard.
Starting point is 00:09:29 Yeah. And then you have LEDs that tell you which rows are connected together and which rows are connected to which columns. And it's all very configurable and slightly terrifying. What about it do you find terrifying? Like, I'm curious. Okay, so if something can be done wrong, I will do it wrong.
Starting point is 00:09:52 Let's just be really clear with that. It's sort of my superpower. It's great because when there's hardware on my desk, it's 400 times more likely to blow up on my desk than in the field. Have you considered that maybe people are just sending you hardware as little as pranks that are prone to? Yes, but... Sorry.
Starting point is 00:10:16 I know the feeling actually. It's the how do I not cross wire the expensive hardware and cook the whole board, right? You're saying if the ones you have to use jumper wires for are disposable, like if you accidentally short it and you melt the plastic, OK, big deal. You throw it out and you do a new one. But like if you, you know, somehow short jumperless, like that's more of a problem. I was worried about that, too, for a while. I found out that there's actually very clever software that checks whether or not you're going to connect like your voltage rail directly
Starting point is 00:10:49 to ground and just won't make the connection. So you at least can't directly short the board with just itself. Now there's nothing that really stops you from plugging in a wire because it is a red board and shorting it to ground the old-fashioned way. But at the very least, it does have some smarts in that. And the other helpful factor, and this is a blessing and a curse, it was very helpful at the workshop, is the way all of these connections are formed are with crosspoint switches on the back of the board,
Starting point is 00:11:20 and each junction through a crosspoint switch adds about 100, 150 ohms of resistance. So the good news is you can literally just plug in an LED and give it 3 volts or 5 volts and it will turn on and it will blow out. But if you're doing like really sensitive things where you're trying to like use the fact that things have very specific resistances, your results can get skewed by like, oh, it went through two cross point switches instead of just one. And so now it's 300 ohms because of routing. So the good news is you're less likely to blow it up. It's pretty robust. So far I haven't managed to blow up mine and I've, I don't know. I wouldn't say that I've been the most careful breadboarder. I've definitely cooked some things on a breadboard before.
Starting point is 00:12:10 So I feel like I should say at this point, challenge accepted. Fair enough. It does look really interesting. Okay. So, so what prompted you to do the Jupiter Notebook thing? Well, it started out, there was kind of a, this is a journey. So what prompted me to do the Jupiter Notebook was what started out as a joke kind of for a different project.
Starting point is 00:12:38 So going back to what got me started on Jumperless, I was trying to program some flash memory for driving LEDs. And the thing that was generating the binary for what should go in the flash memory, I was using Excel because I could visualize the different colors with some conditional formatting. So I could make sure that the patterns were right. And that's all well and good. But now I want to get my data from Excel to the flash memory. And I found out, oh, it has a serial communication thing. And I was like, well, Jumperless has serial communication.
Starting point is 00:13:06 Yeah. So yes, Excel has serial communication. And I went on this whole thing to try and connect the two because I was like, well, if I could just pipe my data from Excel directly into the flash chip, all would be good. And then I wouldn't have to deal with another tool and deal with exporting it. And I could just, you know, make these two things work together. And I started doing that and, um, I did get the flashing to work from Excel,
Starting point is 00:13:27 but at the time I couldn't use Jumperless because I was making too many connections and the routing wasn't optimized yet. I haven't circled back to that project. I got distracted with once I got Excel speaking serial well enough, I decided that I would just build a user interface for Jumperless in Excel. Because one of this and this this kind of started as a joke, but then I was like, actually, it's kind of not a joke. It's actually kind of cool.
Starting point is 00:13:52 There's there's two things you can do with it that you can't do with like if you just wrote a user interface in a Python script and like ran it locally. The first, well, okay, if you ran it locally, you could use it offline. But one of the cool things that's new is there aren't a lot of offline ways to interact with Jumperless. So if I could get the Excel thing working, it would be one of the first ones that worked like you could use it in the field from your laptop.
Starting point is 00:14:19 The second thing you can do, which is bananas, is it works online because the only way that you get serial in Excel is with the Microsoft Office 365 version, the subscription version, which is obnoxious, but you can do it without using macros. And if you do it without using macros, you use their first party plugin called Data Streamer. The crazy thing you can do is share an Excel file on OneDrive or SharePoint. It's the same backend. They just have different front ends
Starting point is 00:14:49 for like business and users. But you put your Excel file on OneDrive, you share it with someone else, and you leave your computer up connected to Jumperless. Now they can access the Excel file and make changes, and it will send data to Jumperless. And the clever part is you get a return trip of data from Jumperless. And the clever part is you get a return trip of data from Jumperless saying, oh, I colored this row this color
Starting point is 00:15:09 and this other row this color. And then you can visualize it in Excel. And because it's a shared file, they get to see the colors. So without having any access to the physical hardware, someone can literally rewire a breadboard remotely, like from anywhere in the world. As a hardware in the loop test, that would be fantastic. Yes! Yes! That was kind of my like brainwave moment where this reached, I've heard it described as the Maryland point where the Maryland's flag is just an absolute cluster duck. And
Starting point is 00:15:42 it's so bad that it wraps around to the other side and becomes good again. I feel like the same thing happened. I just looked it up. I've never seen it before. What is looks like a test pattern? It looks like a test pattern where someone applied distortion. It's absolutely bananas. The flag of the state of Maryland in the United States. Wow, that is really, really, and I'm using this word correctly, vexing. If you're listening along, you must look this up because it is just, it is special. That is the vexing of vexology. It's like a bee and a royal guard smashed into each other. I know bees don't fly well, but I would have thought they'd do better than that. Okay.
Starting point is 00:16:26 We'll link that in the show notes. Wow, that was hideous. Okay. Sorry, Maryland. Well, that's kind of what the Excel graphical user interface became. It started kind of as a joke, and then when I learned more about it, it kind of wrapped around from being like terrible and an awful joke to being like, wait, that's actually kind of interesting and useful in these unexpected ways. So your question was about how did I get to Colab? And this came from someone mentioned like, oh, I wonder if you could do that with just your browser. And I did some quick Googling just to see if anyone had been able to do this with Colab, because then you wouldn't have to install anything.
Starting point is 00:17:12 I was trying to find a platform and I think I was doing this before I submitted my teardown talk, because I know it was included in the, well, it wasn't it. I submitted a talk. They said yes to a workshop, so I did that instead. But that's a different story. So I was trying to find something that would work for Mac and Linux users because the frustrating thing about Excel is you have to have this very particular version of Excel for this trick to work. So I was trying to find something more general and I was like, okay, if it runs out of Chrome, it runs on all operating systems, including Chromebooks. So that's kind of what drove me
Starting point is 00:17:50 to try it. I found an example code. I think it was, I want to say it was by ARM, but it was basically building, flashing, and communicating with an RP2040 all from a Colab notebook, which is absolutely mind-boggling when you think about it because then they were running machine learning on top of the sensor data that was coming back from the flash device. And so it was like this whole, as full stack as you can get basically, all out of something that you didn't have to install. And I went and stole a tiny little piece of that, which was their terminal interface, and then sort of built some UI buttons on top of their terminal interface.
Starting point is 00:18:34 I mean, the terminal interface is great. I have a lot of things that interact with the terminal interface that it'd be nice to have Python co-lab for so that I could share with more of my team. That's neat. Yeah. So that's, well, okay. If you figure out how to do that, let me know. I got a little stuck and I spent a little bit of trying to pipe data back from the JavaScript that generates the UI back into the Python coding environment. And I couldn't figure out how to do it, but I think that's mostly due to the fact that I don't know JavaScript and was just twiddling examples to extend what I had. Now, if you're
Starting point is 00:19:18 even slightly more competent than me, there's a good chance you'll be able to do that, but at least they're cohabitating in the same environment. So in theory, you could like copy paste your data back out. And now a word from our sponsor, Mouser Electronics. If you're interested in the intersection of neuroscience and engineering, you might want to check out what Mouser Electronics is doing with brain computercomputer interfaces. It's all about how you can control machines with your mind, and it's one of the coolest areas of innovation right now. Mouser's Empowering Innovation Together site has great content on brain-controlled interfaces,
Starting point is 00:20:01 from videos to in-depth articles and podcasts that break down the tech. If this piques your curiosity, head over to mouser.com slash empowering innovation and explore what's happening with BCI and other exciting developments in the world of design and engineering. Okay, I have more questions about Teardown. I have more questions about actually a lot of things now. But we didn't do lightning round. Okay. This one's going to be a little special.
Starting point is 00:20:33 Because it's late? No, no. Because I, while we have our normal lightning round questions, and there were a good section of them, I have a specific set that I want to power through pretty quickly. Oh my goodness. That just appeared in my edit. Okay, I see it now. Knowing nothing about the project and answering quickly, would you rather use Excel or Lotus
Starting point is 00:21:00 123? Excel. Would you rather use Excel or Python Colab? Excel? Excel or Java? Excel. Excel or Rust? Excel. Excel or a banana? Oh Excel. Excel or a sword? I get to use a sword? A sword. Excel or a puppy? Puppy. Okay, I think we found the limits here. Yes. Okay. Violence and cuteness. Well, you also didn't ask Excel or SQL. Well, who would? Or Excel or Google spreadsheet. I missed that one too. Oh, actually, that's an interesting one because they're not perfect. I mean, because they're not perfect substitutes.
Starting point is 00:21:46 I mean, they're obviously not perfect substitutes, but there's some circumstances where I would say Google Sheets over Excel, but not all, which surprises even me. I tend to reach for Google Sheets when I'm doing anything that's even slightly casual, just because I just need the spreadsheet. I don't need fancy and I need it to be shareable. But I'm good at Excel. But then I found out that Google spreadsheet's charts are different and different in some really good ways.
Starting point is 00:22:15 Oh really? Yes, yes they are. Irritating in some ways, but also really good in some ways. But also not terrible in others. I think one of my favorite example differences is if you want to make a link using a formula, like a hyperlink, so that someone can click it and go to a website, in Excel you cannot make a link
Starting point is 00:22:37 longer than 255 characters. Full stop has not been fixed since its inception. Like, yeah. Somewhere there's an eight-bit length field from 1997 that hasn't been updated. Google Sheets, no problem. Same code basically. There are other ways to force cells to become hyperlinks, but they get increasingly manual and increasingly complicated. You either have to bring in VBA or you have to manually set up
Starting point is 00:23:16 each link yourself, which is just it's fine if you're doing a finite number of them, but even a very large finite number quickly becomes like you want to throw the whole thing out the window. I really am tired of Google trying to figure out what kind of data I have. It's a comma separated list with a few spaces I want you to ignore. I just want to put control V. I don't want to have to do control V, control U, F, S, no, N, C, F, S. I have this pattern in my hands when I'm dealing with large sets of
Starting point is 00:23:56 data and I just want to paste it. And in worksheets, it just let me paste it. So there's a fun trick you can do now. Google Sheets now supports the opening and editing of Excel files. So you can paste it in Excel and then upload the Excel file and then deal with it that way, if that's easier. I mean, my files are one megabyte, so they're... That's the edge of irritation.
Starting point is 00:24:25 Like, I can do it in Excel, and then the next few steps I know how to do it in Excel, but... But then you want to make a chart, and you're like, oh, I wish it was... Yeah. I wish it was those charts. Yeah. So, you mentioned pivot tables, and you were going to ask me about pivot tables. And now I'm immensely curious about why you were asking about pivot tables. Well, I'm not going to talk about what I actually want to do with them. I'm going to make up random things that are parallel so I don't get myself into trouble. But we've been talking about hardware in the loop testing.
Starting point is 00:25:00 And when you're running, let's go back to cars, because cars are obviously complicated. When you're running a hundred tests every night and a thousand tests once a week, you don't really want to know which tests failed. You want to know which class of tests failed first. Because if you have a class failure, that's different. If you have, okay, all the failures this week involve the steering, all the failures this week involve the brakes.
Starting point is 00:25:29 Right. And so, and then involves the brakes when you're towing a boat. Boy, my example is getting complicated here. Right. But it's like state dependent. You want to be able to classify and summarize at a higher level. But you also need each test to be individually identifiable and some of them have different criteria. You just have a complicated system and you want to pull out the information of most of my, even though I've got 10 different types of classes that are not all different, like brakes and steering are not separate, there are times when your errors are in both
Starting point is 00:26:15 or your errors are only in the overlap. And pivot tables seem to be a way to pull out this data without me going in and saying, okay, here is the limit. If it's less than three in this column and more than 10 in that column, then there's an error, which is what somebody found me doing and then said, have you heard the good news about pivot tables? And I said, yeah, but I was like 10 years ago and I don't remember. So, yes. Um, I, okay. I want to ask some questions first.
Starting point is 00:26:52 Okay. Are you, when you paste the data in or when you get the data in, are you formatting it as a proper Excel table? Or is it just cells that happen to look like rows and columns? This is a good question because it's always just cells for me, but somebody else I work with he pastes it and it's always a table and I don't know what we're doing different. Interesting. I don't know what he did to make it automatically paste a table, but I would highly, highly recommend once you've pasted it, converting it to a table. You basically
Starting point is 00:27:33 highlight all the cells that you want to be part of this table, and there's a, I think it's on the home tab, home ribbon, home tab of the ribbon. There's a way to say like format as table. And the reason for doing this is it eliminates a whole class of errors. So tables by default, when you enter a formula in one cell, it'll automatically fill down. You're operating on your data as columns of data, which is how you should operate on data. There's very few exceptions where you want to do weird things across the rows. But yeah, no, okay. So it automatically fills down.
Starting point is 00:28:14 So you never have the oops, I forgot to fill down this formula and then my answers were wrong. That's a huge class of errors. But I'm really good at Control C and then control to the end and then one over and then back up and then you highlight it and then you put control V. You're telling me I don't have to take these steps? I will tell you that you can take it one level further. So you paste today's data, you make it a table.
Starting point is 00:28:38 Now when you go to the bottom and you want to paste tomorrow's data. If you paste it starting at the first open cell after the table, the table will automatically extend its range. All of the formulas in that table will automatically fill down and the alternating row highlighting that makes it easier to read. This is really helpful for me because I'm dyslexic and I will absolutely read the wrong lines if they're not color-banded. But yeah, that will also automatically fill down. So those are two just like very common errors that I see when people use spreadsheets and it just eliminates those two categories. The other reason to do it is you can name your tables
Starting point is 00:29:24 the same way you can like name a range. And then you can reference your table sources by name instead of by cell something something or on sheet. Yeah. It gets really cool because then you can do lookups that are by name. It's like, oh, in this table, I want this column, and it actually uses the column name because it's referencing your whole data based on columns.
Starting point is 00:29:51 And I don't have to use VLOOKUP and HLOOKUP, which are just, those are evil. Don't use those, use XLOOKUP. It's new, it works for both VLOOKUP and HLOOKUP, the syntax is clearer and it's faster. XLOOKUP. Okay, so there and it's faster. XLOOKUP. Okay, so there's this problem that I'm realizing here. I learned to use Excel in 1996.
Starting point is 00:30:14 And it still works that way, which is amazing. It really is. It also works these other ways, which are also amazing. But I don't feel like what you're telling me is an Excel for Dummies. I can't just pick up the 2025 Excel for Dummies and get this because that still is going to explain to me what a worksheet is. And honestly, I don't need that explanation anymore. So yeah, no, they're, so it sounds like you're asking where would I get this information? Yes.
Starting point is 00:30:45 Where would I get this information where it isn't stuffed in with a bunch of information that I don't? I mean, I can skip some, but this is intermediate information. And I don't want to have to wade through the basic information to get to the new intermediate information because the basic information didn't change very much. Okay. The hardest part about the intermediate information is knowing the names of the things you want to look up, because once you start Googling about tables and pivot tables, you'll suddenly
Starting point is 00:31:20 get all of this intermediate information that assumes that you know what it is, because you knew the name of the thing you were googling. So for that purpose, I'm also going to name drop one other feature in Excel that's intermediate to advanced, and that's called Power Query. And it's a way for you to suck data into Excel, and it will land that data as a table. And if you want to get really fancy, you can point Power Query at a folder on your drive and it can be full of CSV files and it can automatically stitch those CSV files together by like parts of the name.
Starting point is 00:31:56 So if this one starts with door, it'll stitch together all the door files into one giant report or one giant table. And it'll stitch together all of the engine files into another table. And one giant table, and it'll stitch together all of the engine files into another table. And you can land those in separate sheets in your workbook. And then any time your system generates new data, as long as it lands in that folder, those CSV files in the same format, matching the patterns that you've
Starting point is 00:32:20 established, you can just right- click and click refresh on your table and suck that new data in. It's incredible to me that they can do this stuff and also only has 8-bit URLs. Sorry. I know, I know. It kills me. Oh my God. It's yeah.
Starting point is 00:32:40 Excel is so powerful and there are times when it just wears the biggest dunce hat I have ever seen. And the URL thing is one of them. But the way you would use this to investigate data, you're asking about pivot tables. Pivot tables show off all of the power and warts of Excel. They have a lot of awesome features, but there's a lot of defaults that are set incorrectly. And the frustrating thing about these defaults is that they're hidden in little sub sub menus in a couple different places. And there, if you copy paste a pivot table,
Starting point is 00:33:22 it will be inherently linked to the pivot table you copied it from. So if you change one you are changing the other one too. In a different workbook. Oh. I don't know if I've tried a different workbook but definitely in the same workbook and normally what you want is you want two pivot tables that are linked to the same source data but slice it in different ways. And so the frustrating thing is you go in and change all of these fiddly little settings
Starting point is 00:33:50 and get your pivot table looking just the way you want and it responds just the way you want. And you go, great, I'm going to make a copy of it. And now you edit that copy and you've just destroyed the first one you were working on. So that's something to be aware of. There is a way to set like a template for pivot tables and set that to be your default. So when you create a new pivot table, it uses that. That's also a fiddly little setting somewhere.
Starting point is 00:34:16 And it's so tedious that I've never done it with one exception or I was on a project where I was making literally dozens of pivot tables because this client was kind of new to using their data and everything was in Excel. And so it was just like, we don't even know what we want to visualize and we're just poking around and exploring it and trying to figure out, you know, which end is up. And so a lot of it was just exploratory. And so it's lots of, you know, pivot tables on different data sources to kind of say,
Starting point is 00:34:42 oh, is this a chart that helps you understand your business better? Which it sounds like you might be doing the embedded version of. You're trying to figure out what's worth visualizing, how to visualize it, where to group things together. Yeah, and how to communicate results and how to communicate sensors. And pivot tables are great for that.
Starting point is 00:35:03 Okay, a couple quick things on this. If you want charts out of pivot tables are great for that. Okay, a couple quick things on this. If you want charts out of pivot tables, there is an option called pivot charts, which is a huge improvement over Excel's normal way of doing charts. There is a normal way to do charts. I used to know it. I have long since forgotten it because it is awful.
Starting point is 00:35:23 And you're right, Google Sheets does it better. Pivot charts still have a place. And basically, if you do, when you create a pivot table, you have the option to just create a pivot chart, just create a pivot table, or create a pivot table and pivot chart that are linked together. That one will give you a better understanding
Starting point is 00:35:43 of how changes in the pivot table affect the pivot chart. But one of the frustrating things I found is that good ways to visualize data with a chart tend to make terrible pivot tables and good ways to visualize data in a table tend to make really terrible charts. Sure, because a chart is a whole bunch of data. And the goal for the pivot table is to mash it down into under 10 lines.
Starting point is 00:36:09 Exactly. Yeah, no, like, I wasn't going to try and explain it, but you already understand that inherent conflict. So that's one part of it. The other thing to note about the pivot charts is they have, and this is Excel charting in general, there's a bunch of defaults that are not great. And I would recommend once you get a chart looking the way you want, saving a template of that chart so you can apply it to new data
Starting point is 00:36:44 because it's things like you want your chart to have a title. You want your axes to be labeled. Why do I have to push that button every time? I always want axes. Well, yes, but I'm using the apparently I'm using the old way of doing charts. And it makes me crazy. I'm like, you should have labels by default. In fact, you should not allow somebody to make a chart without labels. It's going to make me crazy. Okay, so template of charts.
Starting point is 00:37:17 And the old way of doing the charts definitely has the templates, but you have to go and you have to choose a template, and then you have to type things in, even though technically I had most of that information in my sheet. Okay, templates of charts. Where do I, do you have a book or a website you like to look out for a pivot table so that I don't get lost in the morass of advertisement? I'll have to get back to you on that.
Starting point is 00:37:46 I don't think that I've picked this up from a single source. It's been a couple of years. I'm sure there is a good one. I'll find a good source of pivot tables and get you that link. If it's pivot tables for dummies, I'm okay with that. One thing I would recommend, even if you're not interested in learning more about Excel is there's this YouTube video called You Suck at Excel,
Starting point is 00:38:18 and you can just Google it and find the video. And it's basically like a standup comedy routine, but it's actually like Excel for intermediate users. But you can't really listen to it on two times speed like you might for other things because it's already like really fast-paced. And so I watched that video at least twice and even the second time there were still some new things that I learned. Like if you have a pivot table, did you know that you can double click on a cell and it will create a new sheet with the data that was used to create that cell? So if you've totaled up all of the door alarms that have been triggered,
Starting point is 00:38:58 you can double click on that number of 4,000 errors on your door alarms and get a list of just those alarms. 4,000 errors on your door alarms and get a list of just those alarms? Okay, this is from Joel Spolsky, which is, he's a pretty good presenter. And I'm looking at it from a recent re-upload, but apparently it was like 10 years ago. Well, it turns out it works pretty much the same as it did then. Well, since I'm working with information that's like 30 years old, I'm willing to update to, you know, skip a couple decades. Wow.
Starting point is 00:39:35 Cool. Okay. You suck at Excel. That is not a video I would have clicked on. That's just not a title that I would be like, yeah, I don't know what you're talking about, but I don't need to be told I suck. Well, no, that's the thing though, is it's actually, don't take it as criticism at all. See it as an opportunity to like, really see another way of doing things. Because he makes
Starting point is 00:40:01 a good case for outlining how you might have done something to start with and how you can go the next step beyond it. It's funny with the pivot tables and some of the data handling, I feel like I'm mentally outlining the way I wanted to do it and then bringing it back to what I can do in Excel because I lack those. I lack the skills. And if I could bring what I mentally want to do to what I actually can do, that would be thumbs up super awesome.
Starting point is 00:40:35 I guess that's true of everybody for everything, huh? I'm not sure I follow. Like, you would do it in C++ if you could, or? No, no. Like, when I, OK, so given a pile of data and thinking about what I want out of it, I will go through and think, well, this is how I would want to format it if I could.
Starting point is 00:40:54 And then I will think about what I can do in Excel and then I might get part way there, but I will never get the whole way there. Like I have 100, I have 50 failures from my 100 tests last night, and I want to break those out into different categories, but if it failed in this catastrophic category, I don't want that failure counted against the doors not closing, because that's just not... Even if the doors didn't close, once it is kind of... I can think about how I would slice the data, but then I go back to Excel and I'm like,
Starting point is 00:41:32 okay, all these key commands, I'll just load this data one more time, ba-ba-boo, here's a nice chart, okay, I'll just copy this sheet, and then I'll put the new data in so I can have the same chart so I don't have to reset up the chart. And it's tedious, and I know it's wrong. And it's error prone. Yeah, yeah. And yet, when I'm dealing with, I mean, I'm probably processed 100, 200 megabytes of data on Friday.
Starting point is 00:42:02 And in the end, I realized that I did something wrong at the very beginning, but it had nothing to do with Excel. But it was a lot of data and I've got- And it took hours to do all of the manipulations to it. It took a whole day. And it was a wrong thing at the beginning. I don't want to do it again. We have to talk offline about this because I don't think we can cover all of the things. This has been a journey I have been on too. It is really painful. I did my undergraduate thesis. I was in economics on the reputation of champagne wine, but all of my data processing was done in Excel before I knew anything. I could barely write an Excel formula at that point. And it was really painful when I messed something up and you have to redo all of it. And it really drove me to get better at it. It started with monster formulas, but eventually,
Starting point is 00:43:09 there's these other tools that are just so useful for exactly this kind of thing. You want to do exploratory work, it needs to be ad hoc, but you want it to be repeatable, and you want to be reliable. And you want to make sure that if someone looks at it funny, it doesn't implode. Yes. So there's a lot of tools. And part of my process here does include a Python script because I knew I needed that Python script in multiple ways and I don't want to output everything into Matplotlib because... Oh, did you know you can run Python in Excel? That's just wrong.
Starting point is 00:43:47 I don't think we should admit that. That's really quite wrong. But all of that pain you had with charting? So don't use Python to do insane stuff that you wouldn't. I mean, Python with the pandas library with like matplotlib is really good for exciting stuff. But then, if I'm using pandas, why am I in Excel? I'm already, ah! Ah, because you can now send this file to someone who hasn't set up Python the same way as you. And they don't have to spend a day installing tool chains and figuring out what dependencies are needed. And so you're telling me we've fixed Python's dependency package management
Starting point is 00:44:30 hell with Excel. I'm not saying that. But that's what you mean, isn't it? It's either that or colab. That's the other way to fix Python's dependency. Yeah. Okay. I want to hear. I do want to hear more about this, but there is one caveat. I believe it's that the Python in question is running on the cloud, right? Yes, I believe so. Oh. Yes. Yeah, I'm...
Starting point is 00:44:56 Is that a no-no for this project? I just don't trust it. I mean, I don't know who's looking. I don't know whose computer it is. I mean, collabs, when I run a collab... Microsoft's I assume, I don't know who's looking. I don't know whose computer it is. I mean, Colabs, when I run a Colab. Microsoft's I assume, I hope. I know I'm on Google site. I'm never using the data that I think has any value to
Starting point is 00:45:15 anybody but me. I use Colab a lot for origami because I don't care if somebody wants to look at that data. Good luck and if you figure it out, let me know. And you can like do all your prototyping there and then you can run it in a local notebook when it matters. Yeah. Right. Yeah, I get that. So that's just one charting option. I mentioned that because you were familiar with Python charting perhaps. There's definitely ways to do it in Excel without having it leave the environment. So I would recommend pivot charts. I find they're easier to manipulate than normal charts just because they have a bit of a user interface to them. One other note, the user interface for both charts and pivot
Starting point is 00:46:01 tables in Google Sheets versus Excel is very different. I think the one in Sheets is better. They do pretty much fundamentally the same thing under the hood, but there's one other difference that's worth mentioning. Excel pivot tables don't refresh automatically. Google pivot tables do. So if you update the data source for a Google pivot table, the pivot will automatically like re-aggregate. In Excel, you'll go back to your Pivot table and you'll go, oh, that's why is it still wrong? Or you might not notice that it's wrong, which is the worst thing. You have to right click on
Starting point is 00:46:34 the Pivot table and click refresh or go to the data tab and click the refresh all button. So worth noting, just an extra step to have to do in Excel. So, if you're going to use pivot tables, that one's always worth mentioning because, yeah. It's funny. You're telling me about a 10-year-old Spolsky presentation. It sounds fantastic and I'm looking forward to seeing it and I suspect it will change some things I'm doing, especially since I am right now in Excel hell, and it would be worth learning these tools that will make my job easier.
Starting point is 00:47:10 And so this is new to me and I'm happy. And you just learned about Cory Doctorow, which I'm like, you didn't what? You didn't? He's got a bunch of sci-fi books, which personally don't care for. But he's also got a lot of sci-fi ideas that are really interesting. And he, like the instantification, I think he might have come up with the liquid democracy, which is a great idea. He's just got, I like his short stories because then nobody ends up taking long baths with
Starting point is 00:47:43 each other, which seems to be a theme in many of his works. I'm sorry, I went off the rails. That's actually a useful tip to know. I will. But information diffusion? Sure, dissemination. Dissemination? It's hard. It's hard being open to the idea. I mean, I read Spolsky's blog forever until he quit it. He stopped doing it. But I never caught this because it's just one talk. And the name is such that it wasn't a talk I would normally click on. Even if it's good, I just, you know, title it, tricks in Excel you didn't know, and I
Starting point is 00:48:26 still wouldn't click on it because it would sound, I don't know. It would sound like clickbait, actually. Yeah. I mean... Christopher, what, what, tell us something we don't know. About what? I don't know. He, he, he now knows about Doctorow. I know now, now I know about this video. Well, metric modulation is pretty easy if you think about subdivisions.
Starting point is 00:48:47 And so if you start with 16th note subdivisions, and instead of putting the accent on the first of each grouping of four, you put the accent on each grouping of three and then play as if that is the new meter, then you can effectively shift between kind of a four bass to a to a three-bass. You can change the tempo without actually changing the tempo.
Starting point is 00:49:09 Last night my general prompt is, if you could go back in time and give advice to yourself, what would it be? And when Chris started the metric modulation chapter, the amount of whining about how hard and impossible and inexplicable it was. It's very explicable. This is really hard to do. Now I want to take this audio clip back to him just a few months ago. No, no, I could have explained it as easily back then. It's just playing it on an instrument that's difficult because your brain doesn't want
Starting point is 00:49:41 to do it. Anyway, that's something. We had many walks where you tried to explain it to me. Well, I guess then you knew it then, I shouldn't have said it. No, I didn't, still didn't understand. You can explain it to me on our next walk too. Yeah, okay, so, is there some place you go to find new information, Peter? Yes, it really depends on what I'm looking for in Excel. For new information,
Starting point is 00:50:08 new information in general, Google, Stack Overflow, those are great sources. But you have to look for those. You have to know what you're looking for. Yes, I am a hoarder of keywords. Like, when you find a term that is the thing that it's called, like, it gets seared into my brain pretty quickly. That's just a thing I learned really early, that it was more important to know what something is called than to know how it works. And part of that is being a product of, you know of the age where you could just look everything up and you didn't have to remember it all. But I think chaining that so when you do a search and you find something that looks like it might be the thing you're looking for, doing the
Starting point is 00:50:58 search again with the keyword. So it's like, how do I move data around in Excel? And you get a couple things. It's like pivot tables, tables, Power Query, then do some searches on those things. Usually I'm looking for something specific. So I'm not sure my advice is as general. I'll watch YouTube videos, but I do find that a little tedious sometimes, because if it's not quite what you're looking for, but sometimes that's the only place where someone has documented how
Starting point is 00:51:31 something works. I came across this with Data Streamer, actually, where the online documentation is, well, it's technically there. It leaves something to be desired. Anything that ends in Streamer is going to have terrible documentation. Well, it's technically there. Anything that ends in streamer is going to have terrible documentation. What is Data Streamer before I slag them? That's the first party Microsoft plugin for Excel 365 that lets you connect to serial ports and stream data back and forth from a serial port. And so it took like watching somebody's video of them using it with an Arduino to figure out how to use it.
Starting point is 00:52:12 But there's some really interesting ones out there. Like somebody made a video where they controlled a robot from Excel entirely with data streamer, which is pretty mind blowing Because they were just sending commands to a microcontroller that controlled servos. I tend to think of Excel as somewhat static. You bring in more information as chunks, and you work with it. But the idea of having data come in and out and continuously. And I know people who have ported Doom to it or whatever,
Starting point is 00:52:44 but that's a joke. Oh, yeah, Doom can run on J have, you know, ported Doom to it or whatever, but that's, you know, a joke. Oh, yeah, Doom can run on Jumperless too, by the way. I saw that. I wasn't gonna say anything, but I saw that. Somebody had, well, I think maybe the original developer had ported a bunch of graphical things to the LEDs. But yeah, but so it's weird to shift your mindset toward this being a, I don't
Starting point is 00:53:07 know, I mean, some people use it like a programming language, which programming languages are dynamic and they work on data that's continuously changing. But Excel just for me is like, you know, it has its roots in actual spreadsheets on a table that people wrote numbers in the cells and that was static. So it's a mindset shift for me to kind of think like, okay, this is a dynamic thing that can operate on continuously changing data and have inputs and outputs and such. Excel has nine different programming languages in it.
Starting point is 00:53:37 Is that a good idea? It is more like an IDE than it is like a spreadsheet on a table. I get the history from that. I found learning about that part really fascinating, that that used to be a thing, that that's where the term spreadsheets comes from. So you spread out this grid on a table and write numbers in them. And it's just mind-blowing that that's all automated now. But yeah, I would say don't use all nine. But there was...
Starting point is 00:54:11 It's a challenging subject. No, seriously, don't use all nine. There's some that... Is one of them Microsoft Basic? Did they shove that in there? I guess it's Visual Basic, the modern one. Yes, that's like the big one. Oh, all right.
Starting point is 00:54:19 Wow. Is one of them Microsoft Basic? Did they shove that in there? I guess it's Visual Basic. Yes. The modern. Yes, that's like the big one. Oh, all right. Wow. Yeah, that is the big one. That's also the worst one.
Starting point is 00:54:36 It might only be the second or third worst one. I have used it. There was one project where I think I used four of the languages in Excel in the same project. That was no five. It was five. Why?
Starting point is 00:54:52 Why Peter? Why? Is this a cry for help? You can tell us. No, this was to do. It's called an ETL pipeline. Extraction, transformation and loading. And it's where you take data out of one system, extraction, transformation, and loading. And it's where you take data out of one system,
Starting point is 00:55:07 do something to it, and load it up to another system. And in this particular case, we didn't have a lot of tools to do this. Excel was available and it was capable. And normally the way you do this is with a programming language or some kind of data language, because you're working with databases or systems
Starting point is 00:55:25 and they have APIs. The system did not have an API. The only way to get data into the system was to write a batch script, not bash, batch. No. And send it a CSV file and it would send you back a file with the success and failure of the various records you just tried to load.
Starting point is 00:55:48 Yeah. No. No. I'm sorry. That's just wrong. Well, so given that that was the limitation on the system, it was hard to limbo under that bar with Excel. Like Excel was going to outperform that if built correctly.
Starting point is 00:56:09 And so that was kind of why it was like, okay, that's fine. Excel's not the bottleneck in this project. Yeah. It's like giving some... You just give it punch cards and it gives you punch cards back. Yeah, pretty much. Yeah, that's a little bit what it felt like. I was just like, well, you know, at least with Excel, you can have discussions with
Starting point is 00:56:33 the client about, I want to map this source column to this field in the destination, and I want to perform X, Y, and Z transformations. Instead of just making that documentation like it is in most projects, you can actually ingest it and process it, and it works more like a config file than standalone documentation. That way your documentation is always up to date, and it's human readable, but it actually drives the process of transformation. Did you just say Excel is human readable?
Starting point is 00:57:04 I just want to check. Compared to badge files. Did you just say Excel is human readable? Compared to badge files. Compared to like, I hate to pick on some of these things, like YAML, JSON, some other thing you might use to do a config file, they're readable to programmers. I'm talking about to a client who knows their data very well and can read a table of data but isn't going to understand why there's squiggly curly braces and colons and the significance of something being indented. Like worst choice, Python, worst choice. So yeah, use a config file if you're working with programmers.
Starting point is 00:57:46 If you're not working with programmers, use Excel and read it in and just lock it down so you can't put potato in a number field because you will have a bad day. And so what about potato? So DataStreamer is a Microsoft thing. DataStreamer.io is some random thing that is not related. So if you search for DataStreamer, include Excel in your search. I put the link I had. So it will go in the show notes.
Starting point is 00:58:16 I should warn people if you're going to play with DataStreamer, it's cool, but one, you have to have the right version of Excel. You have to go in the options menu and enable the special plugin. Find a YouTube video for that. It has some really quirky limitations. It can only send data at a maximum rate of one message every 10 milliseconds and can only receive data at a rate of one message every 10 milliseconds. And that's not the default. That's the maximum.
Starting point is 00:58:46 So you have to go change the defaults. Gosh, what else does it do? 10 milliseconds? Yeah. Yeah. It's good for command line, bad for data streaming, ironically. Let's see. It injects commas into everything you send because you put your messages in cells and
Starting point is 00:59:10 the first 10 cells end up being comma delimited. So it will send nine commas no matter what you do. So your system had better be willing to speak Excel's flavor of text. And then when you send data back, it goes, Oh, I see a comma, that must mean you want it in a different cell. So beware, every comma you send will force your data into different cells when it gets brought back. How much for nicely formatted 10,000? Yeah, exactly. Oh, gosh, there's one, oh, and this is the thing that made it so I couldn't actually finish
Starting point is 00:59:48 the Excel user interface for Teardown. It doesn't assert, I think it's DTR, DTS line. There's some line that used to be part of the communication protocol for data terminal ready, part of serial communication. Apparently USB serial has virtual lines, which applications can say this line is high, this line is low and it's all virtual and guess what Excel doesn't do, it just doesn't assert the data terminal ready line. And so if you have a microcontroller that conforms to protocol
Starting point is 01:00:27 and says, well, you said you weren't ready. So I just dumped all my data in a black hole. Oh, well, sorry. Oh, you're still not ready? Nope. Well, it's all going in the black hole. Wow. I haven't used flow control in a while on a micro. Yeah. So some of them ignore it. And there's some USB stacks that have like an override parameters. You can say, if you're connected over USB, ignore the data terminal ready line. And unfortunately, tiny USB is not one of these stacks. Really? So, yeah, there's, there's an open ticket where people have requested this, where
Starting point is 01:01:00 they're like, Hey, I'm communicating with a third party app. I don't control it. It doesn't assert this line. Can we please have a way to override and ignore it? No, the gist of the response was along the lines of, well, that doesn't conform to protocol, so we don't want to put that in our stack. And it was like, well, okay. But turning off hardware flow control should be, I guess.
Starting point is 01:01:21 Yeah. No, that that still is part of their stack. If it's wired, it should be used. I can see both sides. Yeah, that's kind of how I was too. So I'm not holding out hope that that will change. I'm just like, okay, I need to go find a different USB serial stack for my particular brand of crazy
Starting point is 01:01:39 to connect Excel to hardware. Switching subjects, you have puppy buttons, which I'm familiar with from Miso Come Here. And we talked, I think we talked about this last time. Oh yeah, I think we did. Briefly, that was when I was still planning them, I think. So yes, they have been built. They are cool. I gave a talk about them the last year's Teardown, so 2024. Sorry, you were going to ask about them.
Starting point is 01:02:11 I should wait for the question. No, no, that was the question. There was just a bit of puppy buttons, huh? Right. So for those who aren't familiar with what these are, these are kind of oversized novelty buttons like the kind you would see that are like the easy button or the panic button. Whack a mole.
Starting point is 01:02:30 Oh, no. Those are moles. Yeah, whack a mole kind of style buttons. And I 3D printed mine and mounted them in a board and hooked up an ancient raspberry pie as the brain. And basically what it does is when a button is pressed it plays you can play any sound but I have it play recordings of me saying words that my dog already knows so outside, potty, water, play and you can train the dog to communicate their needs with with these buttons. Now
Starting point is 01:03:00 they're not gonna write a sonnet. There's people online who show that these dogs seemingly communicate some pretty sophisticated things. And maybe there's a dog out there who does that. Maybe a stopped clock is right twice a day. So I know our dog isn't going to be writing sonnets anytime soon, but it was really helpful because at least our first dog only had one means of communicating. I don't know why. our dog isn't going to be writing sonnets anytime soon, but it was really helpful because at least our first dog only had one means of communicating. I don't know why this was the only way she did things, but she would just whine when she wanted something. It didn't matter if it
Starting point is 01:03:34 was potty or play or I'm hungry or the cats are harassing me. It was just, and that got kind of old when we kept taking her out to potty and she looked at us like we were idiots. And so we tried to come up with another way that she could communicate. And they say you should do things like bell training for outside to potty. We didn't have any bells. So this was the next best thing. And it actually works pretty well. She can be kind of a brat with the buttons, like in the evening when she wants, you know, people to play with her.
Starting point is 01:04:09 She'll just keep mashing buttons until she gets some attention, which, you know, that's... You gave her a way to talk to you. You don't like what she says? It's not her fault. Yes, that's kind of how I see it, is... not her fault. Yes, that's kind of how I see it is. And it is useful because there are times where just the distinction between like
Starting point is 01:04:31 her two favorite words of like potty and play is tremendous. You'll also find a lot of information online that say you should start with treat. And I really can't recommend that because how do you ever take that button away? Like yeah, you've taught them that they can push a button and get a treat and that they can push buttons. But yeah, that's a trap. Well, I mean, some people do take buttons, put buttons on and off depending on context?
Starting point is 01:05:05 Yeah, we had to do that. So we're removing house and our old house had stairs. And one of her favorite games was to run up and down the stairs. And so we added an upstairs and a downstairs button. And the apartment we're in now doesn't have stairs. And so we just removed those buttons because they don't really have a meaning that we could use here. And we don't want her learning that they mean something else. Although we're not sure she ever really got the concept of an area. She only ever understood upstairs and downstairs as verbs, not as places.
Starting point is 01:05:38 So that was kind of an interesting learning for our part was sometimes you have to keep things simple for the pets. Upstairs and downstairs as verbs, like go there? Like if you're at the bottom of the stairs and you say upstairs, she would sprint up the stairs, delighted, or if you're at the top of the stairs and are gonna go downstairs and let her out, you could say downstairs and she'd run down the stairs.
Starting point is 01:06:04 Okay. But if you're upstairs where the buttons are, she would sit there and press upstairs. And we're like, we are upstairs, Annabelle. What do you want? And then what she wanted was you to go to the bottom of the stairs and tell her to run upstairs. Okay, that's sort of logical. It is. I mean, she understood the meaning of the word. She understood a different meaning than the one we had intended. I recently read a book, and I'm not even going to remember the name because it wasn't that good, about learning to communicate with whales, which you'd think, oh my God, that sounds
Starting point is 01:06:40 like a great book. Yeah, I thought so too. But it was clear they started the book as a, okay, this is what we know about whales, this is how they communicate, some really interesting facts. And by the time I finished writing this, we'll have solved whale communication using AI. And here's some information about AI
Starting point is 01:06:58 with semantic definitions. And oh my God, the book is due. I accomplished nothing. Just publish it. That last chapter was terrible. Because the problem is that as we translate human languages, we get semantic webs, which I didn't really understand what they are. Do you know what they are? No. Tell me about this. Okay. So in English, there's a word for man and woman, and there's a word for mother and father
Starting point is 01:07:28 and king and queen. Oh, is this like the word to vec? Sorry, it's like you can take king and subtract the associated, like it's translated to a vector numerically and then you subtract the associated vector for man and add the vector for woman and you get something that should be pretty close to the vector ascribed to queen, in
Starting point is 01:07:51 theory, if you're doing your semantic webs right. Exactly. You don't need to know, you don't need to understand the language to translate it because once you have filled in this idea of humans eat fruits, vegetables, meat, you don't have to then try to find, I mean, yes, we eat salt as a mineral, but that's like the only one. And so each language will have these definitions, and they may not be precise, but they're close. And you can, as you said, you subtract male from ruler and instead of king you get, and then you add woman and you get queen. And so you, it is a matter of subtracting vectors and it's all math and it's really cool. The
Starting point is 01:08:39 problem with trying to do this for whales or dogs is that we don't share a semantic web with them. We don't know where they go for half the year. We don't know what their views of the world are. Annabel wanted to run upstairs. That was what the upstairs button meant, run upstairs. And that wasn't your context for it. And I guess I have no idea where I was going with this. Semantic webs are cool. Bootstrapping to another species. There's some extra steps there. Yeah. Yeah. It's not enough to just be able. I mean, it almost seems like the hieroglyphics problem that the Rosetta Stone was useful for. It's like you have to find that common ground of things you do understand.
Starting point is 01:09:33 And even then it's not obvious. Well, and it's a different mind with perhaps no or different theory of mind. It's just not, yeah, communicating with others. There's no Duolingo for dogs. Yet. No. I mean, and we definitely can ascribe and be certain of some of their motivations,
Starting point is 01:09:59 treats, pets, potty, but- Evil other dogs. Every time, evil other dogs, yes. Jojo has a serious problem with evil other dogs. But whenever I try to give her a dollar to do something, she doesn't care. Really? The economics of dogs, that's a different topic. Yes.
Starting point is 01:10:19 And she doesn't know how to use Excel at all. You know, there was a guy who trained his dog to play a video game. He basically built two oversized buttons and did one of the games done quick with like it was like the first game to be beaten by a dog or something. Because basically he could cue the dog to push either button and it was a game that only required pushing these two buttons. And so he was able to get his dog to beat the whole video game.
Starting point is 01:10:48 But the dog didn't do it because it wanted to beat the video game. It did it because it was told to push the left button or the right button or both. For the treats and for pleasing its human, not for its own amusement. I don't know. If we gave JoJo buttons, she would push PetMe like 5,000 times a day. Well, I think if people invested as much money in designing a video game for a dog as they do in designing video games for humans, we might get a different result on that front. LW. But you'd have to figure out their motivations. CB. Well, yeah. But I think you could reasonably design an enticing visual and auditory and potentially smell stimulus for a dog with simple controls that the dog could learn to
Starting point is 01:11:47 interact with that would do something that the dog would find interesting and worthwhile and engaging in. KS Oh, that's simple. There's a German Shepherd lab mixed down the street. Its name is Bixby. We could just put it on a screen and JoJo would stare at it in adoration. Bixby does not care about JoJo at all, but JoJo loves Bixby. Yeah. And so if we just want her to sit and stare and not do anything or bug us for pets, this is what we should do. We should just- Why don't we just print a picture, a poster? Yeah. That's great. My office will look like a teenage girl's room, except instead of hunky guys, I'll have
Starting point is 01:12:28 hunky dogs. I'm sorry, what was this conversation supposed to be about? We did excel. Puppy buttons. Puppy buttons. Do you, you have a new dog though, right? Yes, we just got a new puppy. She's almost 16 weeks now, a golden retriever,
Starting point is 01:12:47 so she's also going to be a big dog. She hasn't started using the buttons yet. We found some bells since then, and puppies, when you get them really young, can only hold their pee for like 45 minutes. And so you literally have to take them outside, and then when you get them back in, you set a timer. And if it's 45 minutes, you take them outside again and they have to be. We've been working on getting her on a schedule, which has been helpful. So we're recording during her biggest nap time, which is tremendously helpful. Very high energy. We'll get her to use the buttons. I think I'm a little worried actually, because she's demonstrated that she's a lot smarter than our other dog, so that's gonna be interesting to see how that develops. Just some little things with how she interacts with
Starting point is 01:13:38 the cats or how she has escaped her pen multiple times or how she's figured out how to signal different things to us without the puppy buttons, which her sister couldn't figure out. So she'll sit at the door and bark when she needs to go out to pee. Very reasonable. That's what you expect most dogs to do. Not stare at you and whine, which is like, oh, it's like, oh, that's also what you do when you want me to play or, you know, when the cat has hidden your toy or... You're just failing to read Annabelle's mind. Yes. This is, I think, what she believes is that we're just very bad mind readers. But hopefully the new puppy will, I don't know, might use more of the buttons or... Might write sonnets? We'll see. Grass, grass,
Starting point is 01:14:37 play grass pet. I don't know where I was going. Maybe start with haikus. Haikus, yeah. Your day job is a data analyst? It's consulting, but my specialty is data and analytics. So usually we go to different clients and help them with their data stack, whatever they're trying to do. Sometimes that's collecting data, sometimes it's transforming it or visualizing it or adding AI on top of the data they already have. Sometimes it's all of the above.
Starting point is 01:15:18 It really depends. But yeah, it's nice to be able to bring that specialty and focus of like, they know their business really, really well. But I'm like, I see the same kind of data problems over and over, but they're always with new flavors and spins. And it's kind of embedded that way. When it's in a different system, the things that are more important change. Is responsiveness and real-time logging important? Or is security
Starting point is 01:15:47 and reliability important? Or is battery life like the most important thing? It's kind of like that with data too. Maybe not battery life, but... You need to optimize for different uses. Yeah. That part makes a lot of sense. But there's still that room for like having someone who's specialized in the broad area and it's just like adapted to the particular client needs. I really enjoy it.
Starting point is 01:16:21 I really like the variety. I think that bothers some people and And I'm like, you're in the wrong profession if you didn't want variety in your job. If you just wanted to do one thing and like master it over the course of 10 years, then like it's not consulting because that job is different every single time. As a consultant, I do. Yes. It's always,'s always similar, but never the same. Well, Peter, do you have any thoughts you'd like to leave us with?
Starting point is 01:16:52 I was going to mention the nine languages in Excel before, but that's the only other one I can think of. So I'll just say thank you. This has been wonderful. Our guest has been Peter Griffin, embedded enthusiast by night and data analysis consultant by day. Thanks, Peter.
Starting point is 01:17:09 Thank you. Thank you, especially to Peter, for filling in at the last moment, our Patreon supporters and to Chris for producing and co-hosting. We'd also like to shout out to Mouser for sponsoring this show. If you'd like to contact us, our email is show at embedded.fm or you can hit the contact link on embedded.fm where we will also have links for this show and transcript in a couple days. And subscribe to the newsletter, betta.fm slash subscribe.

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