00:00:08.639
hi um I'm P I'm super happy super happy
00:00:11.599
to be here um I've
00:00:14.200
been I haven't actually been to a stage
00:00:17.320
for five years now so you know this is a
00:00:22.080
big comeback to the conference circuit
00:00:23.560
for me but the the last time I was on
00:00:26.560
stage there was this pervasive belief
00:00:29.759
and among speakers that a good talk
00:00:33.160
needs audience engagement and I wonder
00:00:36.399
if this is still the case how many of
00:00:37.640
you have been to a talk that started
00:00:38.960
with a show of
00:00:41.200
hands perfect perfect thank you that
00:00:43.440
that's what I'm talking about so um this
00:00:46.520
talk is titled simplified and
00:00:47.719
addlightness this is not something I
00:00:49.440
came up with because obviously not but
00:00:51.680
it's a quote from Colin Chapman who was
00:00:54.359
does anybody know who Colin Chapman
00:00:57.199
was excellent because I didn't either
00:00:59.519
and I felt extremely cluess about it so
00:01:01.600
Colin Chapman was the founder of Lotus
00:01:03.960
cars and this was the uh advice he gave
00:01:07.400
to his design team that you might like
00:01:11.040
Lotus cars you might not like Lotus cars
00:01:13.159
but they are definitely distinctive and
00:01:14.640
they are I think a very
00:01:18.200
interesting take on the automotive
00:01:20.640
industry they have electric cars now you
00:01:22.640
know a lot of interesting development
00:01:25.079
there
00:01:26.400
so um I'm extremely fond of you call uh
00:01:31.320
actually in 2010 when I was wrapping up
00:01:36.320
as I thought my academic years and I was
00:01:39.399
turning in my PhD and as usual there was
00:01:42.520
a deadline the deadline was very
00:01:44.719
unfairly not on the end of February but
00:01:47.159
actually not on a leap year so you know
00:01:49.719
I got scammed twice basically but you
00:01:52.079
know it was 28th of February 2010 and I
00:01:55.560
sent my PDF at 9:00 p.m. and I like what
00:01:58.719
do I do with my life now right so I
00:02:00.799
decided maybe I look for a conference to
00:02:03.680
speak at and as it would happen the Euro
00:02:08.520
that year was in CCO and the deadline
00:02:10.679
for cfp submissions was also February
00:02:12.879
28th so um I did submit I did get
00:02:16.920
selected uh this is still one of my
00:02:20.440
favorite logos of a euruko conference
00:02:23.440
that was in kco um I I arrived at the
00:02:26.440
conference I was like first speaking
00:02:29.959
engagement you know like I didn't know
00:02:32.080
what to expect I was scheduled right
00:02:33.920
after Matt SK note so that already kind
00:02:37.000
of put some red flags in my mind but
00:02:39.360
then it was one of those traditional
00:02:41.599
Euro conferences where Matts gets stuck
00:02:44.200
along the way and that time I think he
00:02:45.959
was stuck in Prague so I ended up
00:02:48.040
opening that conference and you know um
00:02:51.400
this was my face back then uh again it
00:02:54.640
was you know 14 years ago apparently I'm
00:02:57.560
pointing to this guy who look so much
00:03:00.239
better now and um as you can probably
00:03:02.519
see um he was also speaking at the
00:03:04.400
conference and um you know he was 25 I
00:03:07.480
was already 30 but a lot of things
00:03:10.480
happened since then but those were super
00:03:12.239
interesting times you know what was in
00:03:14.840
2010 who remember what mer
00:03:17.319
was excellent excellent so uh merb was a
00:03:22.000
very interesting take on web apps back
00:03:24.799
then but it got merged into race 3.0
00:03:27.720
that got released in 2000 then what else
00:03:31.560
did rail 3.0 give us a new RoR with an
00:03:34.319
emphasis on rful declarations it wasn't
00:03:36.840
that thing before that um active record
00:03:39.200
chainable query language built on top of
00:03:41.439
relational algebra like super
00:03:44.360
interesting things at that time
00:03:46.560
unobtrusive JavaScript helpers this was
00:03:49.560
how we did kind of more usable front
00:03:54.159
ends back then still you know Erb
00:03:58.040
rendered and B
00:04:00.599
like that was the time when dependency
00:04:04.159
management with bundler got added to
00:04:06.920
rails and I'm mentioning all this
00:04:09.760
because it was a very good ERA for very
00:04:14.079
good kinds of tooling like this kind of
00:04:16.320
tooling that is helpful that makes you
00:04:19.440
more productive and is actually super
00:04:22.639
Pleasant to
00:04:24.639
use so let's skip 9 years ahead and what
00:04:29.560
do we remember some of us at least from
00:04:32.919
the year 2019 emberjs 3.7 got released
00:04:36.639
and the first release information is
00:04:38.520
that drops support for node 4 um a
00:04:41.520
little bit less T cheek tonking cheek
00:04:44.240
react 16.8 added hooks that was a big
00:04:47.960
change in the frontend world
00:04:51.080
but a lot of the web development was
00:04:54.960
about front end those were two and still
00:04:58.639
are to a large extent two very different
00:05:00.400
worlds and but also right 6.0 got
00:05:03.639
released and you know we got multiple
00:05:06.680
databases support which the question
00:05:10.039
whether it's about Simplicity can be
00:05:12.800
controversial but to this day at work
00:05:16.080
and I happen to work with j at
00:05:20.319
that easily confused with a music
00:05:24.199
platform company Shopify
00:05:27.160
I uh I still am one of the maintainers
00:05:31.160
of two services that happen to use code
00:05:33.960
two code bases only because they were
00:05:36.360
created before raes 6 Z and it was so
00:05:38.840
much easier to just spin up a new
00:05:40.160
service to talk to a new database so
00:05:42.479
multiple databases
00:05:43.840
support is actually a Simplicity thing
00:05:46.720
if you think about it parallel testing
00:05:49.560
you know if your tests are so slow that
00:05:51.440
they need
00:05:52.960
parallelization you have bigger problems
00:05:55.039
but parallel testing gives uh it potency
00:05:59.160
of sorts to your tests that's super
00:06:01.800
important and side work like that was as
00:06:05.160
shaveer mentioned the version of RA uh
00:06:07.720
rails that added sideb workg but also
00:06:10.319
you know web Packer by
00:06:11.880
default why like why do we need like
00:06:15.720
http2 was already four years old back
00:06:18.880
then why do we still need to
00:06:22.080
compile a lot of JavaScript files to
00:06:24.800
another Javascript file that then gets
00:06:27.599
served as a single asset back then it
00:06:29.080
was mostly that thing that caching like
00:06:32.520
all of the things that are actually
00:06:33.520
served on the network layer solved on
00:06:35.800
the network layer rather than you know
00:06:38.280
by convoluted toing thank
00:06:42.199
you
00:06:44.039
so as
00:06:46.639
um as we already heard the euroo in 2019
00:06:52.360
was in Rotterdam so kman remembers it
00:06:56.759
fondly me as well obviously I like it
00:07:00.360
very much I was you know obviously 5
00:07:02.360
years younger but also 10 kilos younger
00:07:05.800
but um I'm working on that I bought a
00:07:07.960
treadmill last month you know I'll get
00:07:10.400
back there this t-shirt almost fits so
00:07:13.800
you know I wear it so people can make
00:07:15.560
this mental connection about personal
00:07:17.560
branding online right like me this
00:07:20.840
person smile still sometimes yeah um but
00:07:25.599
you know like we thas uh and I and
00:07:30.879
Bernard were running a ruby webshop that
00:07:35.759
turned to be Ruby and JavaScript webshop
00:07:38.199
you know we
00:07:39.400
were 9 years older you know I was
00:07:44.520
pushing 40 to much was pushing 35 he was
00:07:48.199
had new hobbies totally reasonable given
00:07:50.440
the state of the ecosystem back then
00:07:53.599
already looking much better um so how
00:07:57.240
does it look today well we have SP
00:07:59.759
everywhere single page applications
00:08:01.080
everywhere we need to keep our HTML
00:08:04.120
hydrated um the front end tools are
00:08:06.240
Ching on like view is sometimes used for
00:08:09.039
very good reasons but react in
00:08:12.240
particular in the typescript flavor
00:08:14.159
seems to be quite pervasive and popular
00:08:18.639
um backend for them is a separate thing
00:08:20.879
like a lot of Curr current web
00:08:23.759
applications have backend that search
00:08:26.039
Json from java python typescript Maybe R
00:08:29.879
maybe rails not necessarily and what we
00:08:34.320
saw was very interesting and I I'm not
00:08:39.080
you know poking at this this was
00:08:41.360
actually very interesting sequence of
00:08:43.360
developments in the front end world uh
00:08:45.640
things like micro frontends that are
00:08:48.600
sometimes referred as taking
00:08:49.839
microservices to the front end which I
00:08:52.399
think is a bit of diservice by now but
00:08:54.920
you know it's an interesting problem to
00:08:56.920
solve and an interesting solution to
00:08:58.320
that problem but we also had had both
00:09:00.399
backend for front end which is our
00:09:03.600
backend should support what the front
00:09:05.200
end needs to render if we have very
00:09:06.760
different views for mobile and web we
00:09:09.240
have we should have two different
00:09:11.600
backend end points for those but we also
00:09:14.279
have backend driven UI now which is the
00:09:17.079
back end defines what the UI should look
00:09:19.640
and the front end it's still a separate
00:09:22.000
code base but it should basically do
00:09:25.519
what it's told by the back end which
00:09:27.000
currently means that if you're a front
00:09:29.079
end developer and you are tasked with
00:09:31.680
doing something in a backend driven UI
00:09:34.200
you either better also do it on the back
00:09:36.320
end or you have to communicate with
00:09:39.399
whatever Java person maybe typescript
00:09:42.560
another typescript person I don't know
00:09:44.440
maybe you know python developers I heard
00:09:47.040
are making a comeback right now so you
00:09:50.800
know um so the thing
00:09:54.320
is of course it sto working yeah like
00:09:58.399
what happened what happens that we have
00:10:00.480
now like this kind of two separate
00:10:03.880
worlds we have the front end stack we
00:10:06.120
have the backend stack they technically
00:10:08.959
talk to each other but sometimes more
00:10:11.839
than the developers who work on them
00:10:13.640
like what what went wrong but also today
00:10:17.680
we have anoly and muu JS it's a modern
00:10:23.880
Ruby unobtrusive JavaScript but it's
00:10:28.320
spelled with capital M only so I don't
00:10:30.160
know um we have the tooling to do you
00:10:34.839
know like static is HTML with enough of
00:10:39.680
JavaScript sprinkled on top of it for it
00:10:41.680
to actually be usable in a in a good way
00:10:46.120
we have action cable we can make the
00:10:48.839
browser communicate back and forth with
00:10:50.800
a back end in a very Dynamic fashion uh
00:10:53.880
we have hot wire we already have
00:10:56.959
discussions whether something should be
00:10:59.480
You Know This Much flavor of of hot wire
00:11:03.040
should we be doing more of like through
00:11:05.600
Binks only thing and those are good
00:11:07.320
discussions and they show that we are
00:11:09.639
still in the kind of teething phase but
00:11:12.839
already have solutions for kind of more
00:11:16.240
dynamicism and a bit more Simplicity but
00:11:21.760
we could be
00:11:24.639
there with some cavas that I will I can
00:11:28.160
mention because this is important like
00:11:30.440
this is again a very very good time to
00:11:33.440
be a ruby developer is my point this is
00:11:35.639
actually from 2018 but like we should
00:11:38.880
probably recreate this photo at some
00:11:41.720
point at this conference maybe no
00:11:44.720
apparently not um so you know why why
00:11:49.920
things are like this this is not a
00:11:51.920
comment on the photo it's about the
00:11:53.959
state of so one take is
00:11:57.760
that uh you know the zero interest rate
00:12:00.839
period ended and there is just less
00:12:03.639
money flowing into it llms are taking on
00:12:07.440
like this is from uh gargi
00:12:11.079
or's uh pragmatic engineer website um
00:12:15.320
I'm not necessarily supporting this I'm
00:12:18.199
not sure this is true but uh you know
00:12:21.199
smaller teams need to deliver Solutions
00:12:23.120
is a theory quicker turnaround and
00:12:25.680
simpler deploys are a thing maybe like
00:12:28.959
those are extremely good side effects
00:12:31.320
maybe those are the driving forces but
00:12:32.760
for me the important thing is actually
00:12:34.360
more fulfilling experience via one
00:12:36.880
person Frameworks like if you if you saw
00:12:40.839
uh dhh videos and the blog post the one
00:12:44.079
person framework this is where we are
00:12:46.360
again getting into this is not very new
00:12:50.320
but or revolutionary by now but you know
00:12:54.000
this is a very interesting time to live
00:12:56.880
on the pendulum between front end and
00:12:58.760
back end and between operating on the
00:13:01.360
user devices versus rendering things on
00:13:03.720
the server when we have better control
00:13:05.240
and can actually scale it potentially
00:13:07.800
more is swinging back so how how can we
00:13:13.720
do this if this is something we actually
00:13:17.079
want to do so uh this is a bit cut off
00:13:22.160
but there is a website let me see
00:13:24.800
whether I can make
00:13:28.120
it smaller actually okay so radical
00:13:31.600
simply. CD because you know domain hacks
00:13:34.279
are a thing the it's it's actually
00:13:37.560
onepage website and it says it basically
00:13:41.279
shows you this idea that you know you
00:13:44.079
can replace some already entrenched
00:13:48.560
things view no Webb bubble JavaScript
00:13:52.399
spas and so on and so forth with this
00:13:55.440
other approach it doesn't in my opinion
00:13:57.920
it's very important to understand that
00:14:00.040
it has its VI there's like there's
00:14:02.279
always a trade-off
00:14:04.639
but like we're back so to speak if
00:14:07.759
you're of the backend persuasion like I
00:14:10.399
am uh you can run a monolith you can
00:14:12.920
sprinkle unpo on it you can run your
00:14:16.759
caching and your elastic stuff and so on
00:14:19.839
in pogress which is like I remember
00:14:22.759
using postgress 6.9 like quarter century
00:14:26.920
ago 25 years ago and and back then it
00:14:30.279
was the underdog of the database world
00:14:32.920
right now you know it's not as much uh
00:14:37.240
this
00:14:38.040
is uh from The Amazing
00:14:41.440
c.com another website that decides to
00:14:45.440
also you know just use the right font
00:14:48.199
for everything but uh it is true that
00:14:51.440
for a lot of these cases not for all
00:14:53.560
this is super important but for a lot of
00:14:55.680
these cases postgress is just fine like
00:14:57.639
we can have PPS up in postgress we can
00:15:00.399
have full text search in postgress we
00:15:02.240
can have a lot of very interesting
00:15:04.160
things like uh geolocation objects
00:15:08.199
straight in postgress we can I never did
00:15:11.839
that but we can expose postgress as rest
00:15:16.360
apis like you can actually chug out Json
00:15:20.279
out of postgress and the native Json
00:15:22.399
support in pogress is stop Notch um so
00:15:25.839
you can have postgress as a document
00:15:29.000
database if you really want to and so on
00:15:30.959
and so forth so you can replace a lot of
00:15:33.319
those things with
00:15:34.639
pogress but we can make one simpler and
00:15:38.720
uh this is a
00:15:39.920
technology that I don't like this word
00:15:42.240
but this is solution that makes a huge
00:15:45.240
comback sqlite uh again you probably
00:15:48.720
heard enough talks about it already uh
00:15:51.360
there is a workshop how to use sqlite
00:15:54.560
how to tune it for modern rails usages
00:15:59.040
and so on so forth
00:16:00.519
sqlite is a really interesting uh bit of
00:16:04.480
Technology because it used to be that
00:16:06.680
you know toy database that rails uses by
00:16:10.720
default so you don't have to set up a
00:16:12.240
proper grownup
00:16:14.399
rdbms and uh it was like okay you can
00:16:18.600
build your app but then you actually
00:16:20.519
want to deploy it so just keep your
00:16:23.279
fingers crossed that active record will
00:16:25.440
be agnostic enough and you will just
00:16:28.279
switch it to some other database and it
00:16:30.440
will keep working and so on so forth but
00:16:33.160
there are projects like Li stack which
00:16:35.000
is a rails and not only because it also
00:16:37.839
hooks into SQL for example it's a super
00:16:42.000
super optimistic for me as in I'm
00:16:45.000
optimistic looking at it and I think
00:16:46.480
it's also very ambitious but it's very a
00:16:49.000
very interesting thing that you know
00:16:50.759
data obviously SQL I light DB cach
00:16:54.600
there's light cach like you can spin up
00:16:56.839
SQL light in memory use it as a cash is
00:16:59.959
it worse than mcash maybe you should
00:17:02.759
Benchmark but it's still the advantage
00:17:06.160
is it's simpler it's the same solution
00:17:09.079
pops up light cable job cues light job
00:17:12.480
like you can actually put your jobs in
00:17:15.360
sqlite if it's in memory it's like redis
00:17:18.000
without persistence if it's on dis it's
00:17:20.959
like redis with persistence like will
00:17:23.600
you run into performance issues maybe
00:17:26.360
probably would you run into them with
00:17:29.480
whatever default R settings are maybe
00:17:32.360
maybe you know like I I saw enough cases
00:17:36.080
where just mistakenly or by default
00:17:38.679
redit was put in other data center that
00:17:41.760
you know you could Crank It Up very much
00:17:43.799
but the network latencies were killing
00:17:45.320
it anyway um there's even a light metric
00:17:48.200
part that makes uh sqlite work for the
00:17:54.360
metrics uh use cases so you know it's
00:17:57.880
even light search there's full text
00:17:59.600
search built on top of SQL light so with
00:18:02.320
light stack you basically for
00:18:06.360
surprisingly long time you can go with
00:18:09.280
whatever top project you're spinning up
00:18:11.360
in an afternoon whatever you know I want
00:18:14.200
to have a small social network for
00:18:16.320
sharing photos with my family without
00:18:18.039
necessarily giving them out to one of
00:18:20.679
the you know four big
00:18:22.440
corporations we can now again implement
00:18:24.799
it fairly easily especially with a
00:18:27.200
little propping up with llms that turn
00:18:30.240
out the needed you know HTML and so on
00:18:33.200
if you're not very much into that part
00:18:35.640
of coding we can actually build things
00:18:38.480
in an afternoon again and those things
00:18:40.200
are usable and you know toas this is
00:18:44.440
thas actually from this year thas gave a
00:18:47.520
very good talk uh that again it's called
00:18:51.880
sqlite it's not a toy anymore and you
00:18:54.440
can watch it uh the meme SQL the series
00:18:58.559
that Bas not always have been uh it is
00:19:02.400
very interesting time to live in and I'm
00:19:06.000
super happy for sqli being there so how
00:19:10.280
did we get here like how can we uh get
00:19:14.440
all of the advantages of all of those
00:19:17.559
tools that are being suddenly very
00:19:20.360
quickly developed like sqli I did have
00:19:22.760
from my point of view a bit of a l like
00:19:24.760
it didn't really matter how many
00:19:26.159
versions behind you are now you know the
00:19:29.159
tooling around it and the base tools
00:19:33.840
underneath it's there are clear
00:19:35.919
advantages to keeping they upgraded so
00:19:38.520
you get new features and if you remember
00:19:41.360
rails upgrades from you know three or
00:19:44.880
rails 4 era they always or even five or
00:19:48.159
six they always take took ages but they
00:19:50.600
were worth it speed like Ruby gets
00:19:54.880
faster every Christmas like every new
00:19:57.440
Ruby release is significantly faster
00:20:00.520
than the previous one um my wonderful
00:20:04.440
colleagues at uh Shopify are working on
00:20:08.080
wet this is giving currently a lot of
00:20:11.720
boosts in every Ruby release it's worth
00:20:15.679
upgrading your Ruby
00:20:17.799
version but it also sometimes mean you
00:20:20.679
have to upgrade other things because new
00:20:22.440
versions of X usually work with the
00:20:25.360
newest versions of y and backwards
00:20:30.600
compatibilities hopefully work but you
00:20:33.799
know eventually we run into this uh
00:20:36.720
circle of hell where you know like I
00:20:39.360
really want to upgrade this because
00:20:41.559
there's a new feature but then I have to
00:20:43.880
upgrade that other thing and that
00:20:45.840
triggers a chain of upgrades
00:20:48.159
so Is it feasible right now to keep
00:20:51.679
things actually upgrading like upgrading
00:20:54.760
is a pain nobody like nobody pays us for
00:20:58.280
upgrading grading I've been contractor
00:21:00.799
in a lot of projects where you know
00:21:02.960
we've been running a very old Ruby
00:21:05.360
version with a very old rails version
00:21:08.440
very late like years un main like
00:21:12.120
without support very very bad situation
00:21:15.840
so the good thing this is also got much
00:21:18.679
simpler we use the pandabot or you can
00:21:22.000
use any tool like this and do continuous
00:21:24.720
deployment we run the biggest Ruby code
00:21:27.960
base
00:21:29.039
and we just deploy
00:21:31.720
continuously you know even sometimes 100
00:21:34.240
times a day or or more like we actually
00:21:36.760
built our own deploy pipeline because we
00:21:40.120
couldn't deploy everything like we we we
00:21:44.919
couldn't Deploy on every pool request
00:21:47.880
merge because they were coming too fast
00:21:50.960
so you can do that with GitHub actions
00:21:53.799
you know you can do it fairly easily you
00:21:57.600
can use kind of redeploy you're probably
00:21:59.279
not there I congratulate you if you're
00:22:01.600
on the we need kind of redeploys phase
00:22:04.159
because it means you've already won
00:22:07.320
but you can you can deploy to a subset
00:22:10.600
of uh your servers and have a subset of
00:22:13.919
clients you know experience any any
00:22:17.080
problems and you mostly don't experience
00:22:19.640
them and because you have most things on
00:22:22.799
the newest version you actually very
00:22:24.720
often experience fewer issues Shopify
00:22:29.039
monolith runs on Main we don't run on
00:22:32.120
the newest stable rail version we
00:22:33.760
actually run on Main I think we merge
00:22:36.600
every two weeks and then deploy to
00:22:39.200
canaries see whether everything seems to
00:22:42.480
be working and if not we keep fixing
00:22:45.200
it and we have a policy that we upgrade
00:22:49.080
all of our Ruby code bases because we
00:22:50.760
actually have quite a lot of
00:22:51.720
repositories other than the monolith on
00:22:53.720
April 1st so like 3 months after the
00:22:56.120
Christmas release and rails is on on jly
00:22:59.440
1st whatever the new stable version is
00:23:01.360
you're supposed to upgrade by then and
00:23:04.480
this is doable even in huge projects
00:23:07.320
like I know if you're Contracting your
00:23:09.880
clients are not very fond of hearing you
00:23:12.279
need to upgrade things but there are
00:23:15.799
huge benefits to this and we also built
00:23:19.360
our own tooling to actually run on Rails
00:23:22.919
main called solid
00:23:24.600
track so there are solutions there are
00:23:27.799
no solutions that only trade-offs like
00:23:29.840
be aware what the tradeoffs are like
00:23:32.480
it's wonderful to have a full stack
00:23:34.440
development experience where we build
00:23:36.159
everything on the back end sprinkle it
00:23:38.120
with a little bit of JavaScript and it
00:23:39.960
mostly Works my point is it actually is
00:23:42.960
very often more reliable than whatever
00:23:45.360
the disconnected front end stack
00:23:48.279
optimistically shows to the user while
00:23:50.400
trying to kind of cross its finger and
00:23:53.240
make the uh underlying API request work
00:23:57.960
but you know
00:23:59.080
do you remember what this website
00:24:01.799
was Craig yes I I realized I didn't cut
00:24:06.039
all of the references but do you feel
00:24:09.240
like how old is the screenshot in
00:24:13.520
yours yeah it's it's yesterday the
00:24:15.600
calendar is right there like Tuesday um
00:24:18.200
so you know like this website is a top
00:24:21.760
us 100 website it's written in Pearl
00:24:24.080
it's been chugging on nicely like
00:24:25.840
obviously this is a very biased example
00:24:29.679
but if you're building something for
00:24:31.840
yourself or you know I don't know your
00:24:35.799
homeowners association whatever people
00:24:38.240
in our age bracket do right now and I
00:24:40.760
try to make myself younger unnecessarily
00:24:43.640
but uh you know I don't know your kids
00:24:46.159
go to various units of taking care of
00:24:50.120
them during work hours and those
00:24:53.039
communities need simple tools like we
00:24:55.240
can again build them quickly with our
00:24:59.799
Ruby tooling right now and you know this
00:25:03.559
is again a bookmark it's pinboard it's a
00:25:07.120
bookmarks website that also was written
00:25:09.760
in Pearl I mean it works obviously again
00:25:13.279
a biased example but not everything
00:25:17.360
needs to be extremely front and driven
00:25:21.200
extremely uh you know two stack build so
00:25:26.679
um simplify simp simplify simplify is a
00:25:30.279
quote from Henry Henry David thorough
00:25:35.120
and
00:25:36.399
uh hopeless with pronunciations but the
00:25:39.440
this is what is in Apple's I think at
00:25:43.440
headquarters where Steve Jobs just cross
00:25:45.480
the first two simplifies right we can
00:25:48.039
make things simpler and enjoy them just
00:25:51.399
remember about the tradeoffs the keep it
00:25:55.039
simple stupid principle is a very good
00:25:57.480
principle it's actually I learned that
00:26:00.320
uh it was first kind of coded by the US
00:26:04.039
Navy in 1960s US Navy was also why
00:26:07.520
sqlite was built because they needed a
00:26:09.919
database for ships that was super
00:26:13.320
reliable and not necessarily online
00:26:16.039
please do appreciate Simplicity get more
00:26:18.200
done with few moving Parts this is
00:26:20.159
doable check out light stack if you have
00:26:22.559
a free afternoon and if you're into this
00:26:25.720
kind of things but you know it's amazing
00:26:28.480
how much we can do with a simple
00:26:30.679
database uh we're maintaining lib SQL
00:26:33.640
which is a version of sqli that has some
00:26:37.960
interesting things like C SQL Server we
00:26:40.799
can actually expose sqlite on the
00:26:43.440
network if we really want or need to it
00:26:46.399
doesn't have to be a local file system
00:26:49.200
database um be aware and be vocal about
00:26:53.000
the tradeoffs like there are no silver
00:26:55.919
bullets if you are proposing
00:26:59.720
rewriting a small part or building
00:27:01.440
something new with this new stack that
00:27:04.880
we have be very very clear with whomever
00:27:07.240
you're building it for there are
00:27:09.399
trade-offs but they are very often worth
00:27:12.559
it
00:27:14.159
so this is a tweet from Javier who spoke
00:27:18.240
like open the conference and this is
00:27:20.640
exactly from 2019 shout out to byut who
00:27:23.480
spoke just before me in the last weeks
00:27:25.399
he has focused on adapting Shopify to
00:27:27.399
side work which they have in production
00:27:29.679
providing extraordinary feedback about
00:27:31.360
performance relevant to applications in
00:27:32.919
their scale thanks to his work the gem
00:27:35.200
is better today for everyone as shaveer
00:27:38.159
mentioned this is four months before
00:27:40.919
rails 6.0 got released like Shopify is
00:27:45.120
investing heavily in tooling because it
00:27:48.159
pays off and it's been like this since
00:27:51.240
forever so you know those are not pipe
00:27:54.919
dreams of oh it's cute but you know my
00:27:57.799
my cents will never allow that like we
00:27:59.720
we have no real world use cases for
00:28:02.679
those things like yes we can we can run
00:28:05.080
in production software that is not yet
00:28:09.720
fully stable if we know the trade-offs
00:28:12.200
and we have you know the the scale to
00:28:15.559
catch issues um I've been bringing at TH
00:28:19.559
much times and again because he's um
00:28:22.640
having a birthday today like
00:28:24.559
statistically probably not only him but
00:28:27.120
welcome to the other side
00:28:29.559
like you're a 40-year-old now and it's
00:28:33.559
only get better only gets better really
00:28:36.240
thanks so much I will put up the slides
00:28:39.080
up there