Read the transcript
Jeroen: Hi and welcome to
another special Do Iris episode
of my podcast. I'm sitting here
with Drew McCormick. He's one of
the people behind Agenda Dotcom,
a note taking app that has been
an Apple Design Award winner.
But that's not the only project
that he's working on, and we'll
probably dive into that a little
bit as well in our conversation.
Drew, first of all, welcome for
being on the podcast. How are
you doing today?
Drew: I'm doing fine. And thanks
for having me. Just back from
the summer holidays here in
Europe. So all fresh to go.
Ready to go?
Jeroen: So already in the thick
of things or is it still
catching up, what you're doing?
Drew: Yeah, it's still still
catching up a bit. We get a lot
of back support and things like
that, so haven't really got
completely back into it, but
it's getting
Jeroen: So
Drew: the
Jeroen: so is that mostly
support on existing products
that you're getting yourself
through, or is it also other
kinds of work that you need to
catch up on?
Drew: Yeah, it's, it's a mix.
There's agenda is always got a
lot of support just general
support for, for, for the
customers. But of course you've
got WWC a few months ago and
we've got the releases coming up
probably a week or two away and
that means we have to get the
widgets working
Jeroen: Mm hmm.
Drew: the
Jeroen: People
Drew: stuff
Jeroen: want widgets.
Drew: from WWE. See, basically,
yeah, the
Jeroen: Yeah.
Drew: new stuff from WWC. So
Jeroen: So you already mentioned
agenda back there. Can you, like,
give a quick recap of what
agenda is probably a lot of
people will know about because
of the interesting business
model behind it. But what is
agenda?
Drew: Agenda is a no taking up.
Like you said, the main
difference with agenda is that
it has a very strong focus on,
on dates. So it's it's really a
little bit like one of those old
agenda books that people would
have, which would basically have
one page per day and you
Jeroen: Hmm.
Drew: would take, take notes and
appoint, you know, notes about
appointments that you've got
that day, that sort of thing. So
we thought we've sort of made a
digital version of that. So you
can take notes, you can connect
notes to calendar events to
reminders. The notes appear in a
in a sort of a timeline in order.
So there's a chronological
aspect to the whole app. So it
works really well for things
like meetings for for, for your
work in general. I use it for
programming, so I take all my,
you know, making tasks lists for
projects.
So yeah, it's really it's quite
flexible really, but it's got
this whole chronological idea
that, you know, you've got
projects that move forward
through time and you keep this
list of notes.
Jeroen: Yeah. And I do know
Agenda has like the most insane
domain name attached to it as
well. Agenda Dot. That's that's
quite a feat having getting your
hands on one of those domains I
guess. So agenda is like
probably a big part of your day
to day right.
Drew: Yeah, yeah, absolutely.
That's the main focus. Yeah.
Jeroen: But as you already
mentioned there, it' not the
only thing that you do right?
Drew: You know, I've always had
a, you know, a diverse interest
in various things and, and I've
got some projects that have sort
of carried over from the past
ones. A flashcard app app called
Studies, another which we'll
probably talk about a bit more
today is called Ensembles.
That's a core data sync
framework that's
Jeroen: Mm
Drew: actually
Jeroen: hmm.
Drew: for developers. And just
recently I introduced something
else called Glisten, which is a
it's a podcast app for language
learners.
Jeroen: Okay. So so
Drew: Yeah,
Jeroen: what's different about
listen then, because it's
podcast app for language
learners, that's okay. Help me
out
Drew: very
Jeroen: here.
Drew: specific. Very specific.
Yes, of course. It looks a
little bit like a normal podcast
app. The difference is, of
course, as a language learner,
you're not you're not completely
capable of of understanding
everything that's being said.
And so what it will do is it
will extract the transcript
using the speech framework,
just like dictation does, and
then it will then it can
playback each sentence several
times and slow down sentences
and putting pauses all to make
it much easier to understand for
for someone who doesn't speak
the language. So it's a great
way to get great content because
podcasts are generally got great
content, but it's difficult to
understand when you're learning
because it's a native speakers
often speaking quite fast. And
so what Glisten does is it
repeats each sentence, slows
down sentences and makes it a
lot more digestible for for
someone learning.
Jeroen: All right. So it is is
it like a thing that you do
picked up and that you created
because you had, like,your own
interest in that area or what's
the deal there?
Drew: Yeah, it's a it's really a
I'll be projected that up that
I've just put on the market. But
it's, it's for myself. I made it
for myself and I'm developing
the features that I develop are
mostly things that I want. So.
So yeah, I'm learning. I mean, I
speak Dutch because I live in
Holland, but I've started to
learn. The last few years I've
been learning Spanish
Jeroen: Mm hmm.
Drew: as a hobby and one of the
things I noticed was that there
is an enormous amount of, of
things you can listen to as a
learner. It's usually, if you
watch, say, Netflix, it's it's
too difficult. You can turn on
the subtitles, but it's not
quite the same when you're when
you're reading as it is
listening.
Jeroen: Yeah.
Drew: So I wanted something
which would make it easier for
me to listen to things by native
speakers. Yeah,
Jeroen: But just thinking back
on the list of projects that you
have worked on and that you're
working on, it does sound like
that everything you create is
something
Drew: yeah,
Jeroen: that you also use
yourself. Is that correct?
Drew: yeah. That's absolutely
correct. Yeah, yeah, yeah. It's
I think you know that the old
term dog feeding, which we have
in our, you know, in the
developer community I think is
perfect for that today. I like
to dog food, everything and
that's true of agenda. I use it
every day for all my planning,
for all my development. So I
develop agenda with agenda,
which is nice and circular, but
all of my apps. Yeah, even my
flashcards app that I still
develop a bit. That's that
originally came about because I
wanted to learn to learn words
and things like that. When I was
learning Dutch. I think that was
a long time ago and
Jeroen: So
Drew: yeah,
Jeroen: speaking of history, how
long have you been living in the
Netherlands, and where are you
from originally?
Drew: you might hear from my
accent that I'm from Australia,
but I've been living in the
Netherlands for now 20, 25 years.
Long time, long time.
Jeroen: So.
Drew: No
Jeroen: But
Drew: excuse, no excuse for not
speaking. Dutch.
Jeroen: so what was the reason
for you to to basically migrate
from Australia to the
Netherlands? Because that's,
first of all, a bit of a climate
difference, I would guess a lot
less sunshine here. And so there
must be reasons that you that
you made that move right?
Drew: Yeah. And the main reason
is that my wife is Dutch. So we
met overseas
Jeroen: Yeah.
Drew: and
after a few years of a long
distance relationship, I moved
to the Netherlands
Jeroen: Yeah.
Drew: at the same time. At that
time I was also in the
scientific community, so I just.
I just finished doing a PhD. And
after that you usually go into a
postdoc and most people do that
overseas. So
Jeroen: Yeah.
Drew: this this was a nice
coincidence and I was able to go
to Leiden in the Netherlands and
do a postdoc there and later on
the food
Jeroen: Yeah.
Drew: in Amsterdam.
Jeroen: And then
Drew: So
Jeroen: you stuck
Drew: yeah,
Jeroen: around
Drew: yeah, yeah, yeah,
Jeroen: which, which
Drew: yeah,
Jeroen: is understandable
because even at a postdoc, it's
not something you do in just two
years or something. It takes a
lot of time and effort. And then
you do build a life where you're
actually doing your studies and
your your postdoc.
Drew: yeah.
Jeroen: But the agenda app, we
quickly mentioned that it has an
interesting business model. I
don't want to like like go deep,
depend on that one. But can you
give a quick recap on that? And
because I know you wrote an
interesting and quite long blog
post about that already, I think
over two years ago, maybe even
longer, that describes this
model because it's a little bit
different to to your standard
subscription app model that a
lot of people are using nowadays.
Right?
Drew: Yeah, that's right. So
when we were first developing
agenda before it was on the
market, we talked a lot about
sales models and what we didn't,
didn't like about subscriptions
was that most apps have a what,
what I would call a rental model
of subscription where you, as
long as you keep paying, you
have the features and you can
use the app. As soon as you stop
paying the app becomes pretty
useless. You can't. You kind of
lose your data. You don't
literally lose your data, of
course, but you can't do
anything with it. So so we
didn't particularly like that.
What we thought what we wanted
to do was to have a model of a
similar model to subscription
where you would get recurring
income. So that was we need that,
of course, but people would feel
like they had ownership of of
what they paid for. And so the
way it works is when you pay,
you get a year and everything
that's all about pro features
that are released before that
year and also during that year,
you get to keep forever, right?
So you unlock them forever, even
if you stop paying after a year,
that's that's fine. And then in
the future there might be new
pro features which you don't get.
And of course you can always pay
a gain to
Jeroen: Yeah.
Drew: get those. So this is the
idea that you've got some
ownership of what you actually
paid for. You never lose
anything with our model.
Jeroen: Okay. So it is sort of,
again, something that is date
bound, right? Like the app
itself, It's you basically
Drew: Yeah,
Jeroen: put put a stake in the
ground which attaches to a date
and everything that is before
that. At that point in time, you
get and everything that is after
this point in time, you don't
get. But of course, when you
sign up for a paid tier with an
agenda, that's that specific
date that is selected for you is
sometime in the future based on
the amount of money that you
actually transfer to at that
point.
But just for context, how big is
the company behind agenda?
Because I think it's like only a
few people right?
Drew: yeah. It's not a big
company. It's this the two of us.
Most of the time we have, um, we
have a few developers that we've,
we've bought in occasionally to
do, you know, a bit of, I guess,
subcontracting
In the beginning we had a great
designer and that helped us win
that design award. You mentioned,
unfortunately, he was a bit too
good because Apple poached him
so, so he's now at Apple. But so
yeah, you will see some things
coming up with
Jeroen: And
Drew: from him but they won't be
agenda.
Jeroen: yeah, yeah. So, so so
grabbing back to this whole
design and what thing what's the
what's the what's it like?
What's the process then. Is it
like out of the blue you get an
email and that it's like, hey,
is this, is this for real? Is
somebody trying to fetch me? It'
like, is this apple actually
sending me a message? What's the
process there? To the extent
that you can actually divulge
yet.
Drew: Yeah I think I think you
have to I think with that that
sort of thing you have to be
active a bit, you have to
network and you have to, you
have to be in contact with
people at Apple and try to just
get the app noticed because
something like the Apple Design
Awards, as far as I understand
it, it's something that they
that you can nominate from
inside of Apple. And I think
anyone can nominate an app and
then they'll look at the apps
that have been nominated and say,
Oh yeah, this is and you can.
Yeah. So basically, if you've
got a good contact at Apple in
the developer relations or
something and they like your app,
then they then they will they
will push it for you to some
extent.
Jeroen: Yeah.
Drew: So I think we had a bit of
that So it wasn't completely out
of the blue but it's always a
it's always a nice surprise that
that, that, you know, that
networking pays off
Jeroen: But is it also true that
at some point your end, if you
find out of Apple and they give
you some feedback? Yeah. It's
you're a candidate for being on
the list for a design award, but
could you maybe please take care
of these and these issues or
items within your app?
Drew: and
Jeroen: Uh, just, uh, just for
their, for their specific
reasons, which are always bit
fake, of course. Or is it like
that they don't give you any
feedback at all on your product.
Drew: my experience with Apple
is that they don't give any
feedback at all, at least, which
is extremely frustrating because
they could they can say, yeah,
it's a pretty good app, but what
if you just fix this up? And
that would be that would help so
much. But
Jeroen: Yeah.
Drew: they in my experience they
don't do that they that there's
some policy I think where
Jeroen: Yeah,
Drew: you simply never tell and
I actually I was lucky enough to
meet Tim Cook a few years ago
when he was in Amsterdam and I
had a meeting with him with a
few other developers. And he
also was was kind of the same.
He would sort of, you know, he
knew stuff about he must have
known stuff about all of the
developers there, but it was
sort of nudge, nudge, wink, wink.
It was never, you know, you
should do this, you should do
that,
Jeroen: yeah,
Drew: which is frustrating
because otherwise you're
guessing a lot of the time.
Jeroen: yeah.
Drew: But it's
Jeroen: They
Drew: a
Jeroen: probably have to be very
careful about all kinds of
liabilities and stuff,
Drew: right,
Jeroen: but
Drew: right,
Jeroen: yeah,
Drew: exactly.
Jeroen: so but then at some
point you get a message that
you're, uh, an Apple Design
Award candidate, that at some
point this gets converted into
being a winner. And is that then
when the whole process starts
that Apple suggests that you
come over to a WDC? And it's my
understanding is they said, Yeah,
we got access for you, but you
need to take care of your plane
tickets.
Drew: Yeah, exactly, exactly.
That's exactly how it went.
Just like when I met Tim Cook
and it was exactly the same.
They never say directly, you're
going to meet Tim Cook. They
they say you might we might be
able to arrange a meeting. You
know what I mean? It's it's
always hedged. And the same was
with the it was exactly the same
with the the designer award. It
was you know, you're in the top
few.
Jeroen: Yeah,
Drew: It
Jeroen: it's
Drew: would be a good idea if
you came over. Okay.
Jeroen: yeah,
Drew: Well, five grand later was
you paid for your hotel and your
airfare from
Jeroen: yeah
Drew: Europe. It's not cheap.
Jeroen: I know.
Drew: Oh, yeah.
Jeroen: I went to WW to see and
that was all the way back in
2013
Drew: Yeah,
Jeroen: and even then it was
already prohibitively expensive
to,
Drew: yeah.
Jeroen: to be able to go there.
You really needed to have like a
company or an employer that was
willing to to back you up on
that. Uh,
Drew: Right.
Jeroen: fortunately you had a
agenda as a company
Drew: Yeah,
Jeroen: then, so yeah, but it's
still people,
Drew: yeah.
Jeroen: so it's
Drew: Well, it comes
Jeroen: still.
Drew: straight out of our
profits, of course.
Jeroen: Exactly.
Drew: Yeah,
Jeroen: That's, that's a big
chunk of change that you then
don't have to spend on other
things anymore.
Drew: right.
Jeroen: Convenient luxury to be
able to not get. Not be able to
spend money anymore. Well, but
then, uh, you're in. I think it
was Cupertino back then. Or was
it still San Francisco
Drew: I'm
Jeroen: that you. I don't
remember how many years ago it
was.
Drew: try to remember, it was
2018. I think it was. Oh it was
already San Jose, I
Jeroen: Yeah.
Drew: think.
Jeroen: San Jose. Yeah, that's
the way they are.
Drew: I think. Yeah. Yeah.
Jeroen: So. But you're
Drew: But.
Jeroen: there in the US, you
have the information that there
is a likelihood of you being a
design award winner. When do you
actually find out that you're
going to be pulled onstage and
get one of these cubes shoved in
your hands?
Drew: I think when they
announced the winner I think, I
don't think we would exclude it.
I mean we kind of knew, we kind
of figured we would win,
otherwise they wouldn't ask us
to come all the way out. But I
don't think they told us from my
my recollection was just that we
had to be there
Jeroen: Yeah.
Drew: and that we might win.
Jeroen: Yeah. And then
Drew: And
Jeroen: the.
Drew: then they say, are you are
you willing?
Jeroen: So but that's that's
literally in the keynotes that's,
uh,
Drew: Yeah,
Jeroen: they announced their
Apple Design Award winners and
then they, they
Drew: right.
Jeroen: have to the ceremony.
That's a separate event. And by
then you've probably been
contacted by some PR person to
like make arrangements with you.
So like be at
Drew: They just they have they
don't have anything in the
keynote. They don't announcing
Jeroen: now.
Drew: the cards. It's it's in
the Apple Design Awards ceremony.
Like
Jeroen: Yeah.
Drew: you say, it's it's kind of
a little bit like the Oscars, a
mini Oscars or something like
that, you know. So.
So there's a little bit of
Jeroen: And
Drew: a show, at least it was
back then. And we didn't know,
as far as I remember, exactly
Jeroen: so I.
Drew: what would happen.
Jeroen: So you were in the
audience and I was like, okay,
we won. Now what do we do?
Drew: Well, yeah, I mean, it was
obvious from the other
candidates that we had to go up
on the stage and
Jeroen: Yeah.
Drew: and
Jeroen: Does help that you're
not the first being announced.
That, of
Drew: yeah,
Jeroen: course. All right.
Drew: yeah,
Jeroen: But that was like a
really fun experience, of course.
And I think from what I could
can tell is agenda as a product
is it's doing quite well over
the years. Um, so, so how big of
a user base, uh, ballpark does
agenda have right now? Is that
something you are aware of or
not?
Drew: it's not something we
track really closely, but I mean,
we have thousands of active
users per day. I didn't even
know what that means, to be
honest. I'm not enough into the
app world to know what's
Jeroen: Yeah.
Drew: good and what's bad. I do
know how much money comes in. Of
course I have to know that. But
Jeroen: Yeah,
Drew: we're not a huge we're not
a huge app. Otherwise we would
have more than two people
Jeroen: of course. Um, but
another thing that you, uh, work
on is ensembles, and that's
probably the biggest reason why
you are a speaker at, uh, at the
I, And that's not because of the
product itself, but because of
the experience that this product
is based on, which is a lot of
experience and exposure to core
data. Um, and I expect that at
some point you need to get
ensembles and all the other
products that you're working on,
get those products ready for
Swift data, which is kind of a
change. I was told by people who
actually investigated those
frameworks a little bit, but a
change, yes, but
Drew: or.
Jeroen: a lot of things are
staying the same. So so can you
like give a quick overview of of
what Swift data is in comparison
to core data?
Drew: Sure. To be honest, yeah,
I'm quite new to it myself. I
mean, it's only a few months old
and I don't I haven't started
moving any products over, so
it's a little bit from what I've
just at the moment, it's from
what I've just seen on Mastodon
and things like that. And I'm
going to before that, before I
give the talk, I am going to
deep dive. So don't worry about
that. I'll, I'll find out what's
really in there.
I think this is a what you say
is correct. I think what they've
done and what I, I think he
found me actually from an
article I wrote several years
ago where I predicted what they
would do. And I predicted that
they would put in a swift UI
type of interface on top of core
data. And that's pretty much
what they they did do. And as
far as I can tell, and the two
are, I think, somewhat
compatible, you can, you can
migrate from one to the other. I
think the main difference
between them is that with core
data you had a sort of a
graphical scheme builder, the
graph, the core data modeler, I
think it was called Always cool,
where you would lay out the
entities, the relationships, the
properties and I think swift
data works basically underneath.
It's working the same. It's
built on top of school lights
and cloud kit for full sync. But
until you don't use this this
graphical editor any more, you
simply writes swift code. You
write swift types classes and
they they have used the new
macro system to to basically
build up this this internal
model of entities and
relationships. I think
underneath it's all the same
probably if I look if I dig down
I'm sure I'm going to find
somewhere in this managed object
or something very similar.
Jeroen: And the persistent store
coordinator somewhere?
Drew: Exactly. I'm sure it's all
there, probably not very deep
either, because I've just got
this macro stuff. So in theory,
that's, that's the stuff which
allows you to, you to just
convert from one to the other
effectively. I think I think
doing it before now would have
been very difficult to, to make
it nice. But the macro, the
macros in SWIFT are very
powerful it looks like. So
they're able to be very
expressive. And so now you can
very easily just make a class.
The macro can determine what
properties there are, what
relationships you have to use
some some annotations if you've
got a, for example, a
relationship,
you might need to tell it how,
what, what should happen if, if
the object is deleted, that sort
of thing. Deletion rules. And so
you annotate, annotate the code
rather than edit the, the core
data modeler.
Jeroen: And would you say that
looking at, uh, the syntax that
is being used with these macros
and on these swift classes on
its trucks, Actually, I think.
Is it like, uh, do you, do you
guess that it's like, built up
in such a way that it is
something that will get a visual
editor eventually? Or do you
think it will stay mostly in
code? Uh, as it is right now?
Drew: I don't think there will
be a visual editor. What I'm
while I, I think the trend is
definitely to doing everything
in code.If you look at swift UI.
Jeroen: Yeah,
Drew: I
Jeroen: definitely.
Drew: think that people like
that it's it's nice that you can
check things easily into your
source management. You can diff
source code much more easily
than than a XML file for example.
So I think that's that's the
trend that we're seeing and I
don't think that's going to
change. We do of course in SWIFT
you I have a preview which is
useful for for you. I don't know
if it's that useful for or for
data, but maybe at some time we
will have also some sort of auto
generated preview of just to
show you the relationships in a
visual way that might be useful,
I guess because because code is,
you know, trying to see the full
the full model just from some
source code is a little bit
tricky at times.
Jeroen: Yeah.
Drew: It'd be nice to get a map
if you like.
Jeroen: Yeah. That you have a
visual guide to to really see
how things tie together. And
also,
Drew: Exactly.
Jeroen: you know
Drew: Yeah,
Jeroen: what? Some errors
between. It's indicating what's
a cascading rule. Sorry, that's
the deletion rules. You
mentioned.
Drew: right,
Jeroen: So
Drew: exactly.
Jeroen: and how deep of an
understanding of the macro
system as a, as a language
feature, you do need to have to
be able to be effective with
swift data. You guess?
Drew: I haven't dug into it
enough, but I suspect not very,
very much. The idea of macros,
of course, is to to hide a lot
of complexity. And
Jeroen: Yeah.
Drew: it's nice that you can,
you can sort of say debug, but
you open up the macro
effectively and say, you know,
show me what's inside.
That's very useful, I think, to
understanding how it works. But
that's really a I think a pro
feature. I think someone who's
just starting out with Swift
data and wants to make an app,
you know, you don't need to I
don't think you need to
understand all the intricacies
of macros. It's you can just
think of it as, as a as an
adaptation of a property, you
know, and this is a relationship
and this is a property. And you
said that there were structs. I
have I think there's still
classes.
Jeroen: Oh, okay.
Drew: I was actually kind of
disappointed. I thought I
thought they would allow little
abstracts and I think there's
probably reasons why they don't
related to, you know, how you
relate them back to this this
managed object context, which is
a single object. So as far as I
know, there still are still
classes. Maybe that will though
allow you to use structs in
future? I don't know. Yeah,
Jeroen: Yeah. I haven't looked
into core data and data I have a
lot of experience with, but
swift data are not that much yet,
because just I don't have the
time yet. Because every year
they release so many new
features to just the language
itself. And then you have to get
acquainted with all the new APIs.
Drew: right,
Jeroen: So your talk, uh, of
course, we're still two months
out of the conference, but uh,
what is your general direction
Drew: Right.
Jeroen: of your talk right now?
What are your, what are you
planning on, on helping people
with if they, uh, are visiting
your talk?
Drew: Yeah, I would I think I'll
I'll plan to do is try to give
not just give us sort of an
intro to Swift data because I
think I think you can get that
out of the WWC videos and there
is also I think is is a Donnie
Walsh that's going to do a I
know it might have been Daniel
was it someone's going to do a
workshop
Jeroen: Yeah.
Drew: on that. So if you really
want to know the details, I
think you're probably best to go
to the workshop. I will keep it
kind of high level, I guess, and
I will talk about what we've
been talking about a little bit
here where, you know, what's the
relationship to core data?
Oh, of course, show a little bit
of of how you how you actually
write swift data. But it'll be
kind of high level. It'll be,
you know, just here's an example
of of a few different things
I'll try to touch on things like
migration from core data, also
migration from one version to
the next, just just how these
things are handled and give
people a reasonable idea. And of
course I'll try to talk about
gotchas and things like that,
things that Apple will never
talk about. Right. You know, is
this is it actually ready for
prime time, that sort of that
sort of thing, which Apple's
never going to say? Of course,
they never going to say, yes,
this is this is not really for.
So those those are the sort of
things you can get, I think from
a conference talk where you
can't which you can't get from a
WWE DC video,
Jeroen: Yeah.
Drew: you know, basic general
advice to what do I think of it
as someone who's used core data
for so long and have actually
written a ST framework with core
data, which means you have to
dig quite deep already. Is this?
Yeah. Is it a good framework? Is
it the ultimate framework in the
sense that is, is that is it
going to be like combine, Is
there going to be like, you know,
they introduce combine and then
they select it within two years
or something with a different
approach with async await. So is
this just a temporary framework
or is this really their final
station?
Jeroen: Yeah.
Drew: They sort of questions and
I don't know some of those
answers yet, but I'm going to
know by the time by the time I
get there, I think
Jeroen: Yeah. If people are
attending the conference, they
really want to dive deep on our
Swift that they definitely
should check out Daniel
Steinberg's workshop on November
7th. The day before the
conference, because he's really
planning on, uh, you know, just
giving an overview of what Swift
Data is, how you attach to if
you then explore what state and
binding does for you, how
observable objects and published
properties should tie into this,
and then also how you can add
asynchronously to this whole
process. So that stuff coming in
from the network that it's
actually not freezing your UI,
updating your data storage and
then being reflected on the on
the screen. And uh, yeah, by the
end of a day with Daniel, you
will be,
I guess you will be tired. But
you know a lot more about swift
data, so people interested in
swift data, check out through,
um, talk at the conference
itself, but also make sure that
you consider going to Daniel's
workshop because that's a full
eight hour long session that
you'll get with, uh, well, is
there something he's not an
expert on? I'd say,
Drew: he's is a very smart guy,
Daniel.
Jeroen: and
Drew: He's a
Jeroen: also an excellent
teacher because, uh,
Drew: writer.
Jeroen: yeah, he is. He has a
lot of background in actual
teaching of complex, uh,
material. He's from. He's
originally a maths teacher. Even
Drew: Yeah,
Jeroen: so,
Drew: exactly.
Jeroen: um, so. But
Drew: Yeah, I,
Jeroen: go ahead.
Drew: I was just going to say I
followed some of his courses in
Paris a few years ago,
Jeroen: Yeah.
Drew: combined, and and switched
swift UI, and they were very
good. He's he's an excellent
teacher.
Jeroen: Yeah. So, um, that
concludes the planning of a
workshop for a conference which
people should attend. But so
back to you. Um, so we talked a
little bit about the, the, the
conference talk that you're
planning on giving a little bit
of your background on, on what
products that you're working on.
Um, so Ensembles uses core data
because it's like a
synchronization and persistence
layer on top of core data, if
I'm correct. But does agenda
also use a lot of core data or
is there a different persistence
mechanism being used?
Drew: We actually built
something custom there. There
was, there was certain things
that we wanted to do which
didn't fit that well with the
approach that this ensemble uses,
which is just to sync up the
stores. But of course I have a
lot of experience with ensemble,
so I know the sort of the corner
cases and so we need to actually
build something custom. It's not,
it's not really we do use
coordinated but more as a sort
of a database type approach.
It's
Jeroen: Yeah.
Drew: not not the way it's
supposed to be used. I guess
it's kind of a cheap way to get
SQLite working.
Jeroen: Yeah. So
Drew: It's
Jeroen: it's it's a local
storage mechanism that you do
not sync directly with the cloud.
Get this thinking you do
yourself, uh,
Drew: right,
Jeroen: in a different way,
because
Drew: Exactly.
Jeroen: I've heard very diverse
experiences of people using
cloud get thinking and how
successful they've been with
thinking up a core data store.
So, uh, it's always a bit of, uh,
yeah, I would hope that Apple
with Swift data finally tackles
these, uh, these lingering
issues with, uh, with, with,
with persistent store, uh,
synchronization because,
Drew: Yeah.
Jeroen: yeah,
Drew: They've
Jeroen: it's,
Drew: got a terrible history of
it. Really. I,
Jeroen: yeah,
Drew: i the reason I developed
ensembles in the first place was
simply out of frustration with
the core data thing at that time.
Jeroen: yeah,
Drew: And if you think that the
cloud kit sync is bad, you
should have tried the core data
sync in in 2000 and what was it,
12 or whatever?
Jeroen: yeah. That was, that
Drew: Terrible.
Jeroen: was the general, the
general advice back then was do
not use, it was
Drew: Yeah,
Jeroen: like
Drew: that was
Jeroen: the core
Drew: that
Jeroen: data
Drew: was
Jeroen: is
Drew: easy,
Jeroen: fine but sync on your
own. Don't, don't use what Apple
provides
Drew: right?
Jeroen: because it might work in
your, in your development
environment, but in production
you will run into issues and
Drew: Yeah,
Jeroen: uh.
Drew: exactly.
Jeroen: Yeah it's and that that
that's
Drew: Yeah.
Jeroen: that's that's a legacy
that that Apple is still dealing
with with their synchronization
frameworks because every time
Apple releases something new
that does some form of
synchronization, pretty much all
developers go like, well,
Drew: Yeah.
Jeroen: let's
Drew: Very
Jeroen: just see, let's just see
Drew: dubious.
Jeroen: how this works in
practice,
Drew: Yeah,
Jeroen: right?
Drew: right,
Jeroen: So,
Drew: exactly.
Jeroen: um, what are you
expecting from the, the
conference itself? Because
you're not only going to be
presenting there, you're also
going to be part of the
conference as an attendee for
the rest of the time. So what
are your expectations there?
Drew: Well, I think I, I think I
guess pretty much at least I was
there last year and I've been a
few years ago. I think Alex gave
a talk one year and I was there.
So I think I've been to two or
three
Jeroen: Yeah.
Drew: of them to do it. So I
always see conferences and so I
have a vague idea at least if
it's going to be the same. I
know what, I know what to expect,
but
Jeroen: Mm hmm.
Drew: yeah, so I really enjoyed
it last year. It's not too long.
It's at least it was to two days
last year I think.
Jeroen: Correct.
Drew: And the talks are really
the speakers are really good. So
yeah, I'm expecting, I'm
expecting good things. And you
know, I noticed it's a different
location this year in North
Jeroen: Yeah.
Drew: Amsterdam.
Jeroen: Yeah. We, we were in the
bakehouse despite her for the
first two editions. That's like
back in 2015. Uh,
Drew: You
Jeroen: and that was a really
Drew: know,
Jeroen: small space
comparatively, because that
could fit like close to 100
people. I think it was, uh, and
then the two editions after that
one that was those were run
makokha hats had know they were
done in the student hotel in the
old theatre. So that's on the,
Drew: Right,
Jeroen: on the, on the viable
strand And we had
120 seats and 120 seats was
already pushing it for that room.
And the biggest complaint that
we got was that uh, because it's
like wooden benches that, that
they're like
Drew: right.
Jeroen: people are like really
hurting at the end of the day
because of the sitting. So, uh,
we, and then that's, I did a
podcast episode on it, but then
the whole thing happened that
Coco had to know. And I, I'm a
part of co cats now that we
decided, okay, we need to take
the conference out of the, uh,
booking of the, of the
conference financially. So
that's when I picked up the
conference myself on my own. And
then we had to decide because I
still use a few people in
organizing, of course, uh, then
we had to decide, okay, do we
stay with the same venue or do
we pick another venue that's
maybe a little bit bigger? And
that's why we moved to the Nemo
Science Museum. It is that. Well,
there are not there's not a lot
of locations in Amsterdam that
are more central than that one,
I guess.
Drew: Yeah,
Jeroen: And it's within
Drew: right.
Jeroen: walking distance of the
train station itself. And it's
Drew: Yeah.
Jeroen: very easy to reach and
it has a room that allows for
201 individuals.
Drew: Well,
Jeroen: So we're making the
conference a little bit bigger.
And
Drew: yeah,
Jeroen: uh, the, the venue also
allows us to, to do all the
activities that we have
organized with the conference in
the same building. So people
who've had a conference day, the
first conference day, all the
lunches are like right outside
of the of after the presentation
space. At the end of the day,
we'll have like drinks and
Drew: well,
Jeroen: dinner after first day,
and that will be like at the
rooftop terrace, which is in a
glass box. So even if it's bad
weather, we have excellent space
available there. So
Drew: yeah.
Jeroen: we people just need to
walk up the stairs and they can
enjoy themselves and mingle and,
um, and then the workshop, uh,
the workshops, it's actually two
now we can also do that a day
before in like smaller meeting
rooms that they have available
in the museum as well. And yeah,
just that convenience having
everything in, in a single venue
and also uh, the staffing
support that's the museum is
able to provide essay
experienced um, meeting
conference, whatever venue was
really helpful there. The
cheapest spots to to actually go
to because if you look at the
ticket price it's €300
excluding Texas into some
charges.
It's it's like off those
€300. I'm already spending
like €168 just on your food
and drinks alone. And
Drew: So.
Jeroen: then and then I still
and then I still need to cover
the staff and and the location
and everything.
Drew: Oh
Jeroen: And
Drew: yeah.
Jeroen: it's actually if I would
not have sponsors. Thank you.
Revenue card. Thank you stream
thank you ABN Amro plugging them
as well
Drew: Yeah.
Jeroen: is that if I would have
sponsors I would not have been
able to execute the conference
because
Drew: Oh
Jeroen: it would just
Drew: well,
Jeroen: be like and that would
me that there would be no march
and then the risk would be just
too big.
Drew: yeah,
Jeroen: And I think I still need
to sell like a few more tickets.
And then, uh, based on the
ticket revenue alone, I can
cover the venue, the staff and
the, uh, catering. But then
there's a whole list of other
things that
Drew: yeah.
Jeroen: also needs to be taken
care of. So like certain
speakers, they, they travel a
little bit further, so they,
they, they get some, some
financial support which they're
able to airplane tickets. They
also need to be lodged somewhere
in a hotel. I have some people
helping out as staff that I gave
like a free ticket, free access,
but they help me out during the
day. But some of them are also
travelling quite far from the
Netherlands, so I need to put
them up somewhere as well. And
it's all these, these, these
small things that, well, if I've
got a spreadsheet and uh, it's,
it's that, that's, that's,
that's a good amount of money in
there and it's a lot of people
in the Netherlands, if that
would be their yearly gross
salary, the final number they
would, they would, they would
consider themselves
Drew: would be happy
Jeroen: financially well-off.
Drew: to.
Jeroen: But of course a lot of
money comes in and a lot of
money goes out. So there's
hardly
Drew: Yeah,
Jeroen: anything left at the
bottom line, which is fine
because
Drew: yeah,
Jeroen: I'm organising this
because I like doing it.
Drew: yeah.
Jeroen: But uh, yeah, that's,
that's a conscious choice that
we made and that we were able to
make because we had one sponsor
that signed up very early in the
organisation in organising and
we had a second sponsor that I
had a good enough relation with
that I would be able to trust
that they would actually sign up
as a sponsor like one and a half
month after I started. Uh,
getting financially committed to
the whole thing.
Drew: Right, right,
Jeroen: So. And I still have an
Drew: Yeah.
Jeroen: extra sponsor. Uh, well,
I'm waiting for the final
paperwork to pass through and
then the transaction, and then I
can announce them as well,
because they, uh, if this all
works out, then they're actually
paying for all the drinks after
the workshop and first
conference day. So
Drew: Oh that's it. Very
important.
Jeroen: it's also, it's also a
big ticket item for them to, to,
to be able to attach their name
to because they're
Drew: Yeah.
Jeroen: their revenue cat, They
really to sell the product in a
purchase
Drew: The
Jeroen: and everything stream
wants to get their products out
as well which is a chat and
video SDK and then
Drew: Yeah,
Jeroen: ABN they basically in
there to just get acquainted
with people and advocate for
themselves as an interesting
place to work. And
Drew: yeah.
Jeroen: then the fourth sponsor
is on the same level as, uh, as
ABN Amro. They just want to get
exposure to their brand and
advocate for themselves. That's
a great place for software
developers to work.
Drew: Right,
Jeroen: So
Drew: Yeah.
Jeroen: no, no, no, no. Real
conflicts between the sponsors
as well, which is good to have
because I haven't had it myself.
But I've heard stories of
conferences having sponsors that
were like behind
Drew: Sure.
Jeroen: the curtains. They were
basically rolling over the
carpet, fighting for people
Drew: Okay.
Jeroen: almost. So not something
you want to have
Drew: The
Jeroen: because we like a no
violence policy in our in our in
our conference space and some
other policies as well. Just,
you know, proper human, decent
behavior. If you do that, then
you're fine. If you if you do
all that stuff, then you'll get
to deal with me or one of my
teammates. So just
Drew: Yeah.
Jeroen: take care of the
situation. So, yeah, it's it's
the same as last year and last
time I should say, because it
was not last year, but it's the
same as, oh, this last year.Wow .
Okay,
Drew: I think
Jeroen: I'm
Drew: at this
Jeroen: confused.
Drew: time it was last year
Right.
Jeroen: Yeah, it is last
Drew: It
Jeroen: year because
Drew: was nice.
Jeroen: we had a few years in
between,
Drew: Yeah.
Jeroen: but it's. It's a little
bit bigger, uh, but not bigger
to the extent that I expect that
the intimacy of the conference
will be negatively affected by
it. Because the one biggest
piece of feedback that I got
from people who attended do I
was in previous years is that
they, uh, they really felt like,
yes, I was able to really
connect with people who were
also an attendee at a conference
and not just like go to talks,
get exhausted, and then having
to enjoy myself on my own in the
evening. It's like people were
able to mingle and interact
during the day. And then on the
first evening we have like
everything taken care of until
you had your dinner. And then
people can whatever they want.
And then on the next evening,
probably some people need to
travel, some people are staying
a night and then they can just
venture off with a smaller group
and have dinner or do whatever
and enjoy themselves and have
some extended conversations
after the the second conference
day and then just go home again
with a lot of new knowledge and
a lot of new people in their
network that they can rely on
sometime down the line in the
future.
Drew: Yeah exactly. I think, I
think that's the charm of the
conference that, that it's not
too, too massive
Jeroen: Mm hmm.
Drew: and that you, you, it does
feel a little bit like a, you
know, like a, I mean it's 100,
100 or 200 people or whatever.
It's still, it still feels like
a Yeah. A tight group. It's
Jeroen: Yeah.
Drew: not, it's not like these
massive conferences with
thousands of people.
Jeroen: Yeah. I always envision
a conference day for do I was to
be like a basically, uh, for co
cats and L meetups attached to
each other. And that's also
pretty much the, the vibe I'm
going for. It's like people help
each other. They, they, if
somebody has a question,
probably you're sitting next to
the person who has an answer on
that or, you know, just maybe
two seats down that they just
know thinks about really
practical things. Okay, I need
something fixed on my bike.
Somebody can help you. I need
something messed up with my
hotel. Anybody can help me. And
quite likely there will be
someone who will just. Yeah,
just. I'll go with you. And then
you just have a native speaker
with you who can yell at a hotel
staff and get things started for
you. Those kinds of things. And
Drew: Yeah.
Jeroen: it's
Drew: Yeah.
Jeroen: really it's really
welcoming to, to new people. And
I also hope that it's reflected
in the speaker lineup because I
was positively surprised by the
diversity of people who actually
entered the CFP. And it was a
lot, but the diversity was
completely true and true to the
entire,
Drew: Mm.
Jeroen: uh, list of people who
who actually entered with a
suggestion on the, on the CFP.
Uh,
Drew: Is, is the speakers all
announced now. At last time I
looked it was just a few people
Jeroen: I've
Drew: but
Jeroen: got
Drew: I
Jeroen: two
Drew: guess.
Jeroen: spots open still. Uh,
but those spots are uh,
allocated to sponsors. Um, one
of the sponsored speakers will
be Charlie Chapman. I'm
expecting and hoping, but I
haven't had final confirm
confirmation on that because
Josh Holtz is doing a talk on
his own. Uh, and that just, I
mentioned that in previous
episodes, the dates of the
conference are actually chosen
because those were dates that
Josh Holtz was actually able to
travel and the venue actually
had availability as well. So
that was the two
Drew: Yeah.
Jeroen: things that came
together. But um,
I am told that Charlie Chapman
will do like to sponsor a
session for revenue cards and,
and ABN Amro will do a 20 minute
session uh, next to Charlie
Chapman. So it's like each my
regular slots like 45 minutes
and one slot is divvied up
between two sponsors, each gets
20 minutes. And then I have a
third sponsor, which is not yet
announced, and they will do a
full on technical talk, not just
about their company and their
product or whatever, but the
technical
Drew: hmm.
Jeroen: talk about an
implementation detail that they
have in their product. So it's
it's a really big application in
the Dutch market and they
Drew: Right.
Jeroen: have some experience and
interesting things to share
there. And they, uh, they
basically want to showcase for
what they can do as an
engineering group
Drew: Mm.
Jeroen: and that hopefully then
interests, uh, peers to actually
come have a conversation and ask
an inquiry about potential job
openings with them.
Drew: Right, right. Yeah.
Jeroen: So
Drew: Yeah.
Jeroen: that's, that's why
there's still two spots open
Drew: Hmm.
Jeroen: in the schedule. And
those are, those are reserved
right now at least for three
sponsors. So one
Drew: Right.
Jeroen: shared
Drew: And
Jeroen: once you had slots and
one for a dedicated.
Drew: the other, the other
speakers are on the website. Is
Jeroen: Yeah,
Drew: that right? Yeah. So
Jeroen: yeah
Drew: that's public
Jeroen: I've,
Drew: meeting.
Jeroen: I've
Drew: Yeah.
Jeroen: put
um I think I've put all the
speakers online now let me
Drew: Okay.
Jeroen: check. So yeah yesterday
I pushed pushed Tianna Henry
Lewis and she will do a talk
about mental status and that was
the
Drew: Ri.
Jeroen: that was the final
speaker I needed to have final
confirmation on and yeah, it's a
complete list now. So I have
Drew: Cool.
Jeroen: Tim Condon,Daniel
Steinberg has a workshop host
and conference host, so he will
be on stage with me announcing
people, Donnie
Drew: Yeah.
Jeroen: Walls as a workshop host
and a backup speaker. If
something goes wrong. Phillip
Sadowski Gianna, Henry Lewis,
Josh Holtz, Mar Dimitrescu from
Stream. Alayna Bush, Cinco from
Jet Brains. Rudy Longoria, who
is a solopreneur aka Yuki from a
Japanese bank in their markets
doing a talk. Zachary
Drew: Hmm.
Jeroen: Brass are doing a sort
of like a coaching uh uh, type
of talk at the end of the
conference then, Monica, about
fashion OS And I
Drew: Oh,
Jeroen: think
Drew: yeah.
Jeroen: Vincent here presents he
does a talk about macros if, um,
if I'm correct at the top of my
head.
Drew: Cool.
Jeroen: So
Drew: Sounds like a really good,
good lineup.
Jeroen: yeah, so it's,
Drew: But
Jeroen: it's,
Drew: I'm sorry. You you had me
when you mentioned that the
seats would be better. So
Jeroen: yeah, that was,
Drew: that
Jeroen: that
Drew: was
Jeroen: was,
Drew: a probably.
Jeroen: that was, that was the
one bit of negative feedback we
got last year. And then
basically somebody told me on
Twitter my butt hurts the day
Drew: Yeah.
Jeroen: after and it
Drew: Yeah,
Jeroen: was let's fix that next
year. So
Drew: yeah,
Jeroen: we thought
Drew: I guess.
Jeroen: about
Drew: I guess it's just not
designed for, for sitting there
all day. I guess maybe
Jeroen: no,
Drew: that theater.
Jeroen: no, it's really the old
venue is like really a space for
like, you know, uh, an a session
of an hour or maybe a bit of
theater for 2 hours. But then
that's already long.
Drew: Yeah,
Jeroen: And what we have this
year is it's really a proper
auditorium with like a really
big screen and a cinema style
seating arrangement which goes
up quite nicely. So, um,
Drew: right,
Jeroen: I'm told, and I tried it
in the, uh, venue myself. It's
like basically have a good view
on the screen and the speaker
from every seat in the room.
Drew: right.
Jeroen: So, uh,
Drew: Sounds
Jeroen: and
Drew: great to
Jeroen: so the one drawback is
that there's a good chance of
jetlagged people starting to
snore at some point
Drew: sleep.
Jeroen: during some sessions,
but that,
Drew: Yeah,
Jeroen: I guess that's like
something we can live with and
then help these people out with
a coffee break or something.
Drew: yeah, yeah. The name I
think is really interesting too.
I, I actually don't know if I've
ever been, you know, maybe
you've been there once,
Jeroen: Yeah,
Drew: but
Jeroen: it's,
Drew: this is good science.
Theatre and science museum,
Jeroen: yeah,
Drew: right?
Jeroen: it's the, the, the venue
itself is a museum, but it's, uh,
it's a kids focused, uh, science
museum. So
Drew: Yeah.
Jeroen: people travelling to
Amsterdam, if they just so
happened that their partner and
kids have some time off,
probably not, because I think
it's a school week in most
countries. Um,
Drew: Oh, right. Yeah,
Jeroen: they can, they can just
bring their spouse and, and kids
and they can just, uh, have an
enjoyable day in the, in, in the
Drew: maybe.
Jeroen: museum itself,
Drew: Yeah,
Jeroen: Uh,
Drew: yeah,
Jeroen: because it's as, as an
adult, you'll probably run
through the museum in like, you
know, one and a half, 2 hours.
But kids, they just want to,
they want to, they want to try
every installation in there.
Drew: yeah,
Jeroen: So it's really things
like kids, they can like be
engulfed in a in like a soap
bubble, for example, a like a
human sized lobe. So bubble or
Drew: yeah,
Jeroen: all
Drew: yeah.
Jeroen: kinds of light
experiments or electricity. And
it's like basically any kid who
has like an interest in
something science that they will
Drew: Mm.
Jeroen: have they will have a
blast in this museum, actually.
And
Drew: Yeah.
Jeroen: also to the how central
it is. It's like you can from
the rooftop of the museum, you
can see the central station and
you can see a lot of the
waterways at the eye harbor of,
uh, of Amsterdam City and uh,
that there's some really posh
hotels in line of sights as well.
Drew: Mm.
Jeroen: You probably don't want
to book a room there because
they're quite
Drew: Very
Jeroen: expensive.
Drew: expensive.
Jeroen: Yeah,
Drew: Yeah .
Jeroen: so that's that Emirati
hotel and stuff like that. And,
but you can also see the, uh,
the cruise terminal and the,
Drew: Mm.
Jeroen: uh, I think it's a big,
um, a big space for, for, for,
for, for stage shows as well.
Tha somewhere in the same corner
as the, uh, the cruise line
terminal. So if we're lucky, you
can actually see a cruise ship
coming in from the rooftop of
the museum, and you would be
looking at that and it's like,
how is this Africa going to fit
here?
Drew: Yeah,
Jeroe: But it does fit actually,
which
Drew: yeah,
Jeroen: is wonderful
Drew: yeah,
Jeroen: to see.
Drew: yeah. It's surprising
isn't it, that they can come all
the way to Amsterdam. That
doesn't
Jeroen: Yeah,
Drew: feel like it should fit.
Jeroen: it seems like it's
impossible, but still, they they
managed
Drew: Yeah.
Jeroen: to do it. So
Drew: Yeah,
Jeroen: I'm down with that. I
think we covered everything that
we needed to cover. Or do you
have the feeling that we
Drew: yeah.
Jeroen: forgot something to
Drew: No, I think we should
leave some for the conference.
Jeroen: add? That's always a
good one, right? Anyways, um,
people who are interesting
interested in joining us at Do I
was in November. Make sure that
you get your tickets quickly
because I have less than 30
tickets available. I still have
some tickets available for
Daniels workshop, so definitely
check those out and consider
those. Um, and that's a number
that I have available as at the
time of this recording, which is
September 5th. Um, so I don't
know where my tickets will be
next week. So that's probably
when we will be releasing this
episode. So who knows? I hope
people who are willing to come
already bought tickets or that
they're lucky and they're still
one available or maybe through a
waitlist that they can get in
because of a late cancellation.
But I hope people get their
tickets early and not be
disappointed for not having a
ticket because last year
Drew: Yeah.
Jeroen: we had like a waitlist
of over 90 people. Uh,
Drew: Well,
Jeroen: and that's the, that's
the first list of people I sent
an email when I opened up
tickets this year. So,
Drew: yeah,
Jeroen: uh, and that works
because I immediately got a few
super early bird ticket sales
back then. So that's basically
that it's like ten or ten or so
tickets that I'm basically
losing money on. But I just
needed to like be able to say to
sponsors, Yeah, this, this
conference is
Drew: yeah,
Jeroen: going to be a success
because I already sold X amount
of tickets.
Drew: yeah, yeah.
Jeroen: That's
Drew: It's
Jeroen: the whole reason.
Drew: going to be full.
Jeroen: That's the whole reason
people do the super early birds
and early birds tickets is just
to be able
Drew: As
Jeroen: to
Drew: I've
Jeroen: claim
Drew: said
Jeroen: that they have
Drew: it.
Jeroen: a number of tickets sold
already because
Drew: It's
Jeroen: that's
Drew: a trick.
Jeroen: not a lot of money.
That's that's not a lot of
that's not a lot of fat on on on
these early tickets sales
anyways
Drew: Yeah, Yeah.
Jeroen: so. All right.
Drew: You sell them, sell them
for cost, price and.
Jeroen: Exactly.
Drew: Yeah.
Jeroen: Well, Drew, I see you in
two months, maybe a little bit
earlier at a caucus, and I'll
meet up and, uh, otherwise, uh,
we'll catch up then. And I look
forward
Drew: Okay.
Jeroen: to seeing your
presentation in November. And,
uh, thank you for your time.
Drew: Well, yeah. Thanks a lot.
Thanks for inviting me to speak
at the conference. Looking
Jeroen: No problem.
Drew: forward to it.