Embedded - 505: Potato in a Number Field
Episode Date: July 10, 2025We 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)
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.
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.
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
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?
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.
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
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.
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
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.
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
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.
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?
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.
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,
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
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.
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.
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.
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.
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.
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
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,
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.
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.
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.
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,
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.
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.
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
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
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
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.
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.
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
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.
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
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,
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.
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
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.
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.
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
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
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
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.
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.
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.
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
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.
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
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.
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.
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
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.
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.
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.
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
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.
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
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.
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,
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
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.
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,
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.
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.
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
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.
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
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.
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.
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,
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,
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.
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
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.
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.
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,
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.
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,
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.
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
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...
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
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
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
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.
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
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
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.
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.
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
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,
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
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
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.
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,
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
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.
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...
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.
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.
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?
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,
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
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.
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.
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
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?
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.
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.
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.
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
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
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
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
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.
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
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.
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.
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
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
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.
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
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?
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.
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.
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
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
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
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
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
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.
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,
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.
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.
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
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
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,
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
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,
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.
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
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.
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?
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.
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.