The Changelog: Software Development, Open Source - Kindle as a smart device, Changelog on Mastodon, GPT-3 up in your CLI, no arch better than bad arch & Mish Manners (News)
Episode Date: November 21, 2022Matt Healy says your next smart device is a $30 Kindle, Changelog sets up an instance as Mastodon takes off, Anurag Bhagsain puts OpenAI's GPT-3 in your CLI, Kirill Rogovoy argues that no architecture... is better than bad architecture & we talk to Mish Manners at All Things Open 2022.
Transcript
Discussion (0)
What up nerds, I'm Jared and this is Changelog News for the week of Monday, November 21st,
2022.
Let's do it.
The top story from Sunday's edition of Changelog Weekly was Matt Healy announcing,
your next smart home device is a $30 used Kindle.
Matt says, quote,
A lot of tools that used to be separate have now converged into one, the phone.
You might not buy another camera again, and you probably won't buy a calculator.
For the most part, it's a good tradeoff.
What we lose in the tactile pleasures of a good single-purpose device,
we gain back tenfold in having all those devices in our pocket all the time. That's all fine for calculators, cameras, music players, and the like,
but our phones are also the nexus of all kinds of data we want pushed to us. News, messages,
notifications, alerts, status updates. Things we want to know about without going looking for them.
A phone isn't actually great for this kind of ambient awareness.
It's usually in a pocket or purse, so the ways it can get our attention are limited. A buzz,
a notification on the lock screen, a red dot on an app icon. I can choose to let myself be interrupted, or I can compulsively check in to see what the latest alerts might be.
I found myself wanting a less intrusive channel for ambient data, something I can glance at in
passing without giving my full attention or opening myself up to whatever other interruptions End quote.
The device he landed on is, you guessed it, a Wi-Fi connected Kindle 4 mounted on the wall.
In the post, he walks you through why this is the perfect setup, why e-ink, why a Kindle, why a screenshot of a webpage. And he also provides instructions on
how you can set up a $30 Kindle to do the same. Amidst all the Twitter turmoil, Mastodon is
busting at the seams as technologists from all around the world turn to the Fediverse and Activity
Pub as a potential answer to their social networking woes.
As a result, I spent some time last week
setting up an official changelog instance
hosted by our partners at Fly.io.
It was pretty easy, thanks to Docker and a config repo
by Aman Gupta-Karmani that I forked and customized for our use.
I'll link to his and our fork in the show notes
if you're curious how everything's wired together.
Streaming stuff under the internet.
Why?
Tubes.
The internet is tubes.
Adam and I first spoke with Mastodon creator
Eugene Rochko in September of 2018.
That was episode number 315 of The Change Log,
which, it turns out, is more relevant today than ever
and so in march 2016 i just wanted to check well how is that new social thing doing right now
and i saw that it was still alive and um but it obviously looked kind of awful visually so it's
like i like using tweet deck i kind of want to. So I was like, I like using TweetDeck.
I kind of want to make an interface for it that works like TweetDeck and that looks good.
And maybe people will switch.
But I didn't have any big ambitions about that.
I just thought I'd make something that people who are really used to NooSocial would just switch to.
I wasn't expecting anyone from outside that circle to make a jump. But I soon found that NoSocial had a rather arcane code base,
very old-style PHP, and I just shuddered
and I kind of decided to try starting from scratch.
We called that episode Join the Federation? Mastodon Awaits.
And I did set up a changelog account on mastodon.social after publishing, but we never ended up using it.
I guess Mastodon had to wait a few years for us to finally join the Federation, but we're here now,
and you can find all of our accounts at changelog.social slash directory.
The AI in your dev tools revolution continues apace.
Come with me if you want to live.
This time, Anurag, Bagsain put GPT-3 all up in your CLI, answering your questions.
Stay here. I'll be back.
After installing with NPM and configuring your OpenAI API key,
you can ask it how to do things, such as the command, AI ask, check process running on port 8000.
It will take that question, hit OpenAI's GPT-3 API,
and return its best guess at the matching command.
In this case, LSOF-I TCP colon 8000.
Trust me.
Which is better? Bad software architecture
or no architecture at all?
Kirill Rogovoy argues it's the latter.
So you're telling me there's a chance.
Yeah!
He says, quote,
it took me several years
to learn how to write code
that scales to tens of team members
and a million lines of code.
It took even more time to learn
to write stupid code again. Turns out, building a solid architecture in your code can easily be
busy work and procrastination. Turns out, you can waste a lot of energy trying to get rid of End quote.
He doesn't claim to have the answers yet,
but shares a few practical heuristics that helped him avoid poor outcomes. One, no code is equal.
Two, let it beg for structure first. And three, always start with one. If you want to know what
exactly those things mean, read the post. That is the news for now, but stick around for a fun bonus conversation with Mish
Manners in the hallway track at ATO 22. Coming up on Friday, we revisit last fall's episode with
Gerge Arose on the Insane Tech hiring market. Things couldn't be more different than they were
a year ago, and Gerge has been tracking and reporting on all the goings on. He has some great insights on where we're headed,
solid thoughts on how to avoid being laid off if possible,
and actionable advice about moves you can make to get back on your feet quickly.
Have a great week, and we'll talk to you again real soon.
Let's start with the NFC.
Yes. Oh, yes.
So before, you were just sitting over there.
You lost it earlier.
You found it.
I did.
What is this?
Give us a short story.
The NFC, what does it do?
And then tell us what happened when you lost it and you found it.
So it's a little NFC chip inside a resin cast.
And you can use a thing called NFC tools.
They're available on iPhone or Android.
And you can program that little chip
to do whatever you want.
So it could be,
so for mine,
it's programmed to do one single action
which is take me to a website in the browser.
So if I tap it on your phone,
I've got one set up to go to my Twitter
and I've got one set up to go to my website.
So can you tap my phone with that
and take me to your site so I can follow you?
Is that the purpose?
Exactly.
Let's do it. So tapping you now. Well with that and take me to your site so I can follow you? Is that the purpose? Yeah, yeah, exactly.
So if like I...
Let's do it.
So tapping you now...
Well, do I have to be...
Well, it's an iPhone, so it's like...
It's unlocked.
Hang out.
It's happening.
On the back.
I've found problems with iPhones.
Maybe I have a blocker on the NFC.
Because they usually have blockers on them.
Let's see.
Let's take it out of the case.
Maybe this is NFC blocking case.
Here, try mine.
Mine's naked.
Try mine.
Mine's naked.
Well, iPhones tend to work on the front.
I feel like maybe you're casting a spell on my phone right now.
Some people say like, oh, if it was a security conference, we'd never be doing this.
Oh, Twitter NFC tag. Open in Twitter.
So there you go. So I tapped my little, it's a little Xbox controller.
Yeah, and it takes you to my Twitter.
Mish, I'm on your Twitter.
So a lot of people say, oh, what's your Twitter handle?
You've got to open up the app, you've got to go to the thing, you've, I'm on your Twitter. So a lot of people say, oh, what's your Twitter handle? I've got to open up the app,
I've got to go to this thing,
I've got to type in your handle.
Right.
It just does all of it in one go.
That's kind of cool.
Yeah, yeah.
So you just carry around
a couple of those.
They're like a little piece of plastic.
It's like a keychain.
Yeah, yeah.
So I have two of them
on a keychain.
So you can see one there.
So one's a PlayStation controller.
Right.
And the other one's
an Xbox controller
because I like both. Right, cool. And then there's one there that was missing. Well, other one's an Xbox controller. So I like both.
Right, cool.
And then there's one there that was missing.
Well, still is missing, but it's in my pocket now.
But it came off, and I was like, I better tweet it out that I've lost it
and open source the shiz out of this thing,
and hopefully the community can find it.
The shiz out.
I was down there at Major League Hacking, and I saw her.
She was looking for something.
I'm like, did you lose something?
She says, yes.
But I had no idea what you said, really.
But I empathized. I was like, I'm so sorry that you lost this thing. And then she's on Twitter, and she's like, I'm going to get Twitter to get this thing for something. I'm like, did you lose something? She says, yes. But I had no idea what you said, really. But I empathized.
I was like, I'm so sorry that you lost this thing.
And then she's on Twitter.
And she's like, I'm going to get Twitter to get this thing for me.
And I'm like, OK, great.
I'm going to get Twitter to find my NFC Twitter chip.
So this is the loop being closed.
She found it.
Yeah, I did find it.
So it was on the ground on a strip of black plastic.
Hence why I missed it the first time.
But it's very colorful, right?
Isn't it colorful?
It is.
Well, this one.
Well, that one is.
This one's more colorful.
The other one's like a dull blue color
so I really blended into the tape
and yeah, it was on the ground
between the retro desk and
security. Where does that one go?
This one goes straight to Twitter.
And that's your link tree?
Is that what that is? A link tree? Basically a link tree.
Is it the Michelle tree? It's
mishmanners.info. So I built
my own link tree because I didn't like link tree.
Gotcha.
Okay.
Awesome.
So how do you program the thing?
So all you do is download an app called NFC Tools.
It's on iOS or Android.
And you just tap the chip that you want to program and say, give it like an action.
Yeah.
And they can just do one thing?
Yeah, it just does one thing.
And then if you want, you can lock it. So what Michelle does when she's at a conference,
she'll leave them in a pile.
She'll give them out to people.
It's got her Twitter on it.
They can tap it, follow her Twitter,
and then she's left it unlocked so that you can then program it yourself.
Right.
And then she encourages you to then lock it
so if it's not lying around, no one can just randomly write.
Reprogram it because then you start using it. It's like, well, now it's no longer the thing you thought it was doing.
Well, I've seen people do these things for like garage door openers.
So instead of having your actual garage door open, I was telling Michelle this earlier.
Instead of having your actual garage door opener in your car, which if somebody breaks into your car, pushes that thing, they can get into your garage.
And that's usually the second door in is usually the secure one.
But they can get in your garage, which has lots of stuff, right?
Your car for sure, in most cases.
Or a bunch of boxes full of gear.
Boxes, your trash potentially.
Well, things you may not want them to get into, let's just say.
So instead you put an NFC there and it's biometric to your phone.
So you have to open your phone, BU, and then use the NFC, which would then open your garage
door. Yeah, we've got something similar now. Oh, to your phone. As, and then use the NFC, which would then open your garage door.
Yeah, we've got something similar now.
Oh, to your phone.
As in, like, it's biometric unlock.
Either you've got to put your own pin number in.
It's defense in depth.
Lots of interesting.
Do you have them around your house at all, or do you just use them for this?
Well, I'm in an apartment, but we have, like, they just installed, like, a similar system.
And it's an app that I can, like, download, add it in, and say, yep, this is my primary residence. I can add,
set up like a network and be like, I live here. My housemate also lives here. So we can both use
our own biometric unlocks to get in. And it also means that they can call me on my phone. I can
click a button, see the camera, as long as I'm connected to the internet and see who's home.
Go, oh yeah, there's a package. I'm in America. There's a dude standing outside my house in Melbourne, Australia.
Yep, let him in with the package.
Is that right?
Just like that because of NFC?
Because they use it there.
That one's not specifically NFC.
That one's going over the internet.
So that one's more like, I mean, there is an NFC chip that we have as well,
but unfortunately the system is not advanced enough
to allow you to add your own NFCs,
and it's obviously not an open system,
so I can't just go and program my own.
What they're meant to do, though,
is put essentially programmability into the real world
that you control and can lock,
and you can sprinkle them throughout your house.
Turn on lights, doing different things,
household automations with you and your family.
I'm me, so when I tap mine, it can be the same NFC with the action, but I'm me.
So I can see when I do this action, it does, you know, the lights this way.
It dims it to 50%.
Question.
Can you do the laundry for me?
I wish.
I love it.
Well, I'm sad.
Why?
Because we sent you a shirt, and I didn't see you wear that shirt.
Oh, she didn't know we were going to be here.
I know you did.
I thought for sure at this conference you'd wear it.
Knowing we'd be here, you knew we'd be here.
She works for GitHub.
She's obligated.
I'm stretching the truth.
I'm being funny.
I was about to say yesterday that I got the shirt,
but I'm very impressed that you remembered that you sent me a shirt
because I love that shirt.
Yeah.
It's a really nice shirt.
It's the best shirt ever.
I wear it like this.
Like, I've got my current GitHub shirt on, which is, you know, the gray shirt, the jeans, and the plaid over the top.
Right.
Is that your uniform?
It's part of the uniform.
That's how I wear my chain dog shirt.
Please wear it.
I love it.
It will last.
I'm even a bigger maintainer now.
I've got a bigger project.
Well, it's not really that big.
It's bigger. It's bigger. She's backtracking a little project. Well, it's not really that big. It's not bigger.
It's bigger. She's backtracking a little bit. Hang on a second.
It's bigger. But yeah, I started
a project for Hacktoberfest this year
called Mish Friendly Food.
So my name's Mish, obviously.
And every time I go out for dinner, I'll go
somewhere. People who come out with me
understand that I
have a lot of dietary issues.
I'm gluten-free, dairy-free.
I'm allergic to mango, potato, banana, coconut, chickpeas, cashews.
Holy cow.
There's a whole thing.
So whenever I go traveling, especially to a place that's not English as a first language,
sometimes I don't even know what gluten is.
To the point where one guy was like, bananas.
Can you eat bananas? Do they have gluten can you eat bananas do they have gluten in them
they do not have gluten no they don't have gluten but i'm allergic to bananas i think he misunderstood
me so some poor soul wandering around thinking bananas have gluten in them so we were chatting
about this at lunchtime i had breakfast when we were recently in norway and a bunch of us were
sitting around and one girl was like i need something to work on for you know Hacktoberfest I was like oh yeah cool and then like we just got chatting about this
on dietary stuff and I was like you know what's really funny we're at dinner the night before
and there was pizza and obviously pizza is not gluten-free but I said to the guy like
is there any mish friendly pizza or like are we gonna have mish friendly pizza there
he sends me a message back about half an hour later being like I've spent the last half an hour
googling what mish friendly food is
oh gosh
because he thought it was
an actual dietary
makes sense
category
which makes sense
and then someone was like
you should SEO that
and I'm like
that would actually be really cool
so someone searched for it
and someone was like
why don't we start
like that
this could be a thing
and then it just got
like cool
we're going to do this
for Hacktoberfest so it's a um online app just like a web app where you go to the website
mishfriendlyfood.com because i wanted to call it something cool and everyone's like no mish
friendly for sure so i have.com mishfriendlyfood.com and you can go there you can type in your dietary
requirements or allergies then you can select the language you want to translate it into.
No way.
That's so cool.
For Hacktoberfest, I managed to get a bunch of different translated languages,
so a whole bunch of people came and contributed for that.
People helped me build the site, so we did a JSON database,
set it up in, first of all, it was this whole big,
do we do React, do we do Astro, do we do something else,
and it ended up being Astro.
So we set up the Astro database side of it.
And then we've got the website working.
We've got all the translations there.
Got a little bit of search functionality happening.
And then eventually it's going to be,
you can print it out in a cute little card,
digital or physical.
And then you can hit a button
to do some Twitter integration.
So it sends you a text message of your result.
So if you've got dietary requirements, you can travel.
Wow, I love it.
And we're so sure that you know.
Boom.
What does it print out for you?
What's the result?
Does it just say how to say it in that language?
No, it just gives it like the text of that language.
So if it's chicken, it'll print out,
I think it was poisson in French.
Right, okay.
Yeah, but like usually people got like a list.
But actually, this is a good thing to rift on.
So while doing that, I encountered a lot of different,
not issues, but things that I had to learn and work through
as a quote-unquote maintainer for this.
So a whole bunch of people were committing to stuff
at the same time and someone changed all the file structure
while there was all these commits.
And I was like, this is good.
And I was talking about a live stream
and someone was like, yeah, I saw that happen.
I was like, Misha's going to have fun with that.
Yeah.
So that was fun.
So that was fun.
Merge conflict, not just within a file,
but within like the whole structure.
You can't do it in the GitHub UI.
Right.
Got to do it some other ways.
That was fun.
Things like, yeah, pull requests and people have got multiple things in some other ways. That was fun. Things like, yeah, pull requests.
Some people have got multiple things in one.
It was interesting.
Even things like doing automated auto-generated release notes.
Yeah, I learned all this, like, cool stuff.
Yeah.
Because I have, you know, you've sent me a T-shirt as a maintainer.
So I've done a little bit of other stuff before,
and there's, like, a bunch of people contributing,
but not all at once.
Yeah.
So this was very interesting. I really enjoyed it that's cool yeah yeah everybody has a hard time
saying they're a maintainer like you kind of said quote-unquote maintainer yeah right and then we
had another issue where we were on a show and they had to like justify them being a maintainer i'm
like listen you're a maintainer like they had to be like they were like well the reason i say quote
on quote is because i take i'm relatively new they're not big projects like i'm not a big
but i'm still a you are still a maintainer it's just you're not like a big maintainer or you might
not be an experienced maintainer like you know i've got some experience there's tiers and categories
to be a maintainer just like saying like some people come in and go, oh, yeah, I'm like not really a developer.
I've done a little bit of code, but not much.
It's like, well, you kind of are a developer.
You just, there's different levels, right?
Then they show you what they've built and you're like, excuse me?
Or they're like, I'm not, you got the game?
I'm not a gamer.
Oh, yeah, let's sit down and play.
Oh, yeah, you're a gamer.
Yeah, totally.
Exactly. Yeah. totally. Exactly, yeah.
Yeah.
What else?
We talked a little bit about, you could talk about my talk that I gave today.
I gave a talk today.
Oh, you gave a talk?
Yeah.
What about?
Automatically generating your release notes, but not just that, like automating your entire
release process.
Right.
And also like the pain points that maintainers face around doing releases.
So things like having to write notes or having to like ship and package things,
having to bump things to different versions.
So yeah, it ended up being a really good talk.
We talked through that whole process.
And you know when you give a talk and people are in the audience
and you know they've had like that kind of experience
because they're just sitting there going,
Mm-hmm.
Right.
Yeah, they might even say, mm, out loud too.
And then some people, like when I'm showing them,
like how to automate this, they're just like, oh, wow, wow, oh, wow.
And I'm just like, okay, the talk's good.
The talk's good.
Nice.
Is this talk going to live anywhere?
Are these notes?
How do I do this stuff?
I'm glad you asked.
You could scare my NFT to.
So, yeah, so I was in of room that wasn't live streamed but i'm a bit of a content creator so i recorded the
whole thing myself i'll be creating a youtube video out of it okay but i also wrote a blog
post on it as well so if you go to the dev.to so the practical dev site. Under my username, Mish Matters, I wrote an article.
What did I title it?
Why do releases?
How to automate the release process or something around that,
which is essentially my entire talk.
A very catchy title.
Yeah, yeah.
And the big thing is a big ship
with Ship It on the top.
We love Ship It.
Ship It.
We love Ship It around here.
So that blog post is essentially my entire
talk distilled down
into words and also links out to
other tutorials and videos I've done.
And then you can also go to my GitHub
repository, github.com
slash mishmanners and go to my
talks and presentations. There's
a one there for this conference
all things open and it's got a list
of all the links and references and everything I used in my talk, including that blog post.
Thorough.
Very thorough.
Very thorough.
Appreciate that.
Medium.
Multilocation.
She's a bit of a content creator.
She's a step ahead.
I learned that one from B. Dougie, who runs open source.
He used to be my boss.
He's the Beyonce of open source, I hear.
Yeah, he's the Beyonce of open source.
He used to be my boss. He's awesome. He is awesome, I hear. Yeah, he's the Beyonce of open source. He used to be my boss.
He's awesome.
He is awesome.
There he is right there.
Shout out to B-Doggy.
Shout out to B-Doggy.
He literally just shouted you out on this podcast.
Right here.
And he just happens to be standing right next to me.
Well, Mish, thanks so much for coming on the show.
We appreciate it, guys.
Thanks so much for having me.
Awesome.
I do actually, I've been trying to track him down.
There he is. Thank you for that. How do I do actually, I've been trying to track him down. There he is.
Thank you for that.
How do I get this?
Well, you've got to draft.
Do you have a chip?
QR code.