RC3 preroll music Herald: Hello, everyone, welcome back to Chaos West TV. The next talk will start momentarily. I will now switch back to German for a few seconds to announce a translation. Then I'll switch back and then we'll go off to the races as they say So nochmal schnell auf Deutsch, willkommen zurück zu Chaos West TV, eure beste Bühne auf dem rc3. Der nächste Talk beginnt gleich er ist zwar auf Englisch wird aber wie so vieles dank unserer Übersetzungscrew auf Deutsch übersetzt. Ihr solltet in der Lage sein das im Stream einfach auszuwählen ohne größere Probleme und dann könnt ihr den Vortrag auch direkt simultanübersetzt auf Deutsch hören und ich rede jetzt auf Englisch weiter. Alright back to English. Now in the comfort of your own homes or wherever you're viewing the stream, please do a warm round of applause for our next speaker, Martin, who will talk about optimizing public transport. Let's go. Martin: Welcome to my contribution to this year's rC3 2021 in the form of this talk, Optimizing public transport: a data-driven bike sharing study in Marburg I would like to thank the organizers of the rC3 2021 for organizing the whole event. And in particular, I would like to thank the channel that accepted me Chaos West TV well for accepting the presentation of my work. Today I would like to give you a quick overview of one of my hobby projects in which I scraped and therefore downloaded over one million data points regarding the bike sharing system in the city of Marburg. This study came about when I was traveling from Stuttgart to Frankfurt and ultimately to Marburg some time ago, and I was watching the amazing SpiegelMining talk by David Kriesel. So thank you very much for this implicit inspiration of the work that you're about to see now. Who am I? My name is Martin Lellep, and I studied physics in the past, and actually, I continue to do so in the form of a Ph.D. in theoretical physics at the University of Edinburgh in Scotland and in my spare time I like to do data analysis of all kinds of data. There are two more things... There are two more things that are important for here now. It's first of all, I studied at the University of Marburg, obviously in Marburg previously, and then also I like to ride my bike. Marburg, for those who don't know it yet, it's a small, university dominated town that is in the north of Frankfurt am Main, roughly 80 kilometers. So an hour by car or an hour by train, approximately. And again, it's quite dominated by the university that is located there, and that can be seen simply in terms of, for instance, numbers. There are roughly 25,000 students for an overall population of 77,000 residents in total, which is quite substantial, obviously. You can see a quite popular picture here of a picturesque scene in Marburg. We can see the castle and then the river Lahn, as well as a few houses and a bit of green. And the bike rentals are currently provided at the time of recording this by the company called Nextbike. Before now diving into a bit more technical details, I would like to motivate my story or my study by the story of Anna. Anna is a university... is a university student at the University of Marburg, and she lives a bit outside the city, so she typically does not walk to the place that she needs to be or study at. But she takes the bus from her... from her flat to the university, to the city. And then does the last mile by walking or cycling or whatever. And she's also quite an eager student, so she very often studies quite late. As you can see here, that's a picture of late Marburg, so to say, and just as it happens now, she needs to catch a bus now because she's a bit late. She forgot to pack in her... her fancy MacBook in time, so she needs to hurry up a bit and, well, didn't really make it. So therefore, she thought maybe taking a Nextbike for the last mile to the bus station is a good idea so she can safely take then subsequently the bus home. And normally the bus… The Nextbike stations look like that here. So there are plenty of bikes. It's very easy to go there, grab a bike and go to your destination. Now Anna must be a very unlucky student today because she arrives at the bike station, and it turns out that the station is empty, so ultimately she misses at least this bus and therefore only arrives at home a bit later. Her cooking plans and her Netflix plans, all that stuff postponed a bit because, well, she arrives a bit later. And that's, of course, a very, very sad story, and maybe it happens to multiple people, not only Anna. And in fact, it also happened to me a few times, and every time it happened to me, I thought, well, I must be the most unlucky person in whole Marburg going to a normally completely fully packed bike station and now it's completely empty. Missing, for instance, subsequent public transportation. After it happened to me a few times, I thought, well, maybe I'm not that unlucky. So is there may be a system to empty bike stations in Marburg. And given all my my spare time interest of analyzing and capturing data, I thought, well, data to the rescue, of course. And therefore, the idea for this talk now was to build a web scraper in order to acquire Nextbike data. Collect the data, store the data, analyze the data and then hopefully finally help Anna, me, and other students to figure out which stations maybe to avoid and which stations are safe to go to if you're in desperate need for a bike. The tech stack that I'm using here, it's based on a Docker container in which a python scraper runs every 30 seconds that queries the Nextbike API. It downloads the data, it parses the data, and then saves the data outside the Docker container in order to be evaluated later on. And it turns out that the whole concept of what I just described also has a name. It's called Extract, Transform, Load Pipeline or ETL in short. And what I again wrote here is an ETL pipeline in Python, and then I wrote an analysis code also written in Python and all that was running on a small home server in my flat. The data that I captured consists of the bikes identified through IDs and then also the locations of those bikes, typically at stations, but some of them were also freestanding and last but not least, the station locations, and of course, obviously also a list of of stations. And then with it, I went ahead and did a few pictures that I'm about to show now and a few analyses. And if you're interested in that and there are slides available on this website here, the website can be read through the QR code or through that link and this website contains the slides that you'll see in here, high resolution figures, a few interactive figures and all the information on the previous blog articles that I wrote about this topic. So the results of Anna, first of all, to start slowly. It turns out that there are 37 bike stations in Marburg, with roughly 230 bikes spread across the whole Nextbike Marburg ecosystem. And it's now, well, knowing that there are roughly 40 stations, it's quite interesting to see where these stations are, because then Anna could, for instance, already go to another station if one station is empty. And what you can see here is now a map of Marburg, where the stations are annotated by these dots. And the area of the dot, as well as the color code, corresponds to the average number of parked bikes at that station. So let's see an interactive version because it's a bit nicer to see it in that way. So I click on here. Alright. OK, now we can pan around and zoom as you can often do with these interactive graphics and also by clicking on these buttons or on these these points, you can see the station name, as well as the average number of bikes placed there. And becomes quite obvious that, well, most of the stations are in the central part of the city, a few in the outskirts here. And it turns out that the largest station in terms of the number of parked bikes on average is the main train station Hauptbahnhof. There are again a few more spread around the central part of the station, such as the Elisabeth-Blochmann-Platz, which is the second largest station. And then if you continue the train line here, you can see that there's actually another set of stations, where the secondary train station is. So that's another train station, smaller train station. OK, so the first results for Anna would then be a day-hour usage histogram, because it's the kind of the first order approach, I would say, in order to see how the ecosystem of Nextbikes is in use against day as well as hour. And therefore Anna will based on this figure here, she will understand when to maybe plan for a bit more time when looking for a bike in a desperate fashion. And since this figure is a bit more difficult to understand, I would like to take a moment to explain it and we are going to start with the top figure here. What you can see on the x axis is the hour of the day and on the y axis, and that's shown in the whole figure. So each of the the numbers that you see is the following: it's the average. And well it's the number of parked bikes and then you subtract the average of the number of parked bikes in the whole ecosystem of Marburg. So that means if a number of zero is encountered like roughly here, it means that the average number of parked bikes simply in the system at that point in time. When the number is larger, it's above the average, if it's smaller, it's below the average. And you can clearly see from this small figure here already that in the morning, more bikes are typically parked. And then in the evenings or around noon, you can see two dips, a bimodal distribution so to say. Where people, well, obviously use bikes around noon and six p.m. roughly where these used bikes, of course, are not parked, and therefore these numbers are smaller. And the same thing can be done for the day of the week. Here and here you can see that the Monday, well, the beginning of the week and the end of the week, meaning Monday, Tuesday and Saturday Sunday are a bit more popular, so more people ride a bike and therefore fewer bikes are parked and therefore this is negative. And then in the middle of the week, fewer people seem to ride the bike, the bikes in general. And if you combine these figures now, you can see the the joint histogram here, where you can not only look for time or day separately, but also in a combined fashion. So you would, for instance, see that Monday morning is the time where many people use bikes because they are not as many bikes parked. And then also on a Saturday, you can see the same, so around afternoon many people seem to use the bikes. Last but not least on Friday mornings, it's quite easy to get a bike because many bikes appear to be parked, maybe because people envision already the weekend. So that's the first outcome for Anna. Well try to avoid times around six and around noon when desperately looking for bike. And although even more interesting part for Anna is the probability to find a specific station to be empty. For that, I took the time series of the number of parked bikes and counted the occasions where there was no bike for each of the stations here. And that has been done again for each station separately, so for each station, at the end of the day, you get a number that denotes the probability of finding that station empty. And clearly, for instance, the Hauptbahnhof, the main train station, which was the largest station. It's quite unlikely to find it empty, and contrary, if you go to these stations down here, for instance the Am Plan / Wirtschaftswissenschaften it turns out that these are empty at about 70 percent of the time, which is quite substantial, I would say. And interestingly, if you now look for the the secondary train station in Marburg, the Südbahnhof, you can see that this has quite a substantial probability of running empty at about 30 to 40 percent. In particular, in comparison to the main train station, which is essentially almost never empty. Also interestingly, you can then plot these probabilities against the average number of parked bikes at the station and you find an antiproportional relation between those two. It means that the larger the stations, the more unlikely it is that it's empty, which is quite a reasonable outcome, I would say. So finally, to conclude for Anna, she should try to avoid small stations and in particular, she should try to avoid the stations that are well, annotated here with the sad smiley, because these tend to run empty quite often. OK, so I have all this ETL pipeline stuff already set up, I have collected over a million data points and then I thought, well, maybe there's more in the data then only helping Anna. So everything that I've shown you so far, it's from the perspective of a user. And now I would like to turn to what's the perspective of a city. And there I would like to ask a few questions, like… How is Nextbike used in Marburg? first of all, and then, in general, Is cycling a good thing for a city? How can, or, Can cycling contribute to a better city? And now–better is of course first a quite vague term–and then last, but not least, is it worth improving bike infrastructure for a city? And all this again, is now from the perspective of a city instead of a user. The first thing that I would like to start with is something that I call the distance matrix in which I concentrated on the positions of the bike stations and computed the pairwise distances for all of them. And since the distance is, of course, symmetric, also the stored matrix is now in the end also symmetric. And, It turns out that there are roughly 600 combinations, and these combinations can be shown in a symmetric matrix, as shown here, where on the x axis this one here and the y axis you can see the stations and then each combination denotes the distance between that one station and the other station. It turns out that the range of these distances is between zero and roughly nine kilometers. And of course, those that have a zero distance to other stations are essentially the… the stations themselves. So if you pick a station, obviously the distance to itself is zero and therefore the diagonal is exactly zero. And then again, all the remaining part is a symmetric copy of the other diagonal part. The other thing and that is now the main treasure, I would say of this study, so the main base for everything that follows is what I call the transition matrix, where I counted the number of transition of bikes from one station to the other station. That is now, of course, not symmetric anymore because just because, say, five bikes go from one to the other station, it does not mean that these five bikes really come back again. And therefore, the number of entries is roughly 1400. Again, it can be shown or visualized in the same fashion. So you again have the stations on the one axis and the same stations on the other axis, and now each entry here in the matrix corresponds to the number of transitions of bikes from one to the other. And the range is from zero to over 3000. And it turns out that actually the self transitions, meaning somebody takes a bike from a station, does something with a bike, maybe grocery shop, grocery shopping or so, and then the person comes back to the same station. These events occur the most frequent and therefore the largest entry are on the diagonal, typically. Sometimes it is not so interesting what happens regarding the self transitions and therefore another matrix can be derived from the first one, namely a transition matrix without diagonal elements where those elements have been set to zero as you can see here, if you look closely. Speaking of looking closely, it's quite educational if you not only see the figures, but also can explore them a bit, and therefore I rendered an interactive version of it. Let's... let's visit it. So that's now again, the matrix without the diagonal and one with the diagonal. And now by hovering over these entries so you can see that, for instance, from Am Schülerpark to Ockershäuser Allee zero transitions happened. And then a bit larger one, for instance, Biegenstraße to Hauptbahnhof over 800 transitions happened in the time of capturing the data. So feel free to explore a bit, maybe identify the most, most interesting, most used popular routes. Ok, such a transition matrix can actually also be shown as a network graph where here I concentrate only on the largest entry because it turns out the full transition matrix is a bit too dense. And what is shown out here is as blue circles, it corresponds to a station and then these edges here are drawn whenever there happens a transition. And you can already see here that there are a few stations that are quite isolated, like those and then many stations have a self transition and mostly feed to a more central station. And since that is also more interesting in an interactive fashion, I also rendered an interactive version of that. Now again, we can zoom, pan around and drag the graph around a bit. And interestingly, if you click on a station, you can see from where transitions happen to that station. So like those interconnected central ones, like the Hauptbahnhof, the main train station, it's quite connected in the graph. And then there are a few like Friedrichplatz which are not connected at all. Interestingly, that one here, for instance, the Cafe Trauma/Aföllerwiesen it doesn't even have a self connection. So it turns out that, well, people apparently mostly use it for taking a bike going into the city. And most dominantly, the Elisabeth-Blochmann-Platz, actually. OK, so if you now take these transition matrices, as well as the distance matrices into account and mix them, first of all, you can get a few interesting numbers. So here I calculated the overall number of trips, which turned out to be 210,000 trips in the time of capturing the data, which is quite some essential number for such a small city like Marburg. And this is, of course, computed by taking the sum of the transition matrix elements. And then if you weigh these sums or these entries with the distances between those stations, it turns out that those transitions or those trips essentially correspond to a distance of 320,000 kilometers that have been traveled, which is a few times around the Earth actually. Now, when these two basic numbers and the the matrices that I introduced earlier are combined with a few statistical details – like, for instance, the average consumption of fuel of a car or how much CO2 it produces while driving – a few ecological, economic and social benefits of a bike system or cycling in general can be derived. First of all, I found it quite entertaining that the overall number of calories burned corresponds to 8.6 million kilocalories. And to convert that to a bit more, well, real life number, I would say I calculated how many Nutella jars those are, and it turns out that it's roughly 4,000 Nutella jars that have been burned in terms of calories just by this system of cycling. And then also, it can be found that this distance here, if you would have driven it by a car, you would have, well, used almost 26,000 liters of fuel. You would have produced 40 tons of CO2. And that fuel that you would have bought would have cost 34,000 €, actually. Interestingly, that number here of 40 tons of saved CO2 corresponds to an average German who lives for 4 years or 4 Germans that live for one year. So a typical German produces roughly 10 tons, and therefore it's four times that, obviously. Ok, so again, from the transition matrix, you can derive a few more interesting details like, for instance, details that are interesting from the perspective of traffic management. Like, here I calculated the most popular routes by finding the maximal elements of the transition matrix. And it turns out that the most popular route has been used well over 2000 times a year from the Hauptbahnhof to the Ginseldorfer Weg. And if you look closely, you can see that the main train station or the Hauptbahnhof, as well as the Elisabeth-Blochmann-Platz is involved in many of those top row routes. And that's now again interesting. For instance, if a city would like to improve the bike system because we've now seen it has quite a good impact for social, ecological, and economical aspects. But let's say the the city has maybe limited financial resources. It would be interesting to simply calculate the most popular routes, and then start fixing or improving them first. OK, now at that point, you might ask yourself, Well, what kind of data did he scrape? And for that, I would like to show you this graph. It shows the number of parked bikes in the whole ecosystem of Marburg against time. And as you can see, I did it in two batches. The first one has been obtained from March to December 2020. So last year. And then I restarted the scraping at the end of April and finished just a few days ago in December 2021. And you can clearly see that the number of parked bikes decreases when the weather is good or when there are summer months and therefore most likely because the weather is good. And of course, it suggests itself a bit given that I captured this in 2020 and that one year in 2021 and taking the corona pandemic into account. Well, how does it compare? And therefore, I concentrated on the overlapping month of the two data sets and calculated, well, the comparison, as you can see here. Now in blue, it's 2021 this year and 2021, sorry 2020 is shown in red. And you can see that the number of parked bikes increased actually. There might be a multitude of explanations for that. I don't know. Maybe one explanation could be that people took more advantage of working from home. OK, so everything that I've shown you so far, it's been mostly statistical statements, averages, sums and stuff like that, and now I was interested if it's possible to do also more precise predictions. And therefore I turn towards a machine learning or artificial intelligence task where I predicted the num… where I tried to predict the number of parked bikes, meaning the quantity that I've shown over and over again in the in the last few minutes. So is it possible to predict that number based on the hour of the day, the weekday and the temperature that is shown here for 2020? And when starting such a task, it's always, first of all, very useful to investigate the training data. And therefore well I try to plot it. And And because it's a three dimensional face space, it's also very simple to plot it. So you can essentially plot it as a scatterplot. And the color coding here has been chosen to denote the target variable, meaning the number of parked bikes. And just by inspecting the data, you can already see that the smaller the temperatures are, the fewer… sorry, the more bikes are parked and therefore the fewer bikes are used. I use a random forest machine learning model, which consists... which is an ensemble model of decision trees, of randomized decision trees. And this model is quite powerful because it can work with little data. It can work with a lot of data, and it's also very flexible. If you would ever like to extend the face space, like maybe it would be interesting to see if one could predict the number of parked bikes given a bank holiday or given weekend. And all these aspects could be added to the random forest relatively easily. And that's now the outcome: So I show the measured data, well that's been data that hasn't been seen by the model before, and I show that data here and then the densely covered, face-based prediction of the machine learning model here. And you can see that the color trends, they correspond quite well to each other. Like you can, for instance, see the smaller numbers or larger parked numbers in the regime of small temperature and also from a quantitative perspective, the prediction is quite decent as the square root of the mean squared error corresponds to a roughly a tenth of the average value of the parked bikes. Which, again in this context is quite a decent prediction performance, given how naive the approach was in general. OK, I did a bit more on machine learning, but I'm not showing that here. I calculated the Markov steady state for the same data essentially. And if you're interested in that, well, feel free to check out this link here. OK, last but not least, I would, of course, like to come to the summary for Anna, me, and maybe other students. So first of all, what I did was to scrape Nextbike data in Marburg in order to find, which stations to potentially avoid when you're in desperate need for a Nextbike. And for that, I calculated the probabilities of empty stations and found that the larger the station, the less likely it is to run out of bikes. So the general recommendation from my side would be: try to find larger stations if you're in desperate need for an Nextbike. And feel free to go back to the interactive map to see the the locations of these stations, which is quite interesting in itself, I would say. And then I turned towards the perspective of a city, and investigated a bit the usage patterns of Nextbikes and therefore representative most likely also cycling in Marburg, where I calculated the day-hour usage. So when is the system quite busy and generally the most popular routes, which might be of use for city planning and also social, economical, and ecological benefits of the whole system. Last but not least, I showed that more precise predictions are possible when maybe a statistical statement is not enough and you would like to do per case predictions. Last but not least, I was fortunate enough to work with AstA Marburg. In particular, Lucas and David, thank you very much for your trust in that project where we try to optimize the placement of the bikes in the future. The take home messages are now, first of all: Bikes are amazing! And not only are they amazing for you and the environment, but also for your wallet. So you save essentially money on gas. And also, I would like to, well, highlight that those data-driven optimizations of public transport have the potential to, well, increase the life, the quality of life of many of us at moderate cost. So again, I would like to come back to a case where maybe a city would like to improve bike infrastructure that doesn't have enough money to do it in one go. So then it might be interesting to first find–in a data-driven way–which combinations of, now in Nextbike terms, maybe stations or in general streets are popular, and then these might be worth being fixed first with a limited budget. OK, if you're interested in more, I was very fortunate to be able to speak at the last rC3 already about data in Marburg, but last year I spoke about parking in Marburg. If you like to, well, read the blog articles corresponding to that or just see the official CCC video, just follow these links shown here. Thank you very much for your attention. If you have anything to get in contact with me, reach out to my e-mail address. Maybe some ideas on how to improve a talk or what else to evaluate. And then all the supplementary materials that I mentioned, and what I've shown here, can be found again on this link here. In particular, thank you very much to all the people who reached out to me based on my last year's talk. I haven't come about to respond properly, but I'm 100 percent certain that I will do so. Thank you very much for your attention, and have a good year. Herald: Alright, welcome back. It's time for the Q&A now. You probably know the drill, but I repeat it anyway. If you're on Twitter, on Mastodon or on the Fediverse in general, the hashtag is #rc3cwtv to ask any questions. And if you're in the hackint IRC, the channel name is the same except there's a dash in between the rc3 and the cwtv. And we apparently already have some questions, so I'll just get started now. First question: Is the Nextbike API free to use? Does Nextbike even know that you did this scraping? Martin: Yes, so as far as I know, the Nextbike API has been reverse engineered from the iOS app and there's a Github repo by ubahnverleih and he documents lots of APIs of public transport companies like Nextbike or some companies that also produce the scooters. And since it's the public, since it's the official iOS API, it's more or less public, so to say, it's free and it's pretty much quota unlimited because normally all the iPhones access it. But again, I can only recommend the ubahnverleih repository on that on Github. Herald: And you don't need any credentials to access it? Martin: No. Actually, you can, as far as I checked, you can pretty much access the whole world. So you can access stations in Poland in, well, all of Germany now. Herald: That's cool. It's probably accidental, but it's quite cool anyway. Martin: laughs Yeah. Herald: Ok. What software did you use for the machine learning stuff? Martin: The machine learning stuff has been done with Python, and then specifically with sklearn, which is a quite popular machine learning framework for Python. Herald: The working horse of the machine learning community, I would say. Martin: Yes, exactly yeah. Herald: Do you know if the Nextbike adds or removes bikes from the stations? Or do they relocate the bikes? Or do… I mean, do they do that? Or does it just happen as an emergent behavior? Martin: I would say that… So, I had the chance to speak with a person of Nextbike while I was working for the Marburg-ASTA and he said that first of all, it's not not very technical yet. Well, not very digitalized yet, and they essentially drive around. So I'm pretty sure that they certainly collect bikes that need maintenance, but then logically, logically, probably also relocate them where necessary. Herald: All right. OK, someone wants to know if the scripts that you use would be public? I assume the main part with the API is already answered if you gave the Github repo. But are you planning to open source anything else? Martin: Potentially so I have no plans on doing so just because it's additional work, to be honest. If you're… well, I can just do the same, well offer the same same thing as last year: Just write me an email and if there's enough people who are interested, I probably strip down to my internal repository. But since in the internal repository there are a few private notes, that one is not published for sure right now. Herald: All right. Anything else? Dear listeners, you have maybe 30 seconds to comply. So there's one question, about the time period of data that you have, but I think you answered it in the talk. Right? Martin: Yes, it's more or less whole 2020 and 1/2 to 2/3 of 2021 that I collected. Herald: OK, so you're probably mostly has like a pandemic situation? Martin: Yes, exclusively. Pretty much, yeah Herald: I wonder if that's more or less usage than usual. I mean, it's less people having to go places, but more people wanting to not use public transport. Martin: Yes, so based on my data, I can see that it's the number of parked bikes and therefore the usage is going down, so the number of parked bikes is going up. Therefore, the usage is going down and that was also confirmed internally by some Nextbike people. Now, one more thing, so regarding the people who are interested in the code, regardless of if I am going to publish it or not, they if you have questions, just drop me an email. I mean, the writing, the scraper in particular, it's it's absolutely trivial. And if it's not trivial for you, then the code wouldn't be of of value to you anyway. Herald: All right. How does your data interpret broken / unavailable bikes at the station? I mean, can you see that? Or do you take it into account? Martin: Yes, so I don't see directly. I mean, I have a list of of all the bikes and if I would dig a little bit deeper, I could probably, you know, compile a list where I see where the bike, where a particular bike is standing at the moment. And if that bike would be, for instance, absent for a for a longer time, I could conclude that it's maybe broken, maintenance, maintained or something like that. But there's no direct data on that. Herald: All right. Do you do you think that Nextbike moving the bikes has somehow biased your data. Like if basically relocate them? Martin: That's a good question. I have absolutely no idea. So I mean, what I what I did calculate was that, so I defined a term that I, a term of activity, I defined it as the number of bikes coming in, divided by the number of bikes going out, plus the number of bikes going in. So it's so to say the activity and when that number - it's obviously between zero and one - and if it's far from zero point five, that would mean that the station runs empty essentially or overfills at some point and there are a few stations where it's a bit above zero point five. But of course, that's only this well, the the data that I used has all only the moved bikes incorporated already. So it's not really something that could be used for really trying to find it. Herald: Do you, I mean, is this just kind of data also available for, for bike sharing services that don't have docking? If they even exist still in Germany? I kind of lost track. I think maybe they all went bankrupt, but of course… Martin: What do you mean by docking? Herald: By, you know, they don't have fixed stations, but they are floating. Martin: So I mean, all that I did was to look at the stations, but actually there are a few free standing ones also in Marburg, and these people are typically penalized, penalized by money, so they have to pay, pay a fee. I didn't analyze it at all. Would be interesting for sure. And as far as I know, there are cities where it's completely, well, there are no stations for Nextbike, where people can drop it off wherever they like. Don't quote me on that, it's just something that I've heard. Most likely in the large cities. So maybe in Berlin could be. Herald: Yeah, I think here there are like some locations where you have to drop the bikes, but that's, I'm not sure if that's Nextbike. I can never remember which ones laughs I actually end up using. All right, everybody. Now is your last chance to ask more questions. I feel like at Teleshopping, like the rC3 Teleshopping, which I highly recommend if you haven't checked it out. It's probably the peak experience at the remote Congress is the Teleshopping channel. And you should all have a look. And maybe buy some… some extremely useful items that they sell Herald: OK, so the chat confirms that Nextbike does have cities without stations Martin: Ah ja ja, very good. Yet, I mean, I can only… if you're remotely interested in all these public transport data studies, definitely check out the ubahnverleih Github repository. There's a large number of systems documented there. Herald: OK, and that's just ubahnverleih, just as you would write it. Martin: Yes, let me look it up very quickly, Ubahn… Well, the person is from Ulm, and he also contributed to the CCC infrastructure. His name is Constantine and yes, it's ubahnverleih. And I think it's like, I think the repo name name is WoBike, as far as I know, Herald: All right. Good. Thank you. Alright. I think we've managed to exhaust the internet. So, people, where can they find you have to have any further questions? Are you going to be wandering the remote, the world or what it's called? You know the… Martin: Well, that's a good idea. I haven't planned, but I can. So I've no idea how it works, but I'm sure I can figure it out. So I mean, in general, drop me an email and you can find my email on lellep dot xyz. It's my website. Other than that, I could be online in the 2D world adventure now, if that's of of value to anybody. Herald: People can maybe hunt you down if they really need to, you need to. Martin: definitely ja. Herald: OK, wonderful. Well, thank you for your talk and for answering the questions. And thanks everyone for tuning in. Have a good remainder of Congress. I think you should be able to at some point rate talks in the Fahrplan, if that feature still exists, so if you want to see more of this kind of stuff, maybe leave some feedback. Bye bye. Martin: Bye. rC3 postroll music Subtitles created by c3subtitles.de in the year 2022. Join, and help us!