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!