We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Collaborative mapping without internet connectivity

00:00

Formal Metadata

Title
Collaborative mapping without internet connectivity
Title of Series
Number of Parts
266
Author
License
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
This talk is about a prototype that enables collaborative mapping without the need of any internet connectivity, only a local network is required. It runs fully in the browser, hence is cross-platform, it basically runs on any smartphone. The users form a peer-to-peer network in order to exchange their data. It can be used in situations where there either is no internet infrastructure, it's spotty or it was destroyed. In the disaster response case, only a local network, without any server infrastructure, would be needed. In the talk you'll learn about content-addressing, WebRTC and peer-to-peer networks and of course experience a live demonstration of the prototype.
Goodness of fitPresentation of a groupInternetworkingBitComputer animationXMLUML
Asynchronous Transfer ModeLatent heatDomain nameIP addressProjective planeInternetworkingProduct (business)TelecommunicationMusical ensembleSeries (mathematics)VideoconferencingSoftwareBitLink (knot theory)Food energyContent (media)Communications protocolAndroid (robot)Form (programming)Peer-to-peerSocial classUniqueness quantificationXMLUMLComputer animation
Key (cryptography)Service (economics)Public key certificateWhiteboardComputer animationMeeting/Interview
TouchscreenInclusion mapCore dumpNumberUniform resource locatorWeb applicationTouchscreenComputer fileRight angleSeries (mathematics)Multiplication signServer (computing)AreaLibrary (computing)Musical ensembleForm (programming)Real numberTelecommunicationComputer animationXMLUML
Musical ensembleMeeting/InterviewComputer animation
Musical ensemble
Network topologyDew pointConnected spaceMusical ensembleMathematical analysisForm (programming)PasswordTouchscreenGodProcess (computing)Cartesian coordinate systemLatent heatMereologyArithmetic meanWeb browserType theoryPlastikkarteProduct (business)Slide ruleBitKey (cryptography)Row (database)Right angleDifferent (Kate Ryan album)Computer animationProgram flowchart
PolygonControl flowXMLComputer animation
MereologyLevel (video gaming)SynchronizationComputer animation
Musical ensembleAreaMathematicsMereologyIdentifiabilityScheduling (computing)CodePeer-to-peerData structureAddress spaceCommunications protocolElectronic mailing listRootComputer animation
InternetworkingVirtual machineNetwork topologyComputer animation
Personal digital assistantGame theoryVideo gameDependent and independent variablesMusical ensembleDigital photographyTouchscreenSpectrum (functional analysis)Standard deviationRouter (computing)QR codeAreaCASE <Informatik>Web browserSoftwareCross-platformConnected spaceRoutingLimit (category theory)Local ringInternetworkingPort scannerSpacetimeRight angleSynchronizationComputer animation
Multiplication signMusical ensembleComputer animationMeeting/Interview
Musical ensembleUniverse (mathematics)Program flowchartComputer animation
Electronic data processingUMLComputer animation
Transcript: English(auto-generated)
Hello everyone. So this will be an interactive talk. So everyone can participate in this on their mobile phones. And so, as a little bit of a talk, you can have several steps, which everyone often takes.
And so I'll do the presentations on the first something and sometimes do the things. So, first of all, switch over to the internet, because this presentation is about the activity without internet. And then you can go to Wi-Fi. So I brought them on Wi-Fi so that all this works. So please switch off the internet, because that helps you with the problems with the domain dissolving and so on.
So, yeah. So, click the BMX and Fonzo G Wi-Fi. It works best with Android phones, but iPhones should work as well. Okay, that's the first step. Now I've got to introduce myself. So, I'm Fonzo. Yeah, I first started with the OSU about 15 years ago.
I love offline first things, which is kind of like also similar to what this talk is about. And back then I did a little bit of energy talk to me. And these days I work for protocol X, and you might now form projects like IPFSI, P2P. So it goes from this product up. You learn about RTC, you learn about content processing, P2P networks.
You get a glimpse into IPOD, and I think that's also the least I see so far, because it's a lot of things to cover. And, of course, we get excited about it. I bring a class with lots of unique features. Alright, the next step for you is go to this IPFS.
It's said that it's just an IPFS, but I can give a whole talk about why I can't give it for my name and so on. So, if you want to hear about it, my name is Fonzo. What you said, which you connected. And BMX. And what you then should see is, like, you can talk a lot through here, so that people can follow and see if they did the right thing.
So it should... They will also ask you for your... So first listen, this is also difficult. So you need to accept, yes, it is secure, a trusted person. And then you also need to accept the camera, because now you need to scan through IPods. I mean, who doesn't miss to scan through IPods all the time?
What's the last number? And this is 50. That's a big board. So it's 492-168... Oh, I didn't put that in. Yeah, I'm sorry. And then you will get a screen and basically don't start scanning it, because this will be the next step.
Alright. So I hope, yeah, I used to go on, but yeah, I can also ask the other people if it does any work. So the core part, one concept of this is common diversity. So what does common diversity mean? And I start with the opposite thing, which is the location diversity.
So location diversity means what you are all used to on the world web app. So you say, I go to a server slash some URL, and this is where that is. So the common diversity is you ask about which area you want. So it's just an identifier, and you don't care about where this data comes from. And this is basically where all this comes in, because once we are connected, what we will do is,
we will just say, oh, I want this data. We get it from someone. We don't actually know who it is, but we will just get it from someone. And that's done with the LED files that are basically by actual data, or also sometimes known as checksum. And the advantage is this.
So a real-world example is what I expect is, a real-world example is, if I say I want a book, I give a recommendation about a book. I give you the IPN number, and you really can get the library by online. The series can tell you the IPN number is common diversity.
In the location, that's what it would be. I tell you, oh, I love this book. It's in my hometown, in the library, on the second floor, in that shelf, the third book. And this is basically the problem with location diversity. If the book is not there, you don't know which book I was talking about, or it's the wrong book, and you don't know that it means another book.
So the end is the advantages of common diversity versus location diversity. All right. Now we get to the first difference in time. So we are scanning each other. And some notes there. So you always need to scan one person, and the other person needs to scan you. So this is your one-to-one relationship.
And, yeah, I will do this. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end.
This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end.
This is the end. This is the end. This is the end. This is the end. This is the end.
This is the end.
This is the end. This is the end. This is the end. This is the end. This is the end.
This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end. This is the end.
This is the end. This is the end. This is the end. This is the end.
This is the end. This is the end.
This is the end. This is the end. This is the end. This is the end. This is the end. The important part here is that it's based on the offer that was sent. You create an answer. Then you send the answer back. Because it's the answer and then the browsers connect to each other.
Now you might wonder, like, that's not what we were doing. We were just going through our code, scanning each other, and it worked. This is the most work. And so what we're doing here is we're really just scanning each other, connecting each other, and this is established. So it's kind of different from what I just said. And this is what's called Manji.
It's outside of the standard, but it's supported by all browsers, because it used to be possible before it wasn't offered to standard, so they still have to support it. But that's also the reason why it sometimes doesn't work, because it also has a specification. So what Manji means is you take the dynamic data, like the IP address, and then reconstruct
the data that you want to send, usually if you do it by the standard, and then just fill it out, and you don't need. I won't tell you if you won't need this on the next slides. So what we do here is we have those records, and as you see, they are relatively small,
because they only contain the data that we actually need, and not all of the other stuff that usually you need forever to see. So what else do we do? So what we do is Alice and Bob create only a bunch of records. So because we've got this also about passwords and usernames, we just get a hard product. So the application just has both a username and a password, and they all use the same one.
Then we scan each other with the information, and on Alice's side, based on the information, Bob would have given, if he would, a spec complaint, he created the answer,
and processes the answer. What Bob does on the other side is he matches the offer. So he knows what the offer would have looked like if Alice would have sent it to you, creates the offer, and then processes the offer. Once that is missing, because he must have offered the answers, he then creates the
answer, the same one as Alice created by her own. So it's really the exact same advice. But as you can see, they work completely separately independently. And this way, you can basically just scan a phone, click on connect, and it works.
One problem we have here is, and as you see in this workflow, Alice and Bob do different things. But how do we distinguish between, like, if I scan, let's say, this guy, and we scan each other, who is Alice and who is Bob? How do we determine it? So what we do with this, I create two connections.
One is kind of like the Alice type connection, and one is the Bob type connection. And then we decide which one to use by an ID we create. So in the background, there's a little bit of key running, which I created for the writer. And you get a new ID. And so if the ID from your own phone is bigger than from the other phone,
you are going to Alice, click the Alice card, and click the smaller, the other Bob card. And this way, you basically have two different phones, and they can create the connection. All right. Now I need to show this one on the screen. I hope it still works.
So I click on that. So sadly, you can still have it. So you click on that. And you see here the, like, snap. You can guess what it is. Yeah, so.
And I just zoomed it somewhere. And then I keep on drawing. Then I can draw. So it's intact. And so that works. And then you can just draw. So it's intact and gray. And you can draw, like, some nice polygons.
It could be due to my phone. So just let me see what happens. So, okay. And now, And now comes the most exciting part. And hopefully it works at least with one more person.
So now we click on sync features. Okay. Okay. I will also click on sync features. Let's see. Let me zoom out. Click on sync features. So now, there should be features showing up on the map.
Okay. Let's pause a little bit. So just imagine now, features were popping up everywhere. Everyone in the room. Isn't it exciting? So those were the features.
They popped up everywhere on the map. And, yeah. So this is how it should work. And the nice thing is you can then delete features. And sync is nice again. The old features will then disappear. Alright. So that was the sync feature stuff.
I'll quickly go into, like, how this data actually goes the background. And eventually I'll use some technology. So one thing is about, like, how is the data structured and how you get to those things. So I think what IKEA leads, that's what IKEA, they're interplanetary data.
But I would just say it's about code that addresses structured data. It's basically just JSON, but it can also store binary data and links. I can't tell you this data. That's an important part. So you can see, first of all, here's JSON that I called in. Then you would get a CID. CID means code that addresses the identifier. This is what I mentioned earlier.
This is just the actual data. And this is how you can then delete the features. Every such feature has such a CID name. And then, once you get all those features together, you will then create an array of those features. This is how the data structure works. And then, you will select it to be another protocol for
where you need to publish this entire feature. So what you do is, you create from this array of CIDs, you treat it again like, kind of like JSON-like array for me, and create a single schedule of it. And this is what you then publish to everyone.
So this is what, if I would have worked this, if I click on sync, I say to everyone, oh, I have this new CID, this new identifier, please check it out. And those, everyone would then check out the CID and say, oh, I want to get all those features. And this is again about, for the dressing, you would just say,
I want this identifier to get it from someone. So ideally, you would have put a long chain of peers in a root platform, someone automatically needs me. And finally, you want to store all the things. So locally, what I'm trying to do is load. And you would then request the data.
And the nice thing, again, about the dressing is, if you already have the data locally, you would request it again. So it's kind of like more than that effectively, because if you have the data already locally, you're able to load. You don't need to do that again. So let's say, for example, someone changes the data, he needs features. And it says, oh, I have a new list of features
where you have them already, all of others, all the other features, you would just get them locally, and you probably don't transfer any additional data. So the last step would have, would is,
is, for sure, I'm going to try it at the end. So now, what I also have an apology, if you go back, and then into an apology, so what you see here is, so this is basically to my machine. It's connected to my phone,
and probably it could be now, so basically a feed is connected. So I feel like this could be like the whole room connected to everyone. Yes. So quickly about the limitations.
So it works only when you're out in the same network. It doesn't work if you're kind of like, you know that there are some switches in between. You need to be in the same IP space, kind of. And there's a problem with the Safari. Sometimes it works, sometimes it doesn't work. I've had it working in the past.
And the same people also, it's really not possible to be in the same network. You see this, and it's getting back what it is it was. So any people that would want to know this, basically I can feel awkward, and then five people scan this feel awkward, and then the next person scans five people, and so on. This thing doesn't work. This is in case you don't understand that.
But there is work on it, and it might be possible. So my guess is, is that if the standards body agrees on it, it takes about five to 10 years, and it's really useful to browse this way. We'll see. So perhaps we see each other again in 1033, and we'll use the demo,
and we'll be running very soon. The chances, so why are we doing this? I mean, it's a prototype, but the interesting thing is it's really cross platform. We just need a browser. And everybody's a browser, so we don't need a flashlight for it. And Wi-Fi is way easier to set up than internet connectivity. So I see in the disaster response use cases,
where you basically have no infrastructure at all, and it's just easy to place a router there, a router there, and just connect the people. It will then go out on the field, connect the data, go back, click the sync button, and get it there. And then there's someone at home, goes home, then there's internet connectivity,
and it's pressed with the others. Or, if you don't need the local internet doors, for example, the team gave you a space in the middle there for the team, which always broke, because there was no internet connectivity. But you don't need it, because it was a game,
which you normally play with, which are face-to-face. So for such cases, it would be better. All right. That's all I have. All right. So also, if you want to try it later on with some people,
so basically, the router works also like from holidays or the way to get through, so it's just like catching, and then there's a lot of people who can just try it, and if you like, yeah, I'm on the router someday, so personally, I understand. How that VMX is that you route in the laptop, or where does that network come from? Yes, the device will be outside.
Okay. I have any questions. So if you have any questions about what we're about to see, or any other things, so if you don't, I mean, we still have like five minutes, so you can just try again. Yes. Okay. Let's try again.
All right. So I don't want you to do it, but I don't care. So this is fine. This should be important. So the problem is, often times, you have five or five, no, it doesn't matter, and you need to refresh. Best is it runs fast hard refresh,
so I know on five, obviously, you must press the refresh button for a long time to be a hard refresher. That's even better. But start, and just like here, so instead of one, I choose there, and also make sure you have your internet, this will go to your site, you know. You might not get anything otherwise. Okay. So I also do here again.
So, one nine, and I did one nine. It did. So there's one nine problem. I'm gonna try one nine. One nine. One six eight. zero, zero, zero, zero, zero, zero,
zero,
zero, zero, zero, zero,
zero, zero, zero, zero, zero, zero, zero, zero,
zero, zero, zero, zero, zero,