Yeah, good point, Stan. Let me start it.
Sean, will you back up a little bit? And just like start from the repo route and navigate to where you're working.
Sure. So the repo route is just here the slug stlug site And then the source folder is where all the code and content lives.
And then in here is the, and then the content folder is the one that we're going to be touching multiple times a month.
All the other folders have code in them. So the developers will touch the components and the pages and stuff, the styles.
But for people that are just worried about doing content. You'll only do the content folder.
And then inside the content folder, there's a meetings folder and a presenters folder. And this is outlined in the README a little bit.
And all of the I guess I'll go over the presenters real quick. All of the presenters files are exactly the same way. They have this what do they call it? Front matter? I think they call it front matter with the presenter name and the last time their bio was updated
And then all of the files have this markdown level one heading.
With the front matter.presenter name and these curly braces. And then down here is just literally what they give us for the bio. And all of them look this way. So we can go like.
Andrew Dinner and you see that like this top part is exactly the same. And the only thing you need to change is just typing in a different bio based on the user that you're doing. And if you look right here at this underscore new presenter.txt.
This is basically a template, right?
So if I need to input a new presenter, I'm just going to right click and copy this and then just paste it.
Okay.
And rename the copy to rename the copy Typically.
Whatever's… Yeah.
Typically, I do the first name dash, last name of the presenter.
That's what I've typically done. I thought there was like one case where I did like a middle initial yeah here michael dash w-Lucas and i guess that works So I guess the name doesn't super matter. I think it does need to end with MDX.
But I'm not sure if the name super matters. What does matter, okay, and this is very important You see this presenter name right here, Michael W.
Capital L Lucas okay This would need to exactly character for character, match what is in the meeting. So if we look at one of these JSONs and I just picked one at random.
We have these, oh, look, I just happened to pick one that I did.
We have this presenter name right here inside of this presenter names JSON array.
Okay.
And this name in here needs to exactly match. Exactly match.
What's in the MDX file. So if we look at my MDX file. So this right here has to exactly match was in the presenter names array there in the JSON.
That's tied together.
And then if you've Yes, if you do that, then what you get is…
Sorry, I'm completely unprepared. What you get if you do that is you get a link here.
So here's Lee. This is a great one. So if they match up exactly, then this will become a link And if you click here, you'll be taken to the page with the last updated, their name and the H1, their bio.
But then it also links all the meetings that they ever gave a presentation at, like Lee, Lee, you know.
And so this is all linked up by those names matching. If the names don't match.
You won't get this linking happening. If the names don't match, I'm pretty sure it would just be a flat text here with no link to click on. I'm pretty sure like it would still… display fine, but it would just be flat text, no link.
That leads to a page like this. Okay. And that's outlined in the README as well, at least a little bit.
Okay, now this is not my typical way I do it, but I'm going to show you, I'm going to try and it's been It's been like, you know, almost four months since I've done this. So you got to bear with me, but I'm going to try.
To show you the minimum that you can possibly do. So I'm going to cheat a little bit by copying this November file.
And pasting it in here. And now I'm going to rename it to December.
Oh, wait, I'm supposed to do, wait, this was December. Sorry, sorry, wait. I'm supposed to do… I'm supposed to do… lug saint i was supposed to do Linux okay Sorry. So, okay. This is the November one.
I'm going to copy it. I'm going to paste it. I'm going to rename it to rename it December and what day was that meeting in December? It was… It was 19th, December 19th 2024.
So December. 19th.
2024. And then up here, I'm going to change the date to December 19th, 2024. It was an STL lug meeting.
The title. Was… history of computing since 1990.
Computing since 1990. The presenter was I think it was Graneman, wasn't it?
Yeah, Scott Grahaman.
Yeah, so let me So what I always do is I find them in here Scott Graneman, and I'm going to copy it because it has to match exactly. So I'm going to do the good old copy and paste.
All right. So that should match exactly Now I'm going to take the Probably down to here.
I'm guessing. And then I'm going to put it into the abstract.
And you can't have new lines in JSON. So anytime I see a new line, what I have to do is I have to do a slash in And then I have to collapse it down.
Also…
Does it appear as a slice N in there when it comes through.
No, it'll parse it to an actual new line. Yeah. Yeah. But the other thing that doesn't work is these double quotes.
Oh.
With JSON, the strings are delimited by double quotes. So all these places in here where there's double quotes within, that's not going to work. So I change all these to singles.
Okay. Good to know.
Yeah, it's just standard json rules here so Same them all single.
Okay, I think that's everything. And then if I wanted references, I believe are optional.
You can have some. References.
Now, what would that be like uh slides reference it we have like we have up on the archive page?
Presentation archive or what?
No, this right here. The references go right here. Below each talk.
Yeah.
This is what the references map to on the site.
So I could reference back to something we have on Bach.
Cool. Cool. Yeah. Okay, cool.
Yeah, I mean, as long as it's available online. It's a web yeah
I think you referenced. I think you could reference to anything on the internet as long as you have a URL to it.
Right.
Okay, cool.
For this one, I don't know what was it talking about computers and stuff.
I'm just gonna not, I'm going to try not doing one can't remember.
That's what I can't remember. We're going to try leaving it empty.
Leave it empty or take it out.
And then any tags you want. So what I'm going to do, what I'll actually do And the thing is, I don't think it's like, I've been trying… not super hard, but I've been trying to keep… the number of tags small, right? Because if this page just scrolls and scrolls, it's not that useful, right?
Because then you're going to have each tag is only going to have one meeting under it, you know, and that's kind of not useful.
So what I do is I try to not add any new tags. I try to just mostly stick with what we already have. And I see there's one right here called history.
And this is where Scott's other talks seem to be under here.
So I'm going to click on this one and I'm going to see it just has the history tag.
So I'm just going to do history.
Okay, we're not going to have a tweet. I'm going to try just removing it entirely. The tweet is normally something AI generates.
And I'm going to try just removing references entirely too. If it breaks, I can probably fix it And now we need…
A tweet, is it thinking about something like meetup.com or… Or… I'm not socially oriented to the… X?
Think about it like the teaser that's a 30 45 second thing you hear as an earworm to catch people's attention.
Or on the news after the break, we'll talk about blah, blah, blah, blah, blah type thing.
Oh, okay.
All right. I think I think…
So it's not discord or anything like that, right?
Yeah, tweet is just like 250 characters or less. And yeah, it's like an advertisement, basically.
Oh, okay. Okay. Understood.
And it's very hard to come up with those. So that's why I have AI generate them because it's very Anyway, I think this is the minimum. I think this is the absolute minimum that you can get away with having in here and have it display a page, okay?
So you need the meeting date, meeting type. And at least one presentation And then the presentation has to have at least title, presenter names, abstract.
I bet tags might be optional too. I'm not 100% on that.
And then I'm pretty sure you don't need the meetup URL, but I strongly recommend putting the meetup URL in.
But I don't think i don't.
The URL for that one?
Good. Could we put remarks in this thing for just for reference when we go back to something.
Almonds are not valid JSON. You can't have comments in JSON.
That being said, I've not tried it to know if it would mess anything up.
Okay.
But comments, yeah, not valid. Uh…
What notes are you or comments are you thinking, Stan?
I'm just thinking if I go along and there's something I need to put in there to reference something that is not handy like we're still waiting on hand I found something on you. I don't know. I don't know. It was just a thought.
I'm wondering if perhaps in a template.
No.
I mean, yeah, I think somewhere and I was thinking to put it in a template as a standard thing.
The possibility. But not necessary, I guess.
Just a thought.
So did you just do an NPMI short for install or something else?
Now, I is short for install, yeah. I just did NPMI because I haven't done it yet.
Okay.
And then I did NPM run build And the only reason why you need to do the build is one, if you're going to build in production then you'd want to do the build. Or if you want to make this search
Work on your local machine. Those are the only two times.
You would want to do a build. Other than that, you can just do NP. If you're just wanting to do what we're wanting to do right now, you just do npm run dev.
And that will do a build if it hasn't done one already.
And it will um Yeah, it'll do a build minus the search.
This bill you're speaking of, I have no idea what it is. Is it something to do with Git or is it with the The Node.js or what?
No, yeah. It's with Node. You're doing a node build, basically.
And so you see we don't have an image, so it just uses the image from the meeting.
Right.
Linux meeting, so it uses the Linux logo It does have the meetup, strongly recommended. The read more should work. And then you see it's pretty sparse in here. It's got the Title, presenter abstract and you see how it did parse that new line into a new line
Yeah.
So it does have that word that break. The tag is working. We see it here in the tag.
I'd be… You go click on Scott Graneman? I presume it would have updated his as well.
Yeah. Yeah, yeah.
Yep. History's there. And the other thing wonder is where you have a single backslash in Could you do a second one to get a blank line between the paragraphs?
Yeah, I'll see. I don't know. Let's just try it. Looks like no.
Well, don't you need to rebuild?
No. No, I'm pretty sure I don't. Hold on. Let me see.
I don't know.
No. See, it updated that right away. So you don't need to do a rebuild. Just save it.
Save the file and it's automatically so Yeah, it looks like multiple backslash ends are not. What if I do a space in between?
Yeah, of course put it to a trash base in between. No, shit.
Metric. Oh, no. See, I'm too smart for that, Lee. I coded against that.
Can you put a hash mark and then a slash N?
Yeah, I think that would probably do. Yeah, so that'll do that.
We could live with that.
I don't know. I think it's, I mean, it does a line break. Really what, yeah, I mean, see, this is the big problem. So I don't know if you looked at the readme. Let's see if I have it up.
I didn't get very far.
Oh, did I delete that? Interesting. Okay. I had a big discussion with myself kind of in the readme about using JSON versus a bunch of other ways I could do it.
And the problem with using JSON is it's really hard to format this.
Formatting the abstract is difficult. You can't put links in here, right?
Yeah.
Right. Yeah.
It would be so useful to be able to put anchor tags in here, but you just can't do it. And that's the downside of the JSON format for the abstract.
Yeah.
There are several upsides that I can't really remember right now. I can look through the git history and find that that where I really went back and forth with it but um That's in the other. Yeah, yeah. You can have multiple tags.
We could have multiple tags, right?
And the tags could be URLs, yes?
The tags cannot be URLs now. Oh, you know what? That was the wrong repo. Maybe that's why.
Oh.
Okay, yeah.
No.
Stan, I think you're thinking tags as in topic, where Sean's talking about tags is an HTML.
Oh, okay.
No other topics. Yeah, no, they're topics though. So… That's how I think of it.
Yeah, I'm thinking URLs to remote anywhere on the internet kind of tags is what I'm thinking of.
I think you're thinking, Stan, it sounds like you're talking about the references.
Anchor tag.
Yeah, okay, references, that's the word. Okay, I can… I can assimilate that word.
Into what we're doing.
John, if it's as dynamic as you're showing, what happens if you throw a reference in for slug website type thing.
Reference sorry oh you want to do a reference. Okay, let me Yeah, no problem, no problem.
Yeah.
Postal reference. Okay, references.
Do they have to be in a certain sequence?
Okay.
Let's just do this. No, I don't believe so. There we go. So there's a reference to whatever, some random thing GitOps.
Okay.
So, yeah.
Okay, now, yeah, and this is basically what what I do. Okay, so now we'd be ready to you know commit right so I mean, you could do it you could do it through Sorry, you can do it through VS Code if you wanted to, or your editor probably has some sort of Git integration built in.
Or you can do it through the command line. If I open a new shell here.
Okay, I would like to note at this point, I was telling Lee the other day.
Deal status.
I cannot spell git. Don't know anything.
Can't do it. Tried. So I hope you don't lose me.
Okay, so add November.
Okay, so get status. Will show the file that I have modified.
Okay.
And then I just do a git add dot And then I do a get status again, and we'll see that this new file is now being tracked or staged.
And so now i do
I think I follow, get that far already, okay? Okay, good, good. Keep going.
Members do SEL live meeting. So now I'm doing git commit dash m for the message and the message doesn't matter at all.
Right.
Okay, I do something called conventional commits, I believe it's called But that is completely my neuroses.
So you can do whatever you want. Oh, I didn't set up my email.
It's just a comment that stays in the chain, right? I take it.
Or your personal reference, I guess.
Yeah. It's not just your personal reference, Sean. Once you're done with that.
Right. Yep.
Amend and then do a get log three or eight or something and show an abbreviated history.
Yeah. So yeah, it pipes are the last, I think, by default. But yeah, so here like you can see you know i added nix config, I added December slug i added november stl lug youtube url i added So this way you can see what what activity has been going on in your repo. You see like this was back on december 11th.
This was back on November 23rd, November 20th, November 19th, November 8th.
I find it interesting the git history seem to go back almost a full year.
You know, the first commit looks like march 25 yeah Yeah, I worked on this for quite a while.
Okay, but where were we? We were, did we commit? No, we didn't.
Finish your amend
Yeah, commit. So git commit dash And then some message.
What the heck? I just did that.
I literally just did that. Let's see.
Oh, you know what? I think I forgot. I think I forgot to change the user name Sorry.
Okay, let's try this again. There we go.
How don't you need to do the amendment?
So now after the get commit and after I finally figured out how to spell my name.
Now it says you're one. Ahead of time ahead of origin. So now we do get pushed.
I'm going to fill out my name because I've not set up the credential thing yet.
Error. Crap.
At this point, Stan is lost about Git. But he will go back and watch this video 27 times and he'll probably understand it then
Wild. While Sean is poking at the error What is your question confusion? And I'll see if I can answer that.
Fairly quick.
Oh, I understood the first three commands because I've watched about 15 hours of videos trying to explain get to me and they just did not make any sense because Everyone I saw was one guy telling how to do git from both sides.
So there was no real good interaction there. So it made no sense to me.
Okay.
This makes a lot more sense. The… Probably… 14 hours of videos I tried watching on Git.
Okay. So.
Okay. So… I think I'll get it. You know, this is very helpful just seeing the interaction of what's going on here.
Really? No, no, I don't understand enough to have a good question.
All right. Do you have a question at the moment?
Okay, so you said you understood a few of the commands. What was the command that you didn't understand.
I don't remember what I had for lunch. What are you talking about?
So Sean.
I'll have to just go through this and watch it again. And if I have questions, I can… I can…
Hey, Sean, could you bump that font a couple times? It's hard to read the white on black. There you go. Thanks.
Oh, sure. Yeah, I wasn't.
So it looks like so it looks like this means two things. Either we need to add this config to bach Or we need to check out. It looks like we just check out some random branch on Bach, it would be okay.
It's a bare repo, so there shouldn't be any working directory to be associated.
Why is it a Bay Area rebook?
Oh, wait a minute. Did you initialize it as a bear? The test one I did as a bear.
Nope. Absolutely not. Why would I do something that smart?
That's why I'll check out something. Hang on. You're trying to push slug stl lug site, correct?
Yeah, yeah, yeah. But you're going to have to, but we're going to have to do it to both though.
But yeah, the site right now
Okay, try pushing STL lug site again
Hang on. I created the branch. I didn't check it out.
Nope.
You'll get branched, Sean.
Might have to do a poll first.
Great. I cannot see that that top line.
Try now.
Zoom is hiding it from me.
Nope, still didn't work.
Oh.
I'm on Maine.
Can you hit enter a couple of times before you Put in another command.
Do a good branch minus A.
Well, I didn't pull a new branch when I did get full, which is strange.
There's normally a poll should pull a new remote if it's there, at least what I'm what I'm used to.
There's no commits in it. So I've run into an issue before where a non-bear repo repo
I have an idea. Hang on. Give me a minute. With the bear repo has no working directory, so you can't run into a stomping on the server problem.
And I have an idea, but just give me a minute.
Although I have to think about how to do it.
No.
The price, Gary isn't complaining about the font being too small.
Okay, give me a minute. Don't do anything, Sean.
Yeah, I won't do anything.
Yeah.
It's under server media, Sean.
Yeah, I found it eventually. I can do the pot maker.
Hold on.
Cool. That's good.
But the pod's fine there. It was just that great that light gray on black that was unreadable.
Thank you, Apple.
Not in the Git repository.
Helps them in the right place.
Hey, Grant, are you thinking that the reason it's borked is because you created it and push to it without creating a branch.
No, I was in the wrong place. Hang on a moment. Sorry, guys.
Okay.
Yes.
Good.
Do I have good audio? Okay, the main reason I do this because I back up my much smaller Doc Roots is I just go from the command line into… I use GitHub through the website and just create a brand new one that isn't there and the only pile I put it in is
Readme MD and the license. And then I do a clone and then I populate the directory on the local machine Then I do the git add, git commit, git push.
Because it's not tying that local and remote together if you just create it on this side without taking a couple of additional steps.
Okay.
No, I'm noticing too is that the server has changes also that are uncommitted. So that might be causing a problem.
Hang on. Yeah.
I am. I'm not doing nothing. Read-only actions, but something I noticed.
Fair enough. I'm paying attention to what I'm doing, not what you're doing.
And I'm surprised that Stan hasn't commented that my eyeball is as close as it can possibly be to the screen
Hi, Treebeard.
Try a push and see if that… did anything.
All right.
So what happened is and what you want bare repos on the server.
Because basically what you ran into is you were trying to push into the working directory of the repo on the server. And it's like, no, no, no, no, you can't. Somebody's working on that. Stop it.
So the server either has to be on a different branch or a bear repo which doesn't have a a working directory.
Yeah, makes sense.
So I just, what I did what was I renamed the directory you created on bach cloned that into a bear clone did a directory rename dance and permissions and you were able to push into the new bear one.
So I'll do the same thing with the generation site.
I almost understand that.
The idea is the way the repo was put on the server to start with was as if it was a normal get where somebody would interactively work and get by default won't let somebody else push into what is checked out.
So Grant, was that a suspicion or was there a way to verify that?
On the server.
Ah.
It was a suspicion. I went through the motions to change that and it worked so Yes, no, no, yes.
Okay.
It's the difference between… having it work with having it work a central working thing with multiple people versus one person with a central thing.
So it just let you clone into a bear repo?
Yeah, so I'm getting ready to do it to the other one. Sean, do you mind if I share for a moment?
No, go ahead.
Um…
I am enjoying this, folks. I really am.
Share. Okay.
Not that I understand all of it, but I'm enjoying it.
Looking forward to going back through and reviewing all of it.
Does this font work for people?
Works for me.
Yeah.
Okay. You see there's slug site fat, which I just rename the original slug site and i created the new slug site so i will I did the rename already.
Yeah.
Then…
Cloned into a bare repository.
Okay, that makes sense.
Change that. So now we have… And to see the difference to excite that site
We see what is typically what is typically to get hidden stuff.
Sorry.
Looks very similar, correct? There's branches in one, there's not in the other yet.
When you do… a non-bear.
It is thinking this is the working directory where somebody's doing things. So this is what's highlighted is basically a checked out branch with the intention somebody's working in it.
So with that in mind, Git will not let somebody else push into where the terminal I'm in is working. It's a safety net.
On servers where people are not actually working in the Git repository.
You do it as a bare repository. That has no working directory.
And it's just the repo. And once I made that change, Sean was able to push to it.
The other workaround is to go into the working directory and check out a branch like I initially created a branch, but I was on the wrong system. I was on my local clone.
Stfu, GTFO. Check out so the working directory is on something nobody's using.
You can just avoid that by doing bear.
On the long term, it's better to have a bear director there and that way we don't blow it up later on down the road.
Correct. And if you look In my home directory.
I was working with the grant test repo. I have a clone in home g taylor grant test of server media get grant test. So when I'm working on the server, I do it in my own clone on Bach.
Yep.
Or ideally, I do it on my clone on my machine here at my house.
And they both push. To the same central repository.
Now, Stan, does that make sense for you a little bit?
That is a bare one.
A little bit, yeah. Yeah. I'm good.
Okay. You know, the whole concept of a bear repo is that is typically the one that people have as a central communication point.
Right. It's kind of what I was thinking is is Where Grant was going with this, yeah.
Yeah. And the fact that the repo on Bach was a worker bees version and not a bare version was what was broken.
Mm-hmm.
Right, right.
So once he verified it, he cloned it into a bear repo.
And made the problem go away by removing the capability of somebody committing to that copy in that copy, because it's not a working copy. Does that make sense?
Yeah, I think. Yeah.
Gary, did I see you?
Yeah. I halfway understand that. And I've got to think about it a little bit more of it.
Yeah, I was getting the idea that it needs to be a this bear thing is… is different than a single user using Git.
Yeah.
Right. A barrow gives you a central point that multiple users can commit to.
Right, right. I was kind of halfway understanding that. The terminology seems a little strange. Why call it a bear? I don't know.
Because it does not have a working directory.
Yeah, it's a repo without a repo a place to work on it.
Bears and cupboards, not bear as an animal.
Yeah, okay.
Bears in your hiney.
Yeah.
Okay.
All right. Gary, it looked like you might have been scratching your head at something. Did you have a question?
Gary's muted.
Yeah.
Now, my question was something here at the hospital. I was distracted by… other events in the room. Sorry.
No, you're fine. Okay, Sean, I'm going to stop sharing and let you have it back.
Okay. Oh, you're good. That was good.
Sorry about that.
That's just a one-time setup thing, though. I don't think you'll ever have to do that again unless the repo gets erased, right, somehow.
Those fat directories, do they go away?
Correct. Yeah, when I hit RM dash capital RF, they go away.
Okay. I wasn't, I lost attention there.
All right.
Sorry.
Okay, so now what I have on the screen right now is the second repo. Okay, so this is the, so we've done that we've done the bare minimum thing. So this is the bare minimum thing for the site.
We saw how that works. Now, usually what I'll do is I'll get the bare minimum and I'll put it through the generation script and it will add AI content to it, okay?
So what I'm showing you on screen right now, this is the other repo. This is the slug stl log generation repo. So I'm in the completely different project.
And here, what we have is we have much less code for one. There's literally just three code files is all we got here, okay? And I tried to write the code to be as bash script like as possible. Like if you look down here.
There's even like a main function down here somewhere.
I'm pretty sure I even marked it off as main or something just to try to make it. Yeah, here. I literally did the bash script thing where I'm like, look, this is main.
Everything above this is just function declarations. So anyway, that's not important. What's important is important The code doesn't matter unless you plan on developing and enhancing the project. What matters is these templates, okay?
So I have two templates in here, one for SLUG and one for STL log.
If you click on like the STL log, for example, what you're going to see is a JSON file that looks almost identical to what we built up as the minimal example, right? I mean, if we look If we look over here at what we just did and we look over here at what the minimal is for the template, it's like the same, basically the same thing, right?
So what I'm going to do what i'm going to do is I'm going to copy this.
And I'm going to paste it down below first just to make sure.
You're on two different tabs there, I guess, right?
Yeah, I have both projects open. I have the site open over here and then I have the generation open over here and yeah there's side by side. Yeah, super.
Okay, so on two different sites. Okay.
Repos. I just want to make sure meeting date, meeting date, meeting type, meeting type, presentation, title, presenter abstract, no tags.
And then meetup URL. Let's just be super paranoid and move it up to the top.
That reference this item there, I see an open square left bracket. I don't see a close.
You know, never mind. It opens on 10 and closes on 15.
Yep. Yep, yep.
Ah, okay, cool. All right.
Thank you.
Okay, so I got everything. So this is, so like I said, this is just our bare minimum example. The only thing I had to change, I was just double checking it. The only thing I changed was I moved the meetup URL up. There's no reason I did that. It's just I just did it.
Wait, it says there's an error. Oh, comma. Okay. All right. No more errors, right?
Problem on this one.
Double quotes are okay here. For those items.
Oh, this comment now. Sorry. You're not supposed to have trailing commas for JSON, so that always gets me but okay.
All right, so now we have the minimum And off screen, mostly, I've done the API key thing off screen.
And now I believe the command, let me remind myself. Is… this npm run start colon stl lug since we're doing STL lug.
So, oh, you said I need to go down. Hold on.
Thank you.
Do it down here. And then you can add a dash b Maybe I won't do the V right now. We'll see if my API queue is still valid.
It is not. Okay, so my API key is no longer valid, apparently. So I need to It's been too long, I guess.
Figure that out. I don't know if it makes you put like a certain date on the API key.
But let me just generate a new one real quick.
Is that the OpenAI? Key that you're generating?
Yeah, I'm just going to generate a new one. Real quick.
Okay. Or you could have used the one Or I could use the one that Lee had put together for the main slug.
There's a common key, right?
Yeah, that's what, yeah. I just, it's easier for me to just use Well, I thought it was going to just be easier for me to use mine
Well, the one I generated isn't valid yet. I haven't done the payment.
Yeah.
Oh.
Let's try this again. So I've done a new key. Let's see if it works this time.
Okay, so I didn't do the dash V, okay? I did make this where it has a dash V parameter where you can do verbose, let me just say it.
I did not do that this time. So this is just the standard output that you get when you run this and you see it's calling OpenAI. I put some logging, okay, not a ton.
Yeah, yeah.
Calling it to generate tags, to generate tweets to generate YouTube titles, to generate design ideas for the image.
And then lastly, to generate the images itself okay And so it's reading this template file. It's reading this template file that we just put the minimum in and then put the minimum in I guess here yeah so when it writes, so it's going to do three
Right.
Images and we choose it's going to do a bunch of options here and we're going to choose but the last thing it does you see is it dumps the JSON out to the terminal.
Okay.
So now if we go back to my code editor what we're going to see is there's this new directory here that wasn't here before called dist.
And if we look in here, what we're going to see, first of all, we're going to see three images There's one, there's two.
There's three. Okay. This talks called The History of Computing Since 1990. So I kind of like this one with the beige boxes.
Agreed. Cool.
But, okay, so So as you can see, it filled in some stuff for us. So it filled in some tweets.
It filled in the tags, which I don't like i'm going to just put that back to history. It gave us a choice of YouTube titles so we can choose one. It gave us a choice of tweets. We choose one.
So now it's up to the human now, right? The AI did the generation. Now it's up to the human to kind of curate it a little bit. So I'm going to take I'm going to take the notes.
Question, question. If you do this and you finalize it and you did Can you go back and just completely redo it?
Yeah, I could run the script again. And when you run the script, I'm pretty sure every time you run the script, the first thing it does is deletes this dist.
Okay, so it doesn't save your graphics, but it'll do everything all over again.
Directory and just starts over again. So yeah, you could Yeah, I'm pretty sure it just deletes this and starts over from scratch.
Okay, okay.
From what I remember. Okay, so I tweaked the tags. Now we need to read through these three tweets. There's three separate tweets here. You can tell because of the commas, right?
The commas separate the array, the list items in the array.
So there's three separate tweets here. We need to pick which one we like the best and then go posted to Twitter. Well, I won't post it to Twitter since this is a meeting from december but If we were doing this for real we'd go
Copy and paste this into twitter So which one?
Twitter, what's Twitter? Oh, crap.
It's yeah x.com.
I just…
I am not sure I'm going to… sign up to Twitter.
What an unforgettable for that.
Jesus.
Yeah, it's going to be displayed on the site as well.
Okay.
Don't. But the text could be used elsewhere. Yeah, I feel like the first one where it's talking about mainframes, I don't think much of Scott's talk encompassed that.
I think the second one was much better. Yeah.
But this is an unforgettable journey. Don't you want to do an unforgettable journey?
Yeah, you can cut and paste that and stick it somewhere in the second one, right?
Oh.
Unravel the history. Oh man, that sounds cool. Let's unravel some history together. Okay.
Yeah.
All right, so the second one. So we're saying we don't like the first one. It doesn't really matter. This is old meeting anyway.
Or you could rewrite the whole thing and pick one, right?
Okay.
Totally, totally. It's just a suggestion, right? The AI is suggestion.
Oh, okay, cool, cool, cool. If I get creative, I combine all three of them into one. Right. Yay.
Just edit.
And stand up, don't forget, if you're doing that, you need to correct the hashtags.
It only did 1990s here. Oh, it did computing history as well.
Jorge.
Right.
Great, but that's… It doesn't matter.
Yeah. So it should just be history.
Yeah, whichever.
Yeah, could be. Or you could leave it computing. But the point is you may want to tweak them
Okay.
Yeah. Yeah. And then it's good to put the meetup link. This is the most important part of the whole tweet is the link to Read more, right? Find out more.
So make sure the meetup link's in there. That's the most important part.
And it generates that, Sean?
No, no, no. I feed it in because the meetup link is part of the minimum that you provide.
Okay, okay, I get you. Yeah, that's right. I remembered it from before.
Okay.
Yeah. All right. Same thing here at the YouTube titles. I think it does 10. Yeah, it does a lot anyway. We pick whichever one we like the best.
Nine of them. Lines 20 through 29 or 30.
What are you talking about?
Yeah, a lot of them are probably going to be wrong.
Yeah, the first one's wrong.
Third one's wrong.
Kind of like this one, pivotal moments in computing history
Sure.
Yeah, 90. Yeah, I'll agree to that.
Okay, let's go with that one. Like I said, this is an old video and I don't okay so let's just do this Oh.
At this point, we're just picking one title.
Right.
Yeah.
Yeah, yeah. And you have to delete the array item. You have to delete the array part of it too. So see, I forgot up here. This would not work. You have to delete the square brackets as well.
Okay. Yeah, okay.
Okay. And then you can make
Basically using OpenAI as a an intern go come up with some examples and bring them back to me and I'll pick from them.
Right. That's all it is. That's all I'm doing here. Yeah, you're right.
Cool.
As long as you're careful and don't break the syntax for JSON.
Right. Yeah, because it's not going to give you, I don't think, from what I remember, it does not give you friendly error messages if you break the JSON, like.
Astro is just going to say, er, couldn't parse it or, you know, some generic thing.
Sean, one of the things I've wondered about in the background is make and Astro may have something for this in there.
Where we could run a linter. Against the JSON files.
Yeah, I think all the projects are configured with Prettier. So every time you save, it should do that Well, okay, if you have your editor integrated, it should do that every time you hit save.
Like with VS Code, if you have VS Code, that's going to automatically, every time you hit save, it's just going to do it.
Now, if you're using Emacs or whatever, Vim, I don't know.
Vim, you can definitely configure Vim and Emacs to do it, but I don't think it does it out of the box.
I definitely like this one the best. None of them are great, right? We all know AI art is not that special, but But I also think, I know people really don't like AI. Some people really don't like AI art. But to me, an entire website of this is going to be real boring, right?
And I just really think that, yeah, the AI art is not great, but it's just, it adds something like there's just some variety, at least a little
Variety is good. Variety is good. Yes, agreed.
My concern with AI art is when it tries to be realistic.
And it's an obvious hallucination. To me, this is AI generated abstract art with a theme Which is perfectly fine.
Cool. So then what I do is, so these, so, so the titles are super long kind of on purpose, but we need to find the array item that says design a collage encapsulating the. So I look through all this big text here
And this one right here says design a collage encapsulating that. So this is the one.
We want. So I'm going to delete the other two and the square brackets.
So the alt text
Is just the prompt that generated it or like a certain number of characters of the prompt that generated it.
Right.
So if you want to, if you feel compelled to change this to the real alt text.
Or really what I learned since doing this is we shouldn't have alt text, right? Because these deck these Images are purely decorative. And so for decorative images, your alt text should just be empty string.
Really? So that would be the best.
Okay.
No, I think I live empty string is the best.
Or maybe a standard, just say something just fancy generated graphic I mean, Ed Holland, you know, he'd be here, he'd say, you… Maybe you need an alt.
Who's the… Yeah, well, can we somebody reach out to Ed and as accessible technology user, what does he find best.
Okay. I'll do that.
So now I'm going to copy both these files, right? The image and the JSON, I'm going to copy them.
I'm going to go back over to the site. I'm going to delete this.
This one we messed with earlier. And I'm going to paste it in. I'm going to paste.
Both files right here under content.
Lug 2024. Right here.
So you replaced the JSON in site that we created originally with the modified version from the generation.
Yeah, normally you wouldn't create, normally I don't create that little basic version right Well, I do technically, but I create it in right here i Normally, I only create the basic version right here. And so the site won't have anything, right?
And so I just didn't want it to get in the way. But anyway, so this is what it looks like now. I did not rebuild or anything. You know, you saw it.
So it's got the image up top and this is the same image that we could use for the YouTube thumbnail if we wanted And then, Scott, the tweet For some reason, the dev mode of Astro doesn't handle emoji super well. So like this
Once you build it and publish it, this will look normal, but it's specifically the dev mode of Astro that does this. So I've just kind of learned to ignore it.
If you want, I'm pretty sure restarting the server does it. So if I hit control C over here and I run.
Npm rendev again. I'm pretty sure that's going to fix it. Let's wait for that to Wait for that to go.
And then refresh. No, I didn't fix it this time.
Okay. Well, anyway, it's just the dev mode for some reason. There's Chinese characters there instead of emoji. I haven't figured it out but Yeah, so I think this looks a little bit better with the tweet and the images, but all optional and not necessarily required.
So yeah. And so now, once again, we have a thing I'm going to see you back over to the site repo.
Here's font paper, please.
You add that, get status again, hit commit batch m. Let's see. Add… STL log.
December. Four.
Should be able to push this time.
Okay, don't do, damn it.
First, I'm too fast. Too fast way for me.
Yeah, I wanted to give Stan an opportunity to look at that and ask questions.
I think Stan's brain is mush enough now he can't ask any questions.
So…
Okay.
Yeah. I'm trying to pay very much close attention.
All right. And then what I do is I go on YouTube.
And San gave me the power. So up here in the top right, I can switch accounts. So I have my YouTube account.
And I have the slug YouTube account right here.
And if you go to, what is it? It's been a little while.
Did you switch accounts? Okay, I assumed it would have updated the center part too.
I did, yeah. Well, I was already on. I was already on. I did it early.
Oh, okay.
Where?
Your video, sorry. There we go. I'm losing my mind. Your videos And then we can go up here to create and we can upload a video.
And let me download this one, actually. Let's just do it. Let's just do it. So let me go. Normally what I do is I go.
To the presentation archive. We're wanting 2024.
December STL.
And we want the video. So I think I right click save as.
And whatever, I don't care about the name. Good. That sounds like embarrassing my downloads folder.
Cruising along here and we'll go ahead and upload it And then, because, okay.
Just so I'm clear while that's downloading. So all of this stuff that I just did, you want to do before the meeting, right? The whole point is to get the site out there before the meeting You know, that way people can, you know, have a site to look at what's going to happen and and you know
And, you know, the site also
You're saying it's going to be on the new site.slub.org.
Well, yeah, we haven't talked about deployment at all, but yeah, like the point of this there, hey, did the emoji that time.
Oh, okay.
Hmm. Okay, whatever. But yeah, you want to do all this stuff before the meeting, right? Because that way people can have a site to kind of see what the meeting is going to be about and all that.
Right.
Now, once the meeting has happened, right now After the meeting has happened, what I do is I come in here, I download the video, the stand uploads, which is still almost done.
And then what I'm going to do is I'm going to upload the video to youtube video Then I'm going to come in here And I'm going to, well, you know, I'm going to use this title when I upload the video. And then I'm going to come in here. I'm going to add YouTube
Url and I'm going to put whatever the YouTube URL is here okay And then once I do that and I save it, that's automagically going to switch this from this picture from this picture to an embed of the YouTube video.
Okay, so that's what we'll see here in a few seconds.
Uh… Wow.
A few minutes.
Wow. I call this magic.
Right?
Now I want to…
It's called, Stan, it's called a year's worth of a hotshot programmer beating a
Yeah, fantastic, Sean. Holy mackerel.
Good.
I don't want to take this. Paste it in here. Oh, the description. Yeah, yeah, yeah, yeah. Normally, and I do this hard mode. This is something I've been meaning to improve.
But I do… I do usually take the time.
To do the description. Title.
Center. And I keep meaning to have the script or something like print out like the version of this that I can just copy into YouTube easily but But I haven't done that yet. I've been doing hard mode where I actually come in here and
So…
Silly question about the JSON. Do like if you wanted to add an extra tag that is unknown to the site rendering.
Would that break anything? I'm sorry.
Yeah. No, it would add it. He says confidently about
But if you had it generate youtube title colon double quote what you wanted to put out there Would that, like where you've got title presenter name abstract, et cetera.
Like if it added YouTube like double quote YouTube title, double quote colon, double quote what you would then copy and paste to YouTube.
Does that make sense?
Yeah, like what I would do down here is like, you know, you know, whatever, dump.
To youtube description, right?
Yeah.
And then, you know, some string. And then this is where I could have that script, the script that generates all this.
Yeah.
Can also just generate like an easily copy and pasteable. And then I was also thinking for meetup too, you know, like also for meetup.
I could do uh you know the the copy and pasteable, whatever we want to put in meetup as well you know That way you don't have to waste time seeing what you saw what I just did there. I had to like
Format it from JSON to YouTube description manually with my hands you know So it would save a minute or two every meeting, maybe.
Right. It would also be more consistent.
And less likely for a human to miss something.
Yeah, yeah, there's definitely a good idea. And that's why I like, that's another reason why i like to have it generate the titles because it always puts the meeting name and the date and all that in the same format every time at the end here.
So I got a weird question for you. Where do I submit a bug report or a feature request?
Right.
Yeah. Yeah. Yeah. Okay. So now what I'm going to do is I'm going to do the thumbnail So for the thumbnail, oh crap, it's in WSL.
See if I can do this. Sorry, I'm just trying to find the Oh, there we go.
Yes, the site. And remember, it's under source and then under content And then under meetings and then lug. Sorry, this is very small. All I'm doing is I'm going to the image. That's literally all I'm doing.
So I'm uploading the image to be the thumbnail on the YouTube video. That's all I'm doing.
Okay, now playlist. This is once again Sean doing hard mode. This probably doesn't benefit anybody, right? But this is just me being a completionist I have a playlist for each year.
And meeting combination. So we need to create a playlist for 2025 STL log and 2025 slug.
Probably nobody's ever used this. Okay, this is just me being hard mode, me, me being… Stubborn. And then again, you go down here and we are the st louis group. So if you look down here, there's a video location.
And I put St. Louis. Once again, this is probably nobody's ever looked at this. And then I put the recording date. This was December.
19th. Like I said, probably nobody's ever looked at that, but I do it. I've been doing it and who knows, you know, whatever.
I'd be willing to bet the Google and YouTube algorithms look at it.
Don't think that.
And…
Yeah, that's what it says, right? It says somewhere on like the statistic page Yeah, viewers can search for videos by location so Yeah. And then I've never done tags, but maybe I should.
Okay. Now… I think I leave everything else the same.
Like, uh, yeah. And so now I'm going to copy this URL and hit next.
And I don't do any of this. I'm not that dedicated.
And then just next, next, next, all the way to the end. We want it to be public Just right away. We want it to be public like right now. We don't want to do a schedule So now I'm going to hit publish. And this is going to take
Uh… I don't know, sometimes like 10 minutes, sometimes like an hour. I really don't understand.
How long it takes. Maybe it's how busy it is. I heard a million hours of videos uploaded to YouTube every day. So I don't know if that's true or not, but it's just an incredible feat of engineering, if that's even partially true.
But anyway, I have the URL. And so now I'm going to Oh, I already did. Yeah, put the URL right here. So I add this YouTube URL and I put that in there.
Save it. And now once this is done uploading 18 minutes left It will, oh, it already did, but it's not yet.
See, it can already tell it's a video, but since it's not done processing yet, it's going to air out.
But yeah, it's already, you can see it's already going to work most likely. So it's already good.
And now, since I added the YouTube URL, we got to come back in here, get status.
Don't clear your screen.
Okay. Feet. Add… December 2020.
Or STLU, YouTube. I've got hit flush.
There we go.
Stan, do you want to ask any questions about what's on screen right now?
Kind of. This is something he already did kind of on the other site.
With the commit to get git commit.
Okay. Right.
Every time you make a change you got to make a You got to do this or else it won't be Yeah.
Right.
And what we're going to look at doing is Sean is doing this on what I'm referring to as the dev instance on his workstation.
The intention is when you do commits the server will see that there is a commit And it will kick off.
The process to build and deploy the new version of the new version onto the slug server.
Automatically. Lee. Sean, or am I saying that right?
Pretty close.
That's the hope.
Yep.
That's one way to call it. One thing to call it.
Yeah, that's what I had before, right? That's what Netlify gave me super easy, right?
Like if I was pushing these changes to You know, to Netlify they would already be live and we could already view them on site.slew.org.
Or maybe 30 more seconds, but still you get the point.
Like he makes it super easy.
Right. And I think that's the direction we're driving it.
With the self hosted stuff.
Yeah, good. Okay.
I don't understand what you guys just said in the last two minutes.
So right now, what we're looking at is Sean's computer.
So with the Git, he's pushing and it tracks versions of things We're going to set up things on bach that when somebody does a push processes on Bach will go, oh, hey, somebody did a push. They updated the site.
So all the bear stuff is going to be on Bach instead of Sean's computer.
Let me automatically go through the machinations to compile or render
Yeah, excuse me a minute.
Right, right.
At least the generate part. The site part will still be manual For now, although at some point we may try to add some add some more sophistication to it.
I must say this is a lot of stuff that's being crammed into my brain right now.
Iphone.
Well, Stan, to get a good night's sleep and then look over the README tomorrow and hopefully… make more sense.
Yeah, yeah. Yeah.
I think you should go through one. I don't know. It's up to y'all, but I have time to go through one more if you want to. We can go through one more.
Like the full like the full normal process that I normal go through Just one more time, or if you guys don't need that, then that's fine too.
It might be good, Sean, if you've got time.
I got it.
Oh. I… That time, yeah, do it. Do it. Do it just kind of…
Or may I suggest that maybe hold it off for tonight?
Give Stan and frankly myself a chance to look over the recording and and make sure we kind of understand what all happened here. And then, you know, that gives us a chance maybe to do this again Sean could get the…
Show us the next one and then we'd be better prepared to ask questions.
But up to you guys, whatever you want to do.
That's a possibility. The possibility. Sean, what's your time?
Yeah.
What would work best for you?
Okay, then go for it tonight. Run it again.
It's tight right now, the timing and things, so. I can try to make something work, but Yeah, I feel like, you know, it's like
Okay.
I'm recording it.
It's just incredible the amount of work that i uh you know and there's something, you know, I took on the second job and then I heard something that really is really bothering me.
They said, I heard the saying that like. The only people that will remember you worked late as your kid?
Yeah. Yeah. Yeah.
And so I got the second job and then I heard that. I'm like, oh man, that's a bummer. Why did I have to So… So anyway, let me go. I'm just doing the other December meetings. I noticed that there was no, the YouTube video wasn't uploaded. And so I'm just trying to knock it out real quick.
So sorry about that for the
I thought we had them both up there. I thought the first one was up there and it was just the second one that needed to be done.
It was the YouTube wasn't. Yeah. And that's… She wasn't up there.
Oh, the YouTube wasn't. All right. Okay.
This is the biggest thing. Ellis is the name.
Does it make a difference which sequence you do these in?
Chronologically?
Yeah, well, I mean, on YouTube a little bit, I'm sure but um But for the site, no.
Yeah.
Yeah. I noticed in downloading stuff from YouTube using the Linux YouTube downloader program that sometimes it seems like they'll go back in and redo stuff, some of the channel owners.
Yeah, they can do that. I think that is possible. You can change some amount of content and keep your view counts and everything.
Yeah.
Yeah. Sounds like too much work to me, though.
Yeah. Well, it's your living. That's how you make it.
Good grief.
Yeah. Yeah.
But I'm under the impression, though, that YouTube has changed their algorithms in the last couple of years. It's a lot harder to to find stuff, I think.
Something's different. Because I've always been looking for the stuff that Joe Collins does.
For beginner stuff. And it seems like it's almost impossible to find some of his stuff. But eventually you stumble on it.
And I don't know what what it amounts to. Maybe it's because some of it's so old.
That they've changed the way they do their algorithms and maybe there's a lot enough content You know, original… metadata for this algorithms to deal work with.
That's a possibility.
But then I think I know what I'm talking about.
So if you're not going to do quarter x, are you going to do mastodon?
There was two.
Yeah, I did both. Slug has both. Twitter and Mastodon. And I was dual posting when I was doing this Or, you know, posting it to both places.
All right, I'm back. Sorry about that.
I'm good. You didn't miss anything. You just missed me. I just did this other YouTube video. So now we have all caught up for December.
Let me…
Yeah. Well, by the way.
Does that mean we have January through December?
By the way, I didn't remember that we had a Mastodon account for Slug.
I had forgotten it.
Yeah, the password is on Bach somewhere. I think there's a socials folder or something.
Yeah, yeah.
Sorry.
Okay.
Okay, so we're back at where I was asking questions. Stan.
Did you have any questions you wanted to ask about what Sean just cleared the screen on or do you want to sleep on it and ask later?
I'll have to sleep on it and ask later because, I mean, there's a lot to get into my brain.
Okay.
Flow's been really good. I mean… This is really what I wanted, to see the flow of what he's doing. And it's great.
Now, it's just to, and since we're recording it, I can go back and watch it again and understand it better.
Hey, Sean, can I change the topic for a minute or two?
Yeah.
For those of us that don't have corporate bigwigs. Shoving wind blows down our throats How close can we come to your VS Code environment on Linux? I mean, I know there's VS Code EM, but what about plugins and all the rest of that stuff?
No, 100%. I'm running it on Linux. So if you see down here.
I don't know, it's probably hard to see, but in the bottom left corner, it says WSL Ubuntu And if you notice, this whole time I've been using Ubuntu on wsl So this is like a Linux virtual machine that I'm running it on.
So yeah, this is all on Linux, all totally possible on Linux, 100%.
So what's your VS code?
My VS code is just VS Code. It's just… Yeah. Yeah, you can run VS Code on Linux. Sure, yeah.
On Linux.
Is that a Microsoft version?
It's just VS Code.
They have, yeah, they have dev rpm. A nose mac arm
No, I'm saying is is that Visual Studio for Microsoft or is that an open source version or something else?
Digital Studio Code is mostly open source. There's some plugin stuff.
Some server syncing stuff It's not open source, but the vast majority of the editor is open source. Yeah, and this is not Visual Studio. That's a separate thing.
This is specifically Visual Studio Code.
Entirely different thing.
Like JavaScript is not Java.
Right, right. Yeah. It's a whole separate thing.
Well, I guess I'm… fuzzy on what this is compared to Visual Studio or the Microsoft product and Visual VS Codium, which is supposed to be the open source product.
Yeah. So VS Code DM, to my understanding, and I've never used it.
I thought…
It is the same thing, except they've taken all of the closed source bits out. What that means You can't like sync your settings, right? So if I go to another computer and I sign into BS Code, it will sync all my settings to that computer.
If you use codium, I don't think it has that right also For the plugins, VS Codium pulls its plugins from a different back end because they don't like VS codes I don't know if it's closed source, proprietary or what. They don't like VS Code's backend. So it's like a different basically store of extensions. But a lot of people have the same extensions at both places.
I don't even know what extensions I'm using right now. I do have a dev container set up. I do have a Nix config in here. So if you're using Nix or Or containers you can, yeah, see, I don't have hardly anything installed. I don't have any extensions right now.
I should install some. I'm going to install prettier and editor config.
That's it. Yeah, those are the two that I'd recommend Prettier. It's a code formatter. I'd recommend editor config. That's also a quote.
Code format are slightly different. Those are the two that I would recommend.
Where do you find these?
So this right here over on the side is extensions. And then you just search for fruitier.
And Prettier is a code formatter. So, and what I love about prettier
Okay, these extensions are in the VS… code thing.
Yeah, they're in VS Code. Just click over here on the left side on this little blocks.
Okay, prettier is there for codium if you don't want to use proprietary.
There you go. Editor config.
What else, Sean?
Okay.
If you don't want to install Node.js, if it's hard for you to install a good version of Node.js, you can use something called a dev container.
And basically what that does is that will spin up a container. So you have to have Docker or pod man i think I think it works with Podman. You have to have Docker, something that'll run a container installed on your system
Oh, wow.
And what this will do is it'll spin up a container with Node already inside of it, and it will basically mount your code repository inside of that container. And so these files and everything will be inside of that container. And so that way you don't have to install Node on your local machine.
It works mostly. I don't want to oversell it. It's not this great, great, awesome new thing. It works mostly, okay?
That's what I'll say. Okay, let's run through one more.
And the pretty that you're using is JavaScript, not Rust, correct?
Yeah, prettier prettier is for TypeScript, JavaScript. Json, CSS, all that stuff.
And there's i just saw a JSON plug-in
Yeah, there's there. I would just use prettier. I don't know what other… what other plugin you'd need for JSON besides prettier?
But, you know, whatever, you know, there's a million extensions. You just get whatever you want.
Do whatever.
Okay, let's do one more. Any other questions before we jump into the next one? Oh, I need to do this still.
Yeah, I was curious if your video upload finished.
Looked like it did. Looked like it did. Let me just do one more playlist.
25.
All right, go to Channel content.
Videos. Yeah, both of these appear to be done.
On your repos. Do you have both origins set up?
Like, could you do a… get push Metlify or whatever you have both?
Origins, or I'm sorry, both remote.
I don't have it. I could do it. I could do it tomorrow or something, but I don't have it right now, no.
Okay.
Okay, YouTube's up. All right, let's let's do one more. One more, one more. So let me go.
Here, so what was the January? So we had Android cell reception Okay, so these are the same.
So this must be the slug. Okay.
Live upgrade. All right, so we're doing slug now. So there's two meetings. So it's slightly different so What I'm going to do is I'm starting this time I'm going to do it how I just normally do it, okay?
I'm starting in the generation repo.
And I'm going to the slug template file And all I'm going to do is I'm just going to replace the values that are in here with the relative values with relevant values.
So the title that I just pulled off of meetup was live upgrade of a Linux server from Debian 10 to 11.
Now I'm going to pull the meetup URL. I usually only pull to this.
Search parameter. I don't know if it would mess it up, but we don't need it.
Thank you.
Not necessary. Search parameters and URLs are pretty much anything after the question mark.
And then I saw that it was on. January 8th, 2025.
So 2025. January 8th.
And the presenter. Was… Okay, yeah, and this is why it's an array.
Lee and I.
Because you can do multiple presenters. So I'm going to go.
I could spell it, but I'm going to be the super paranoid one and go over here. Finally.
Because remember, it has to match verbatim.
Okay, and then the abstract. We'll do right here.
Paste that in here.
And fix your double single quote entertainment.
And change the new lines to the slash ends. And do we want any references? Probably not.
Can you put an extra hashtag and a slice end in there?
Just to make it. All right. Okay.
No, I think it's okay with just that one.
I mean, but you could if it was big, right? Yeah, okay.
I don't see exactly. Oh, here we go. Android cell reception tool
Who is the who did this one? Ali. Okay.
Okay, so let me take all this
Would you potentially do a reference to the tool that Lee used?
Sure. Yeah. You have one?
I thought there was something on the
Presentation archive page. Maybe.
Let me just Google it. Is this it?
No, network cell info.
Yeah, there you go.
Alrighty. And so you put the URL and then you put whatever you want the text to say. So you said we're Cell info light
Leave the light off. Yeah.
Right. Or… Pretty storing.
We'll put on the roof. There we go.
Place your arm. Thank you, sir.
Okay. I think that's pretty, I think that's everything.
Anything else relevant? Under me down.
Did you have to change the double quotes to single quotes there?
Yeah, I did that. Yeah, you got to change the double quotes for sure.
Now, but before you do anything You're editing your template.
All right, that looks good.
Editing the template, yeah. No, no, no, no. It's going to read the template.
So now you're going to do a save as.
Maybe I should have called this something else, but… You got to have it in this, you got to have it exactly here. You got to the You need exactly a file called slug.json in a directory
No, no, no, no. What I'm saying is you edited the template so What if you accidentally save it? Doesn't that replace the template or does that make a difference?
Yeah, I did save it. I did save it. And yeah, so yeah so if we go, so if we didn't get status right now we'll see that both these files are dirty, right?
Okay.
And so I could do a restore to whatever, take them back to original But it really doesn't matter. It's not a big
Yes.
Right. Okay, so at this point, you're just editing the template Okay, compared to before when we were creating a directory hierarchy, but that's on the other side, right?
Yeah, yeah. Before, I just wanted to show you when we were doing it before that the site will work with very minimal input like input.
And so we did it directly on the site. But in my normal flow, I edit the template, run the script.
And then copy the JSON and the image over to the site. That's my normal flow.
Okay, so keep going. Thanks.
Yeah, no problem. Okay, so now, yeah, we're ready to run it. So it's like… what was it? It was like uh oh it's uh npm Yeah, NPM Run Start, SLUG.
Npm run start colon slug. And this command is the same for both meetings. The only thing that changes is after this colon.
Right.
Oh, this time I'll do this time I'll do dash v so we can see the verbose output Because what it prints out is what is sent to the AI, which might be interesting.
Okay.
Okay. Oh, oh, I think it's like dash like this. Dash dash and then a dash V.
Okay, so let's take a look at some of this. So it's loading the meeting from the file And then it's calling OpenAI.
To generate the tags And then it's printing out, okay, here is the meeting with the tags. And you can see here's the tags.
And here's the tags. And then it's saying calling open AI to generate blah, blah, blah tweets.
And then here's the meeting with the tweets. And the tag. See, it's like building it up as it goes, right? And since I did the verbose, it's like.
Since I did the verbose, it's printing all the stuff out for us as it goes. Here it's doing YouTube titles.
So here's the meeting with the tweets and the tags and the YouTube titles.
And the YouTube titles are not under the presentation. Here's one presentation. Here's another presentation.
And the YouTube title, we only do one YouTube upload. So the YouTube upload, the YouTube titles outside of the presentation.
Because it's for both, right? The YouTube title is both presentations.
And so that's why it's not under any presentation. It's like outside of both of them.
And then we're printing out the design ideas. So I basically fed it in all this data that we've been building up about the abstracts and the titles and the tweets and all that.
I feed all that in. I say, hey, generate a design idea.
For this blog, like, you know, that we could use as an image and it gives me all these design ideas. You can look at those if you want to.
And then it says… And then it feeds those back to OpenAI and says, okay, here's a design idea. Give me an image that shows that design idea.
And then it has now the images on the file as well And then it writes out the JSON file to the dist the dist folder and then That's it. Oa resizes it too. It resizes it to 1920 by 720.
So anyway, that's all. And let's see, does it delete it, like I said? Yeah. So we have just the January 8th stuff in here. So it deleted everything that was in there before.
And I like to look at the images first because That was kind of neat. A little bit.
This one. Okay. Okay. This is going to be a hard choice.
Yay.
Oh, I like the Android. Okay. I like this one. Well… I don't like that one.
The second one's kind of sucky. It's between first and third.
Yeah, I like this one. It's either this one or this one. I like the Android. They did a pretty good job on the Android.
There. Number three, number three, number three.
I was right. You know, sometimes what I like to do too is I like to look at the site and like, what do we have recently So we got a lot of blues and see this is like also a circuit-y a lot of circuits you know
Yeah, yeah, good point.
Mm-hmm.
So it's kind of like I hear you.
I was trying to, can you hear me now? Okay. The pencil hijacked by mouse.
Yes.
I was trying to say the first or second image looked like it had an arrow.
I would almost take that and flip it through a video editor, or I'm sorry, an image editor, mirror it horizontally.
So you're going from one thing to another type thing? Part of the upgrade process.
Oh, yeah, for sure. Yeah, yeah, I will, you, you know where to find this image file um You know where to push it to. So you feel free to clone it, modify it, and push it back up.
All right. Yeah.
All right, hang on a second, Sean. Hang on. You clear that every time you run the script.
Yeah, I'm pretty sure the first thing the script does is just delete dist entirely.
Because what was there before is gone. So where would we get it?
The image we choose he and the actual json he copies from here to the other.
No, no, no, I'm saying the other two images. They're gone. Okay, well, that's what I thought. But you were saying go back and grab them.
Done.
Okay.
No, I can't grab them. No, I'm saying We're going to pick one of these. He was talking about editing this, right? So if we pick this one, I'm going to push it up to Bach.
He can feel free to make a contribution of editing it however he wants.
But you'd have to do that before you went on to the next stages, right?
No? Yeah, the one that we keep, yeah.
No, I can change the picture after the fact.
But then you'd have to go back and go back regenerate our you'd have to push it out to the production site.
Separately, manually. Yeah.
Correct.
I have to do another commit, yeah. Okay. I kind of like number one just because it's like visually different than what we have out there right now.
Well, I like it too because the main topic is the upgrade. So the unidirectional arrow seems to make sense.
Good. Let's settled. All right, so… So like I said, I like to keep the number of tags small. So I think Debian is a good tag. Do we have a Debian?
Yes, we have Debbie in. Do we have what, like administration?
We have upgrade, maintenance, something.
I can barely see those. Thank you.
Thank you.
I could foresee upgrade being a tag that would be used on multiple things. This may be a rare case We're adding it might be worthwhile.
Okay, that's fine.
Yeah. Debian, an upgrade sounds good to me.
All right. That was prettier. So I just installed prettier. So that's why it all jumped because prettier reformatted the job, the JSON.
All right, so now we've got to pick a tweet.
Navigate the complex process.
I kind of like one because I kind of like one
Yeah, number two, with 50 users and multiple services, what? What is it smoking?
Yeah.
That's straight here. I pulled that straight off of You know, it took that straight from our abstract.
Okay.
Yeah, that was in the abstract, Grant.
Okay. I did not realize that. I still poke at OpenAI, though.
I'd gravitate towards the first tweet.
Okay, that's fine. Totally cool that.
First.
Yeah, and notice what you're doing deleted. He took off the extra comma.
I don't remember. Extra comma and the square brackets too.
Yeah.
You're going from an array down to a single. But, you know, you can't take the square brackets out of the tag.
Can't take the square brackets out of the presenter name. It's very specific.
Because they are only arrays.
You know, so if you Yes, it has to be an array. Even if it's only one item, it still needs to be an array. But if you ever get confused, there's a ton.
Already in here, perfectly formatted that you can copy as an example, right? So no big deal.
So you're, oh, you got it. It automatically made a 2025 in there for you.
Well, you didn't, okay.
No, I just did that earlier. Okay, now this one, Android reception. No, I think just Android probably, right? Or, um.
I mean, we could do networking. It is kind of a networking
Oh. What do they call what's another word for cell network?
As well as just the network. We don't need to get so specific, you know, because if we put a cell network on here, you really think there's going to be a ton of talks about cell network?
No, I'm saying what's… another way of saying cell network.
Mobile. There's no mobile on here.
Yeah.
I like just networking just to have it nice and broad you know Because why would you click on one of these, right? You click on one of these because you're interested in something, right? Like, oh, I want to learn more about networking. Oh, look at all these talks.
You know? No, don't see. Web.
Do we have a wireless? Okay.
Yeah, that also include Wi-Fi.
I know, but I was thinking like as a little bit of a larger category that could work for both cell and Wi-Fi and radio and
Yeah, they can do it. But let's leave it for now. Okay, now we need to tweet again.
Fair enough.
Signal reception.
Really focused? What are you looking at?
We're picking a tweet.
Yeah, but that's only the first half. Where's the main one?
Or is this, well, wait a second. That's only the tweet for base.
Sorry, what?
This is, no, main is up top Maine is the first meeting always has to be main.
Oh, that is the base down there. Okay, I get you.
And then the second. This is based down here at the bottom.
We talked about that on the mailing list. It's like a concert poster, right? You put your headliner at the top.
Got it.
And then you put your yeah
I kind of like the second one, but I'm open to suggestion.
I defer to you. It was your presentation. I don't have a strong opinion.
Like I said, we're not going to post these. They're too long ago, so it's fine. We don't need to Okay, now YouTube title.
And I didn't actually go to this talk, so somebody else, it's better that you all here to pick these because I didn't actually attend.
Those narratives created, labeled as tweet, would that be something you'd post up on Discord?
Instead of X.
But anyway, I usually post it on Twitter and Mastodon, but you could put it in the mouth.
I mean, I mean, I mean, I mean, Macedon, not Discord, Macedon.
Yeah, yeah, yeah. Future. Future.
Yeah, you can put it on mastodon. I mean, for future things not right
And, you know, YouTube titles have to be pretty short So I don't try to cover both the main and the base in one title. Like that would be too long of a title, you know?
Most of the time our main and base have nothing to do with each other, really. So it'd be impossible.
Right.
So like you'll see there's like most of them, like these three are about the upgrade I think these couple are probably about the base and then these are like I think I try to get it to combine them or something, but it never does so
I like number three.
Commas.
Okay, number three. Let's go. Here and this is another one where you have to delete the square brackets and the commas yep All right, image. We said we'd like number one, which is creating a dynamic split screen.
Creating a dynamic split screen. And so we'll delete Oops, sorry, we'll delete all these and the square bracket And we said before that the best alt text would be empty string Okay, looking good.
Is it worth… updating the actual generation code to put Alt as an empty string.
Yeah, maybe that also string. Let me take a note. There's something else I'm supposed to do too right alt
The comments to make things copy and paste easier.
Okay. That one might take a little bit longer.
Fair enough.
Let's go here. Oh, and did I mention, well, yeah, I mentioned already. Okay. This one and this one. So I'm going to copy.
So I'm going to copy the JSON and the image that we chose.
I'll put it over here and I'm going to put it in the SLUG 2025 folder with a paste.
And I believe I still have it running. I do. So it should automatically pick it up if I go home. Yeah, there we go.
And so you see there's no youtube um You know, yet. But we do have the titles I don't like that this isn't capitalized.
But we have the tags. We did a new tag upgrade.
And so it works. There's only one meeting right now, but it does work. And if we go here, we'll see upgrade right here So it all works fine, you know.
No bugs yet.
And looks like the looks like emoji came across correctly too.
Yeah, well, that's not my, that's an astro bug. That's not a me bug.
And let's see there oh let's see Okay, good.
Right.
Good. Okay. You know, good.
All the links are working. I sometimes check all the links. I sometimes don't. I'm pretty confident in them at this point.
But sometimes I click all the links just to make sure that'd be in.
Yeah. Okay. That all looks really good to me. We can commit it. Oh, wait, I wanted to change the title to be uppercase. Okay, let me do that real quick.
Five. Upgrade of a linux Server. W10 to W11.
I… I feel like from and to should not be, but English is weird and there are rules around it.
Whatever. Okay. All right. All right.
It's like major words.
You got of an A up front.
Yeah, that's fine. That's fine. Okay. All right, now I'm on the site.
Yeah, there you go.
I always try to make your titles five words or less.
My shell, at least on the presentation archive page.
That's my preference.
Push. I really need to set up my credentials? Okay.
It's go look at the email. Two or three commands and it's just done then.
Yeah, yeah, I know. I need to do it.
Okay. It will nag you every time or it will tickle you to remind you.
Oh, yeah. I live for. Okay, now we need January. That was the slug. So I'm going to save as here.
On the video. Go to YouTube.
Wait for the download. I don't remember Bach letting me do five megabytes a second. That's pretty good. That's better than it used to do. Did we upgrade it or something?
Yeah, I went to 50 last fall.
Nice. Yes, it was two before or something like that. It was much slower, but this is nice.
Although I guess it's down to two right now but
Two was a long time ago it was far it was a long time five for, what, five years?
And then we then upgrade to 50 last year because it was the same price except it took me four months to get to Bill Wright with AT&T.
Oh, geez. I tried AT&T at my house. They brought Fiber, AT&T Fiber out in my neighborhood. And so I signed up for it.
And man, the latency was terrible. I stayed with… I stayed with Charter.
Because the speed was good, but the latency was awful.
I'm seeing ping time sub millisecond.
Yeah, that's nice. Yeah.
That's on the office charter. I got a gig for the office and then 50 meg dedicated for the rec.
For sure.
I loved one of the things the AT&T Fiverr guy said to me was like.
Oh yeah, you're getting good light in here, which is… Like, oh yeah, you got good light, you know?
I thought that was funny. Not something you hear a whole lot. Like, oh, yeah, thanks. Complimenting my light.
That's probably a reference to the light on the fiber.
Right, exactly. Yeah, yeah.
Yeah. Yeah. It's fun to watch them polish the end of the connector.
I've not, the AT&T tech that came out and did some things for mine didn't polish.
Index matching gel is an interesting thing.
I'm going to do it the hard way. Okay, so title name.
For the main. So what do you mean that? Title.
Could you just make that… Live.
Upgrade of Debian Linux. 10 to 11.
I've been 11? Yeah, but shorten it up a little bit.
Okay.
All right.
Do we actually want the date or…
Throw Linux back in there in front of Debian on the
Or Gabby and Linux. I mean, whatever. Okay, my brain is getting sleepy, folks. I'm sorry.
I would say move from to after Linux.
All of a sudden.
Yeah, yeah.
Now, what color do we want the bike shed?
Yeah, and normally this isn't so bad because like I said, this, you know.
Yeah.
Half of this is done. You know, before the meeting and then this YouTube bit is done after So it's really, you know, it's broken up into, you know, once you get the hang of it, it's like 20 minutes on either side of each meeting and it's really not that bad i just
Yeah.
And the big pain always is getting an abstract from the presenter.
Yeah, right. And then, well, that's, yeah, that's the other problem too right it's like we started getting You know, we get the abstracts like two days before. So yeah, it's only 20 minutes, but then you got to do it like the day before or else, you know, it's.
Yeah. That's where I always wind up being creative and look up stuff on Wikipedia and mix shit up.
So…
How… I've never done any of this stuff on YouTube.
How much of this could you change after the fact?
Good question. We can take a look. I don't know. January 8th.
I've seen evidence that it's been But I don't know how they do it.
I was watching the serial port did something with a machine they got from the bowling alley. I saw a video for like 18 hours had a picture of a fractured bowling pin. And then ever since then, I've seen it as a solid bowling pin.
It was like they broke into the computer so it had the broken bowling pin.
Yeah, I know you can change the thumbnail.
Okay. So here… Looks like you can change quite a bit.
I wonder if that'll change once it's fully uploaded and rendered.
Playlist
I'll just find one. Let's go to the one we just did. Why not?
Okay.
Yeah. A little auto-generated thumbnail. I bet it I wonder what that does. Oh, test and compare. Look at that. See, you can… Test and compare.
If somebody is interested in that social media stuff, they can probably poke at a lot of buttons.
Have fun, Stan.
Oh, yeah. See, this is interesting. This one is copyright. I've never seen that before.
Yeah.
It said copyright protected content found. Oh, is this one Scott played that microsoft corporate video You might get in trouble for that. I don't know. All the others don't have it. See none?
Could be.
I think this is when, yeah, I think this is Scott's talk where he did the that windows with friends and all them?
If you hit see details, what does it say?
Yeah, start me up, The Matrix.
Steve Jobs.
Well, in that case, I could edit that part out and do a URL link to go watch this in the middle or something like that.
Throwing up. Throw in a… a poster and say uh at this point jump to the thing or something like that.
It would have to be a manual edit of the of the video that showed.
Is that what I'd have to do?
Well, that's right here. It says the copyright claims on your video don't affect your channel. This is not a copyright strike says that twice.
Okay, well then good.
I wonder if it sees something that's copyrighted but available for public use or it's old enough, it's no longer I don't know.
I ran into one where there was a French copyright thing that was a real problem with the thing.
My hunch is, since we're not monetizing this video, is why they don't care.
That's my hunch.
Could be. Could be. Yeah, but…
Oh, if you become… Yeah, see, if you become a member of the partner program this claim may affect your ability to monetize this video see so So since we're not trying to get any money.
Yeah. So we're not monetizing it so it's…
Yeah, yeah. I think that's fine. Okay, probably fine. Are we done? Is that everything?
What are we waiting on here? We're waiting on this one to process, but we don't got to wait for that. That'll happen automatically.
If we go here. Let's see if, yeah.
There we go. And by now, if we go back to this other one, it should play Yeah, it's going to play.
Corporations like hello Okay, yeah, it's playing.
Cool. And this one should play to… I remember that one as well. All right. Cool.
And I think I got that all committed. I do. So cool. We're current through half of January now.
Okay.
Cool.
There we go.
What parts didn't you see for me to do? Oh, the open API, OpenAI API key. We talked about that already. I did that off screen.
And…
Well, I think doesn't Lee have a key? That we can use shared for SLO.
Yeah, I have a key, but I haven't done the credit card yet.
Right. You will eventually make that happen.
Yes.
All right.
There's still questions about how to do the deploy and various things on Bach. But I think that's we know how to do the upfront part and there's some back end part that we'll need to figure out, but I'm confident we can figure that out.
Yeah, I think Grant and i should be able to do it once they get this open once i get the open ai finished so we can test it.
Well, I don't even think the OpenAI piece will be done.
On the server, I feel like that's probably going to be on whoever's doing the editing and content entry.
Yeah, right. But we should use a common key that way A, the organization is covering whatever the cost is, right?
Agreed.
Even if it's even if it's a buck a month you know at some point we're going to have to deposit more funds.
Right.
I hate to say it, folks, but… I don't think I can handle too much more tonight.
I think we ought to call it a success tonight. Sean, it's been Fantastic. Greatly appreciate it.
I'm going to go ahead. I'm going to go ahead and close the recording.