0:00:00.000,0:00:24.756
RC3 preroll music
0:00:24.756,0:00:31.000
Herald: Hello, everyone, welcome back to[br]Chaos West TV. The next talk will start
0:00:31.000,0:00:34.620
momentarily. I will now switch back to[br]German for a few seconds to announce a
0:00:34.620,0:00:40.613
translation. Then I'll switch back and[br]then we'll go off to the races as they say
0:00:40.613,0:00:45.540
So nochmal schnell auf Deutsch,[br]willkommen zurück zu Chaos West TV, eure
0:00:45.540,0:00:51.298
beste Bühne auf dem rc3. Der nächste Talk[br]beginnt gleich er ist zwar auf Englisch
0:00:51.298,0:00:55.550
wird aber wie so vieles dank unserer[br]Übersetzungscrew auf Deutsch übersetzt.
0:00:55.550,0:01:00.241
Ihr solltet in der Lage sein das im Stream[br]einfach auszuwählen ohne größere Probleme
0:01:00.241,0:01:03.570
und dann könnt ihr den Vortrag auch direkt[br]simultanübersetzt auf Deutsch hören
0:01:03.570,0:01:06.031
und ich rede jetzt auf Englisch weiter.
0:01:06.031,0:01:07.971
Alright back to English.
0:01:07.971,0:01:11.896
Now in the comfort of your own homes[br]or wherever you're viewing the stream,
0:01:11.896,0:01:15.313
please do a warm round of applause [br]for our next speaker,
0:01:15.313,0:01:23.114
Martin, who will talk about [br]optimizing public transport.
0:01:23.114,0:01:24.436
Let's go.
0:01:26.924,0:01:33.050
Martin: Welcome to my contribution to this[br]year's rC3 2021 in the form of this talk,
0:01:33.050,0:01:37.147
Optimizing public transport: [br]a data-driven bike sharing study in Marburg
0:01:37.147,0:01:42.241
I would like to thank the organizers of the[br]rC3 2021 for organizing the whole event.
0:01:42.241,0:01:47.140
And in particular, I would like to thank[br]the channel that accepted me Chaos West TV
0:01:47.140,0:01:52.750
well for accepting the presentation of my[br]work. Today I would like to give you a
0:01:52.750,0:01:57.220
quick overview of one of my hobby projects[br]in which I scraped and therefore
0:01:57.220,0:02:02.270
downloaded over one million data points[br]regarding the bike sharing system in the
0:02:02.270,0:02:09.099
city of Marburg. This study came about[br]when I was traveling from Stuttgart to
0:02:09.099,0:02:13.220
Frankfurt and ultimately to Marburg some[br]time ago, and I was watching the amazing
0:02:13.220,0:02:17.440
SpiegelMining talk by David Kriesel. So[br]thank you very much for this implicit
0:02:17.440,0:02:20.515
inspiration of the work that you're about[br]to see now.
0:02:20.515,0:02:26.091
Who am I? My name is Martin Lellep, [br]and I studied physics in the past,
0:02:26.091,0:02:30.425
and actually, I continue to do so in the [br]form of a Ph.D. in theoretical physics at
0:02:30.425,0:02:34.258
the University of Edinburgh in Scotland [br]and in my spare time I like to do data
0:02:34.258,0:02:39.255
analysis of all kinds of data. [br]There are two more things...
0:02:39.255,0:02:42.045
There are two more things [br]that are important for here now.
0:02:42.045,0:02:45.883
It's first of all, I studied at the[br]University of Marburg, obviously in
0:02:45.883,0:02:52.070
Marburg previously, and then also I like[br]to ride my bike. Marburg, for those who
0:02:52.070,0:02:56.310
don't know it yet, it's a small,[br]university dominated town that is in the
0:02:56.310,0:03:00.840
north of Frankfurt am Main, roughly 80[br]kilometers. So an hour by car or an hour
0:03:00.840,0:03:07.450
by train, approximately. And again, it's[br]quite dominated by the university that is
0:03:07.450,0:03:12.070
located there, and that can be seen simply[br]in terms of, for instance, numbers. There
0:03:12.070,0:03:19.100
are roughly 25,000 students for an overall[br]population of 77,000 residents in total,
0:03:19.100,0:03:26.540
which is quite substantial, obviously. You[br]can see a quite popular picture here of a
0:03:26.540,0:03:32.600
picturesque scene in Marburg. We can see[br]the castle and then the river Lahn, as
0:03:32.600,0:03:37.290
well as a few houses and a bit of green.[br]And the bike rentals are currently
0:03:37.290,0:03:44.430
provided at the time of recording this by[br]the company called Nextbike. Before now
0:03:44.430,0:03:49.790
diving into a bit more technical details,[br]I would like to motivate my story or my
0:03:49.790,0:03:54.870
study by the story of Anna. Anna is a[br]university... is a university student at
0:03:54.870,0:03:59.780
the University of Marburg, and she lives a[br]bit outside the city, so she typically
0:03:59.780,0:04:06.910
does not walk to the place that she needs[br]to be or study at. But she takes the bus
0:04:06.910,0:04:13.310
from her... from her flat to the[br]university, to the city. And then does the
0:04:13.310,0:04:19.959
last mile by walking or cycling or[br]whatever. And she's also quite an eager
0:04:19.959,0:04:24.220
student, so she very often studies quite[br]late. As you can see here, that's a
0:04:24.220,0:04:29.940
picture of late Marburg, so to say, and[br]just as it happens now, she needs to catch
0:04:29.940,0:04:34.621
a bus now because she's a bit late. She[br]forgot to pack in her... her fancy MacBook
0:04:34.621,0:04:41.110
in time, so she needs to hurry up a[br]bit and, well, didn't really make it. So
0:04:41.110,0:04:43.720
therefore, she thought maybe
0:04:43.720,0:04:47.127
taking a Nextbike for the last mile[br]to the bus station is a good idea
0:04:47.127,0:04:51.292
so she can safely take then subsequently [br]the bus home. And normally the bus…
0:04:51.292,0:04:55.710
The Nextbike stations look like[br]that here. So there are plenty of bikes.
0:04:55.710,0:05:02.530
It's very easy to go there, grab a bike[br]and go to your destination. Now Anna must
0:05:02.530,0:05:07.551
be a very unlucky student today because[br]she arrives at the bike station, and it
0:05:07.551,0:05:12.610
turns out that the station is empty, so[br]ultimately she misses at least this bus
0:05:12.610,0:05:19.717
and therefore only arrives at home a bit[br]later. Her cooking plans and her Netflix
0:05:19.717,0:05:26.459
plans, all that stuff postponed a bit[br]because, well, she arrives a bit later.
0:05:26.459,0:05:32.603
And that's, of course, a very, very sad[br]story, and maybe it happens to multiple
0:05:32.603,0:05:38.059
people, not only Anna. And in fact, it[br]also happened to me a few times, and every
0:05:38.059,0:05:41.919
time it happened to me, I thought, well, I[br]must be the most unlucky person in whole
0:05:41.919,0:05:46.504
Marburg going to a normally completely[br]fully packed bike station and now it's
0:05:46.504,0:05:51.513
completely empty. Missing, for instance,[br]subsequent public transportation.
0:05:51.513,0:05:56.714
After it happened to me a few times, I[br]thought, well, maybe I'm not that unlucky.
0:05:56.714,0:06:02.551
So is there may be a system to empty bike[br]stations in Marburg. And given all my
0:06:02.551,0:06:06.529
my spare time interest of analyzing and[br]capturing data, I thought, well, data to
0:06:06.529,0:06:12.550
the rescue, of course. And therefore, the[br]idea for this talk now was to build a web
0:06:12.550,0:06:17.901
scraper in order to acquire Nextbike data.[br]Collect the data, store the data, analyze
0:06:17.901,0:06:23.069
the data and then hopefully finally help[br]Anna, me, and other students to figure out
0:06:23.069,0:06:28.700
which stations maybe to avoid and which[br]stations are safe to go to if you're in
0:06:28.700,0:06:31.233
desperate need for a bike.
0:06:31.898,0:06:35.517
The tech stack that I'm using here, [br]it's based on a Docker container
0:06:35.517,0:06:39.560
in which a python scraper runs [br]every 30 seconds that queries the
0:06:39.560,0:06:44.979
Nextbike API. It downloads the data, it[br]parses the data, and then saves the data
0:06:44.979,0:06:51.360
outside the Docker container in order to[br]be evaluated later on. And it turns out
0:06:51.360,0:06:56.180
that the whole concept of what I just[br]described also has a name. It's called
0:06:56.180,0:07:02.389
Extract, Transform, Load Pipeline or ETL[br]in short. And what I again wrote here is
0:07:02.389,0:07:06.330
an ETL pipeline in Python, and then I[br]wrote an analysis code also written in
0:07:06.330,0:07:13.779
Python and all that was running on a small[br]home server in my flat. The data that I
0:07:13.779,0:07:19.629
captured consists of the bikes identified[br]through IDs and then also the locations of
0:07:19.629,0:07:23.779
those bikes, typically at stations, but[br]some of them were also freestanding and
0:07:23.779,0:07:29.349
last but not least, the station locations,[br]and of course, obviously also a list of of
0:07:29.349,0:07:38.889
stations. And then with it, I went ahead[br]and did a few pictures that I'm about to
0:07:38.889,0:07:43.899
show now and a few analyses. And if you're[br]interested in that and there are slides
0:07:43.899,0:07:48.529
available on this website here, the[br]website can be read through the QR code or
0:07:48.529,0:07:52.939
through that link and this website[br]contains the slides that you'll see in
0:07:52.939,0:07:56.741
here, high resolution figures, a few[br]interactive figures and all the
0:07:56.741,0:08:01.175
information on the previous blog articles[br]that I wrote about this topic.
0:08:02.659,0:08:07.165
So the results of Anna, first of all, to[br]start slowly. It turns out that there are
0:08:07.165,0:08:13.242
37 bike stations in Marburg, [br]with roughly 230 bikes spread across
0:08:13.242,0:08:16.047
the whole Nextbike Marburg ecosystem.
0:08:17.097,0:08:20.657
And it's now, well, knowing that [br]there are roughly 40 stations,
0:08:20.657,0:08:23.394
it's quite interesting to see[br]where these stations are,
0:08:23.394,0:08:25.294
because then Anna could,
0:08:25.294,0:08:28.644
for instance, already go to another [br]station if one station is empty.
0:08:28.644,0:08:32.668
And what you can see here is now a map[br]of Marburg, where the stations are
0:08:32.668,0:08:36.363
annotated by these dots. [br]And the area of the dot,
0:08:36.363,0:08:40.080
as well as the color code, [br]corresponds to the average number of
0:08:40.080,0:08:46.640
parked bikes at that station. So let's see[br]an interactive version because it's a bit
0:08:46.640,0:08:53.500
nicer to see it in that way. So I click on[br]here. Alright. OK, now we can pan around
0:08:53.500,0:08:59.850
and zoom as you can often do with these[br]interactive graphics and also by clicking
0:08:59.850,0:09:04.680
on these buttons or on these these points,[br]you can see the station name, as well as
0:09:04.680,0:09:11.699
the average number of bikes placed there.[br]And becomes quite obvious that, well, most
0:09:11.699,0:09:17.970
of the stations are in the central part of[br]the city, a few in the outskirts here. And
0:09:17.970,0:09:22.980
it turns out that the largest station in[br]terms of the number of parked bikes on
0:09:22.980,0:09:27.759
average is the main train station[br]Hauptbahnhof. There are again a few more
0:09:27.759,0:09:30.683
spread around the [br]central part of the station,
0:09:30.683,0:09:34.291
such as the Elisabeth-Blochmann-Platz, [br]which is the second largest station.
0:09:34.291,0:09:38.305
And then if you continue the train [br]line here, you can see that there's
0:09:38.305,0:09:44.730
actually another set of stations, where [br]the secondary train station is.
0:09:44.730,0:09:48.484
So that's another train station, [br]smaller train station.
0:09:51.150,0:09:58.130
OK, so the first results for Anna[br]would then be a day-hour usage histogram,
0:09:58.130,0:10:03.740
because it's the kind of the first order[br]approach, I would say, in order to see how
0:10:03.740,0:10:11.980
the ecosystem of Nextbikes is in use[br]against day as well as hour. And therefore
0:10:11.980,0:10:19.089
Anna will based on this figure here, she[br]will understand when to maybe plan for a
0:10:19.089,0:10:23.990
bit more time when looking for a bike in a[br]desperate fashion. And since this figure
0:10:23.990,0:10:27.959
is a bit more difficult to understand, I[br]would like to take a moment to explain it
0:10:27.959,0:10:31.600
and we are going to start with the top[br]figure here. What you can see on the x
0:10:31.600,0:10:35.750
axis is the hour of the day and on the y[br]axis, and that's shown in the whole
0:10:35.750,0:10:40.279
figure. So each of the the numbers that[br]you see is the following: it's the
0:10:40.279,0:10:46.940
average. And well it's the number of[br]parked bikes and then you subtract the
0:10:46.940,0:10:51.560
average of the number of parked bikes in[br]the whole ecosystem of Marburg. So that
0:10:51.560,0:10:55.930
means if a number of zero is encountered[br]like roughly here, it means that the
0:10:55.930,0:11:01.110
average number of parked bikes simply in[br]the system at that point in time. When the
0:11:01.110,0:11:05.920
number is larger, it's above the average,[br]if it's smaller, it's below the average.
0:11:05.920,0:11:10.709
And you can clearly see from this small[br]figure here already that in the morning,
0:11:10.709,0:11:15.430
more bikes are typically parked. And then[br]in the evenings or around noon, you can
0:11:15.430,0:11:21.750
see two dips, a bimodal distribution so to[br]say. Where people, well, obviously use
0:11:21.750,0:11:28.129
bikes around noon and six p.m. roughly[br]where these used bikes, of course, are not
0:11:28.129,0:11:32.050
parked, and therefore these numbers are[br]smaller. And the same thing can be done
0:11:32.050,0:11:37.170
for the day of the week. Here and here you[br]can see that the Monday, well, the
0:11:37.170,0:11:40.190
beginning of the week and the end of the[br]week, meaning Monday, Tuesday and Saturday
0:11:40.190,0:11:46.990
Sunday are a bit more popular, so more[br]people ride a bike and therefore fewer
0:11:46.990,0:11:49.950
bikes are parked and therefore this is[br]negative. And then in the middle of the
0:11:49.950,0:11:55.649
week, fewer people seem to ride the bike,[br]the bikes in general. And if you combine
0:11:55.649,0:11:59.839
these figures now, you can see the the[br]joint histogram here, where you can not
0:11:59.839,0:12:05.140
only look for time or day separately, but[br]also in a combined fashion. So you would,
0:12:05.140,0:12:09.584
for instance, see that Monday morning is[br]the time where many people use bikes
0:12:09.584,0:12:13.821
because they are not as many bikes parked.[br]And then also on a Saturday, you can see
0:12:13.821,0:12:20.876
the same, so around afternoon many people[br]seem to use the bikes. Last but not least
0:12:20.876,0:12:24.853
on Friday mornings, it's quite easy to get[br]a bike because many bikes appear to be
0:12:24.853,0:12:29.500
parked, maybe because people envision[br]already the weekend. So that's the first
0:12:29.500,0:12:36.529
outcome for Anna. Well try to avoid times[br]around six and around noon when
0:12:36.529,0:12:41.350
desperately looking for bike. And although[br]even more interesting part for Anna is the
0:12:41.350,0:12:45.899
probability to find a specific station to[br]be empty. For that, I took the time series
0:12:45.899,0:12:51.389
of the number of parked bikes and counted[br]the occasions where there was no bike for
0:12:51.389,0:12:56.019
each of the stations here. And that has[br]been done again for each station
0:12:56.019,0:12:59.949
separately, so for each station, at the[br]end of the day, you get a number that
0:12:59.949,0:13:03.810
denotes the probability of finding that[br]station empty. And clearly, for instance,
0:13:03.810,0:13:08.242
the Hauptbahnhof, the main train station,[br]which was the largest station. It's
0:13:10.038,0:13:14.787
quite unlikely to find it empty,[br]and contrary, if you go to these
0:13:14.787,0:13:18.447
stations down here, for instance [br]the Am Plan / Wirtschaftswissenschaften
0:13:18.447,0:13:23.769
it turns out that these are empty at about[br]70 percent of the time, which is quite
0:13:23.769,0:13:28.910
substantial, I would say. And[br]interestingly, if you now look for the the
0:13:28.910,0:13:33.130
secondary train station in Marburg, the[br]Südbahnhof, you can see that this has
0:13:33.130,0:13:37.825
quite a substantial probability of [br]running empty at about 30 to 40 percent.
0:13:37.825,0:13:41.889
In particular, in comparison to the main [br]train station, which is essentially almost
0:13:41.889,0:13:50.990
never empty. Also interestingly, you can[br]then plot these probabilities against the
0:13:50.990,0:13:54.920
average number of parked bikes at the[br]station and you find an antiproportional
0:13:54.920,0:13:59.349
relation between those two. It means that[br]the larger the stations, the more unlikely
0:13:59.349,0:14:02.811
it is that it's empty, which is quite a[br]reasonable outcome, I would say.
0:14:02.811,0:14:05.749
So finally, to conclude for Anna,
0:14:05.749,0:14:08.809
she should try to avoid small stations
0:14:08.809,0:14:11.868
and in particular, she should try[br]to avoid the stations that are
0:14:11.868,0:14:14.595
well, annotated here with[br]the sad smiley, because these
0:14:14.595,0:14:18.567
tend to run empty quite often.
0:14:21.363,0:14:25.037
OK, so I have all this ETL pipeline [br]stuff already set up,
0:14:25.037,0:14:27.560
I have collected [br]over a million data points
0:14:27.560,0:14:32.584
and then I thought, well, maybe there's[br]more in the data then only helping Anna.
0:14:32.584,0:14:37.743
So everything that I've shown you so far,[br]it's from the perspective of a user.
0:14:37.743,0:14:40.954
And now I would like to turn to [br]what's the perspective of a city.
0:14:40.954,0:14:42.870
And there I would like to [br]ask a few questions, like…
0:14:42.870,0:14:45.541
How is Nextbike used in Marburg?[br]first of all,
0:14:45.541,0:14:48.540
and then, in general, [br]Is cycling a good thing for a city?
0:14:48.540,0:14:52.850
How can, or,[br]Can cycling contribute to a better city?
0:14:52.850,0:14:57.533
And now–better is of course first a quite[br]vague term–and then last, but not least,
0:14:57.533,0:15:01.336
is it worth improving [br]bike infrastructure for a city?
0:15:02.804,0:15:10.196
And all this again, is now from the[br]perspective of a city instead of a user.
0:15:10.196,0:15:14.834
The first thing that I would like to start[br]with is something that I call the distance
0:15:14.834,0:15:21.709
matrix in which I concentrated on the[br]positions of the bike stations and
0:15:21.709,0:15:26.029
computed the pairwise distances for all of[br]them. And since the distance is, of
0:15:26.029,0:15:32.045
course, symmetric, also the stored matrix[br]is now in the end also symmetric. And,
0:15:32.045,0:15:36.470
It turns out that there are roughly 600[br]combinations, and these combinations can
0:15:36.470,0:15:41.760
be shown in a symmetric matrix, as shown[br]here, where on the x axis this one here
0:15:41.760,0:15:47.709
and the y axis you can see the stations[br]and then each combination denotes
0:15:47.709,0:15:52.620
the distance between that one station and[br]the other station. It turns out that the
0:15:52.620,0:15:57.319
range of these distances is between zero[br]and roughly nine kilometers. And of
0:15:57.319,0:16:03.407
course, those that have a zero distance to[br]other stations are essentially the…
0:16:03.407,0:16:07.920
the stations themselves. So if you pick a[br]station, obviously the distance to itself
0:16:07.920,0:16:12.370
is zero and therefore the diagonal is[br]exactly zero. And then again, all the
0:16:12.370,0:16:20.379
remaining part is a symmetric copy of the[br]other diagonal part. The other thing and
0:16:20.379,0:16:26.559
that is now the main treasure, I would say[br]of this study, so the main base for
0:16:26.559,0:16:31.490
everything that follows is what I call the[br]transition matrix, where I counted the
0:16:31.490,0:16:35.749
number of transition of bikes from one[br]station to the other station. That is now,
0:16:35.749,0:16:40.394
of course, not symmetric anymore because[br]just because, say, five bikes go from one to
0:16:40.394,0:16:44.212
the other station, it does not mean that[br]these five bikes really come back again.
0:16:44.212,0:16:50.598
And therefore, the number of entries [br]is roughly 1400. Again, it can be shown
0:16:50.598,0:16:58.470
or visualized in the same fashion.[br]So you again have the stations on the one
0:16:58.470,0:17:03.186
axis and the same stations on the other[br]axis, and now each entry here in the
0:17:03.186,0:17:07.150
matrix corresponds to the number of[br]transitions of bikes from one to the
0:17:07.150,0:17:14.650
other. And the range is from zero to over[br]3000. And it turns out that actually the
0:17:14.650,0:17:19.010
self transitions, meaning somebody takes a[br]bike from a station, does something with a
0:17:19.010,0:17:23.460
bike, maybe grocery shop, grocery shopping[br]or so, and then the person comes back to
0:17:23.460,0:17:30.070
the same station. These events occur the[br]most frequent and therefore the largest
0:17:30.070,0:17:36.420
entry are on the diagonal, typically.[br]Sometimes it is not so interesting what
0:17:36.420,0:17:41.170
happens regarding the self transitions and[br]therefore another matrix can be derived
0:17:41.170,0:17:46.010
from the first one, namely a transition[br]matrix without diagonal elements where
0:17:46.010,0:17:51.625
those elements have been set to zero as[br]you can see here, if you look closely.
0:17:51.625,0:17:57.566
Speaking of looking closely, it's quite[br]educational if you not only see the
0:17:57.566,0:18:02.140
figures, but also can explore them a bit,[br]and therefore I rendered an interactive
0:18:02.140,0:18:07.450
version of it. Let's... let's visit it. So[br]that's now again, the matrix without the
0:18:07.450,0:18:11.880
diagonal and one with the diagonal. And[br]now by hovering over these entries so you
0:18:11.880,0:18:16.740
can see that, for instance, from Am[br]Schülerpark to Ockershäuser Allee zero
0:18:16.740,0:18:20.960
transitions happened. And then a bit[br]larger one, for instance, Biegenstraße to
0:18:20.960,0:18:28.120
Hauptbahnhof over 800 transitions happened[br]in the time of capturing the data. So feel
0:18:28.120,0:18:35.210
free to explore a bit, maybe identify the[br]most, most interesting, most used popular
0:18:35.210,0:18:44.560
routes. Ok, such a transition matrix can[br]actually also be shown as a network graph
0:18:44.560,0:18:49.310
where here I concentrate only on the[br]largest entry because it turns out the
0:18:49.310,0:18:55.520
full transition matrix is a bit too dense.[br]And what is shown out here is as blue
0:18:55.520,0:19:04.340
circles, it corresponds to a station and[br]then these edges here are drawn whenever
0:19:04.340,0:19:08.440
there happens a transition. And you can[br]already see here that there are a few
0:19:08.440,0:19:13.009
stations that are quite isolated, like[br]those and then many stations have a self
0:19:13.009,0:19:16.330
transition and mostly feed to a more[br]central station.
0:19:16.330,0:19:20.243
And since that is also more[br]interesting in an interactive fashion,
0:19:20.243,0:19:22.606
I also rendered [br]an interactive version of that.
0:19:22.606,0:19:29.311
Now again, we can zoom, pan around[br]and drag the graph around a bit.
0:19:29.311,0:19:33.760
And interestingly, if you click on a[br]station, you can see from where
0:19:33.760,0:19:39.940
transitions happen to that station. So[br]like those interconnected central ones,
0:19:39.940,0:19:43.440
like the Hauptbahnhof, the main train[br]station, it's quite connected in the
0:19:43.440,0:19:46.940
graph. And then there are a few like[br]Friedrichplatz which are not connected at
0:19:46.940,0:19:53.940
all. Interestingly, that one here, for[br]instance, the Cafe Trauma/Aföllerwiesen it
0:19:53.940,0:19:58.120
doesn't even have a self connection. So it[br]turns out that, well, people apparently
0:19:58.120,0:20:01.515
mostly use it for taking a bike going into[br]the city.
0:20:01.515,0:20:08.216
And most dominantly, [br]the Elisabeth-Blochmann-Platz, actually.
0:20:12.178,0:20:17.910
OK, so if you now take [br]these transition matrices,
0:20:17.910,0:20:22.500
as well as the distance matrices[br]into account and mix them, first of all,
0:20:22.500,0:20:29.080
you can get a few interesting numbers. So[br]here I calculated the overall number of
0:20:29.080,0:20:35.280
trips, which turned out to be 210,000[br]trips in the time of capturing the data,
0:20:35.280,0:20:39.550
which is quite some essential number for[br]such a small city like Marburg. And this
0:20:39.550,0:20:44.030
is, of course, computed by taking the sum[br]of the transition matrix elements. And
0:20:44.030,0:20:48.280
then if you weigh these sums or these[br]entries with the distances between those
0:20:48.280,0:20:54.380
stations, it turns out that those[br]transitions or those trips essentially
0:20:54.380,0:20:58.610
correspond to a distance of 320,000[br]kilometers that have been traveled, which
0:20:58.610,0:21:02.305
is a few times around the Earth actually.
0:21:02.305,0:21:05.466
Now, when these two basic numbers and the
0:21:05.466,0:21:10.690
the matrices that I introduced earlier are[br]combined with a few statistical details –
0:21:10.690,0:21:14.650
like, for instance, the average[br]consumption of fuel of a car or how much
0:21:14.650,0:21:21.050
CO2 it produces while driving – a few[br]ecological, economic and social benefits
0:21:21.050,0:21:25.550
of a bike system or cycling in general can[br]be derived. First of all, I found it quite
0:21:25.550,0:21:33.210
entertaining that the overall number of[br]calories burned corresponds to 8.6 million
0:21:33.210,0:21:40.331
kilocalories. And to convert that to a bit[br]more, well, real life number, I would say
0:21:40.331,0:21:44.030
I calculated how many Nutella jars [br]those are, and it turns out that
0:21:44.030,0:21:47.763
it's roughly 4,000 Nutella jars that[br]have been burned in terms of calories
0:21:47.763,0:21:56.265
just by this system of cycling. And then [br]also, it can be found that this distance
0:21:56.265,0:22:00.240
here, if you would have driven it [br]by a car, you would have,
0:22:00.240,0:22:06.281
well, used almost 26,000 liters of fuel. [br]You would have produced 40 tons of CO2.
0:22:06.281,0:22:13.164
And that fuel that you would have bought[br]would have cost 34,000 €, actually.
0:22:13.164,0:22:18.194
Interestingly, that number here [br]of 40 tons of saved CO2
0:22:18.194,0:22:23.008
corresponds to an average[br]German who lives for 4 years
0:22:23.008,0:22:27.498
or 4 Germans that live for one year.[br]So a typical German produces
0:22:27.498,0:22:31.060
roughly 10 tons, and therefore [br]it's four times that, obviously.
0:22:32.803,0:22:36.250
Ok, so again, from the transition matrix,
0:22:36.250,0:22:40.130
you can derive a few more interesting[br]details like, for instance, details that
0:22:40.130,0:22:44.062
are interesting from the perspective [br]of traffic management.
0:22:44.062,0:22:48.651
Like, here I calculated the most popular[br]routes by finding the maximal elements
0:22:48.651,0:22:54.141
of the transition matrix. And it turns out[br]that the most popular route has been used
0:22:54.141,0:22:58.941
well over 2000 times a year from the[br]Hauptbahnhof to the Ginseldorfer Weg. And
0:22:58.941,0:23:02.820
if you look closely, you can see that the[br]main train station or the Hauptbahnhof,
0:23:02.820,0:23:07.264
as well as the Elisabeth-Blochmann-Platz[br]is involved in many of those top row routes.
0:23:07.264,0:23:12.580
And that's now again interesting. For[br]instance, if a city would like to improve
0:23:12.580,0:23:18.733
the bike system because we've now seen[br]it has quite a good impact for social,
0:23:18.733,0:23:23.211
ecological, and economical aspects.
0:23:23.211,0:23:27.259
But let's say the the city has maybe [br]limited financial resources.
0:23:27.259,0:23:30.491
It would be interesting to simply[br]calculate the most popular routes,
0:23:30.491,0:23:33.690
and then start fixing [br]or improving them first.
0:23:35.690,0:23:38.820
OK, now at that point, [br]you might ask yourself,
0:23:38.820,0:23:41.883
Well, what kind of data did he scrape?
0:23:41.883,0:23:44.454
And for that, I would like to[br]show you this graph. It shows
0:23:44.454,0:23:48.444
the number of parked bikes in the whole [br]ecosystem of Marburg against time.
0:23:48.444,0:23:50.879
And as you can see, [br]I did it in two batches.
0:23:50.879,0:23:55.700
The first one has been obtained from [br]March to December 2020. So last year.
0:23:55.700,0:24:01.440
And then I restarted the scraping at the[br]end of April and finished just a few days
0:24:01.440,0:24:06.660
ago in December 2021. And you can clearly[br]see that the number of parked bikes
0:24:06.660,0:24:12.260
decreases when the weather is good or when[br]there are summer months and therefore most
0:24:12.260,0:24:17.740
likely because the weather is good. And of[br]course, it suggests itself a bit given
0:24:17.740,0:24:22.900
that I captured this in 2020 and that one[br]year in 2021 and taking the corona
0:24:22.900,0:24:25.308
pandemic into account. Well, how does it[br]compare?
0:24:25.308,0:24:31.330
And therefore, I concentrated on the [br]overlapping month of the two data sets
0:24:31.330,0:24:34.809
and calculated, well, [br]the comparison, as you can see here.
0:24:34.809,0:24:40.206
Now in blue, it's 2021 this year [br]and 2021, sorry 2020 is shown in red.
0:24:40.206,0:24:43.951
And you can see that the number of[br]parked bikes increased actually.
0:24:43.951,0:24:49.683
There might be a multitude [br]of explanations for that. I don't know.
0:24:49.683,0:24:54.908
Maybe one explanation could be that people [br]took more advantage of working from home.
0:24:56.397,0:25:00.548
OK, so everything that I've shown you so far,
0:25:00.548,0:25:05.488
it's been mostly statistical statements, [br]averages, sums and stuff like that,
0:25:05.488,0:25:10.355
and now I was interested if it's possible [br]to do also more precise predictions.
0:25:10.355,0:25:12.980
And therefore I turn [br]towards a machine learning or
0:25:12.980,0:25:17.540
artificial intelligence task where I[br]predicted the num… where I tried to
0:25:17.540,0:25:21.220
predict the number of parked bikes,[br]meaning the quantity that I've shown over
0:25:21.220,0:25:26.062
and over again in the in the last few[br]minutes. So is it possible to predict that
0:25:26.062,0:25:31.340
number based on the hour of the day, the[br]weekday and the temperature that is shown
0:25:31.340,0:25:36.760
here for 2020? And when starting such a[br]task, it's always, first of all, very
0:25:36.760,0:25:41.219
useful to investigate the training data.[br]And therefore well I try to plot it. And
0:25:41.219,0:25:44.703
And because it's a three dimensional face[br]space, it's also very simple to plot it.
0:25:44.703,0:25:49.410
So you can essentially plot it as a[br]scatterplot. And the color coding here has
0:25:49.410,0:25:53.928
been chosen to denote the target variable,[br]meaning the number of parked bikes.
0:25:53.928,0:25:57.470
And just by inspecting the data, you can[br]already see that the smaller the
0:25:57.470,0:26:02.810
temperatures are, the fewer… sorry, the[br]more bikes are parked and therefore the
0:26:02.810,0:26:07.710
fewer bikes are used. I use a random[br]forest machine learning model, which
0:26:07.710,0:26:12.870
consists... which is an ensemble model of[br]decision trees, of randomized decision
0:26:12.870,0:26:18.010
trees. And this model is quite powerful[br]because it can work with little data. It
0:26:18.010,0:26:22.880
can work with a lot of data, and it's also[br]very flexible. If you would ever like to
0:26:22.880,0:26:28.320
extend the face space, like maybe it would[br]be interesting to see if one could predict
0:26:28.320,0:26:33.220
the number of parked bikes given a bank[br]holiday or given weekend. And all these
0:26:33.220,0:26:38.350
aspects could be added to the random[br]forest relatively easily. And that's now
0:26:38.350,0:26:42.130
the outcome: So I show the measured data,[br]well that's been data that hasn't been
0:26:42.130,0:26:49.610
seen by the model before, and I show that[br]data here and then the densely covered,
0:26:49.610,0:26:53.407
face-based prediction of the machine[br]learning model here. And you can see that
0:26:53.407,0:26:57.962
the color trends, they correspond quite[br]well to each other. Like you can, for
0:26:57.962,0:27:03.130
instance, see the smaller numbers or[br]larger parked numbers in the regime of
0:27:03.130,0:27:07.670
small temperature and also from a[br]quantitative perspective, the prediction
0:27:07.670,0:27:12.050
is quite decent as the square root of the[br]mean squared error corresponds to a
0:27:12.050,0:27:15.685
roughly a tenth of the average value of[br]the parked bikes.
0:27:15.685,0:27:22.537
Which, again in this context is quite a [br]decent prediction performance,
0:27:22.537,0:27:26.577
given how naive the[br]approach was in general.
0:27:26.577,0:27:31.340
OK, I did a bit more on machine learning, [br]but I'm not showing that here.
0:27:31.340,0:27:37.053
I calculated the Markov steady state[br]for the same data essentially.
0:27:37.053,0:27:42.532
And if you're interested in that, well, [br]feel free to check out this link here.
0:27:44.266,0:27:47.110
OK, last but not least, I would, [br]of course, like to come to
0:27:47.110,0:27:50.575
the summary for Anna, me, [br]and maybe other students.
0:27:50.575,0:27:57.135
So first of all, what I did was to scrape [br]Nextbike data in Marburg in order to find,
0:27:59.337,0:28:03.569
which stations to potentially avoid when [br]you're in desperate need for a Nextbike.
0:28:03.569,0:28:09.342
And for that, I calculated [br]the probabilities of empty stations
0:28:09.342,0:28:13.848
and found that the larger the station, [br]the less likely it is to run out of bikes.
0:28:13.848,0:28:17.371
So the general recommendation [br]from my side would be:
0:28:17.371,0:28:20.793
try to find larger stations if you're [br]in desperate need for an Nextbike.
0:28:20.793,0:28:25.848
And feel free to go back to [br]the interactive map to see the
0:28:25.848,0:28:30.629
the locations of these stations, which is[br]quite interesting in itself, I would say.
0:28:30.629,0:28:34.202
And then I turned towards [br]the perspective of a city, and
0:28:34.202,0:28:39.721
investigated a bit the usage patterns[br]of Nextbikes and therefore representative
0:28:39.721,0:28:44.517
most likely also cycling in Marburg, where[br]I calculated the day-hour usage.
0:28:44.517,0:28:49.400
So when is the system quite busy [br]and generally the most popular routes,
0:28:49.400,0:28:56.190
which might be of use for city planning [br]and also social, economical, and
0:28:56.190,0:28:59.095
ecological benefits of the whole system.
0:28:59.916,0:29:01.547
Last but not least, I showed that
0:29:01.547,0:29:05.660
more precise predictions are possible when[br]maybe a statistical statement is not
0:29:05.660,0:29:09.347
enough and you would like [br]to do per case predictions.
0:29:10.150,0:29:14.488
Last but not least, I was fortunate [br]enough to work with AstA Marburg.
0:29:14.488,0:29:19.627
In particular, Lucas and David, [br]thank you very much for your trust
0:29:19.627,0:29:24.892
in that project where we try to optimize [br]the placement of the bikes in the future.
0:29:26.472,0:29:28.670
The take home messages are now, [br]first of all:
0:29:28.670,0:29:32.391
Bikes are amazing! And not only are they[br]amazing for you and the environment,
0:29:32.391,0:29:37.616
but also for your wallet.[br]So you save essentially money on gas.
0:29:38.346,0:29:41.092
And also, I would like to,
0:29:41.622,0:29:45.116
well, highlight that those data-driven [br]optimizations of public transport
0:29:45.116,0:29:49.640
have the potential to, well, [br]increase the life, the quality of life of
0:29:49.640,0:29:54.521
many of us at moderate cost. So again, I[br]would like to come back to a case where
0:29:54.521,0:29:56.975
maybe a city would like to [br]improve bike infrastructure
0:29:56.975,0:29:59.909
that doesn't have enough [br]money to do it in one go.
0:29:59.909,0:30:04.476
So then it might be interesting [br]to first find–in a data-driven way–which
0:30:04.476,0:30:12.720
combinations of, now in Nextbike terms, [br]maybe stations or in general streets
0:30:12.720,0:30:17.076
are popular, and then these might be worth[br]being fixed first with a limited budget.
0:30:18.353,0:30:23.237
OK, if you're interested in more, I was [br]very fortunate to be able to speak at the
0:30:23.237,0:30:28.607
last rC3 already about data in Marburg, [br]but last year I spoke about parking
0:30:28.607,0:30:32.993
in Marburg. If you like to, well, read the [br]blog articles corresponding to that
0:30:32.993,0:30:39.065
or just see the official CCC video, [br]just follow these links shown here.
0:30:39.383,0:30:41.368
Thank you very much for your attention.
0:30:41.368,0:30:45.755
If you have anything to get in contact [br]with me, reach out to my e-mail address.
0:30:45.755,0:30:49.701
Maybe some ideas on how to improve [br]a talk or what else to evaluate.
0:30:49.701,0:30:52.980
And then all the supplementary [br]materials that I mentioned,
0:30:52.980,0:30:56.570
and what I've shown here, [br]can be found again on this link here.
0:30:56.570,0:30:59.750
In particular, thank you very much[br]to all the people who reached out to me
0:30:59.750,0:31:03.427
based on my last year's talk. I haven't[br]come about to respond properly, but
0:31:03.427,0:31:06.875
I'm 100 percent certain that I will do so.
0:31:06.875,0:31:10.973
Thank you very much for your attention, [br]and have a good year.
0:31:15.970,0:31:21.490
Herald: Alright, welcome back. It's time[br]for the Q&A now. You probably know the
0:31:21.490,0:31:26.110
drill, but I repeat it anyway. If you're[br]on Twitter, on Mastodon or on the
0:31:26.110,0:31:32.951
Fediverse in general, the hashtag is[br]#rc3cwtv to ask any questions. And if
0:31:32.951,0:31:37.600
you're in the hackint IRC, the channel[br]name is the same except there's a dash in
0:31:37.600,0:31:43.450
between the rc3 and the cwtv. And we[br]apparently already have some questions, so
0:31:43.450,0:31:46.412
I'll just get started now.
0:31:46.412,0:31:49.951
First question:[br]Is the Nextbike API free to use?
0:31:49.951,0:31:53.900
Does Nextbike even know [br]that you did this scraping?
0:31:53.900,0:32:00.020
Martin: Yes, so as far as I know, the[br]Nextbike API has been reverse engineered
0:32:00.020,0:32:05.553
from the iOS app and there's a Github repo[br]by ubahnverleih and he documents lots of
0:32:05.553,0:32:16.160
APIs of public transport companies like[br]Nextbike or some companies that also
0:32:16.160,0:32:25.060
produce the scooters. And since it's the[br]public, since it's the official iOS API,
0:32:25.060,0:32:29.805
it's more or less public, so to say, [br]it's free and it's pretty much quota unlimited
0:32:29.805,0:32:33.603
because normally all the iPhones [br]access it. But again, I can only recommend
0:32:33.603,0:32:37.077
the ubahnverleih repository [br]on that on Github.
0:32:37.077,0:32:39.826
Herald: And you don't need [br]any credentials to access it?
0:32:39.826,0:32:45.980
Martin: No. Actually, you can, as far as [br]I checked, you can pretty much access the
0:32:45.980,0:32:53.185
whole world. So you can access stations [br]in Poland in, well, all of Germany now.
0:32:54.145,0:32:58.682
Herald: That's cool. It's probably [br]accidental, but it's quite cool anyway.
0:32:58.682,0:33:00.400
Martin: laughs Yeah.
0:33:00.400,0:33:03.890
Herald: Ok. What software did you use for[br]the machine learning stuff?
0:33:04.124,0:33:07.209
Martin: The machine learning stuff [br]has been done with Python,
0:33:07.209,0:33:11.796
and then specifically with sklearn, [br]which is a quite popular machine learning
0:33:11.796,0:33:15.964
framework for Python.
0:33:16.565,0:33:20.443
Herald: The working horse of the machine[br]learning community, I would say.
0:33:20.443,0:33:22.380
Martin: Yes, exactly yeah.
0:33:22.380,0:33:26.907
Herald: Do you know if the Nextbike adds[br]or removes bikes from the stations?
0:33:26.907,0:33:31.442
Or do they relocate the bikes?[br]Or do… I mean, do they do that?
0:33:31.442,0:33:34.872
Or does it just happen [br]as an emergent behavior?
0:33:35.801,0:33:40.510
Martin: I would say that… [br]So, I had the chance to speak
0:33:40.510,0:33:46.159
with a person of Nextbike while[br]I was working for the Marburg-ASTA
0:33:46.159,0:33:51.310
and he said that first of all, it's not[br]not very technical yet. Well, not very
0:33:51.310,0:33:57.610
digitalized yet, and they essentially[br]drive around. So I'm pretty sure that they
0:33:57.610,0:34:01.300
certainly collect bikes that need[br]maintenance, but then logically,
0:34:01.300,0:34:03.937
logically, probably also [br]relocate them where necessary.
0:34:05.690,0:34:11.409
Herald: All right. OK, someone wants to[br]know if the scripts that you use would be
0:34:11.409,0:34:16.649
public? I assume the main part with the[br]API is already answered if you gave the
0:34:16.649,0:34:20.079
Github repo. But are you planning to open[br]source anything else?
0:34:21.058,0:34:26.204
Martin: Potentially so I have no plans on[br]doing so just because it's additional
0:34:26.204,0:34:33.129
work, to be honest. If you're… well, I[br]can just do the same, well offer the same
0:34:33.129,0:34:37.720
same thing as last year: Just write me an[br]email and if there's enough people who are
0:34:37.720,0:34:43.820
interested, I probably strip down to my[br]internal repository. But since in the
0:34:43.820,0:34:48.909
internal repository there are a few[br]private notes, that one is not published
0:34:48.909,0:34:49.849
for sure right now.
0:34:51.746,0:34:54.400
Herald: All right. Anything else?
0:34:55.401,0:34:59.144
Dear listeners, [br]you have maybe 30 seconds to comply.
0:35:00.102,0:35:04.203
So there's one question, about [br]the time period of data that you have,
0:35:04.203,0:35:06.430
but I think you answered it in the talk.[br]Right?
0:35:06.430,0:35:14.063
Martin: Yes, it's more or less whole 2020[br]and 1/2 to 2/3 of 2021 that I collected.
0:35:14.063,0:35:17.926
Herald: OK, so you're probably mostly has[br]like a pandemic situation?
0:35:17.926,0:35:20.448
Martin: Yes, exclusively.[br]Pretty much, yeah
0:35:20.913,0:35:25.429
Herald: I wonder if that's more or less [br]usage than usual. I mean, it's less people
0:35:25.429,0:35:28.880
having to go places, but more people [br]wanting to not use public transport.
0:35:28.880,0:35:31.793
Martin: Yes, so based on my data, [br]I can see that it's
0:35:31.793,0:35:36.440
the number of parked bikes and [br]therefore the usage is going down, so
0:35:36.440,0:35:40.300
the number of parked bikes is going up.[br]Therefore, the usage is going down and
0:35:40.300,0:35:45.841
that was also confirmed internally by some[br]Nextbike people. Now, one more thing, so
0:35:45.841,0:35:51.750
regarding the people who are interested in[br]the code, regardless of if I am going to
0:35:51.750,0:35:56.580
publish it or not, they if you have[br]questions, just drop me an email. I mean,
0:35:56.580,0:36:02.050
the writing, the scraper in particular,[br]it's it's absolutely trivial. And if it's
0:36:02.050,0:36:06.972
not trivial for you, then the code [br]wouldn't be of of value to you anyway.
0:36:07.854,0:36:14.125
Herald: All right. How does your data [br]interpret broken / unavailable bikes at
0:36:14.125,0:36:18.508
the station? I mean, can you see that? [br]Or do you take it into account?
0:36:19.031,0:36:21.780
Martin: Yes, so I don't see directly.
0:36:21.780,0:36:28.077
I mean, I have a list of of all the bikes[br]and if I would dig a little bit deeper,
0:36:28.077,0:36:33.320
I could probably, you know, compile a list[br]where I see where the bike, where a
0:36:33.320,0:36:37.535
particular bike is standing at the moment.[br]And if that bike would be, for instance,
0:36:37.535,0:36:42.170
absent for a for a longer time, I could[br]conclude that it's maybe broken,
0:36:42.170,0:36:46.880
maintenance, maintained or something like[br]that. But there's no direct data on that.
0:36:46.880,0:36:53.240
Herald: All right. Do you do you think[br]that Nextbike moving the bikes has somehow
0:36:53.240,0:36:56.990
biased your data. [br]Like if basically relocate them?
0:36:56.990,0:37:00.330
Martin: That's a good question. I have[br]absolutely no idea. So I mean, what I what
0:37:00.330,0:37:07.659
I did calculate was that, so I defined a[br]term that I, a term of activity,
0:37:07.659,0:37:13.180
I defined it as the number of bikes coming[br]in, divided by the number of bikes going
0:37:13.180,0:37:17.070
out, plus the number of bikes going in. So[br]it's so to say the activity and when
0:37:17.070,0:37:22.180
that number - it's obviously between zero[br]and one - and if it's far from zero point
0:37:22.180,0:37:26.820
five, that would mean that the station[br]runs empty essentially or overfills at
0:37:26.820,0:37:32.150
some point and there are a few stations[br]where it's a bit above zero point five.
0:37:32.150,0:37:38.781
But of course, that's only this well, the[br]the data that I used has all only the
0:37:38.781,0:37:43.700
moved bikes incorporated already. So it's[br]not really something that could be used
0:37:43.700,0:37:46.695
for really trying to find it.
0:37:47.505,0:37:51.597
Herald: Do you, I mean, is this just kind[br]of data also available for,
0:37:51.597,0:37:55.902
for bike sharing services [br]that don't have docking?
0:37:55.902,0:37:59.216
If they even exist still in Germany? [br]I kind of lost track.
0:37:59.216,0:38:01.704
I think maybe they [br]all went bankrupt, but of course…
0:38:01.704,0:38:03.591
Martin: What do you mean by docking?
0:38:03.591,0:38:07.100
Herald: By, you know, they don't have[br]fixed stations, but they are floating.
0:38:07.100,0:38:12.910
Martin: So I mean, all that I did was to[br]look at the stations, but actually there
0:38:12.910,0:38:16.560
are a few free standing ones also in[br]Marburg, and these people are typically
0:38:16.560,0:38:23.200
penalized, penalized by money, so they[br]have to pay, pay a fee. I didn't analyze
0:38:23.200,0:38:26.900
it at all. Would be interesting for sure.[br]And as far as I know, there are cities
0:38:26.900,0:38:32.805
where it's completely, well, there are [br]no stations for Nextbike,
0:38:32.805,0:38:36.070
where people can drop it off [br]wherever they like.
0:38:36.070,0:38:39.193
Don't quote me on that, it's [br]just something that I've heard.
0:38:39.193,0:38:43.040
Most likely in the large cities.[br]So maybe in Berlin could be.
0:38:43.040,0:38:47.674
Herald: Yeah, I think here there are like[br]some locations where you have to drop the
0:38:47.674,0:38:50.390
bikes, but that's, [br]I'm not sure if that's Nextbike.
0:38:50.390,0:38:54.640
I can never remember which ones[br]laughs I actually end up using.
0:38:55.550,0:39:01.650
All right, everybody. Now is your last[br]chance to ask more questions.
0:39:01.650,0:39:07.210
I feel like at Teleshopping, like the rC3[br]Teleshopping, which I highly recommend if
0:39:07.210,0:39:12.170
you haven't checked it out. It's probably[br]the peak experience at the remote Congress
0:39:12.170,0:39:16.790
is the Teleshopping channel.[br]And you should all have a look.
0:39:16.790,0:39:22.140
And maybe buy some… [br]some extremely useful items that they sell
0:39:27.295,0:39:31.880
Herald: OK, so the chat confirms that [br]Nextbike does have cities without stations
0:39:31.880,0:39:33.432
Martin: Ah ja ja, very good.
0:39:34.408,0:39:36.445
Yet, I mean, I can only…
0:39:36.445,0:39:41.612
if you're remotely interested in all[br]these public transport data studies,
0:39:41.612,0:39:45.749
definitely check out the [br]ubahnverleih Github repository.
0:39:45.749,0:39:49.382
There's a large number [br]of systems documented there.
0:39:49.655,0:39:54.610
Herald: OK, and that's just ubahnverleih, [br]just as you would write it.
0:39:54.610,0:39:58.130
Martin: Yes, let me look it up [br]very quickly, Ubahn…
0:40:02.579,0:40:07.710
Well, the person is from Ulm,[br]and he also contributed to the
0:40:07.710,0:40:13.993
CCC infrastructure. His name is[br]Constantine and yes, it's ubahnverleih.
0:40:13.993,0:40:18.260
And I think it's like, I think the repo[br]name name is WoBike, as far as I know,
0:40:18.260,0:40:20.440
Herald: All right. Good. Thank you.
0:40:22.880,0:40:29.000
Alright. I think we've managed to exhaust[br]the internet. So, people, where can they
0:40:29.000,0:40:33.220
find you have to have any further[br]questions? Are you going to be wandering
0:40:33.220,0:40:36.760
the remote, the world or what it's called?[br]You know the…
0:40:36.760,0:40:41.040
Martin: Well, that's a good idea. I[br]haven't planned, but I can. So I've no
0:40:41.040,0:40:46.140
idea how it works, but I'm sure I can[br]figure it out. So I mean, in general, drop
0:40:46.140,0:40:52.860
me an email and you can find my email on[br]lellep dot xyz. It's my website.
0:40:54.903,0:40:59.220
Other than that, I could be online [br]in the 2D world adventure now,
0:40:59.220,0:41:01.800
if that's of of value to anybody.
0:41:01.800,0:41:05.287
Herald: People can maybe hunt you[br]down if they really need to, you need to.
0:41:05.287,0:41:07.560
Martin: definitely ja.
0:41:07.560,0:41:12.024
Herald: OK, wonderful. Well, thank you for[br]your talk and for answering the questions.
0:41:12.024,0:41:16.617
And thanks everyone for tuning in.[br]Have a good remainder of Congress.
0:41:17.191,0:41:20.979
I think you should be able to at some[br]point rate talks in the Fahrplan,
0:41:20.979,0:41:24.853
if that feature still exists, so if you [br]want to see more of this kind of stuff,
0:41:24.853,0:41:27.444
maybe leave some feedback.
0:41:27.798,0:41:29.098
Bye bye.
0:41:29.588,0:41:30.585
Martin: Bye.
0:41:30.724,0:41:44.448
rC3 postroll music
0:41:44.448,0:41:52.239
Subtitles created by c3subtitles.de[br]in the year 2022. Join, and help us!