Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Michael (00:00):
Hey, I'm Michael
Dyrynda.
Jake (00:01):
And I'm Jake Bennett.
Michael (00:03):
And welcome to episode
164 of the North Meet South web
podcast.
Jake (00:11):
Michael was doing his very
best, YouTube cover vid you
know, YouTube cover image, wherehe was like you know, these
weird things. You know? I knowthat those of you not watching
the video, almost everyonedoesn't get that. But, you know,
that's what it was. It was itwas pretty funny right before
(00:32):
the show started.
So, you were just talking, and Iwanted to make sure you know,
sometimes if you've neverrecorded the podcast before,
you'll maybe be surprised toknow that the best information,
like, the best just you know,the best show content comes as
soon as you get on the call andhave not yet started recording.
(00:54):
So I was like, let's not makethat mistake. Let's start
recording. So, Michael, designwork, you said. You said, I have
been doing some design work, andI said, let's press the record
button.
I wanna hear it. And while youdo that, because we literally
just sat down, I'm going to graba drink while you do that, and
I'm gonna listen to my AirPods.So I'm here. I'm here.
Michael (01:12):
So a while back, I kind
of had this idea to allow
attendees to Laracon AU todesign their own badge. And not
design as in, you know, choosethe color or choose the
composition of where things are,but design insofar as putting
your Twitter image, like yourprofile image on the badge. And
(01:33):
I kind of wrote it off becausewe didn't ask attendees this
year for their Twitter as partof registration. Like, when they
bought tickets, we didn't askfor it. And so it became this
thing of, like, well, I've gottafigure out how to capture that
information now, and I've got togo back to them and ask them, do
you wanna do this?
And blah blah blah. And then itwas this whole thing. And then I
(01:54):
kind of shelved the idea, and Ihad seen a few people kind of
mention it. Like, Joe Tannenbaumhad mentioned this. Taylor
mentioned it in a podcast, Ithink, on the Laravel podcast.
Marcel mentioned it. Like,there's been a few people that
have mentioned it. But sometimesyou will meet someone at a
conference that you've not metpersonally before. You know,
(02:17):
meeting someone for the firsttime. And it may not occur to
you right away who that personis, especially more prominent
members of the community, forexample.
You know, someone will come upto you and they'll start talking
to you, and and you'd befamiliar with this. You know,
people come up to you becauseyou podcast, and they know all
about you and all this kind ofstuff. And you may have
(02:38):
interacted with them on Twitterat some point.
Jake (02:41):
You may
Michael (02:41):
have ex interacted with
them extensively on Twitter. And
you don't necessarily put theface of the person standing in
front of you and the avatar onTwitter that you are most likely
have engaged with together. Andso it could be, like, later that
day or the next day or worse. Itcould be, like, a week later
where you interact with thatperson again on Twitter, where
(03:03):
you go, oh, I, like, literallymet you. We had a conversation.
Yeah. So, you know, I kind ofwent back to it. And and we've
got, 4 different badge designsthis year. We've got one for
attendees, one for speakers, onefor sponsors, and one for,
staff. And so I went back to thethe printer, and I went back to
(03:25):
the designers, and I said, hey.
Is it possible for us todynamically put a a Twitter
image? Like, can we just dothis? Because we can do first
and last name easily enough asas a dynamic text on there. And
they just, like, mail merge itwhen they print it. And I went
back to them and said, can we doimages?
Like, can that be a dynamicthing if there's an image
(03:45):
printed? If there's not, don'tbecause not everyone has
Twitter. Yeah. Yep. We can doit.
And I thought, okay.
Jake (03:50):
Nice.
Michael (03:51):
And I was constantly
Jake (03:52):
Variable data printing.
Michael (03:54):
Right. So I was kind of
kicking the can down the road,
kicking the can down the road,and then it's like we have to
send the badges to print by 18thOctober in order to get them all
done in
Jake (04:04):
time and whatever else.
You got 10 days? A little over a
week?
Michael (04:07):
10 days. Yep. So I plan
I kind of started doing this a
while ago, and I was like, okay.I can just go to, like,
x.com/jacobbennett/photo.
Jake (04:19):
Yep.
Michael (04:19):
And and, like, we can
scrape the photos that way. You
can't do that using, like, theHTTP client from Laravel,
because it's Really? Okay.Twitter is a React app. So when
you load it, there's no there'snothing on the page.
You can't load it
Jake (04:32):
Got it.
Michael (04:32):
And all of this kind of
stuff. And and the API, as you
may or may not know
Jake (04:37):
Sure. Sure.
Michael (04:37):
Is significantly more
But lockdown. Right?
Jake (04:39):
You can
Michael (04:40):
make Yeah. Right. You
can make 3 requests to the API
every 15 minutes, which is notenough No way.
Jake (04:46):
Are you serious?
Michael (04:47):
On the on the free one.
Right? So which is obviously not
enough when you when you need topotentially get 100 of Twitter
images. And and so I was like,nah, I'm just not gonna do it.
Whatever.
Like, it'll be cheaper. It'llit'll be easier. I won't have to
go into it. Anyway, I wastalking to Mitchell Davis last
night, and he's like, no, justyou gotta do it. And I'm like,
(05:08):
well, I don't want to.
I'd have to I'd have to pay toget, like, elevated access to
the API, and it's all it waslike $100. I'm like, yeah. Okay.
Fine. So I I did it last night.
I, like, put it all together. Ibuilt, like, this LiveWire can I
tell you about this LiveWirecomponent? I'll come back to
Jake (05:24):
that. Oh, yes.
Michael (05:25):
I built this LiveWire
component that's like a Live
Designer, where it's like wesend you a link, which has got,
like, your your badge ID in it,and all we ask for is your
Twitter username. Because I Idon't even want to begin to
think about how I would do thiswith LinkedIn. You're probably
Jake (05:41):
Yeah. Right.
Michael (05:42):
You're probably not
interacting with people on
LinkedIn and whatever else. It'slike Twitter. Twitter is the
main thing in our sphere rightnow. And so
Jake (05:48):
Yep. Yep.
Michael (05:49):
Just put your Twitter
image in there. And then so we
will go and fetch we'll hit theAPI. We'll go and find your
profile. We'll extract theprofile, your URL, the profile
image URL, we'll display it toyou. So this is like we we put
it together roughly as what it'sgonna look like.
It's not the exact design, butit's enough to give you an idea.
You know, this is what my namewill look like, this is what the
picture will look like,etcetera. And then, you know, we
(06:12):
farmed that off. We go on we goon fetch the image. We go and
upload it to Cloudinary.
We then download it again fromCloudinary as a as a PNG,
because we need it to be like arounded circle with a
transparent background. Sothere's a bit of back and forth
in it, but I've got it in aplace now where it's working,
and I've sent it to all thespeakers for the speakers to be
able to do their badge designs.And Joe Joe Tannenbaum, bless
(06:34):
him, was was very excited bythis idea. So and as part of
that, we then give you theability to do a, like, a share
image, of of your thing. So,like, share it on Twitter.
Hey. I'm going to lariconau. Itgives you a nice little open
graph image, nice dynamic page,a little surfing elephant on
there if people click on it andthey can go and buy their own
tickets and things like that.So, yeah, got that all up and
(06:56):
running. Just going throughsome, like, design things,
trying to figure out I saw Ithink Wes Bos was maybe talking
about this recently where youcan, like, if you use Grid, the
easiest way to kind of layerimages and text over each other
is to to to do, like, have acontainer that is grid, which is
(07:17):
1 column by 1 column.
And then all of your items arejust colestart 1, rowstat 1. And
it and it's everything kind ofjust layers on top of each other
perfectly. So you don't have toworry about, you know, absolute
relative positioning, all thatkind of madness that we used to
do. It's just like grid gridgrid. And it's like really just
Jake (07:35):
sub grid, are you saying?
Or or no? You're just saying
Michael (07:38):
Just grid. Like,
literally, this div with grid,
and then, like, grid code is 1,row is 1.
Jake (07:43):
Sure. So,
Michael (07:44):
like, so what we used
to do
Jake (07:45):
with, with Twitter was it
Bootstrap? Yeah. Bootstrap.
Right? Twitter Bootstrap.
Mhmm. And so, like, everythingthe column system. Yeah.
Michael (07:54):
Yeah. Yeah. So
everything is, like, column 1,
row 1, and it all just stacks ontop of each other, the way that
I need it. And, like, for this,which is, like, you know, an
hour or 2 of hacking it togetherjust to make it give you some
indication of what the badgewill look like with your thing
on there. It was fine.
The thing that took me longer tofigure out was why my LiveWire
(08:17):
component was not LiveWiring.And I I messaged the cash money
about this, and I was like, didyou know? I spent like an hour
on this. If you because LiveWireexpects your component, like
your layout component, to have aslot, like a k. Dollar slot in
the body somewhere for where thestuff goes.
(08:40):
If there's no slot there becauseI had a traditional layout which
had a section, content, and Iwas, like, yielding the content,
whatever. And because myLivewire component was just
shoving stuff into the section,it was all displaying, but I had
no interactivity. So it took me,like, an hour to figure it out.
And just as I was about to giveup and go to bed, I went and
looked at the Livewire docs,like, the getting started, like,
(09:03):
the bonehead, go and read thedogs thing. Oh, yeah.
You need to have a slot here.And as soon as I put the slot
there, it was all working. I'mlike, okay.
Jake (09:09):
So that's it. You can't
you can't yield content. You
can't do that. You have to havea slot. Is that what it
Michael (09:14):
is? Slot.
Jake (09:14):
Yeah. Okay. That is
actually very good information
to know, because I could totallysee myself falling into that
exact same trap.
Michael (09:21):
Yeah. And because I
don't do a lot of front end.
Like, I don't do any React orVue. I don't do any Blade. Like,
basically, all of what I do, allI all all of what I have been
doing for the last the betterpart of the last 3 years is back
end.
I don't even it's not even likeI don't like the tooling or I
don't understand like, I mean, Idon't. I don't understand the
(09:41):
tooling and I don't understandany of the front ends. But,
like, I just haven't exposed. Ihaven't written any HTML for so
long. It's it's, it's it's wild.
So, yeah, if you if you want tohave a a layout for your
Livewire components, then whatyou want is to have somewhere in
there a slot for for it to echointo and then go from there. So
(10:03):
it's all working now. I've I'vejust sent it out to all of the
speakers. I sent it out to afew, close close friends who are
who are coming to the conferencejust to get them to, like,
eyeball the, you know, the thethe flow of the
Jake (10:20):
stress test.
Michael (10:20):
So you get an email
that says, you know, design your
badge. We we, like, pre generateall of the the Open Graph
images. So we'll generate theimage. And and the way that I've
done that is basically wegenerate an image using
BrowserShot, which is just likea HTML view that we throw at it,
which has, like, first name,last name, ticket ID, and
(10:42):
whether you're speaking orattending. And and
Jake (10:44):
that's just So you just
say, like, hey, here's the, you
know, here's the call here's therecord I have in the database.
Here's their Twitter username.Here's their profile. Here's
their whatever. Let me renderout a HTML view using Blade, and
then I'm going to browser shotthat thing, save that as an
image, and that's what I'm gonnaset as the OG og image.
I would grab it. Yeah. Yep.Makes sense.
Michael (11:00):
And and and so what I
was doing was, like, serving
this all through PHP. So we do acheck, like, does the image
exist on disk? If it does, justreturn that. Otherwise Sure. Do
the browser shot thing and thenreturn it.
What I discovered that you cando to, like, bypass serving an
image from the disk via PHP isto define a route in my
(11:22):
application that matches exactlythe path where the image will
exist in the public disk.
Jake (11:30):
Okay. Okay. I think I'm
tracking with that. Yep.
Michael (11:33):
So so when you have
when you use the storage link
for a public disk in Laravel, itwill take us it will create a
symlink from storage app publicand put that into the public
folder as a symlink
Jake (11:48):
Yes.
Michael (11:49):
Of storage. Right? So
my, Open Graph images are all in
storageapppublicog, which meansthey will then be referenced at
laricon.au/storage/og. So in myroute definition I have
(12:09):
route:get/storage/og/tickerid.Png.
Right? And so if the image doesnot exist on the disk, it goes
through like the NGINXconfiguration, it goes this is
not a real file' go to theindex. Php, it will then go
'yep, I need to generate thisimage, throw it on disk'. The
(12:32):
next time you hit that, Nginxwill go, there is a real file
here. I will serve the imagefrom disk.
And because I'm sitting behindCloudflare, that is then cached.
So I don't have to worry about,like, this, you know, serving
images through PHP, like, whichworks fine, but it's just like a
little bit of overhead thatdoesn't need to be there. And so
doing it this way means that,you know, the image just exists
on the disk. And I don't like, Icould use Cloudinary, I could
(12:55):
use S3 or whatever else to servethese images, but it would mean
that I would still have tocheck, does the image exist? So
now I just go, yes.
It's either there or it's not.And That's a clever little bit.
It's exactly the same.
Jake (13:06):
Yeah. Yeah. So so when it
hits that dot PNG endpoint and
it does not exist, you're sayingthen NGINX goes, well, that
doesn't exist. What's myfallback route for 4 o fours?
Sort of
Michael (13:19):
And then it goes to
index dot PHP. Yep. Then
Jake (13:21):
it goes to index dot PHP
Michael (13:23):
So it goes to index dot
PHP.
Jake (13:23):
But without any sort of,
like, without any sort of
reference to the previous routeit was attempting to hit. So,
like, how do you know togenerate it then at that point?
Well, it still knows. Right? Somy route matches
Michael (13:31):
that same path. So the
the route that I have defined in
the application is the same aswhere where it would exist in
this in the actual disk as a asa PNG.
Jake (13:46):
Okay. Okay.
Michael (13:48):
So in the NGINX
configuration I get it.
Jake (13:49):
I get it. Yes. Yes. So
NGINX handles the first yeah. I
got you.
I'm sorry.
Michael (13:55):
Can I can
Jake (13:56):
I just
Michael (13:56):
get served out of your
Jake (13:57):
Yes?
Michael (13:57):
You're gone. Gone.
Jake (13:59):
Yeah. Yeah. Yeah. So,
like, NGINX itself has, like, a
block, and it's, like and it's aserver block. Right?
A line that says, like Yeah.Essentially, if there's an
image, go check to see if itexists first before doing
anything else. And so, thatthat's what you're leveraging.
You're leveraging that sort ofmechanism that says, go
determine first if there's animage at this, you know, at this
(14:19):
location. So then once it failsthat check, it then delivers to
your route, your defined routein your application.
Yes. Okay. And that definedroute then says, oh, I need to
generate this. That route willnever get hit in the case that
the image already exists. Itwill just NGINX will just
default to showing that route.
Yes. That all makes sense. Andit Okay. That's that's a really
(14:42):
interesting way to do that.Yeah.
Michael (14:44):
Yeah. And then at that
point, you get all of the
default, like, caching headersand things like that. So then
Sure. When it gets servedthrough Cloudflare, that will
then get cached forever, whichYeah. Can be problematic if you
ever want to change that.
But with the design is fixed,like, we don't have any
differences in design. It's justeveryone gets the same design
and either says that they'reattending or they're speaking.
(15:05):
And then we use Twitter's, tweetintent. I guess it's just a
euro. You can hitx.com/intent/tweet.
You can pass it some text, andso that allows people to then
share those. So I'm hoping to,you know, this last 3, 4 weeks
in the lead up to theconference, just get people
talking about it, sharing thatthey're excited, finding out,
you know, who else is coming tothe conference, make some
(15:25):
friends, etcetera, etcetera. So,yeah, really really excited with
how that's that's gonna playout. I've seen a few people go
through the the process already.You know, excited to keep keep
going with that.
Jake (15:39):
No. It's a great idea. I
think that, one of the other
things that is a interestingchallenge to solve as well is
when you do meet somebody at theconference, how do you then
figure out who they are and howI can follow them on Twitter
without having to go through awhole rigmarole of, like,
(16:02):
asking, like, what's the youknow, like, how do I follow you
sort of deal? So we've talkedabout before, like, having QR
code, whatever, where you couldyou know, maybe it links to,
like, their pinkery or somethinglike that. That that that that
being the idea.
And so this this idea thatyou're coming up with here is
maybe a step further than whatmy my previous idea that we were
(16:28):
going to do for a conferencewas. So my my solution aims to
solve the problem of connectingat the conference, and yours is
and and yours does solve thatproblem. It just solves it in a
different way. Right? But it italso has the ability to be able
to, like you said, like, you canshare it ahead of time, and, you
know, you get this nice opengraph image that you can share
(16:49):
on Twitter that has yourprofile, all that stuff.
So that's pretty cool. Like,that's that's a really
interesting idea. I like that.This is sim it's it's similar on
that same sort of vein, but thethe idea that I had was, okay.
What if that, like, our booth orsomething like that, we had
these QR codes that we hadgenerated?
(17:12):
No. We're working on thisapplication right now called
Subro Connect, and Subro is thesort of that's the industry
we're in. Like, if you weredealing with payments, you could
say, like, payments is theindustry you're working. Like,
Subro, like, subrogation is whatWilbur does, and we're making
this new product calledSubroConnect. So, the fact that
it has the word connect, andthat's what we're trying to do
with people, sort of plays nicetogether.
(17:33):
So we were gonna make theselittle things that you could
throw on your badge, becausewe're not the organizers of the
conference, we can't modify thebadge. But, like, what could we
do to sort of, like, add it ontotheir badge? So we talked about
maybe making, like, a stickeror, like, a little hanger, like,
that would go on the bottom ofyour badge. It would say, Sembra
Connect with me.
Michael (17:49):
I was
Jake (17:49):
like, oh, that's kind of a
cool idea. And then you'd have,
like, a QR code. You could have,like, them printed ahead of
time. And then what that woulddo is if they scan to that URL,
then what it would do is itwould link up to a page that
would allow them to have, youknow, hey. Here's my LinkedIn.
You know, in this world, it'slike not people aren't
necessarily doing their stuff onTwitter. It's like they're doing
their stuff on LinkedIn. Thesethese people are anyway. And so
(18:11):
if you scanned it at the very atthe very simplest, if they
scanned it, it would go to theirLinkedIn profile. And so the
idea was, like, well, how wouldwe do that?
How would we print QR codesahead of time and associate them
after the fact? And so what Iwas thinking is you would you
would essentially have all theseURLs, like these short codes,
for lack of a better idea, abetter, like, you know, analog
(18:35):
analog isn't the right word. Itwould basically be a short link.
Right? So I have a short linkthat then has a QR code.
Print them all up. And what Iwould do is when I'm getting
ready to hand one of these out,I would, like, scan the QR code
to get the link of it, and thenI would just manually associate
that with, like, their LinkedInusername or something like that.
Like, I'd have them, you know,I'd have them give it to me or
(18:56):
or so however. Right? And sothat would just in my in my
table, on my side of mydatabase, I would just say this
short link right here goes tothis location.
So if somebody scans it, itwould then just kick them over
to the LinkedIn page so theycould easily connect with that
person and, you know, follow meon LinkedIn or talk to me on
LinkedIn or whatever sort ofdeal. So that that'd be fun too.
But you kind of already havethat mechanism built in where
(19:17):
you're you've you already havethis way to, like, point to a
page
Michael (19:20):
Right.
Jake (19:21):
That they have. So,
anyway, I don't know. I I I you
know, I know you you probablydon't have QR codes. The fact
that you already have, like, aTwitter username, I'm assuming,
on the badge probably negatesmost of this. Yeah.
Michael (19:34):
But Yeah. So we're
doing I mean, we're doing that
we're we're not someone didmention the QR codes, and this
is this is the the tricky bit.People people trying to offer
good suggestions and me tryingto do certain things in secret.
So we're not we're not doing QRcodes. We we are I think I've
mentioned before that we'redoing, like, an app for the
(19:54):
conference this year.
Jake (19:56):
Oh, Mitch. I didn't
realize that.
Michael (19:57):
Yeah. So Mitch, who is
talking about building mobile
applications using Laravel andand, you know, technologies that
we're all familiar with asLaravel developers, is actually
building out for the conferencean app. And we were talking
earlier today. He's like, whenare you going to announce it? I
guess this is this is kind ofit, the announcement.
That
Jake (20:16):
that we're doing.
Michael (20:17):
This is the
announcement. So we're we're
going to have an app, and andthere's, like, multiple facets
to this application. 1 is, like,to show the schedule. We're
gonna use it for, attendeesurveys. Like, the speakers
might wanna have some,engagement as part of their
talk, so they might wanna askquestions.
They might wanna go, like, wheredo I go from here? Do I take
(20:38):
option a, option b? We're alsogoing to use it for our q and a.
So people in the audience willbe able to ask questions of the
speaker, get an upvote,downvote, you know, and then
I'll do that q and a with thespeaker. So that's that's part
of it.
But we're also gonna allowpeople to put, like, a profile
together and and share theirdetails in there. And then we're
also going to use the app, aspart of our, networking for the
(21:01):
event to encourage people to,like, talk to each other, to
take photos with each other.Because there will be a game
running through the conference,running through the app, that
will then lead to some prize atthe end of the conference. So,
yeah, we're really likedoubling, tripling, quadrupling
down on networking this year interms of what we're doing, what
(21:23):
we're facilitating, and whatwe're like. Not gonna force
people to do it, but, you know,we'll make it really easy for
them to to engage.
So people will be able to fillout their profile in the app,
and then they'll be able to say,you know, this is my Twitter,
this is my inquiry, whatever.So, yeah. Lots lots of stuff
going on there. So then you'vegot
Jake (21:39):
that. Yeah. Yeah. You sort
of got that base covered with
that one. That's that's cool.
Yeah. That's pretty ambitious,honestly. That's a lot of stuff.
I mean, those sounds like whenyou're thinking through it in
your head, you're like, oh,yeah. I mean, I could do that.
I could, you know, create atable that just says, like, give
me the, you know, storequestion. Right? But, man,
there's a lot of considerationswe made for something like that.
So Yeah. That's that's reallyinteresting that he's doing
that.
Is he building as, like, aprogressive web app sort of deal
(22:02):
where it's like it's a
Michael (22:03):
He's building it as a
native app. So there'll be an
iOS app.
Jake (22:06):
Dang. Okay.
Michael (22:08):
Yep. So they'll go into
the Apple portal when they're
ready and
Jake (22:11):
That's crazy.
Michael (22:13):
He like, he's credit to
Mitch, and Atlas Software, which
is his his company. He's reallytaken this all by the horns and
he's running with it. And atsome point, he's gonna have to
stop building the app and start,you know, working on his talk
about building apps. But he'susing this as kind of like a
real world case use case of,like, I built this using Laravel
(22:36):
and, you know, React andwhatever. And then I've built
this mobile app, which is, youknow, on hundreds of devices in
the audience right now.
So, yeah, it's a really good,showpiece for him as part of his
talk.
Jake (22:50):
Yeah. People raising the
bar, dude. It's kinda crazy what
what folks are doing. You know?Like, it does make it, like, you
you have to bring your a game ifyou're going to be presenting at
one of these conferences.
And it seems like almosteverybody has, like, a, a
product or a frame or a, packagethat they're that they're, like,
(23:15):
promoting as like a, hey. It'snot like I'm just giving a talk
on something that's a helpfulway to do a thing. It's like,
I've been working for the last 9months on a particular item, and
I'm gonna show you what I'vebeen working on. And not only
that, I'm going to tell you youknow, I'm gonna I'm gonna create
a talk around it as well. Sodang, man.
Yeah. That's a lot of work.Props to props to Mitch. That's
a very ambitious, goal. Sothat's really cool.
(23:37):
That's really, really cool.
Michael (23:38):
Yeah. It's gonna be a
it's gonna be a very good, it's
gonna be a very good talk, Ithink. And I'm I'm excited,
like, just the stuff that we'vewe've been going through. Like,
he touches base once a week orso just to see where he's at,
where my head's at, you know,what what we wanna do, what we
can do, what's possible givengiven time and and all of that.
(24:00):
But, yeah, very excited with howthat's all gonna come together
and what it's going tofacilitate for us as a
conference.
And with any luck, like, we'llsee it bubble up into, into the
future as well for maybe someother events.
Jake (24:14):
Sure. Yeah. That'd be
great. I could see I mean, it's
supposing that that all goeswell. I could see reusing that,
you know, for other for theother Lyricans as well.
Mhmm. You know, and just add onto it every year sort of deal.
Michael (24:28):
Yep. For sure.
Jake (24:30):
That'd be really
interesting. Cool. Well, on my
side of things, we are in themiddle of building out this
platform I was just talkingabout, CyberConnect. So it's
basically a data exchangeprotocol is what it is. One
thing that I've been interestedin thinking through is the idea
(24:53):
of doing file uploads through anAPI.
And I'm curious if this issomething worth talking about. I
kinda feel like it is, and I'mI'm curious if it's something
that you've done before. But,before I get to that, I wanted
to let you know that in the casethat I have a, nonfatal but
(25:15):
tragic, nonetheless, injurywithin the next month or so,
it's probably due to the factthat I had a friend who talked
to me into getting a one wheel,and it has been so freaking fun.
I it has been a long time sinceI've been this excited about,
like, a toy. Every night, I ridethis thing.
(25:38):
It's great. Like, I went road,like, you know, I don't know,
couple miles tonight on thisthing. It's just a blast. It's
awesome. And I have taken acouple nosedives on it.
Like, the dangerous thing aboutthese on wheels is that if you
go too fast, the front end ofit, like, can't keep up with the
speed that you're going. Like,you're putting too much weight
on it, and you're going toofast. And so it just stops,
(26:01):
basically. Okay. This is thefront end dives down, and then
you're left, like, facing thepavement with nothing under your
feet.
And you're going, you know, upto 23 miles an hour while having
this happen. I have not yet hadthat specific scenario, but I've
had a couple of things close tothat. And so I've got I feel
like a kid again, man. I've got,like, scrapes on my knees and
(26:23):
elbows and sort of stupidnonsense like that, but I gotta
tell you, it has been so fun. Soif you do not know what a
onewheel is, you shoulddefinitely check it out.
It's basically like a skateboardwith a wheel, one wheel in the
middle of it, a really, reallybig fat tire wheel. But it feels
like you're snowboarding, andit's you kinda, like, can carve
on it. And, like I said, thisone goes really quick. This
(26:47):
one's like, I'm too cheap to buyanything like that brand new.
And so, like, I bought it from adude who had it for a while and
wasn't using it.
So it's already kinda scratchedup a bit anyway, which is fine
with me. But this particularmodel is like the GT model, and
it would go it would gosupposedly up to 23 miles an
hour. I've had it up to 21.Mhmm. But too scared to push it
(27:10):
all the way to the top.
But, I gotta tell you, man, itis a blast. It's so fun. So if
anybody's, looking for a newhobby, let me suggest the
Onewheel. And, I should Iliterally I should bring it to
the next I I should bring it tothe next layer con. Anybody out
there who's, like, got a onewheel hobby, let's bring our
(27:32):
stuff to the next Lyricon, andwe'll have a little one wheel
gang.
That'd be super fun. Bunch ofold guys and gals riding their
one wheels around, but it's it'dbe fun. It'd be a lot of fun.
Okay. I digress.
Alright. So APIs. I was tryingto think through the the how I
would want to do this in thecase that I was a person
(27:55):
consuming the API that I'mcreating. And how I thought
about it was rather than havinga API that I need to figure out
how to use to do a post and thenupload an image with, I thought
to myself, like, I think I'drather have, like, an s 3
(28:17):
bucket. Do you know what I'msaying?
Like, I feel like there are somany tools that just
automatically know how tointegrate with or connect to an
s 3 bucket, and that's it. Like,to me, an s 3 bucket is the API
for storage stuff, like s 3compatible API. You know, you
(28:38):
know, whatever it is, if you'reusing LERVO and a fly system
adapter, or if you're usingsomething like a a, you know,
Panix transmit that has an s 3,you know, connector or any Yeah.
Any other system that movesfiles anywhere, it's gonna have
an s 3 connector. Not my newbespoke uploads of a file.
Do you concur or, like, do youfeel like no. Like, people do
(28:59):
uploads with APIs all the time,like, file uploads. It's like,
oh, man. I just don't feel likeI've run across that really
where I've needed to put a filesomewhere through an API. Yeah.
(29:23):
Yeah.
Michael (29:23):
No. No. Not especially,
like, when I was working in
telco, it was common that we'dhave to, like oh, no. I don't
wanna say common. It was a nonzero number of times that we had
to, like, SFTP files, like, CSVfiles onto remote servers and
things like that.
And those things were oversecure ISDN lines and and things
(29:45):
like that. So it was like butthe I'm talking almost 20 years
ago. This is not something thatI've had to do recently. Right.
Right.
We've certainly had to FTPthings across, but but not, some
of the stuff we're doing at themoment does require us to do
things with the Box API. Some ofthe stuff we're doing does
require like, some lendersrequire us to send them images
(30:08):
of things. Yeah. Not
Jake (30:12):
How are they doing that
though? So, like, Box API, I get
that. That's basically an anglean, analogous. What's what's the
word I'm looking for? Is thatright?
Michael (30:21):
Yeah. Yeah.
Jake (30:23):
Yeah. Analogous. Whatever.
How you wanna say that. It's the
same thing.
It's what I'm talking about,really. Like, whether it's a box
API or an s 3 endpoint, we'rekinda talking about the same
thing.
Michael (30:33):
Yeah. There is I am
sure that there is, like, a
couple of lenders that requireus to say, we need to send,
like, a a a piece of like, anidentifying document. And we
have to send, like, a request toget an and and then they send us
back an endpoint with an ID, andthen we have to send the file
there. Like, I'm pretty surethat there is a few lenders that
(30:55):
that require that, where we areuploading stuff by by API. But
it's it's Interesting.
Very uncommon.
Jake (31:04):
But that back and forth
dance is a little bit weird.
Right? Where you say, like,okay. I you have an endpoint.
I'm going to request the I'mgonna hit that endpoint, and
you're gonna send back to me aAPI or a a URL, which can be
used to send a file to, and thenI can send the file to it by
doing, like, a, you know, getcontent on the thing and then
streaming the payload over thatthing.
(31:24):
Yeah. And, I mean, that's itdoes certainly seem like that
would be possible. It justdoesn't necessarily seem like
anything I would want to do. IfI was if I could pick if
somebody said, hey. Here's thetwo options.
Number 1, we can give you an APIendpoint, which you can read our
documentation and figure out howto put a a document at a
particular location using thisAPI. Maybe it belongs to some
(31:47):
document or some, you know, someclaim on our side. So you say,
like, claim ID, I want to hit,and I wanna upload a document
for it. Okay. Either that, oryou can just upload a document
with the primary identifier inour system of a record or
resource that you have, andwe'll pick it up automatically
and just dump it where it needsto go.
It's like, well, kinda ratherhave that, honestly. Mhmm. And
(32:12):
then and then it's like and ifthe in the case that there's an
error because I think that's theother sort of annoying part is
I'm like, if if it doesn't gowell, how that I mean, that is
the other p piece is, like, ifI'm if I'm giving them an s 3
location, you sort of have todo, like, batch situations. I
(32:35):
mean, you could you couldprobably say, like, give me a
trigger. There's, like, s 3triggers.
Right? And so you could say assoon as something uploads there,
trigger a new job that kindagoes out and does something. But
you can't give, like, immediatefeedback necessarily like you
would through an API where yousay, like, okay. You
successfully uploaded the thing.It worked or it didn't.
Like, oh, that's not a validthat's not a valid extension
(32:55):
type or, looks like this is alocked PDF. Like, you can't do
that sort of deal. So that's theonly other challenge that I'm
trying to solve. It's like,well, how do I get what's the
feedback loop to a person who'suploading something to a bucket
rather than somebody who'suploading something to an
endpoint? And I think for me,like, that's just like an email.
Hey. It didn't work. Here's anemail.
Michael (33:15):
Yeah. You know
Jake (33:16):
what I mean?
Michael (33:16):
I think that's probably
as as best as you get,
especially with somethinghappening in the background.
Yeah. It's gotta be like a anasync process. It's just yep.
We've got your file.
We'll we'll do whatever we'vegotta do with it, and then we'll
let you know if it failed andyou have to try again kind of
thing.
Jake (33:36):
Yeah. And I think I think
the, the user story is important
too, because it's not likesomebody's typically doing,
like, a one off situation. Like,this situation that we're
talking about here is wherewe're saying, like, there's
gonna be a large mass ofdocuments that are gonna need to
be uploaded for, like, hey.These are any new documents that
got added to our local systemwithin the last day. Here's a
(33:57):
copy of them.
And so the the story of of it isgive us your most recent
documents for the claims thatwe're handling for you. And so
they're just kinda kinda like,hey. Here they are. Dump them up
there, and then they're done.Yeah.
And to me, that seems likesomething that you'd wanna have
an s through back where it'slike, hey. Here's all the stuff.
Transfer them over there. Thankyou very much. Let me know if
anything happened that did notwork later.
(34:18):
You know? So Yeah. I think I'mokay with that. If it doesn't
sound too crazy or too weird toyou, then I think that's
probably the way I'll move withit. But if anybody listening has
other suggestions, they're like,oh, no.
Like, posting through an API istotally very you know, an easy
thing to do. It should not behard at all. So, anyway, that's
(34:39):
been an interesting that's beenan interesting one for me.
Michael (34:42):
I think that's that's
probably yeah. I it the
alternative is to hold them in,like, a, you know, using
something, like, doing a sync,doing a, a poll, like, send to
an end wire and just, like,wait, or or it's a matter of,
you know, using, what do theycall reverb or, you know, some
(35:06):
WebSocket to to just Sure. Postback when it's done. But, like,
if they're not hanging around toRight. To see that, then, you
know, it probably doesn't reallymatter too much, does it?
Jake (35:17):
And we do have an
interface on the front end
where, like, if they wannahandle something through the
front end, they can do that too.So they can say, like, I wanna
create a new batch of documentsthat I'm gonna upload. So they
upload, they click they clickthat. It it it creates a new
import batch, and then they justdrag all their files onto there.
And then it'll it'll handlethat.
And it could you know, thatfeedback mechanism will be the
same where it's like, it's gonnawe're gonna run through those.
(35:37):
We're gonna process those. Andthen we'll tell you if there's
any failures on that particularbatch by displaying it in the
UI. But we'll also because youmight not be hanging around
waiting for all those things toprocess, we'll also send you an
email when it's done to let youknow if there's any errors or if
all of them were successful orwhatever. You know?
Yeah. So, anyway, think that'sthe direction we'll go.
Michael (35:57):
Where are
Jake (35:58):
we at on time? I have one
other thing I could talk about
real quick, but if we are out oftime, then we can wrap it. Where
are we at? I think we're at 36
Michael (36:06):
I think we're fast a
little bit. I think we'll wrap
it. Before before we go, thisthis has just gone out to social
media. I don't know if I canplay a video into the podcast.
I'm gonna see.
I'm gonna see if I can I'm gonnaclick this and, tell me, is this
play it says playing live. Idon't know where it's playing.
Is it showing you this? Can yousee this?
Jake (36:25):
It does not see it's not
showing me. I cannot see it.
Michael (36:28):
Okay. Let's find out.
Let's see. It says playing live.
It's probably buffering.
Oh, there isn't it? Hey. Did youhear me? Did you did you hear
me? Lyricon AU.
Lyricon AU. Lyricon AU.
Jake (36:42):
Lyricon AU is back.
Michael (36:43):
Lyricon AU is back in
2024. Lyricon AU is back in
2024. Back. In 2024. Back in2024.
The year never before. Bringingyou more.
Jake (36:54):
Bringing you more. Than
ever before.
Michael (36:56):
Bringing you more than
ever before.
Jake (37:04):
Dude, that's awesome.
That's gonna be so fun.
Michael (37:07):
I've had the idea to do
this video. It's like a a 40
second short. Right? So ifyou're listening on the podcast,
go and have a look onx.com/lauriconau,
youtube.comlauriconau, whereveryou're socially following us.
But I've had this idea sinceFebruary where the boys, as part
of their season 4, like,marketing launch and whatever
(37:30):
else, they were they did asimilar style of video.
And I'm like, yeah. If I canconvince the speakers to do
this, then, I think I thinkwe're gonna do that. And so that
that has just gone out at thetime of this recording, so
people will start to see that.It's gone up as a YouTube short
just as a little bit of aconversation piece. For those of
you who may be curious, I I wasvery humbled to have Aaron join
(37:55):
in on on the festivities, butAaron is definitely not coming.
He's not leaving his 4 children,3 and under, to to come to
Marathon AU this year. But,yeah, he I was very very pleased
that he was happy to take takesome time out of his day. But
that was that was, that was, anabsolute mayor of a thing to put
together. Because everyone sentme, you know, 30 to 40 seconds
(38:18):
of video saying these differentphrases and these different
things. And then I had to take,like, little bits and pieces, as
you saw, from these 30, 40second videos and squish it all
down to, like, 1 40 secondvideo.
And it was like, you know, whodo we give it? Like, how many
people get airtime? Where dothey get airtime? Make sure
everyone kind of gets squishedin there. So it was it was it
(38:38):
was challenging to get, youknow, 10 minutes of video down
to 40 seconds across all of thespeakers.
But, thank you to all of thespeakers who who did take part
in that. I I hope, hope hope thecommunity enjoys that as much as
I enjoyed putting it together.
Jake (38:52):
I was just saying, man,
your speakers are really working
for you this year, man. They'rethey're doing a a great job.
That's a lot of like you said,it's a lot of effort, but, like,
it's for your part. But eventoo, just some of those people
went, like, all out. Like, oneis on a boat.
Another one's, like, in asubway. Like, it's it's Yeah.
That's pretty cool. Who who wasthe dude that was, like, out in
nature? Like like, I heard,like, birds and stuff chirping
(39:14):
and whatever.
Michael (39:15):
That was that's Marty.
Yeah. That's, like, his
backyard. Literally, he lives inhis house.
Jake (39:19):
That's crazy.
Michael (39:20):
Like, behind him is is
a is a is a hill.
Jake (39:22):
Like a rainforest
preserve. It was, like, crazy.
Shout out, Marty. So Nice work,bud. Yeah.
That was awesome.
Michael (39:28):
I appreciate I
appreciate the speakers. You
know, I I tell them that I wanttheir experience as speakers to
be as stress free as possible.We organize like, they they book
their flights, but we organizetheir accommodation. We organize
their, Uber to the hotel. Youknow, even the speakers that are
not staying in in our speakerhotel, I'm like, oh, just make
(39:49):
sure you get to your place.
I don't want you to worry aboutanything up to the conference
before when it's your turn tospeak kind of thing. So just you
need to focus on on speaking,and I'll I'll, you know, focus
on the rest. So I appreciatethat they put the time in to to
do these little things, which II think make the the whole
experience come together.
Jake (40:08):
Agreed. That's some that's
some pretty sweet concierge
service, dude. If you're like,you've got Ubers hooked up from
the airports to the hotels andall that stuff, that's awesome.
Yeah. It reminds me of, like,the Disney, what is it?
The Magical Express. Like, aMagical Express. I think they
used to have this in Orlando.Like, you'd fly in. If you had
Magical Express passes, when youwould get to I think I'm trying
(40:30):
to remember the way that itworks.
I think from your departingairport, you'd put this special
tag on your luggage.
Michael (40:35):
Mhmm.
Jake (40:35):
In that Orlando, if you
had that tag on your luggage,
they would know where it neededto go. So, like, from the time
you leave like, I I would go tomy my like, I go to Chicago.
Right? I fly to Chicago. They,in advance, send me this tag.
I I, you know, take my luggage,and I check my luggage. And I
(40:56):
don't see my luggage again untilI get to my hotel room, and it's
waiting for me there.
Michael (41:00):
Nice. That's pretty
neat.
Jake (41:01):
They would just they would
just take it from the airport at
Orlando. They had figured itout. They would take it from the
airport, and they would take itto your destination location.
And then you would so, like, aswith, like, traveling with 4
kids, that's a that's a godsend,man. Like, you would just get
out and never had to go to theluggage collection stuff.
You would just go straightthrough, and then they had,
like, a whole thing, like, atthe Orlando airport. It's like,
hey. If you're going to Disney,Magical Express this way. And so
(41:24):
you go there. When you get inthe queue, the bus is waiting
for you.
It had, like, cartoons and stuffto play and, like, everything
the whole way. And, like, it wasliterally the mat truly magical
from the time you got off theairport off the airplane in
Orlando until you arrived atyour hotel room. And it was just
so well done. So the MichaelJordan Magical Express.
Michael (41:46):
Yeah. Yeah. That is I
mean, we're not picking picking
up your luggage, but I'm I'mtaking notes. Now, we 4 kids is
I can't imagine. 22 is enough.
Rhea and I went overnight toSydney for our wedding
anniversary on the weekend to goand see Hamilton. And it was
great. Rhea had her overnightbag. I had my overnight bag. We
just walked straight throughsecurity, sat on the plane, put
(42:08):
our bags up, didn't you know, wepaid for the the economy the
premium economy seats orwhatever it was.
So we had more labor room, morespace. Got out at the airport.
We took our bags with us. Wewalked straight into the Uber.
Went straight to the hotel.
Like, I tell you what. I said toRee, we need to get the kids
something, like, just like alittle token of like, a toy or
something. So when we get back,they're like, oh, mom and dad go
(42:29):
away. We get a toy when theycome back. So that they can be
like, when's the next timeyou're going away?
So that we can do this again.Because Yes. This is this is the
first time that Rhea and I havebeen away, just the 2 of us,
since before Elo was born. Soit's been
Jake (42:43):
I can I can
Michael (42:44):
do that? At least 7
years. So
Jake (42:46):
Yep. Yep. It happens. It
happens quick. And it does it's
it's hard.
It's hard to make the time to doit just because life gets busy
and it's like, oh, like, we'lljust sacrifice. It's fine. We'll
always kinda be around. And it'slike, yeah, it's important to
take time and be away. But it ishard.
It is hard. I just speak to you,but you need to plan that for us
because it's it's desperatelyneeded right now. We need to get
(43:07):
it open for a couple days.
Michael (43:08):
We we've certainly made
it, we've made a an effort this
year to, like, once a month togo and do something. And we it
was kind of in preparation forthis trip. Like, we're gonna
have the kids start doingsleepovers with with the
grandparents, so they can getused to that. Being there
overnight, whatever else. Overover 9 months, we we've got it
(43:28):
all planned out.
And so, like, once a month, wewill we will have just a night
without the kids, whether it'sdinner, movie. Last time, we
just got, got some takeout, camehome, watched a movie at home.
And it was just, you know, niceto just to have that time alone.
Like, to to remember that you Isaid to Rae the other day, and
she, like she was, like, bitch,please. But I I said, it it it
(43:51):
was nice it was nice to go away,just the 2 of us, by ourselves
and, like, realize that we stilllike spending time with each
other,
Jake (44:00):
which I
Michael (44:00):
think is important.
Like, when when it's the kids
and it's always, like, it'susually the kids want mom.
Right? But it's it's usuallythat the kids are always around.
The kids always want something,whatever.
That, like, even when you'retogether, you're not really
together. And so Yeah. Reallyimportant that that we get to
spend the time, just the 2 ofus, and and realize, like, yeah,
we do still love each other, andwe and we do love spending time
(44:21):
For
Jake (44:21):
sure.
Michael (44:22):
Together. Like, that we
we're not just we're not just
here because of the kids, butwe're here because we love each
other and we wanna spend timeRight. With each other. Yep.
It's just that when they're soyoung, it's it's a lot harder to
do because they they do dependon you.
So
Jake (44:35):
Yes. Yep. Good thoughts,
man. Good thoughts. Well, let's
wrap this one up.
167.
Michael (44:42):
Sure. 64.
Jake (44:43):
164. Folks, find a show on
this this episode at north meets
south dot audio slash 164. Hitus up on Twitter at michael
dorinda@jacoben or at northsouth audio. If you like the
show, write it up in yourpodcaster of choice. 5 stars
would be amazing.
Till next time, folks. We willsee you later.
Michael (45:02):
Peace.