Embedded - 343: Getting Brains to Work
Episode Date: September 4, 2020Chris and Elecia discuss transcripts, listener emails, and brains. We already have a post about the dangers of using Arduino for professional work. Elecia got a Cricut Maker to help her make origami ...and then discovered SVG files were editable (Intro to SVG). She’s putting her origami crease patterns in a github repo eleciawhite/origami), where else would you put it? About brains, Elecia was reading from Smart But Scattered.
Transcript
Discussion (0)
Welcome to Embedded.
I am Elysia White.
I'm here with Christopher White.
We're going to talk with each other this week.
We just did that.
No, it wasn't.
I feel like we just did that.
Maybe.
All time runs together.
It really does right now, doesn't it?
It's just one day is like the next.
87th day of March.
I believe it's much, yeah.
Well, we have some emails to talk about. We have some announcements.
And I found some of your homework I want to discuss.
That disturbs me. I have no idea what you mean by that.
You should be scared.
Which one do you want to start with?
Let's get
the announcements out of the way, I guess,
since that's meta
show.
Well, the meta thing is about transcripts.
Transcripts.
They are available to all now.
Now you can see our words.
Which I found kind of hilarious.
I mean, things taken out of context are usually pretty funny, but...
About my stuttering and babbling to get through sentences.
Does that come through?
No, actually it doesn't.
The transcription service takes that out.
It's like Photoshopping your photos.
You have to pay extra to get the stuttering
okay and we will do them going forward we will do them when we replay episodes as we did for roger
lynn right and really if you want an old one done you're pretty much gonna have to wait until we
replay it because we take a weekend off, which maybe never.
Sorry about that.
Well, maybe never statistically.
We're still going to take weekends off.
Oh, yes.
Maybe never that the particular episode you want
comes up in the round robin.
But they're kind of expensive,
so we're not just going to do them
when people ask for requests
because that could bankrupt us
if we did all of the previous episodes all at once.
Yeah, we're back to spending all of our Patreon dollars on the show,
which we were pretty close already.
So, yeah.
And how can people find them?
It is embedded.fm slash transcripts slash the number of the show.
The page will look just like the episodes page,
just it'll have transcripts instead of episode.
You can also get them in RSS.
That is an RSS feed,
and you can just put it in your RSS reader.
That might actually be better,
because the way it's formatted on the website,
there's a lot of space,
but that was apparently what the screen readers wanted, so I didn't mess with it.
Okay.
Might be a way to format that differently from CSS or something.
Markdown or something.
Yeah.
But yeah, let us know if you like them.
Let us know.
Yeah.
Certainly would be nice to hear that people use them for something.
For me.
Other than us looking at them going,
that was a stupid thing I said, now I can read it over and over and over again.
Yes.
And then I have some emails from listeners.
The first one is from Alan, who is very nice,
talking to us about that he likes the podcast.
And mentioning the show where I interviewed Chris. He wanted to talk about mentors through our careers. How did they become your mentors and what was your relationship like?
That's a really tough question because you don't always know who's a mentor until later.
Yeah, no, that's definitely the case for me.
I didn't have any relationships that was like, will you be my mentor?
Yes.
Okay, let's meet every week.
It didn't happen like that.
It was always more organic.
Yeah.
For me, it was always, well, I mean, from the very beginning when I was an intern, senior person on my team, you know, deciding I was worth something and giving me things to do and encouragement
and that kind of thing but it was not
formal and
that relationship
happening on and off for years after that
different places and for different things
but yeah
and those companies, formal mentorship
wasn't something that was
at least
I didn't see that happening at any of the places I was at until I think Fitbit,
which was,
you know,
extremely recent.
Yeah.
Um,
I had a mentor at HP,
uh,
but it wasn't formal and our relationship extended beyond my time at HP.
We became really good friends.
Um, but then I worked with her at another company
and it kind of fell apart.
Our roles had shifted too much
that the advice she was giving me didn't work anymore
because I had at that point been to several startups
and it was like her first.
So it was just different.
Mentoring relationships can change yeah and at a certain point you're a peer right and i think we discussed
this on the show about mentoring is that eventually your relationship with your mentor changes such
that you're equals or you know no longer taking advice so much as just working alongside that
person if that if that is the way
it went. And it's definitely possible to have peer mentors. I've had some of those that were
the best because they were going through a similar set of problems and being able to talk
through them or to say, yeah, I went through that last year And to trade advice, that was super helpful.
But, you know, I just don't have relationships that are like, will you be?
I remember that for a long time, I was really bothered by a lack of role models.
Like, I didn't know what I wanted to do with my career.
And everybody I talked to had such a different path that it wasn't related. And I've had other ones besides the one I mentioned, shorter duration.
People who I think decided they wanted to help me or encourage my career or whatever.
It wasn't something that I said, hey, that person, I'm going to attach myself to them
and they'll guide me through this.
It was more the opposite, which was weird.
In retrospect, it was weird.
Most of those tended to be shorter.
But yeah, the formality of it is something that I haven't really experienced.
And your mentor or your bosses, your managers, how often have they been your mentors?
Well, one of them I was talking about was certainly in that role, although I'm not sure I reported to him exactly. I might have.
And, you know, I think it's natural for managers to take on that role for everybody to a certain degree. Unless you're a super senior.
But part of the job of a manager is to guide
the development of your employees.
So I always feel like that's part of the thing.
It's hard as an employee wondering if your manager
is a good mentor to you because they have different loyalties.
Yeah.
And if you can get a mentor outside your career or even better, a mentor from your last job,
that pulls your manager in fewer directions.
And your managers come and go.
Yeah.
And sometimes, fairly often.
And as you get more senior, you know, that gets a little weirder because I've had many managers who are younger than me and less senior than me.
Because I decided a while ago I was not interested in continuing to be a manager and to do any sort of management things.
So, you know, kind of got more senior in the senior developer, principal engineer, that kind of title space.
And that puts you sort of as a peer to your manager, which is a weird relationship to be in.
Because, you know, you think of manager canonically as the person who tells you what to do, right?
And guides everything.
But once you've been doing this a while, if you're not a manager
and you're still a developer, it's more of a, well, I'm on this team, but I'm also helping
technically guide it. And, you know, the manager discussion is more about, so how's the team going?
What else? You know, it's more of a bi-directional thing. I mean, that's part of being a senior
engineer is moving from being told what to do to figuring out what needs to get done and how to best do it.
And spying on the rest of the team for the manager.
So I don't think we have a good answer for you, Alan.
It isn't as concrete as I want it to be.
Certainly not planned.
But I mean, people did, there were definitely a handful of people who
helped my career immensely and i can think of one mentor who i i really i thought he would be a
mentor for a long time but as soon as i left the company we just i i reached out several times but
he was always too busy so it's odd um I always thought mentors would be people you had lunch
with, but I never had lunch with them. But we did sit and talk occasionally. Yeah. So there is no
canonical mentoring relationship. Let's see. We got an email from Iwana, who recently discovered the show and is very excited about it.
She is pursuing an electrical engineering degree at the University of British Columbia and really likes embedded systems.
So she didn't actually have a question, and I'm not going to read the whole email because it sounds much too nice. But I wanted to point out that if you want to help the show, tell somebody about it. I mean, a lot of people get really excited about it and I'm so happy. And it's amazing that that's all it takes is someone saying, hey, I think you'll like this. Hey, they had an episode that I think you might be interested in one of the hard things about podcasts in general is there's no real for better or for worse the whole podcasting thing is based
on rss it's just out there apple maintains the directory through the goodness of their hearts
for now um but there's there's things happening it's moving you know podcasts are on spotify and
that's different it's's not RSS based.
It's their own private little weirdness and monetization happens there in strange ways.
But the core of it is still this open RSS thing, right?
And you can get podcasts through dozens of different apps that just feed from the RSS
or just get it in your RSS reader or go on the website.
It's all very open.
But what that means is it's hard to discover podcasts
because beyond the Apple directory,
there isn't really anything out there.
And people who aren't in the Apple ecosystem,
even though they're using the Apple directory a lot of times,
don't go there.
Don't go to the Apple Podcasts app,
which has reviews and ratings and things
and has suggestions for other podcasts
so it's kind of hard beyond word of mouth
to get podcasts to grow
so yeah
if you like the podcast
and you know people who listen to them
you know
mention it
and you can review it on iTunes
that does help get us uh some visibility there but i
depends on if you're able and willing if you're able and willing it gets us visibility in that
when we get more reviews they push us up higher in the rankings and then a few more people see us
yeah um there's always weird websites too
that try to become discovery engines for podcasts.
One of our problems is that we clash with NPR Embedded,
which makes discovery a little weird because...
It makes the occasional email a little weird.
You search for us, sometimes you get them,
sometimes you get us.
And that's, yeah, the directories sometimes
have a little issue with that too.
Yes. So if you want to support the show tell people about it if you want to do more feel free to review it on itunes if you want to do more and you have an extra couple bucks join us on patreon
let's see uh do you want to talk about svg files or bleLE apps? Wow, both sound thrilling. Don't they sound thrilling?
Thrilling.
Thrilling.
Yes.
Let's go with SVG.
Okay.
On the off chance that BLE is open-ended and we just talk for the next three hours.
I got a new gadget based on the recommendation of a listener, James. I was talking about origami in the Slack channel
and that I wanted a laser,
but I go through this every...
Laser cutter?
Laser cutter.
Every twice a year, I want one,
but then I talk myself out of it.
And he suggested a Cricut,
which is like a...
It's a bug.
No, no.
It's kind of like Ax axi drop but with razors
okay it's it's a that sounds terrifying a 2d cnc widget that you can put a pen in that you can put
uh blades in to cut fabric or wood or paper and you can put different things
into like score or perforate or whatever and so i since it was a tenth the price that i was looking
at for lasers which and the lasers you have to that was a cheap laser and service them and
you have to put it somewhere you were never going to use it. Yeah.
So I got the Cricut Maker and it has been so much fun.
I have been doing lots of origami with it.
I did a couple of the other things they suggest just because, I don't know, everybody else makes stickers with it.
I can make my own stickers. And then I ran into the giant problem of doing some of the origami I wanted to do.
I needed to modify the images in ways that were non-trivial, weirdly non-trivial.
So they come as vectors, presumably, for the pen or scoring paths, right?
Well, the Cricut uses SVG files, which are vector files,
which I thought were basically their PNG or bitmaps or just another binary format.
But they aren't.
They're XML files, which totally blew my mind.
And you were just like, oh yeah, I knew.
Well, I knew because that was what I'd done for the last five years at Fitbit.
So I
had to learn a bunch about XML files
in Python and I modified
some SVG files and now I have
all these ideas about origami
in Python and software.
But then I keep just going back to folding
instead of writing more software.
I can write software for work.
No, SVG is cool, though, because it's very human-readable,
which is kind of a plus and a minus,
a minus in that it's verbose.
If you're trying to draw something complicated,
it's often got a lot of elements in it.
A very big text file.
It's weird to me how every program outputs a different form of SVG.
Yeah, yeah.
If you load the same thing, this one will make curves,
this one will make a billion little tiny lines.
It just is super odd.
Yeah, it depends on the quality of their rendering engine and how they output it.
The one thing about the Cricut that's cool,
I think it was one reason you got it instead of the Axis Draw,
was it has two tool things.
Well, and because it does enough pressure to cut.
Right, right, you need to cut.
Yeah.
Yeah, but the two tool things means you can score and cut without swapping anything.
One could, but someone bought an extra tool that was a little better for scoring, so I do swap them out.
Oh, all right.
Well, never mind then.
But it does have two tool slots is what I'm trying to say.
It's kind of beautifully engineered.
The whole thing is beautifully engineered.
It's got little secret cubbies for your tools.
But it's not hackable, right?
There was an older version that was hackable,
and now I guess it isn't, which is sort of sad.
This is out of the box.
It works.
You use it.
You don't.
SVG files.
If you want to hack something, you're hacking the SVG files.
It's not G-code. You don't want to hack something, you're hacking the SVG files. It's not G code.
It's not,
you're not plugging this into,
you have to use their app and stuff.
Yeah.
So pluses and minuses.
It does have a BLE interface.
So part of me is tempted to,
to go ahead and sniff it and look and see,
but after I finished the origami software,
after I finished all the folds,
I want to fold.
Let's see.
Let's go with another email.
This one's pretty complicated.
Okay.
I don't know what that means.
It means it's going to take me a little while to explain it.
Okay.
Carl from NJ, which may be New Jersey.
I think it's probably New Jersey.
Has heard from more than one person, probably something I said might have related to this,
the opinion that Arduino development environment holds coders back from doing advanced coding.
Here we go.
Carl would like to draw our attention to a code base called GRBL.
Gribble. I'm going to go with gerbil. I think you're right. Gerbil. Okay, we'll go with gerbil.
Carl hasn't examined the code, but it's the most advanced use of AVR, the Atmel chip,
that anyone can do. And it includes USB communication, a G-code interpreter,
and DMA to control the hardware with timing accuracy.
I assume this is for like 3D printers and stuff.
3D printer, yeah.
And Carl asks, doesn't this show that the Arduino environment,
while lowering the bar to entry-level programming,
allows a good programmer to do some pretty sophisticated programming?
Nobody said you couldn't do...
They're all...
Look, Turing.
These are all computers.
And given enough time and effort, you can do anything with them.
The question is, is that the right tool for the right job all the time? And that's where sometimes I think Arduino is being stretched past where it should be used.
Arduino doesn't make it impossible to do complex things.
Not at all.
It hides complexity at some levels that I think are important if you want to have optimum use of your hardware.
And that can be super.
A lot of people don't want that complexity.
I like the Cricut machine because I don't want the complexity.
I want to just, SVGs are as complex as I want to get right now.
I bought a DVR because I got sick of Linux and Myth TV.
That's at a certain point.
You just want things...
There's a balance, right? You can
either buy something that works. If you're
a maker type, you can make something that works.
And if you want to make something that
works quickly and easily,
Arduino is a great idea.
And if you want to make it from component
atoms, that's a different idea.
Yeah, yeah. And I've we've discussed this before that
i mean most of our anti-arduino stuff is more about products yes i i don't think you should
be using it for production work i don't think you should be using arduino in your product because, A, it is very expensive for what it is, the processor is. And B,
it is LGPL licensed. And if you don't know what that means, that's kind of bad because that means
you are- License isn't bad. The lack of knowledge is bad.
The lack of knowledge is bad. Yeah. What it means at a very high level, the way I read it, which I am not a lawyer, but I did try to research this, it means that you should be releasing your object files.
Yes, that's correct.
When you are releasing your product. The requirement is that end users be allowed to relink your code
against different versions of the
library you're using, the Arduino
code.
And there are two problems with that. One,
good luck finding them.
That was quite the adventure I had
and it recompiles them to a new
location each time, so
have a ball.
And two, nobody does that, but that still doesn't make it right.
You're having a copyright violation in your product.
What does that leave you open to?
No, it's a license violation, not a copyright violation.
I mean, it's a copyright violation.
LGPL is a copyright.
Maybe there's no distinction, but i feel like there's a distinction there
um it's it puts you in a gray area that i don't appreciate yeah no no it's an additional couple
it's an additional complication if you're doing something that you're likely to be exposed to that
yeah yeah which is if you're selling something or putting something out there publicly.
I mean, and he says AVR, and that's, you know, yes, definitely you can do complicated things with AVRs.
You don't need Arduino to do complicated things with AVRs either.
They were microcontrollers before Arduino existed.
But Arduino is expanded to cover all sorts of processes.
I mean, you can put it on a... I'm waiting to use my...
600 megahertz Teensy, right?
Okay, now what, right? You can do
anything you want with that.
You know, at a certain point, it
becomes a question like, well,
do I use Arduino on a micro? Do I use
MicroPython on a micro? Do I use
embedded JavaScript
on a micro? Please don't do that.
Do you use, you know, there's a whole bunch of
other high-level easy, I'm making air quote easy, a javascript on a micro please don't do that um do you use you know there's a whole bunch of other
high level easy i'm making air quote easy options and they all have the same kind of
calculus about whether you should be using them to me it's like okay
what are you losing what are you gaining by using this and what are you losing and usually what
you're gaining is speed of development and ease of understanding.
And what you're losing is scalability and proper use of resources
and being able to turn it into a product later on, that kind of stuff.
And sometimes you're losing robustness because you're building on somebody else's thing.
Yeah, of completely unknown quality.
Although we all do that.
Yeah, it's true.
It's hard to really build it up.
But it's easier to yell at, you know, Nordic and the Arduino conglomerate and say, hey,
this library doesn't work. And then Nordic can ignore you professionally.
Yes.
Instead of, I'm not really trying to bag on Nordic. I'm just picking an example out of thin air.
So, Carl, yes. Arduino development environment is great for what it is. When you want to go beyond printf debugging, there don't know. I think embed has all that. Once you've got a bunch of interrupt-driven stuff
and you're doing things asynchronously,
I do not think Arduino,
but maybe I have a misconception there.
I mean, you're depending on how well
the libraries work together.
Yeah, yeah.
And if there's a code base
that is all working together,
then sure, they've done it for you.
Sure, yeah, yeah.
Okay, so moving along, let's see.
Oh, I have this note about debugging this week.
I started thinking about how I was debugging because I was making no progress on the actual
what is the cause of this bug.
And this was a multi-week debug, by the way.
It was really hard.
And instead, I spent so much time trying to make the bug happen faster and faster and faster.
Part of that was just the reproducibility problem.
Part of it was just being extremely bored waiting for it to happen.
And I know that that's a technique people forget about.
I mean, we were like, okay, isolate the bug for reproducibility.
But there is an aspect to isolate the bug or iterate the bug faster
so you can find what changes matter.
Yeah, you got to flush it out.
It's one of these things that my brain, like lately, if I don't finish something pretty
quickly, I lose all of the state information in my head.
And then I end up repeating a test.
And then that irritates me.
I mean, I have my notebook.
I'm really good about using it.
And yet still, I'll read yesterdays and I'm like,
oh, these are the same tests I ran this morning.
So yeah, my brain fog is such a thing.
Finding ways to get a problem to happen often is,
especially with things like memory corruptions,
like there's been bugs like that
that I've fought for months on
because they only happened once a week
or I could get them to do something once a day.
But if you don't have all the instrumentation set up
just right to catch what you're trying to catch,
well, maybe that iteration was wasted
and then you got to wait for the next one to come around
after changing what you're looking at.
Or you were wrong.
Oh, I'm going to look at this memory area because I think this is what's happening.
You're looking at the wrong one.
So now you got to figure out what the next one is.
But then you still got to wait a day to reproduce it.
And then you instrument the crap out of it.
And it goes away.
And it goes away.
Quantum mechanics.
Well, not really but uh yeah and so finding finding ways to get something to happen
more often is not only is it does it help you get more shots on goal to find out what the problem is
but it also changes how you think about the problem because if you can make it happen more often, well, now you know something about it you didn't before. Yeah.
Yeah.
So, let's see.
Oh, that's it.
So, it's going to be a short show. Well, actually, it was a very long show because we started earlier and then had recording difficulties, which are not Christopher's fault.
They are the dog's fault.
I thought we were going to talk about some other stuff.
Oh, yes.
Your homework.
And BLE.
Oh, oh. Do you want to talk about your homework
or BLE? I mean, we're at like 25 minutes.
I know, I know.
Let's do whatever you wanted with that.
So your homework.
Tell me about this.
It's not really homework.
It's a thing to look at.
I've been having some trouble with motivation since about 1991.
Particularly since March.
It's gotten harder since March.
Yes.
So, you know, I'm having trouble getting started at work,
staying focused on things and talking to the therapist I work with.
She mentioned some stuff about ADHD.
I do not have ADHD, but experiencing ADHD-like things.
There's many reasons I don't have ADHD.
Believe me, I've looked it up.
But she gave me this handout on how to kind of change environments and things
when it's difficult to start tasks and stay on tasks and things like that.
And you're holding it and I don't have it in front of me, so I don't know what it says.
Well, and you printed it out really small.
I did not do that intentionally.
It just came out that way because it's a table and it's very, very full.
So this goes through different executive skills, such as organization, flexibility.
Engulfing, sorry.
Time management, task initiation.
And then it gives the definition of each and tells you some strategies for modifying the environment that you're working in, and then also modifying the task and how to solicit help,
and then give some tech supports of applications that you could use.
The part of the problem is I couldn't really bring the motivation to look at this yet.
That's why I don't know much about it.
It's been sitting on the table for a few days.
Okay, so task initiation.
Let's start there.
All right, let's start there.
Is the ability to begin projects without undue procrastination
in an efficient or timely manner.
I don't know where this came from,
so I don't know that we're...
I'm not going to read it all.
Okay.
It's all fair use.
A young child is able to start a chore or assignment
right after instructions are given.
High school student does not wait until the last minute to begin a project.
But if you wait to the last minute, it can only take a minute.
It only takes a minute.
So, that's pretty compelling.
Ah, yeah.
So, what does it say for like, okay, give me some suggestions for, I get up in the morning, I spend two hours on the internet, and I just got to get going at work.
So plug that into your formula there.
Tell me what to do.
Okay, you should choose a time, you should choose a place where you won't be distracted in a time that doesn't conflict with other regular activities.
I have no other regular activities.
Okay, so you check.
Place the task to be done in a location you visit regularly and put all the necessary materials in that place.
Oh, that's interesting.
That's your computer.
Okay, so your computer.
Suspend access to distracting electronics.
See, now this is the problem.
Which is your computer. Your computer is the thing I got to do the project on, but it is also the source of all distraction.
Maybe I need another computer.
I think actually the modifying the task, I mean, making your environment sufficient is one thing.
But they also recommend to keep the degree of effort required low.
Say, I'm just going to do this for five
minutes. It's easier to initiate something if you know you can get through it quickly.
And I know you, like me, if you just start, we both get lost in code and are happy working.
It's just that initial few minutes of pushing through. And so sometimes I do say,
okay, I'm going to work for 10 minutes. And if I can't make some progress, I'm just going to
close my notebook, not bill and go do something else. Sometimes my brain just isn't ready.
It's hard though to just, I mean, changing the degree of difficulty by changing the expectation of time is good.
Changing the degree of difficulty of the task itself is not, I mean,
I'm going to work on this deep learning network, but I'm going to try to make it easier on myself.
That's not always, I mean, these are hard problems.
So part of the thing is getting the motivation to, okay, I'm going to engage with this thing that's difficult to think about. One of the things that they suggest if you can
ask for help is to ask for help selecting or brainstorming a starting point. I don't know
why you'd need to ask for somebody else. If you're a kid, maybe.
But I think that's a good thing is that there's a lot of times the problem is so big and insurmountable, it's just not worth starting.
And if I can instead break it into just a piece, just a starting point to chink away at the wall of work. That helps a lot.
Their other suggestion was to ask someone to check in with you to make sure you've completed the task in the timeframe you selected.
Does that work with you?
Sometimes.
Does it?
There were a couple of these where it asks you to, or it suggests that you ask someone to cue you or check in.
Guilt is the wrong word, but accountability is a big thing for me.
It's the only reason I get anything done is because eventually the fear of completely getting nothing done and having the
person i'm supposed to be doing it for overwhelms me um and you know usually that doesn't take that
long so i'm pretty good but um but yeah that kind of accountability if i i find if i even if i say
to somebody sometimes i'm gonna do this by friday and they don't care it still works yeah because i said it
so i better do it um so that can help i yeah i mean it comes and goes too it depends on how
anxious i am and you know and how how compelling the stuff i have to work on is and how urgent it is. It's a bunch of, you know, it's a, it's a multidimensional problem.
Getting brains to do things.
Well, there was one here,
working memory one is the executive skill.
It's the ability to hold information in memory while performing complex tasks.
What'd you say?
Exactly.
I just, that one's been really hard for me lately.
Yeah, that's a sign of fatigue.
And stress.
And, you know, all your neurons are firing too much.
Yeah.
No, I have that happen a lot.
Also, I haven't been talking about it much, but especially one of the things I'm working on, I have like eight branches in Git. And they're all just slightly different. And it's all, it's kind of a, there's a lot of experimentation and research going on and it's very happening very quickly.
On this project on this project and um several people are working on various things and it's you know it's research code so there's some modularity problems that could be fixed but
everybody's going too fast and it's it's you know it's not product code um but i just keep finding
myself getting there in the morning and looking at my command line and going, what?
Wait, this branch is this. And right now I'm trying to move some stuff from one of my branches to another one of those. And it's like, I've got comparison windows and I'm just getting lost.
Yeah. And remembering what I'm doing, doing that the next day or even five minutes later is...
Five minutes later, right after you've compiled and run and
it's failed and now you don't remember and you have to start all over yeah that's what i'm finding
i think if you if you did a graph of the most commonly used command line uh commands in in the
shell history you got it right right for the last few months i've been typing history grep
probably 170 times a day.
It's a lot.
I mean, one of the things they suggest is to keep a checklist using whatever system you work with.
And that helps me a lot as long as I do it, as long as I actually write it down and don't forget to do that.
As an example of how scatterbrained I am, I was keeping track of possible episode titles in the channel on our Slack that starts with P, which is politics.
No, you're supposed to put it into podcast.
Really?
It's supposed to...
I don't subscribe to the politics one.
You think that's the wrong channel?
Is anybody arguing with you on that one?
No, I just deleted them,
and now I've forgotten what the second one was that I had.
So, oh well.
I mean, sometimes I'm fine, but sometimes this is exactly the sort of thing.
Oh, you know, what made me pick up the paper to talk about it on the show was when you started to read about sustained attention.
And you said the capacity to maintain attention to a
situation or task in spite of distractibility and then you turned away and that's like not even the
end of the sentence you just turned away and went back to to twitter or slack or something i'm like
do you see the irony
look i told you i had a problem
i suggest removing as many distractions as possible so i've destroyed your ipad
i'll just order a new one no i didn't uh and it suggests music uh can can maybe help with that yeah and that's true for me
unless it's new music
yes and then you get distracted with that
and lately if I've been practicing a lot of music
that doesn't work for me because
my brain just attaches to whatever instrument
I'm thinking about at the moment and whatever song
sigh
yeah
they also say keep the degree of effort low by breaking it into smaller segments
and to switch between multiple tasks, spending a short period on each
instead of trying to do all of them at once.
Oh, okay.
Rotating them instead of parallelizing.
So they're endorsing scatterbrain behavior.
Well, they're endorsing focusing on one thing.
At least for a little while.
Okay, and then they have the other one that I just don't understand.
Tell someone else your plan and ask them to check in with you at a specific time.
I know that works for you.
And even, I mean, they suggest interval minder.
You're just saying that because if I told you to check in on me, you'd forget.
Well, there is that. But there's also, if you checked in on me for these things, I would,
I mean, there's a reason I don't use my Fitbit is because I don't even like it when it congratulates
me. It's just so judgmental. It's not to be judgmental. It just says,
I don't like it when things tell me what to do. Get up and walk.
I'm busy here.
But that sort of thing works for you.
Yeah, because it's not actually alive.
I mean, if a person does it,
then you do have to run the risk of that turning into nagging
if that sort of thing bothers you.
But if I'm getting a reminder from one of the stupid robots in the house.
They're robots.
I told them to do that.
Yeah, it still irritates me when they tell me.
Except for the timers.
I like the timers.
Yeah, okay.
Well, I will let you read the rest of this in peace.
Yeah, I'll get right on it. Yeah, okay. Well, I will let you read the rest of this in peace. Yeah, I'll get right on it.
Yeah, exactly.
I think you know everything here.
Well, it's nice.
There's a lot of stuff like that where you know everything that somebody's going to tell you.
But having it all written down so you can look at it and remind yourself is valuable.
I mean, there's probably not much in therapy that I don't know,
but repetition is super important for stuff like that
because you have to have it on the tip of your brain
when you're having a problem.
This did have the nice, okay, if you're having this problem,
here are some things you can do.
Because when you're frustrated, you don't, in my experience, me personally, when I'm frustrated or anxious or having some sort of difficulty engaging the mental gears or getting them to shut up about something I don't want them to be engaged about. It's hard to bring the skills that you've got to bear
without having them be kind of automatic.
Yeah.
So knowing that stuff or being able to look at something
to get outside of your own brain.
Because if I'm procrastinating,
even though those things are in my brain
and they're kind of floating around.
They're whispering.
They're whispering and the shouting of, well, you know, just five more minutes of whatever brainless activity I was doing.
That'll be fine.
But if you have something that you can grab and say, I need to get out of this situation, when you read it, that's an outside voice.
That makes sense.
I think that's why the reminders things work or having somebody check on you works
because it's an outside voice.
And my problem is that I try to remove so many distractions
that sometimes when I actually get into flow,
nothing gets me out. I missed a meeting with one of my mentoring people and
I felt so bad because I had no excuse. I mean, I got the Google alert, my phone got the little
pop-up, except my phone was in the other room because I didn't want it to bother me. I wasn't checking mail.
And on one hand, it was really nice because I didn't get a lot of work done.
On the other hand, I shouldn't, I shouldn't, I should show up to meetings when I agree
to be there.
So yeah, yeah.
Anyway, if you're still listening, it's not you. Or it may be you, but you're not alone.
Or you may be alone.
Actually, you probably are alone.
What?
Well, I mean, because we're not in groups anymore.
Oh, I see.
Sorry.
It wasn't like you're alone and sad and pathetic.
I didn't mean it that way.
I really, really didn't mean that way.
Okay.
Okay.
You did do a BLE app.
Yeah, and I don't know what context to talk about this in. It could be a whole show if people were kind of interested.
So, I mean, one of the things for Embedded is that a lot of things are Bluetooth, right?
And more and more things are Bluetooth.
And it's fine to do the device side, but it doesn't really do anything without usually a mobile device.
And so people need to write apps for that.
And there's various ways to do it.
And so I was wondering if walking through on the iOS side, what that looked like, would be interesting for a show.
I don't think I can do it now because it's so... That's a longer thing, but
this is a meta show again. Okay. Well, I mean, I bet people would be
interested in doing that. I know there are lots of different ways to do it.
There are some where you end up with an app on Android or iOS.
The tools that
I don't remember the name of.
I want to say AppCelerator,
but that was like 10 years ago.
Oh, there are some cross-platform things.
And they have their downsides.
Especially when you're working with something like Bluetooth
that is very hardware-centric.
Yeah.
But yeah, it was, you know,
I've done iOS stuff in the past.
I did it for Fitbit for a while.
I wouldn't say I was great at it.
But with Fitbit, you were modifying an existing app.
Yes, so developing a new one from scratch was both easier and harder for certain reasons.
Easier because some of the architectural decisions that were made at Fitbit
made things difficult to try to add new code to add new code
and features but uh you know it's a different way of thinking about code too first versus embedded
and yet you're working on an embedded product so that's kind of interesting I guess in some
some sense it's a lot like working on a user interface for an embedded product you know
you're working at a higher level language than the people who are twiddling the bits.
But it's probably something that it's not that hard
to get something basic running.
And I worked from some good resources.
So it might be worth talking about at some point
and just going through and laying out the pieces
and what you'd need to learn
if you wanted to build something to talk to your device.
How long would it take me,
who has never programmed in Xcode,
to be able to do an app like you did?
Like the Bluetooth one?
Like the Bluetooth one you did.
See, that's the hard part.
So Apple does a good job of kind of getting you off the ground
and making a little app really quickly.
The Hello World.
The Hello World.
Designing an interface, having it do stuff, simple stuff.
The problem is there's a giant chasm between that
and more complicated things like talking to a Bluetooth device
with asynchronous events happening.
And so you really, really have to have a decent understanding.
Xcode is just the IDE,
but you have to have a decent understanding of Swift or C Sharp,
not C Sharp, Apple people, sorry.
Objective-C.
Which is pretty much, I wouldn't recommend anybody start with Objective-C anymore.
You may come across it when you're developing stuff for iOS
because there's a lot of legacy code, and that's sort of unfortunate.
But you kind of just need to be able to read what's there,
modifying it maybe a little bit.
But Swift is definitely different for people coming from Embedded.
So I had to do a course and go through a book,
and there's still a lot I don't know about Swift.
On the other hand, it's not as daunting as something like C++
or even C Sharp or Java to me at this point, which have been around a lot I don't know about Swift. On the other hand, it's not as daunting as something like C++ or
even C Sharp or Java to me at this
point, which have been around a lot longer
because it's new
and it's sort of
streamlined compared to all of those. It'll do all
the things they'll do, but
there's a lot more
cohesive thought about the design of the language
so it wasn't just
30 years of accreting,
hey, there's that word again, accreting features and trying to modernize what is a very old
language. So it's pretty quick to learn if you're familiar with a few object-oriented concepts.
And if you're a Rust person, it's very similar to Rust in a lot of ways.
Oh my God.
So yeah, if you're doing embedded on Rust
and you're doing Bluetooth stuff,
it's probably not that big a leap
to start learning Swift.
Some of the words are changed,
which is kind of annoying to me
as somebody who's looking at Rust.
But conceptually and syntactically, it's very similar,
minus a lot of the object-oriented stuff.
So that's the big part that would take a while.
The nice thing is Apple provides just a ton of,
I mean, the frameworks you get with iOS, the libraries and stuff,
just does all sorts of stuff for you, like the Bluetooth stuff.
It's complicated, but a lot of the complication
is under the hood and if you want to connect to a device and stuff you know it's it's really
straightforward and it's all a lot of it's callback based so you know oh this device connected i got
a callback this this device updated to value i get a callback and i just update my my variable
and some of the ui stuff is very nice and easy to deal with.
But, you know, there's a lot of stuff with mobile development
that's a big pain in the butt, like signing apps
and having a developer account and test flight
for getting testing to other people.
Yeah, you're right.
This is a whole show.
I mean, the tactical part of just getting started
is is interesting okay so yeah we'll have a whole show about that at some point
and if people have specific questions about that um send them in and i can think about them
beforehand cool and i'm not a super expert no No, sometimes the best time to teach something is when you're a beginner.
I'm not a beginner.
When you're just beyond beginner.
I just took the training wheels off.
I'm sticking a playing card in my spokes.
I'm at that level.
Good deal.
All right.
Well, that covers it.
Do you have anything else you want to talk about?
Any projects?
I have a box of projects upstairs that I haven't started with.
I have a ukulele kit.
You've been playing a lot of music.
I've been playing a lot of music.
I got some music books, including a sight reading book for bass, which I'm 30 pages in, and it's still just the same D note.
Over and over.
That's,
that's,
that's what it means to play bass,
right?
It,
it,
it has a bunch of rhythm stuff in the first 30 pages,
but I found that hilarious that I just opened it and it's like staff after staff of just D.
Not,
not all the Ds.
I'm not,
I'm not learning different Ds on the fretboard,
just,
just the one.
So, yes, this was pretty good. So, Not all the Ds. I'm not learning different Ds on the fretboard, just the one. Okay.
So, yes.
That's pretty good.
So, do you think there are bass players out there who've only gotten through the first 30 pages?
A lot of guitar players and stringed instrument players in popular music can't read music.
So, yes. Yes.
I can read music. I can read music.
I can read music for piano.
I can read drum music.
Reading for guitar is really hard.
Because the notes go in random order.
There's multiple places for things.
And the fretboard is just not logical i mean it is
logical there's obviously a linear relationship with the notes and stuff but it just it's not
i was telling my brother today we were talking about this and he said you know on a piano you
looked at thing look at the thing you see the black keys those are the sharps and the flats
and the white keys are the natural notes and you know once you know all those you know
exactly where you are and i said yeah on a piano it's a it's a thing that says you are here when
you look at it on a guitar the guitar hands you a map and a compass and the map is chopped up into
little pieces that you have to put back together so is this what the show is about i don't know
what the show is about i don't't know what the show is about.
I don't know why people listen, which is fine.
I think they like to have beer with us or coffee or do chores.
I mean, I guess a lot of people are probably folding clothes right now.
All right.
All right, well.
Let's close this up.
Let's close this up.
I didn't do that.
You did that.
All right.
Well, thank you for listening.
Thank you to Christopher for producing and co-hosting.
Thank you to the dog for not coughing through the rest of the show.
The rest of the show.
Yes.
The first half an hour we tried to get going though.
And if you want to contact
us, show at embedded.fm
or hit the contact link on
embedded.fm. There's also
a Patreon. It's
patreon.com slash embedded,
which you can also get to from
the support page on our main page,
which is embedded.fm.
And now, some Winnie the Pooh.
There was a small spinny of large trees just here,
and it seemed as if the two woozles, if that's what they were,
had been going around the spinny.
So round the spinny went Pooh and Piglet after them,
Piglet passing the time by telling Pooh what his grandfather,
Trespassers W., had done to remove stiffness after tracking
and how his grandfather, Trespassers W, had suffered in his later years from shortness of breath and other matters of interest
and Pooh wondering what a grandfather was like and if perhaps this was two grandfathers they were after now,
and if so, whether he would be allowed to take one home and keep it, and what Christopher Robin would say, and still the tracks went on in front of them.
Suddenly Winnie the Pooh stopped and pointed excitedly in front of him and said,
Look!
What? said Piglet with a jump, and then to show he hadn't been frightened,
he jumped up and down once or twice in an exercising sort of way.
The drax, said Pooh, a third animal has joined the other two.
Pooh, cried Piglet, do you think it's another woozle?
No, said Pooh, because it makes different marks.
It's either two woozles and one as it might be wizzle, or two as it might be whizzles and one if it is so woozle.
Let us continue to follow them.
Embedded is an independently produced radio show that focuses on the many aspects of engineering.
It is a production of Logical Elegance, an embedded software consulting company in California.
If there are advertisements in the show,
we did not put them there and do not receive money from them.
At this time, our sponsors are Logical Elegance and listeners like you.