357: How Do You Think Waffles Work?
Transcript from 357: How Do You Think Waffles Work? with Elecia White, and Christopher White.
EW (00:00:06):
Hello and welcome to Embedded. I am Elecia White. I am here with Christopher White. This week we're just gonna talk to each other about whatever comes up.
CW (00:00:18):
Nothing much happenin', so yeah, shouldn't be much to talk about. [Laughter]. There's a lot to not talk about it.
EW (00:00:23):
Yeah. I think there's gonna be a lot not to talk about. Well, let's see. The first thing is some really good news, even though we didn't advertise it on the podcast due to scheduling errors. The anonymous listener from last year that agreed to do a matching donation to DigitalNest, agreed to do it again. And through Patreon and Twitter, we raised the $2,500 and he matched the $2,500. So DigitalNest got 5,000 and they're doing a lot of work with getting people access to technology who wouldn't otherwise. Which right now, I mean, that's really important.
CW (00:01:10):
Yeah. Very good.
EW (00:01:14):
Next announcement is that there is a T-shirt coming.
CW (00:01:19):
Like you're throwing a T-shirt at me or you're shooting one from one of those t-shirt guns?
EW (00:01:25):
At this distance it might be more of a gun than a T-shirt cannon.
CW (00:01:29):
It would be damaging.
EW (00:01:29):
No -
CW (00:01:29):
To my pride.
EW (00:01:29):
[Laughter]. We don't usually put T-shirt campaigns together.
CW (00:01:39):
Because we're lazy?
EW (00:01:40):
Because we're lazy.
CW (00:01:41):
Yeah.
EW (00:01:41):
And so, sometimes it's hard to get Embedded T-shirts. And the design we had is wonderful, but we've had it for many years and I have a maximum number of T-shirts in that design.
CW (00:01:54):
Fair enough. So we have a new design.
EW (00:01:57):
Yes. What did you think of it?
CW (00:01:58):
It's different. [Laughter]. I think people will find it amusing. It's much more of a -
EW (00:02:08):
Puzzle?
CW (00:02:09):
Yeah. I mean, it's not just a logo, it's something with something going on...and connected to past shows and things. So I think people will find it amusing and if they don't then more for me.
EW (00:02:22):
Anyway, we're going to put that out around mid-January, so save your pennies -
CW (00:02:26):
Isn't it already mid-January? [Laughter].
EW (00:02:26):
Yeah, it's not that far. Maybe towards the end of January.
CW (00:02:32):
Yeah.
EW (00:02:33):
And it will run for several weeks. So if you're behind and you're listening to this, maybe go see if it's still available.
CW (00:02:40):
And we'll be doing it through a new printing house.
EW (00:02:43):
Yes. The design is kind of complicated, so we want screen printing. And so there'll be a link in the show notes.
CW (00:02:53):
Cool.
EW (00:02:54):
Did you have a favorite part of the design?
CW (00:02:56):
Well, I don't know. [Laughter]. I think the, well,...nevermind.
EW (00:03:08):
The Tamagotchi, huh?
CW (00:03:09):
Yeah, I mean...[Laughter] We'll see how...[Laughter]. Yes. There's many amusing elements to the design. Some of them differently amusing.
EW (00:03:22):
Let's see. One of the other announcements we have is about transcripts. Not only do we have them, which I know has been an announcement on these types of shows for several times, but we are doing old ones, and we've had -
CW (00:03:36):
Which we said we weren't going to do. [Laughter].
EW (00:03:36):
Which we said we weren't going to do, but then we started to do it because a guest asked for theirs and it turned out that I found a transcriber just for us. And so she knows how to spell our names, which is always a big win.
CW (00:03:54):
[Laughter].
EW (00:03:55):
And also gets used to the show.
CW (00:04:00):
Yeah.
EW (00:04:00):
So hello, Minta. Let's see. Some of the transcriptions we've gotten are Svec's show, the first one, 78: Happy Cows, about Empathy-Driven Development. And we also did Patrick Pilarski's self-driving arm, which, when the transcription came in, it was...laughter in brackets all the time. And I'm like, you don't have to put it every time, somebody snickers, but then I listened to the show. We giggled through the whole thing. [Laughter].
CW (00:04:33):
Do we want to say that people can put in requests?
EW (00:04:38):
You can put in requests. Yes.
CW (00:04:41):
I mean, it's still going to be one a week.
EW (00:04:43):
It's still going to be one a week. It's really slow, so -
CW (00:04:44):
But if we get, you know -
EW (00:04:44):
But if enough people want a certain show, yes.
CW (00:04:48):
Okay.
EW (00:04:50):
And we've gotten some feedback about the shows. We got one from Matt. He's an English teacher in France, working with embedded systems students, and wanted to thank us for the transcripts, because the transcripts plus audio is a big help in providing real language practice.
CW (00:05:09):
Never would have crossed my mind. It's obvious -
EW (00:05:12):
Yeah.
CW (00:05:12):
- but never would have crossed my mind. So that's great.
EW (00:05:15):
Also, as part of the old transcripts, when they come out on Monday or Tuesday, I do tweet the sound bites from them, which is whatever fits in a tweet and is amusing. So you might want to look for those. If you don't follow me, the show Twitter retweets the first and last. So usually there are a couple dozen between, maybe just a dozen. Okay. What else do you have?
CW (00:05:45):
What else do I have? I mean, there's this list here. What's lightning round?
EW (00:05:51):
We got a request for lightning round question, pancakes or waffles?
CW (00:05:58):
[Laughter]. This is like cake versus pie again?
EW (00:06:01):
I don't know.
CW (00:06:01):
Are we supposed to answer this now or just insert it into the lightning round?
EW (00:06:04):
I wanted you to answer it.
CW (00:06:08):
[Laughter]. Well, I mean, I feel like waffles are a more versatile kind of thing, right? Because, they have the holes that you can put things in and also people can make waffles out of anything. So you've seen people, and they just take old mac 'n' cheese and jam it in the waffle maker and it comes out, you know, mac 'n' cheese waffle? You can't really do that with pancakes. 'Cause they're kind of pancakes, right?
CW (00:06:32):
There's a kind of a tight definition of pancake. It's the certain kind of batter and you know, some people put cottage cheese in it or something or sour cream. But it's usually the same kind of thing. Whereas the waffles...you can embed stuff in waffles.
CW (00:06:45):
And I know you got your chocolate chip pancakes and your blueberry pancakes and stuff. But I think that the topological structure of waffles encourages kind of a more diverse sort of exploration of the culinary space there. So I'm gonna go with waffles, not just because that's my "I don't want to make dinner, there's frozen waffles in the fridge." And frozen pancakes, gross. Have you ever had those? The Krusteaz frozen pancakes? They don't work.
EW (00:07:13):
That was a much longer answer than I expected, but thank you.
CW (00:07:16):
It's not Krusty's like the clown. It's K-R-U-S-T-E-A-Z. If you're looking for those, I don't recommend them.
EW (00:07:24):
Yeah. Okay, so my answer would have been pancakes. So, sorry.
CW (00:07:28):
Why, why?
EW (00:07:30):
Because I can remember three of the best pancake meals I've ever had. And I can't remember any of the best waffle.
CW (00:07:40):
Every time I have pancakes, I feel bad because there's always too many of them.
EW (00:07:46):
Yeah.
CW (00:07:46):
They're either too big. They come, they're the size of a vinyl record, or there's eight of them and they're stacked and you're supposed to eat them as if they were, you don't eat one pancake. What is with that? You have a stack of things and then you eat through them. That's very strange. Right?
CW (00:08:02):
You cut through and you get a bite and you get a bite of five pancakes and then you gotta eat that. And then it's very heavy. And then at the end of it, you're like, why did I eat all these pancakes? Whereas with a waffle, you know...it's one little, it's one thing. You feel like you ate a waffle. You don't feel like "I ate a stack of something." I often feel like I have a stack overflow of pancakes when I eat them.
EW (00:08:26):
Nice. Although I did wonder when we got this question, whether they meant holding hands or food?
CW (00:08:31):
Huh?
EW (00:08:32):
I don't know.
CW (00:08:33):
Holding hands?
EW (00:08:34):
You never heard that - pancakes or waffles?
CW (00:08:38):
Not in my entire life. No.
EW (00:08:39):
Whether you put your hands together with the fingers all flat like pancakes, or if you put your fingers together, interlacing, like waffles.
CW (00:08:51):
How do you think waffles work?
EW (00:08:52):
Well, I mean, it's not like they're actually waffles, they're hands, but the interlacing makes it a different pattern.
CW (00:09:00):
I've never heard that term before, no.
EW (00:09:03):
How is the album going?
CW (00:09:06):
The album, the album, the band album?
EW (00:09:09):
Yes.
CW (00:09:09):
From the band 12AX7 of which I am a member. It is almost done. We're almost done as the music is done, except I was a bad kid and we put together a prerelease version so that we could listen to it and think about it and do song order and stuff. And I decided I did not like my performance on one song. So we're reopening one song and I'm going to redo some of the drums on it. Which means we have to remix it. So we're sort of half a song away.
EW (00:09:43):
Okay.
CW (00:09:43):
And I'm working on album art, which is another whole thing.
EW (00:09:47):
So for people who don't know about music, take me through the steps.
CW (00:09:55):
The steps? The steps of doing -
EW (00:09:56):
Matthew records his guitar, and you record -
CW (00:09:59):
So okay. So first, you write a song.
EW (00:10:01):
Okay.
CW (00:10:02):
So most of the songs, the large-scale structure, melody, harmony, has been written by my brother for the song. And so he'll write a song, he'll get it to the point where he likes the guitar parts and he will send me, he will record the entire song by himself to...a temp drum track. Just usually one pattern or a drum machine kind of thing.
CW (00:10:29):
It's not a drum machine, it's in the computer, but, so he records to that. And then he'll add, if he has thoughts about the bass or he wants just a guide, he'll record a temp-based track. Usually it's something fairly simple just to say, "Okay, this is what I was thinking." And then I will get that in a program, we both use a program called Logic, which is what's called a digital audio workstation or a DAW.
CW (00:10:54):
It's basically a...studio in software and you know, has multiple tracks. So each track is a different instrument and they can be, each track can be edited separately. The sound can be tailored separately, the levels could be set. And then those get mixed together in the computer or in hardware down to what you normally think of as stereo tracks.
CW (00:11:16):
So I get multiple tracks from him. I have several guitar tracks cause he'll do overdubs, which is where you play the same instrument again on a different track. And then the drums and the bass. And then I will turn off the drums and the bass. And usually to a click track that's matching the song tempo, I will write a drum part and record a drum part.
EW (00:11:39):
To a click track and his guitar or just to a click track?
CW (00:11:42):
And his guitar. So I have -
EW (00:11:42):
Oh, okay. So you have the music.
CW (00:11:44):
Yeah, I have the music.
EW (00:11:45):
Okay.
CW (00:11:46):
And then when I'm satisfied with that, I will edit the drum part. Usually there's some small things to change, do a temp mix, which just means setting levels and things. So it sounds kind of okay. Not the final polished mix...and then I'll write and record a bass part. And then once we're satisfied with that, I ship that all back to him in a giant file. Usually it's about 10 gigs. And then he will work on mixing it.
CW (00:12:13):
He has a studio that has a lot of analog gear for mixing that I don't have. So he does that. And then we usually meet over Zoom these days. And we have this program called Listento to which plugs into our audio software, which allows us to stream full quality uncompressed audio to each other. So we can actually do mixing in real time, even though we're not in the same place. So we can make adjustments to things, change equalization effects on tracks. It can be very complicated, especially some of the songs we're pushing 24, 30 tracks, which is a lot. [Laughter].
EW (00:12:49):
For bass drums and guitar that -
CW (00:12:51):
Well, at least one song, so drums has at least 12 tracks, usually, 12 or 15 tracks. 'Cause there's one for every drum surface. If you think about how mics or how a drum set is mic'd up, there's usually one for almost every drum surface. There's a stereo pair, usually on top of it, to capture the whole kit together as sort of a glued sort of sound. There's usually room mics that are further away. So you add two of those and suddenly it becomes a lot of tracks.
CW (00:13:19):
So that, mixing drums alone is a nightmare. But then there's a bass track and then he's usually got a couple guitar parts sometimes. Sometimes those go to other things called buses, which are submixes where you take three tracks, mix them down to another track, and that track itself gets dealt with. And then on some of the songs we have synthesizers and on one of them I had three or four keyboards. So add all of those stereo tracks and suddenly your computer falls over and says, "I can't do this."
EW (00:13:54):
Okay. So you mix it together. So everything sounds right.
CW (00:13:56):
Yes. Or it sounds right is, that's a lot of work. That's one of the hardest parts.
EW (00:14:01):
Oh yeah. And you can do it live and then you still have to listen to it on a bunch of different things.
CW (00:14:06):
Yeah. Because it turns out you can kind of get stuck. Like he has his very expensive studio monitors, which are good for hearing minute details of things to find errors and things you want to correct. But it's not what most people have, right? Most people are listening on earbuds or home stereos, or, you know -
EW (00:14:26):
Car stereos.
CW (00:14:26):
Not expensive audio equipment, unless you're really into listening to music and you spend a lot of money. And even then those kinds of speakers tend to be very different from studio speakers. So yeah, you have to listen on a bunch of stuff and figure out if you've made any mistakes there, because a lot of times we'll take something that sounds really good to both of us on headphones and on our studio monitors, put it in the car, and realize there was just a low end or something that we didn't hear because...my car has a subwoofer. We don't have subwoofers at our studios.
CW (00:14:58):
So, "Oh, we missed that." It sounds awful because there's "ggggg" going on the whole time. So I had to go back and find that and correct it and then iterate. But yeah, you want to kind of listen on a bunch of things and then kind of make sure there's nothing that stands out as "This sounds really weird on earbuds." And then you have to kind of adjust that and make sure you're not breaking it somewhere else. Kinda like software. [Laughter]. So it's a challenging process and it's hard because both of us have different things we listen for. Our ears work differently.
EW (00:15:33):
Well, and he's listening more for guitar and everything.
CW (00:15:35):
Right.
EW (00:15:35):
And you hear your parts.
CW (00:15:37):
Yeah. And beyond that, I have hearing damage that's in a certain frequency range. He has hearing damage in a different frequency range, which is good because if we were both damaged in the same place then -
EW (00:15:46):
Yeah.
CW (00:15:46):
- our mixes would probably sound awful to everybody else. So he tends to like a lot more high-end treble stuff, frequencies, than I do. And I tend to notice when there's too much bass. Which is odd, 'cause I'm a bass player. But he'll regularly send me mixes and I'm like, "This is booming in my ears, what's going on?" So it's, yeah, it's an interesting process.
EW (00:16:16):
Okay. So you've mixed it.
CW (00:16:18):
Yeah.
EW (00:16:20):
But then it doesn't, you can't just like stamp CDs at that point.
CW (00:16:23):
No. 'Cause after mixing there's a thing called mastering.
EW (00:16:27):
That's the part I don't understand.
CW (00:16:28):
Mastering is kind of like a subset of the mixing operations, but only applied to the stereo tracks. So like I said, you adjust levels and equalization. That's the frequency balance of a particular track. When you're done with a mix, it's not quite ready to go to an album because it needs to be...what's the word? Made louder? Usually you try to mix a nice balanced thing, but you need to apply some compression and other stuff to kind of get things into what people are expecting and for a particular genre of music.
CW (00:17:05):
And that step is called mastering. And you go through, what's called a mastering limiter that pushes the loudness up, pushes the volume thing up, without pushing it over a certain limit. So quieter sounds in your song go up, louder sounds in your song don't. So it's compressing the dynamic range. So you have to be very careful about that because you can go overboard, but it does make things sound a lot better.
CW (00:17:27):
And there's also equalization things that happen. So, for example, if you just want to sweeten things a little bit, you might add, decide, "Okay. I want to go back into the whole mix and redo a bunch of stuff. And I can just add two dB around two kilohertz, and for the whole song." And that just kind of sweetens things up. And there's other stuff like that, but it's always been kind of a separate process. There was a guy, a mixing engineer who knew how to do things. And then there was a person who was a mastering engineer and they knew how to do things and they would do stuff on different equipment at different expertise.
EW (00:17:58):
They have different knobs to turn.
CW (00:18:00):
Different knobs to turn, different, yeah.
EW (00:18:02):
Different intended outputs too.
CW (00:18:05):
Yeah. And the mastering engineer shouldn't be doing as much. It should be small adjustments, because if you make large adjustments, really what you're trying to do is remix with two stereo tracks, which is not something you want to be doing. And it gets complicated because CDs are digital. So the mastering process with CDs traditionally has been, make it as loud as possible, and jam it against, you know, the full range of the 16 bits per sample that you've got and that happened -
EW (00:18:35):
A whole decade of music that is unlistenable.
CW (00:18:38):
Yeah, yeah. Well, it was preceded by a decade of music where they didn't know how to do it. And so everything was too quiet. So it was really kind of a mess.
EW (00:18:45):
I like dynamic range.
CW (00:18:46):
Yes, but -
EW (00:18:49):
Yeah, I know.
CW (00:18:49):
Radio was involved in that too, because for a long time...when you first hear a song, and it's louder than the thing you heard before, it's exciting. And so with radio, if you could get your song to be, to sound louder than the other people's, it got you to be more popular, and that just kind of escalated. Now that radio is not as much of a thing, and the streaming services are all adjusting the dynamic range on their own to make things match, that's less of a concern.
CW (00:19:18):
But yeah, so CDs are one thing. Vinyl, which we're going to be producing, it's a whole other thing we don't fully understand, because mastering for vinyl's very different because you've got a physical thing happening. And you can actually master a record so it causes most needles to just skip out of the track if you've got too much bass energy or something.
CW (00:19:40):
So there's experts who know how to do that. So I'm hoping that the people we work with to produce the vinyls will know how to kind of do any final steps that need to be done there to make sure that sort of thing doesn't happen. Then there's other trade-offs, like the outer part of the vinyl record, you know, the larger, at the largest diameter. The sonic characteristics of that part of the record are different from the inside because the linear velocity, have I got this right? I think the linear velocity changes, right?
EW (00:20:17):
That makes sense.
CW (00:20:18):
So -
EW (00:20:20):
But you wouldn't want that to happen.
CW (00:20:22):
It's a record. CDs, actually, if you watch, if you ever had a CD player that you could watch the CD spin, they had constant linear velocity. So they'd speed up as you get, as you move the head from one outer to inner.
EW (00:20:37):
Like you speed up as you go to the center.
CW (00:20:40):
Got it backwards. But yes, it keeps the linear velocity the same because it's digital, it wants the sampling rates stay the same. So they had to change the RPM of the thing as the read head moves. Whereas with vinyl, it's just, you know, it's a 1920s technology. It spins as much as it does. So there was some bass energy loss.
EW (00:21:00):
So do you choose your album order?
CW (00:21:02):
You have to choose the album order.
EW (00:21:03):
Oh, man.
CW (00:21:05):
To make the most sense for the sonic characteristics of vinyl. Yes. It's pretty interesting.
EW (00:21:10):
Yeah.
CW (00:21:11):
But I don't want to, you know, there's a lot to think about. Somebody else think about that.
EW (00:21:16):
[Laughter]. Can you just go back to the drums?
CW (00:21:19):
Yeah. So -
EW (00:21:20):
So at this point you're working on that one song you're going to master.
CW (00:21:25):
They're already kind of, we already mastered most of them, did a quick pre-master.
EW (00:21:29):
You're going to have to redo the master on that one
CW (00:21:29):
So we're gonna have to remaster some of them.
EW (00:21:32):
And you're working on the album art.
CW (00:21:33):
Working on the album art.
EW (00:21:35):
Which is a whole separate thing, I mean -
CW (00:21:36):
Whole separate thing.
EW (00:21:36):
- realistically, somebody else should be doing that.
CW (00:21:39):
I still consider it, but I'm going to keep trying. Yeah, and then at that point we kind of have to figure out how to market it and sell it and where -
EW (00:21:50):
Do you have a title for it?
CW (00:21:51):
Yes.
EW (00:21:52):
Are you sharing the title yet?
CW (00:21:54):
No, not yet.
EW (00:21:54):
Okay. Well, we will announce when his vinyl goes for sale.
CW (00:22:01):
Yeah. It'll be awhile. And I think the lead time just for producing the vinyl is quite a long time. So it'll probably be late spring before we ship anything...if there's anybody to ship to.
EW (00:22:16):
Are you gonna do Kickstarter?
CW (00:22:16):
I don't know. I mean, we could just do Bandcamp and do the merch through there too. The advantage of something like Kickstarter is I'd like to know ahead of time...If I order a hundred vinyl records, I don't want to be stuck with a stack of 80 of them for 10 years.
EW (00:22:37):
Yeah.
CW (00:22:37):
So I'd like to know if there's a hundred people who are willing to pay, to buy a record, before we make them.
EW (00:22:45):
Yeah.
CW (00:22:45):
So that's the advantage of something like Kickstarter. So I don't know. I'm still thinking about that process. There'll have to be some marketing ahead of that and other stuff, and I don't know how records work so.
EW (00:22:55):
It'd be nice to -
CW (00:22:57):
The last few records we've done have not done particularly well, but it was a different time before.
EW (00:23:03):
But neither one of you advertise very much.
CW (00:23:06):
Well, we tried.
EW (00:23:06):
Okay.
CW (00:23:09):
I mean, for those records, there was a lot of sending stuff to radio stations and we still get airplay occasionally. But, you know, that doesn't lead to much so it's weird. And music these days is a mess so.
EW (00:23:22):
I can see how Kickstarter might be interesting just to know how Kickstarter really works.
CW (00:23:25):
Yeah, yeah. And if we do something small, if it doesn't work, that's okay. Okay. Is that enough inside?
EW (00:23:33):
Yeah.
CW (00:23:33):
Inside record baseball.
EW (00:23:36):
I guess for my hobbies, I am still origami-ing. That's a word.
CW (00:23:42):
Making snails.
EW (00:23:44):
So many snails.
CW (00:23:46):
The mathematics of snails.
EW (00:23:49):
[Laughter]. I'm on my third Python script and I'm gonna start a fourth this weekend because of the different ways they can go together. But I don't want to talk too much about snails because I could talk about it for four or five hours and nobody wants to listen. So let's not have me talk about snails.
EW (00:24:09):
I will talk about something that some of you may enjoy and that's tessellations. And tessellations are patterns that you make out of the paper. They start out with some small piece that's called a molecule, and you fold that piece, but then you fold that same pattern over and over again. And it generates a larger pattern. That's called the tessellation.
CW (00:24:34):
Yeah. Like Escher did? Did Escher do tessellations or am I thinking of Penrose?
EW (00:24:42):
Penrose, the tiling.
CW (00:24:43):
I know Penrose did, did he do, I remember, the one I'm thinking of, it has lizards that are interlocking?
EW (00:24:50):
Oh, that would be considered a tessellation, a drawing tessellation.
CW (00:24:54):
But it's that sort of thing, where you've got, like you're saying a molecule, single shape, and it interlocks with itself enough that you can just repeat that pattern and interlock it.
EW (00:25:06):
And sometimes you interlock it with other patterns. So if you think about, Arabic art is something to think about with the tiling.
CW (00:25:15):
Yeah.
EW (00:25:15):
And the repeated patterns. And it's slightly mathematical...and it's very meditative. If you aren't paying attention, your results are not going to be good. And you're not going to be paying attention to Twitter or whatever distractions you get.
EW (00:25:32):
So if you're looking for something to try, I recommend "Tessellations for Everyone by Ilan Garibi." It was much better than any tessellation book I have ever tried. Things like "Awesome Tessellations" was very pretty, but not very foldable. "Tessellations for Everyone,"...is really, really foldable. You can really do it. It's not just showing you the fancy end part. It's walking you through how you do it.
CW (00:26:05):
And that's for folding tessellations and there's drawing tessellations, which is stuff I'm familiar with.
EW (00:26:12):
Yeah. That's for origami folding tessellations.
CW (00:26:15):
It was Escher by the way.
EW (00:26:16):
Yeah, it was Escher.
CW (00:26:17):
There's actually tessellations.org? You see this? It's all about the artwork and stuff. And it's got galleries of Escher stuff and contests. It's very strange, no origami, but -
EW (00:26:31):
I will say about the snails... That I started it out with this pattern, right?
CW (00:26:36):
Yeah.
EW (00:26:36):
That got me into the snails.
CW (00:26:38):
Yeah.
EW (00:26:38):
And it was a reaction to a different pattern that I couldn't fold. So I changed it to be something I could fold and that I thought looked better. But then I tried to do other things with it and couldn't, and I went on this whole journey of mollusk morphology.
EW (00:26:57):
And then I kept thinking, "Why can't I get to something as good as that first one?" I finally went back and folded the first one. And it is so bad compared to my new ones that I don't know when it got better, because it was so incremental. And I never do that. I never remember to go back. I mean, I just think it sucks the whole time. I never remember to go back and think about, this sucks much less than it used to.
CW (00:27:32):
That's a hard, I mean, that's a thing for every skill, right?
EW (00:27:36):
Yeah.
CW (00:27:36):
With music...one of the things that people have told me for years, and I've never really followed up with it as well as I should, is to always record practice, then listen back to it, and then have a history of practices and stuff. 'Cause you can't really fix things unless you hear things.
EW (00:27:54):
That's so painful though.
CW (00:27:54):
Some of that, but it's hard to remember to do it and stuff. But that's definitely true for music. If I go listen to stuff that I did 15 years ago, 20 years ago, it's like, "uh yuheee," I thought this was cool back then, but it's not good.
EW (00:28:11):
I listen to some of your music from then and it's good.
CW (00:28:13):
It's not good.
EW (00:28:16):
[Laughter].
CW (00:28:16):
Yeah. And even to bring it back to the record, sorry, I was just listening to some of the stuff we did early on starting this record and how we both changed as players. We're not necessarily better, but we're different. And so the songs are, the way we play on the songs has kind of changed through...just producing the record. So it won't be noticeable to most people, but I can hear, "Oh, this was an early song" versus "Oh, this is one of the ones we did recently." So, but yeah, I don't, it's a weird feeling, right?
EW (00:28:49):
Yeah. And it's so not noticeable until you, 'til you check.
CW (00:28:55):
I feel that way about code too. I remember the first stuff I wrote at Cisco and now I'd be just totally embarrassed, I think.
EW (00:29:05):
I send clients their bills every month and it's an excuse for me to go through my folder and write down the "what I did during that time." And that's often helpful. 'Cause I think I've been stuck on a bug for six months, but the truth is, last month I had three other bugs and I solved them. I just need to keep working.
CW (00:29:27):
Yep.
EW (00:29:29):
Speaking of mollusks -
CW (00:29:32):
[Laughter].
EW (00:29:32):
Did you hear about the internet of clams?
CW (00:29:36):
Tell me about the internet of clams.
EW (00:29:38):
But you heard about it, didn't you?
CW (00:29:40):
No.
EW (00:29:41):
There are some clams that control the water supply.
CW (00:29:45):
Oh, that. [Laughter]. I did see that. Go on.
EW (00:29:51):
Okay. So clams are filter feeders, and there are some clams that are very sensitive to pollution in the water, and will shut if they identify that the water is not of a quality they're willing to filter. Well, there have been a couple of cities that have used this as, have used these clams as part of their pollution detection system. And they tape, I want to say springs with cantilever little...poles on them, that then, when the clam shuts, the pole touches a button.
CW (00:30:32):
Yeah. Oh, okay. I didn't read it that far to realize it was a button pusher.
EW (00:30:35):
It was just a button pusher, so you have these clams. And they were very,...the article was pretty funny because they were talking about, the clams only work for six months. And then they're put back into their original position wherever they initially lived and they're marked so that they don't have to do municipal water duty again.
CW (00:30:59):
So it's like jury duty.
EW (00:31:03):
[Laughter]. But it was really funny...There's more than one city. I think Minneapolis was one of 'em. And it just -
CW (00:31:10):
It wasn't that many clams either. It was like a half dozen, right?
EW (00:31:12):
I think Minneapolis had a dozen and the other place had a half dozen and, yeah, it wasn't very many clams for such a huge water supply.
CW (00:31:24):
You ever wonder if there's higher dimensional aliens using us in that similar way? Isn't this like The Matrix plot, right? I mean, the clams are being used as computers, basically. They didn't even know it.
EW (00:31:38):
Actually The Matrix is going to come up in our next show too. Thinking about Matrix plots. So anybody who hasn't seen that movie might want to.
CW (00:31:49):
[Laughter]. Alright. I don't know why that's true, but okay.
EW (00:31:52):
I just, it made me really wonder about other bioprocesses that are so much better than our sensors.
CW (00:31:59):
[Affirmative].
EW (00:31:59):
I mean, our smell sensors are not very good.
CW (00:32:02):
I think people usually refer those as noses.
EW (00:32:06):
No, I mean the actual sensors for detecting -
CW (00:32:10):
Oh. [Laughter].
EW (00:32:10):
- detecting air quality or smells or, I mean, they have bomb sniffer sensors.
CW (00:32:17):
Yeah, yeah.
EW (00:32:18):
But they aren't as good as beagles.
CW (00:32:24):
Aren't as good as beagles.
EW (00:32:26):
Let's see. Noury from Slack heard Chris, we talked about the Model-View-Controller and -
CW (00:32:37):
Oh yeah, yeah.
EW (00:32:37):
- pointed out that it predates Apple, it predates Microsoft, and it was invented at Xerox Palo Alto Research Center as part of Smalltalk, the first modern object-oriented programming language.
CW (00:32:50):
Yep. I got that wrong. I was actually thinking of Model-View-ViewModel, which is a Microsoft thing. That's recent. Model-View-Controller is fairly old. Yep. Smalltalk, by the way, I think evolved, a lot of the things from Smalltalk went into, Apple's Objective-C and later Swift. So they've always been kind of on that Xerox PARC bandwagon after they appropriated some of those concepts.
EW (00:33:17):
I mean, PARC invented the mouse.
CW (00:33:20):
Yeah. Yeah. They invented a lot of things.
EW (00:33:23):
They did.
CW (00:33:23):
Weird how they aren't, you know -
EW (00:33:26):
They still invent stuff. They're just quieter about it. I don't know.
CW (00:33:32):
It's weird for a company to seed the rest of the industry with ideas -
EW (00:33:36):
Oh yeah.
CW (00:33:36):
- and not become a giant conglomerate themselves.
EW (00:33:39):
I mean, Xerox is still big, although I don't think they're still affiliated with PARC.
CW (00:33:45):
I don't know, but I guarantee they're not as big as Apple.
EW (00:33:50):
Okay. I got an email question from Farren.
CW (00:33:55):
Okay.
EW (00:33:55):
Elecia, that would be me, has talked about working on Shot Reporter. If I were to design that today, what would I use? Could it be done with readily available consumer tech?
EW (00:34:08):
First it was ShotSpotter, although your way, I kind of like better. And so the idea is you detect an impulsive sound from a number of sensors and then, because you know where the sensors are and what time they heard the sound, you can triangulate to where the sound originated.
CW (00:34:27):
Right. I have a question that I'm pinning to the back of my head that goes to the line -
EW (00:34:31):
Do you want to go ahead?
CW (00:34:33):
Answer and I'll throw it in in the right spot.
EW (00:34:35):
Okay. Farren's interest is for a rural setting, knowing approximately where hunters are located. Farren found an open source project. And it didn't look like their open source project had a lot of code you could use. Does their list of hardware stand a chance of creating anything useful? Maybe now you should go check. 'Cause I looked at this like a month ago and have forgotten what their hardware was. What was your question?
CW (00:35:10):
Well, I mean, one of his questions was, is it possible with consumer stuff? And that led me to thinking about the home assistant devices, such as the Echo and the HomePod and the Google thing. They all have arrays of mics that are 360-degrees. So they can kind of beamform and figure out where something's coming from. And ShotSpotter worked by having a bunch of omnidirectional antennas distributed through an area, right? And then you'd use time of flight and triangulation to find the source.
EW (00:35:56):
ShotSpotter actually used four sensors per system.
CW (00:36:02):
Directional mics?
EW (00:36:02):
So not directional, but by knowing how the four were laid out, with precision, then the time of arrival of the audio would give you a direction.
CW (00:36:13):
Okay. Do you think things are good enough now? I guess you could still only get direction.
EW (00:36:22):
Yes. You could still only get direction.
CW (00:36:26):
Yeah, okay. Question retracted.
EW (00:36:29):
So that is one of the answers is you can get direction from one system but...like your eyes, you need two of them and they need to be separated.
CW (00:36:40):
Yeah.
EW (00:36:41):
You have to have more than one sensor and yes, you absolutely can do it from off-the-shelf parts...And looking at the list of parts that have BeagleBone Black, wireless, four MEMS microphones, a temperature sensor. Good. I was gonna forget that, an IMU and a GPS module. Not quite sure why they need the IMU, but you need the GPS because you need to know what time it is very precisely.
CW (00:37:16):
Right.
EW (00:37:17):
And you need to know where your microphone is located very precisely.
CW (00:37:21):
I guess with the IMU you could set it up without leveling.
EW (00:37:25):
Yeah, but -
CW (00:37:28):
Just toss it in a spot and it knows its orientation, but that seems like overkill.
EW (00:37:35):
It does. The more difficult part is mounting the microphones in such a way that they are in a known location.
CW (00:37:43):
Yeah.
EW (00:37:44):
They aren't exposed to water because the microphones themselves will get plugged up. They aren't exposed to dust. They don't have wind happening on them, so they have to have something fuzzy around them. In Boston, there's this thing called a salt fog, which is -
CW (00:38:04):
[Laughter]. That's probably not his problem, but -
EW (00:38:04):
- which is just the worst because it's not just water.
CW (00:38:09):
Yeah.
EW (00:38:09):
So you're looking at conformal coating the boards, you're looking at protecting the mics. The problem is not the software. The problem is more a mechanical problem. And I mean, maybe I'm just saying that because I understand the software and the mechanical problems I always wished I could fix and couldn't.
CW (00:38:28):
Yeah.
EW (00:38:29):
But yeah...if you had two sensors maybe on opposite sides of your roof, 'cause you want it to be a little high, so that you're not getting a lot of ground traffic, or a lot of trees blocking the sound, and your house was kind of big, you probably could get a decent location. But it would be -
CW (00:38:54):
How precise do you have to have it? Does it have to be...wavelengths of sound or inches to feet? Do you have to be within a millimeter? As I mix units. Sorry.
EW (00:39:11):
So when you're thinking about the whole unit and their GPS locations, that's going to get really precise over time. If they're not moving, GPS is going all the time, they're going to get really precise over time.
CW (00:39:26):
Okay.
EW (00:39:26):
So that's actually going to get to centimeter accuracy.
CW (00:39:31):
Which is probably fine.
EW (00:39:33):
Yeah. Oh definitely.
CW (00:39:35):
Okay.
EW (00:39:35):
And then the mounting of multiple mics in a method that will give you the azimuth, the direction, that you could do by hand and not worry about too much. And then use some sort of tests yourself and calibrate each sensor.
CW (00:39:58):
Just go shoot each sensor?
EW (00:40:00):
That's not the right thing. You can hand clap. It's the same sound. But then you could calibrate the sensors so you knew how far apart each one was. Because when you're doing it at that level, when you're trying to look for sounds that are millisecond, not even milliseconds, microseconds apart, as they go from an eight inch mounting -
CW (00:40:29):
Yeah.
EW (00:40:29):
That's where you want the precision to be.
CW (00:40:33):
Okay, okay.
EW (00:40:33):
You want it in that mounting.
CW (00:40:35):
Okay.
EW (00:40:35):
And you know, you probably could do millimeters for sure, but you can't do centimeters.
CW (00:40:44):
It certainly seems like a tractable problem. I think the problem is more in the software than the hardware. I mean, the hardware is, radios, which you've got a lot of choices now between Wi-Fi, if you can reach that far, LoRa, Zigbee -
EW (00:40:59):
Cell modems, Zigbee.
CW (00:41:01):
- whatever. And you've got a lot more processing power locally to the device, which, ShotSpotter was a long time ago, now. When it started right, 2000, I want to say four.
EW (00:41:14):
Yeah. I mean, they started before then.
CW (00:41:16):
Yeah, an embedded board, for putting out on a rooftop, was not even an M zero class device back then, right?
EW (00:41:25):
No, no, it wasn't.
CW (00:41:25):
So you put a Blackberry, what'd he say -
EW (00:41:28):
BeagleBone.
CW (00:41:28):
- a BeagleBone Black. You can, geez, I mean, you can do all the local processing there. And just send a, "Here, I got this, with this intensity. It's definitely a gunshot, according to my classifier," you know, in the message going back to some central thing. Could be, you know, 60 bytes instead of sending the whole audio over.
EW (00:41:46):
I mean, that is -
CW (00:41:48):
ShotSpotter?
EW (00:41:48):
- what I spent a long time implementing. Yes.
CW (00:41:51):
Yes. [Laughter]. But it's easier is what I'm saying. You can do it in Python.
EW (00:41:55):
Yes.
CW (00:41:55):
Instead of trying to, you know, hack very, very tight C to fit on, basically, an 8051 or whatever you had.
EW (00:42:04):
We had a washing machine processor. Yeah.
CW (00:42:10):
[Laughter]. Probably a Z80 analog or something.
EW (00:42:11):
No, no, it was a TI chip.
CW (00:42:14):
Oh, you had a DSP?
EW (00:42:14):
A lot of signal processing.
CW (00:42:14):
Well, that's good.
EW (00:42:14):
Which is another thing you need to think about is that, there may be quite a bit of signal processing to try to figure out the difference between a gunshot and say, someone chopping a branch off with an ax. The further apart your sensors are, the more sensors you have. And the further apart they are, the better off you're going to be. Because a quiet sound won't travel to all the sensors as much as a loud sound will.
CW (00:42:41):
Yeah. Yeah. But you know, for his application, where he already kind of knows, "There's hunters out there, I want to know where they are."
EW (00:42:49):
Yes. It doesn't matter. The false positives won't be nearly as important.
CW (00:42:53):
Yeah. Or they'll be in places where, okay, that's not, hopefully, not where they are, you know, "That's my backyard" or, you know, on the road or something where a car backfires. You could even just geographically kind of filter out everything that's not in a place you expect it to be, right? Cloud service though.
EW (00:43:12):
Well, I think, you definitely don't need a cloud backend.
CW (00:43:16):
Yeah, yeah.
EW (00:43:16):
But you do need multiple sensors.
CW (00:43:19):
Yeah.
EW (00:43:19):
And so you maybe Wi-Fi into a house server.
CW (00:43:23):
I mean, if you want to make it really easy, you could do Wi-Fi with...a do-it-yourself can Yagi antenna, directional antenna. 'Cause that'll extend the range by quite a bit, if you don't want to do something like LoRa or Zigbee. Zigbee's probably not appropriate.
EW (00:43:42):
ZigBee, you'd need to put intermediates in and form a mesh. And then there's the travel time.
CW (00:43:49):
Yeah, okay.
EW (00:43:49):
It's not, it would be possible, it definitely would be possible. It just wouldn't be my first choice.
CW (00:43:54):
Just for somebody trying to put something together. Yeah. I mean, people, Beagleone's already have Wi-Fi.
EW (00:44:00):
And you definitely shouldn't need to go to the internet to do the data processing.
CW (00:44:06):
Yeah, yeah.
EW (00:44:06):
You should be able to do it in your house, but you are going to have to figure out how to get the data to the right place and do the triangulation. And I'm saying that that's easy. It's totally not. It's a lot of math.
CW (00:44:21):
Would you, if you were to do it again today, would you employ a lot of ML at the edge or at all? I'm trying to think, things you could do...I mean, some of the things that I remember you guys trying to do, like classify a firework versus a gun.
EW (00:44:39):
Helicopters. I spent so much time with machine learning and helicopters.
CW (00:44:44):
Yeah, I mean, a neural network these days should be able to classify that fairly readily.
EW (00:44:50):
You'd be surprised how much they sound like AK-47s.
CW (00:44:55):
True....but would you be able to do things like...I'm trying to think, a lot of times you get echo and stuff where there's a distance effect.
EW (00:45:05):
[Affirmative].
CW (00:45:05):
You might be able to classify on things like that. And not for this person's project, but I'm just thinking out loud, like, "Okay, that's very far away because this sounds very far away." You might be able to get a distance without triangulation by saying, this is what distance shots, you know, you could kind of grossly classify gunshots based on distance, based on the dispersion of the pulse and the sound.
EW (00:45:33):
High frequency doesn't travel as far.
CW (00:45:35):
Right.
EW (00:45:37):
...But it is affected by temperature, humidity, trees, are some of the three biggest.
CW (00:45:45):
Oh right, right, right. The three "T"s.
EW (00:45:47):
The machine learning that I worked on some, for classifying shots, ended up cuing off of dog barks for one case because gunshots caused dogs to bark.
CW (00:46:03):
Oh, well, yeah. I mean, you have to have good labeled data.
EW (00:46:06):
Well, no, the data was well-labeled. It was just that, if you were looking for a gunshot sound, if there were dogs barking around the impulse sound -
CW (00:46:18):
Oh.
EW (00:46:18):
- if there were dogs barking shortly after the impulse sound, that was more likely to be a gunshot.
CW (00:46:22):
Oh, okay. Okay. Okay. I see what you're saying.
EW (00:46:24):
So I mean it was weird things, it's not echoes.
CW (00:46:24):
It wasn't mislabeled, it was, yeah. Well, I mean that, sure, sure.
EW (00:46:28):
It was just a common thing.
CW (00:46:30):
And that's the kind of thing that neural networks are good at sometimes is finding weird patterns.
EW (00:46:36):
Finding, yeah. Patterns that you would just discount as a human.
CW (00:46:39):
Yeah. Did we answer the question?
EW (00:46:41):
So the answer to the question, is, yes, that is a reasonable hardware list. You may need the internet for weather information. A temperature sensor is good, but you really need to know the humidity as well. And then there's a lot of software. There's a heck of a lot of software there. The easiest thing to do would be to start out with a direction.
CW (00:47:06):
Yeah.
EW (00:47:06):
And then work up to a triangulation.
CW (00:47:11):
And the triangulation stuff's not secret sauce or hard.
EW (00:47:14):
No. I mean the math is out there. It's not tough...I mean, it's geometry. "Wheee."
CW (00:47:21):
"Wheee" like rollercoaster "wheee."
EW (00:47:25):
Like rollercoaster "wheee."
CW (00:47:26):
Sorry. I thought you were starting a new sentence. Okay.
EW (00:47:29):
No, sorry.
EW (00:47:31):
If I was gonna do it today, I would totally do mostly off-the-shelf hardware.
CW (00:47:37):
Yeah, of course, especially for something -
EW (00:47:37):
It's so much easier now,
CW (00:47:39):
- low volume like this where your margins are super high anyway, because you - yeah, yeah.
EW (00:47:42):
And firmware update on a BeagleBone Black would be so much easier. Okay. I was talking to some folks and someone brought up that they were in a meeting and a vice president thanked a manager of another team for their work, and wondered, what do you do? What do you do about not getting credit for a project or an idea?
CW (00:48:15):
Uh, [laughter].
EW (00:48:17):
What advice would you give?
CW (00:48:18):
I don't know.
EW (00:48:18):
This is an interesting question to me because it happens.
CW (00:48:22):
I mean, it's certainly happened to me. It's happened to me in the space of five minutes...I remember vividly one meeting I was in with the executive management of the company. We were talking about something technical and I made a suggestion and nobody acknowledged the suggestion. And then five minutes later, the CTO made the same suggestion, verbatim, and there was a hell of a lot of nodding and exploration of that idea.
CW (00:48:52):
Well, I just kind of turned my head around the room going, "What, what just, what? Is this a sketch comedy?" This is, I mean, 'cause you hear about this kind of thing, but usually there's some distance or time. So in this particular case, this is the more usual case I hear of, it's like somebody does something and then later somebody reassigns credit.
CW (00:49:19):
I don't know if there's...kind of a one-size-fits-all answer because it greatly depends on the organization and your relationship with the people in the organization. And it's hard because, yeah, it's really hard. I did nothing in that case to be clear.
EW (00:49:39):
Well, there are a lot of times you're going to do nothing. It's just the easiest path. And...there was a power imbalance, which was actually one of the reasons it was probably taken up.
CW (00:49:53):
Yeah. Yeah. Yeah.
EW (00:49:54):
The idea was good, but nobody thought about it because -
CW (00:49:59):
It came from the wrong place.
EW (00:50:00):
It came from the wrong place -
CW (00:50:02):
The wrong place.
EW (00:50:02):
- and they thought about it from the software engineer, the software engineer says "It's gonna rain tomorrow." And everybody's like, "Sure, whatever. That's probably a software thing. Who knows what rain is." And...the weather, meteorologist says, "It's gonna rain tomorrow." And everybody's like "Rain tomorrow?!"
CW (00:50:22):
Sometimes, sometimes.
EW (00:50:24):
Oh yeah. I mean, sometimes that's the case, but a lot of times it's just who gets heard, who gets heard and who gets ignored as you're checking your phone.
CW (00:50:32):
I mean, the first thing that comes to mind is to discuss it with your supervisor and make sure there's a marker somewhere. At least you noted this was my initiative. Not so-and-so's. I mean, it doesn't mean it's going to do anything, but at least there's a record somewhere.
EW (00:50:54):
Well, and assuming the manager of the other team smiles and nods, like they did the work, I mean, there is some temptation to privately confront them.
CW (00:51:06):
That's where I get, yeah -
EW (00:51:06):
But maybe go in with the assumption no harm was intended.
CW (00:51:10):
Yeah, yeah, yeah.
EW (00:51:11):
Like, "You got a congratulations in the meeting for X. I've been working on X too. I wonder how you got interested in it?" Which gracefully lets the other person tell you that it was a mistake and they didn't know what to say or lets them tell you how they believe they actually did that work. Or that they think somebody on their team did that work for the managers. Don't go in with a "You took my credit," go in with a "I thought that I was doing that. What's the deal? Is there something wrong?"
CW (00:51:43):
No, that's a good suggestion because it seems to me it's pretty rare that somebody will brazenly just stand up there and go "Yeah, I did that." So yeah, there's probably something else going on or a misunderstanding in all likelihood. On the other hand -
EW (00:51:56):
Well, and if you're a manager, in an all-hands and a VP congratulates you for something you didn't do, you don't talk back.
CW (00:52:03):
Um -
EW (00:52:04):
I mean a lot of times you don't talk back or if you're a manager and you're not sure if somebody on your team did it.
CW (00:52:08):
Well, yeah, that's the thing. If it's somebody on your team and it's ambiguous then, yeah. But I mean,...if it's a friendly organization then, you know, saying something is perfectly appropriate.
EW (00:52:22):
Yeah.
CW (00:52:22):
I just, I always get nervous with stuff like this because in the organization I was dealing with, it was not friendly and it wasn't going to get me anywhere to make a fuss. I was already fussing about other things.
EW (00:52:35):
Well, another thing if this happens often -
CW (00:52:37):
Yes. That's the -
EW (00:52:40):
Because there are people it happens often to. And it is hard to deal with. You don't want to fuss every time. One way is to find an ally, someone maybe you ask directly for help getting the recognition you need, and offer your own cheerleading services. So you're just going to make sure that you talk about what the other person does that's good.
CW (00:53:07):
Yeah.
EW (00:53:08):
And they're going to reciprocate and realistically you don't necessarily have to make this deal. You could just talk about the good things other people do.
CW (00:53:18):
Yes.
EW (00:53:19):
And maybe people will notice, because they often do. It's weird that way. People begin to like you more when you say the good things about them.
CW (00:53:30):
Yeah. Finding ways to advertise what you're doing kind of preempts this, right? And...that can be a good thing. And sometimes you need the help of your manager to do that, to stand up and say, to sell your team to the rest of the organization. So that could be a discussion with your manager...You know, "I noticed this credit over here, you know, maybe the next all-hands, you could talk about what we've been doing" and stuff like that.
CW (00:54:00):
Because that's a big part of being a manager, is informing the rest of your organization what your team has accomplished, and making sure that, you know, they get credit. So they make you look good as a manager, and everybody's happy.
EW (00:54:13):
Yeah. And then there is also the don't do anything, but also don't be angry about it. Sometimes it's better to fight, and sometimes it makes it better for other people when you fight, because that means other people get the right recognition. But at some point I realized I didn't need credit. I don't pursue advancement. I'm confident in my work. And I don't like the fuss.
CW (00:54:47):
That's a lucky position to be in.
EW (00:54:48):
Oh, oh, I, yes. But being in that incredibly lucky position, I got in the habit of giving it away. So when I work with clients and there's a junior engineer and we work together on something, I am happy to credit the junior engineer. And so,...I get to give the credit before somebody accidentally takes it. It's really fun because it confuses people and it makes people happy to help me because they know they're going to get the credit.
EW (00:55:26):
I wish I had known that sooner. All those times that I was angry that I didn't get credit for an idea or I didn't get credit for doing the work I did. I wish I had known that if I gave away more of my credit, people would respond better. That the credit itself didn't matter. Does that make sense?
CW (00:55:46):
Yeah, it does. It does. I mean, there's all sorts of currencies in working.
EW (00:55:51):
Yes.
CW (00:55:51):
And credit for work done is one. Benefits are one, that kind of thing. But, you know, all this stuff gets exchanged around, and some people have, you know, you don't want to give credit to someone for something they didn't do.
EW (00:56:05):
No, 'cause that's actually bad for them.
CW (00:56:06):
But if it's you and you're, you know, if you're working with a junior person, and the work is split and they did a phenomenal job, there's no reason for somebody who's senior to say, "Ah, I did all that."
EW (00:56:17):
Yeah.
CW (00:56:17):
You know, that's one way to help people advance, once you've already advanced. But I think, you know, for this situation, you know, if it's a one-off, I'd probably still have a conversation with my manager just on the general topic of that thing that happened, but I wouldn't get too upset about it unless it became a pattern. And a pattern is once more probably.
EW (00:56:42):
Yeah. It's hard not to get upset about such things.
CW (00:56:46):
Oh, yeah, totally. Especially...if you're in the position where credit is an important part of your advancement and your reviews and stuff, because, you know, we've all come to the end of the year where it's like, "What did you do?" And if everything you did has been claimed by other people, it gets kind of awkward.
EW (00:57:04):
Yeah. We have another management question, from the Patreon Slack, which by the way, thank you, patreons, patrons. Chris has, not this Chris, a different Chris, has been struggling a bit with project management. "Started a role where a team is sneaking up on me." Which is to say, he's starting to get more project management responsibility because the team is growing. Accustomed to being a manager, but in their company, there's no particular manager culture. So there's no structure to put the project upon.
CW (00:57:50):
That seems familiar. Okay.
EW (00:57:52):
Architecture slides, documentation, all exist, but organizing it...has not been a priority for anyone. How to wrangle a project from a team of one to a team of many.
CW (00:58:09):
Well, first thing I would suggest is to establish a process independent of the project, because if you don't have a process, and a documentation structure in place for a generic project, you're going to be trying to do things ad hoc with what you've already got. So if you have time, finding a good process and documenting that, and then starting to make what you've got conformed to that. Fill in the holes, divide things up as they need to be divided, seems like a better approach than looking at this pile that you have and trying to massage it into something better.
CW (00:58:53):
And that might involve just kind of coming up with what sort of documentation is the standard for projects at this company? What's the standard of review, what tools you need to do this? So what technical documentation tools do you use? What, where are those documents stored? How are they organized? How are they named? How was the project timeline maintained? What tool to use, all the kinds of stuff that project managers do.
EW (00:59:28):
Well, Chris answered part of that. The company is using Polarion, Asana, Trello, JIRA, Google Sheets, Smartsheets, and GitHub Projects for project management, depending on the team. Is that what you meant? [Laughter].
CW (00:59:41):
Yeah, that's what I'm saying is stop that.
EW (00:59:43):
Yes, I think he wants to know how to stop it.
CW (00:59:49):
Well, sorry, just watched your laptop take a little ride there. I don't, I mean, that's where some confrontation is likely. Somebody is gonna have to own it, right? And if nobody owns it, nothing is going to change. So if you want to own it, then you need to stand up and say, "Hey guys, folks, people, whatever universal group quantifier, this is a mess. We have too many competing technologies here. We need to focus on picking one tool for each class of thing."
CW (01:00:24):
So if we're going to be managing...you know, the project goals, it needs to be Trello or Kanban. It's not going to be -
EW (01:00:35):
Some of each.
CW (01:00:36):
- both plus JIRA plus this. And you know, maybe start a process for deciding that. Don't just unilaterally say, "I have decided to use Trello" unless people aren't willing to participate. But it might be sort of thing where it's like, "We're gonna sit down and hash this out, and for every category of thing, we're going to pick a tool." I think that has to happen before you even develop a process.
CW (01:00:58):
And there's, you know, a tool for each kind of thing, right? There's somewhere you gotta write documents. Okay. Is it Google Sheets? Is it Confluence? Is it a GitHub issue in Markdown? Whatever, pick one. And that's it. And then, you know, maybe it's OneNote. Maybe you do a whole bunch of stuff on OneNote, but get all the options out there and pick one. And if it's Trello or Kanban for the task management, fine, but just one please.
CW (01:01:24):
And for Gantt charts, you know, whatever you use for that. But, he can't, it's such a nightmare, especially stuff ages and goes away and doesn't get updated. And suddenly you've got documents that are kind of orphaned because you can't even access them because somebody didn't pay, you know, blah.com's cloud license. Since now you don't even have access to those things because somebody said, "Oh, we have three of these already. Why am I paying for the fourth?" You can't go on like that.
EW (01:01:54):
And it's hard because everybody has their favorite one, the one they know how to use, and someone is going to have to take the information from the ones you're cutting, and put it into the ones that you're going to.
CW (01:02:11):
Yep, yep, yep, yep, there'll have to be translation processing.
EW (01:02:14):
And there's going to be some history lost.
CW (01:02:15):
And sometimes the right answer is, this is the one that has the most documents, therefore it wins. We've been using Trello for 75% of these and JIRA for 25%. Okay. Well, JIRA's gone, 25% of these get ported over, and some intern or poor person who drew the wrong straw gets to do that. But...I mean, even at companies with processes, you end up with these heterogeneous documentation tools. And it's a nightmare. I remember at Fitbit, we had one set of things for software, and then all the hardware people were over on OneNote. And OneNote is, excuse me, trash.
EW (01:02:58):
[Laughter].
CW (01:02:58):
It's garbage. It's horrible. So anytime you'd want to go look at a schematic or something for a pin, you'd have to enter this other universe. It was like switching from one virtual world to another to get over to this Microsoft corner that's completely walled off and separate.
CW (01:03:16):
And you can't really, I mean like, "Oh, make a Python script to take the pinouts from something and,you know, automatically generate code." You can't do that from OneNote, right? I mean, I guess you could export it as something, but it's a nightmare. Yeah. Pick one.
EW (01:03:34):
But not OneNote.
CW (01:03:35):
But not OneNote.
EW (01:03:36):
Okay. I just wanted to make sure you got that in there. I definitely see a lot of JIRA, Google Sheets, and GitHub overlapping functionality.
CW (01:03:49):
Yeah. JIRA and GitHub, especially. Although JIRA is better at it.
EW (01:03:54):
Well, GitHub, like a docs directory in GitHub versus Google Sheets?
CW (01:04:00):
Oh, yeah, it's easy. Yeah. For issue tracking JIRA is way better than GitHub's issue tracking, and Bitbucket? I don't remember what the -
EW (01:04:10):
Bitbucket.
CW (01:04:10):
- thing we used that was basically GitHub for inside the company.
EW (01:04:13):
Yeah.
CW (01:04:13):
But, you know, those sorts of things do a lot of stuff. I mean, that's why Atlassian exists, right? They had like eight tools and they were all in an ecosystem and -
EW (01:04:25):
They talked to each other.
CW (01:04:25):
They all talked to each other. And yeah, there's something to be said for that. Even though some of Atlassian's tools were a bit problematic, and HipChat never really took off.
EW (01:04:37):
It's a lot about getting somebody in the organization to make some decisions that people have to stick with. It's not optional anymore.
CW (01:04:48):
I feel like it is 90% of problems with companies, is somebody needs to make a damn decision. There's so many meetings, so many meetings at dysfunctional companies where high-level personnel with a C in their title would say, "Somebody should do this." And then it would never, ever, ever get done.
EW (01:05:10):
Because nobody ever hires Somebody.
CW (01:05:13):
What do you mean? Oh, right, yeah. [Laughter]. Yeah, nobody ever hires "Somebody." "Where's Somebody? Can't find 'em." But it's infuriating, right? It's like, "No, you're the CEO of this company. You're the guy with the Mercedes S class. Take that gilded authority and tell somebody in this room to frickin' do the thing." But you know, stuff would just molder. And sometimes it takes a low-level person to say, "You know what, I'm going to ask for permission later." And it may come to that with this stuff. It's like, "Yeah, we're not using Trello anymore."
EW (01:05:49):
And it isn't a matter of going to every team and asking what they want. It's going to every team and asking what they least want.
CW (01:05:57):
Yeah, yeah.
EW (01:05:57):
Because it isn't a popularity contest today.
CW (01:06:00):
No.
EW (01:06:00):
It's a horror show. Okay.
CW (01:06:07):
[Laughter]. It's a horror show. I don't think that -
EW (01:06:10):
No?
CW (01:06:10):
Horror show versus popularity contest...I don't see the contrast there.
EW (01:06:15):
Well, it's the things you desperately don't want.
CW (01:06:20):
Oh, okay.
EW (01:06:20):
I mean, I don't actually have a lot of those. I guess if you made me always edit in vi, I would -
CW (01:06:28):
You'd get used to it. Ah, you'd get used to it.
EW (01:06:28):
I would get used to it.
CW (01:06:29):
[Laughter].
EW (01:06:29):
But if you asked me right now which tools would I put on a list of, I just don't want to use those.
CW (01:06:35):
Yeah.
EW (01:06:35):
That would be on the list. And sadly, IAR wouldn't be, so, you know, my priorities are already pretty whacked. So yeah. But yeah, I don't, okay. What's the opposite of a popularity contest? An unpopularity contest? I guess.
CW (01:06:53):
Yeah, I don't know.
EW (01:06:54):
Anyway, as part of this discussion, there was a recommendation for Steve McConnell's "Software Project Survival Guide."
CW (01:07:05):
Oh, nice. That sounds good.
EW (01:07:05):
A book that teaches software project management, and there's also a book suggested called "Risk Upfront: Managing Projects in a Complex World."
CW (01:07:21):
Cool.
EW (01:07:21):
Which is pretty short. So anybody that is thinking about managing, I also strongly recommend Camille Fournier's "Manager's Path." Let's see, what else do we have?
CW (01:07:38):
Looks like there was a question about...Did I miss something?
EW (01:07:46):
Oh, oh, Alison Chaiken -
CW (01:07:49):
Yes, that was it.
EW (01:07:49):
- emailed about API design, actually before Becky's episode, but she recommended very highly Neil Brown's three-part series called "Object-Oriented Design in the Linux Kernel." And, the articles described the kernel's implementation of inheritance via the method of embedding a pointer in the struct to the defining "parent class."
CW (01:08:15):
Yes.
EW (01:08:15):
Also notable is the instantiation of the calls of a particular implementation of a driver via a table of function pointers.
CW (01:08:23):
Done that a million times.
EW (01:08:25):
Essentially a hardware abstraction layer. So yeah, I will put that link in the show notes.
CW (01:08:31):
Cool. Good stuff. And I won't even mention the article claiming that object-oriented programming is the cause of trillions of dollars of damage and thousands of lives lost every year.
EW (01:08:42):
Okay. I want to start off not by thanking everybody like I usually do, but to particularly thank our 2020 Patreon supporters, our sponsors Qt and Triplebyte, as well as InterWorking Labs for their early patron business level support.
CW (01:09:08):
Cool.
EW (01:09:09):
And now thank you, Christopher, for all the things.
CW (01:09:15):
Sure. You got it.
EW (01:09:17):
And thank listeners for listening. Thank the dog for not coughing. And goodbye?
CW (01:09:28):
[Laughter].
EW (01:09:28):
I forgot to bring down Winnie the Pooh. I'm sorry.
CW (01:09:31):
That's fine. Next time. Alright, bye everyone. Talk to you next week.