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

Telegram Bot For Navigation

00:00

Formal Metadata

Title
Telegram Bot For Navigation
Subtitle
A perfect map app for a neighbourhood doesn't need a map
Title of Series
Number of Parts
637
Author
Contributors
License
CC Attribution 2.0 Belgium:
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
After moving to Minsk, I pondered on making a local map for my neighbourhood, with all the shops and amenities. People would visit it on the web and see where are things. Two years passed, I didn't make it. And only in December I've got an idea that would work. A community does not need no maps. What it needs is conversation. So I made a map app 2.0: one that doesn't rely on 1) web, 2) maps. Of course inside it's all about geo.
179
Thumbnail
20:09
245
253
Thumbnail
30:06
294
350
Thumbnail
59:28
370
419
491
588
Thumbnail
30:18
Neighbourhood (graph theory)AreaHill differential equationAreaTerm (mathematics)BuildingNatural numberAmenable groupSpacetimeDialectInternet forumData storage device40 (number)Machine visionInformation securityPolarization (waves)Raw image formatChainComputer animation
Archaeological field surveyLevel (video gaming)Amenable groupSinc functionShared memoryOffice suiteForcing (mathematics)Row (database)
Text editorAreaProcess (computing)PlastikkarteDigital photographyLevel (video gaming)Revision controlMappingWhiteboardAreaDirectory serviceRobotString (computer science)Heegaard splittingTesselationSatelliteGroup actionOnline helpWeb 2.0Computer configurationPlastikkarteMobile appInteractive televisionUser interfaceOpen setComputer iconAmenable groupBitReverse engineeringLink (knot theory)DialectAddress spaceMedical imagingWebsiteSet (mathematics)Process (computing)outputType theoryInterface (computing)TunisError messageBit rateCASE <Informatik>TorusOffice suiteDressing (medical)Inheritance (object-oriented programming)Figurate numberGoodness of fitDecision theoryBoss CorporationRule of inferenceOrder (biology)Series (mathematics)Android (robot)Software testingNatural languageFlow separationForcing (mathematics)FrequencyMeeting/Interview
Attribute grammarEmailDigital filterKey (cryptography)Point (geometry)Text editorGame theorySpacetimeFile formatMiniDiscGreen's functionDigital photographyLink (knot theory)AreaCASE <Informatik>Descriptive statisticsInstance (computer science)Raw image formatGraph coloringMessage passingForcing (mathematics)WordNatural numberState of matterSurgeryGroup actionWhiteboardProcess (computing)Boss CorporationOrder (biology)Perturbation theoryForm (programming)Physical lawForestQuicksortPurchasingWeightGame controllerShared memoryMathematicsOpen sourcePoint (geometry)Level (video gaming)Amenable groupText editorAttribute grammarNear-ringRobotOpen setType theoryUniform resource locatorBuildingInformationPopulation densityElectronic mailing listComputer animation
DatabaseDigital photographyTexture mappingDew pointVirtual machineArchaeological field surveyOpen setCodeFacebookInfinityAreaGame theoryNetwork topologyForcing (mathematics)Food energyMeasurementDatabaseFehlererkennungDecision theoryAddress spaceAverageRow (database)CASE <Informatik>Civil engineeringMonster groupProcess (computing)Multiplication signEqualiser (mathematics)Shared memoryRight angleResultant1 (number)Source codeOffice suiteAdditionQuicksortRobotBlock (periodic table)Open sourceOnline helpCore dumpRevision controlGroup actionHypermediaMappingAmenable groupInterface (computing)Virtual machineInternet forumMereologyDialectPower (physics)Menu (computing)WritingDigital photographyInformationBuildingArchaeological field surveyAuthorizationMedical imagingFacebookCirclePlanningClosed setMeeting/Interview
SoftwareCodeInformationRobotComputer iconMultiplication signShape (magazine)Area
Element (mathematics)Order (biology)CuboidRing (mathematics)Goodness of fitComputer animationMeeting/Interview
DatabaseFile formatWhiteboardExpert systemInformationMeeting/Interview
InformationUser interfaceMeeting/Interview
User interfaceAreaMobile appMeeting/Interview
Element (mathematics)Computer animation
Transcript: English(auto-generated)
Hello, I'm Yasveev from LID. I'm not very far from my area, which is Russian term for residential area that is usually separated from other regions with wide roads or natural features like parks and rivers, which is very small.
You could walk across in like 10 minutes, and very densely built up, because my residential area has around 40 buildings, apartment buildings, 10 to 25 stores high.
So having this dense area is pretty interesting community wise, but it's also interesting in terms of commercial activities, because almost every building here has a separate floor dedicated to commercial spaces.
And there are three or four shopping centers in the area. So when I started living here, and even
after two years of living in the area, I still didn't know half of the shops here in the world. And that was frustrating, because I'm a mapper, so my urge is just to map everything, to help other people find, discover new shops and amenities.
But I didn't know how. Like, since I'm from Opel Stichna, I could survey these shops and amenities in Opel Stichna, so people would, for example, map me and find these shops.
It's not a perfect solution, because there are so many shops, they will just overlap on another, so you won't discover anything. And mapping Opel Stichna, well, Opel Stichna has been around for 16 years, but it goes to making a map, creating a map.
Adding new venues is very simple, straightforward, but keeping the map up to date, that is still virtually impossible. I could make an interactive web map, somewhere on the web, with markers,
with some discovery features, with maybe editor, that might be better, but no. Because people know my website, people wouldn't know my website. I would somehow make it known. And when you need to use it, you will have to not forget it.
And also, when you need it, it's not usually at home, on the desktop. All that you will have with you is a mobile phone, so you will need to open it on a phone, and it will need to be comfortable to use.
So many ifs, none of the options are great, so I didn't know how to map everything, so I didn't. Until last December, when in one of the Telegram groups for my area, I
noticed a link to Telegram bot, which was basically a directory of shops and amenities. You, for example, clicked shops, and then clothes, and you got all the clothes shops in your area.
Well, not much, because the bot had very few data, little data, and it was very rough, basically a draft version. But when I saw it, it was a major breakthrough for me. I suddenly understood that what I wanted could have been done.
I suddenly understood the whole process that I needed to do, how my map for an area would look, how it would be kept up to date, everything.
I suddenly knew I had to make a Telegram bot. Basically, what I learned is that to make some public tool, you need to use the same medium as public uses.
If everyone in your area are in Telegram, then you make your app inside Telegram. You do not make them install anything or remember anything. It's right up there. So, a Telegram bot. It's a very peculiar user interface. Basically, all you can do is send some words, receive some
words, send pictures, receive pictures, and for a Telegram bot, you also can make some buttons to use it to click on.
And that's all. There is nothing you can drag, no markers, no JavaScript, nothing. Just sending and receiving text and images. So, how do you make a mapper there? Well, given the input box, the obvious thought is to make it search for things.
Like, you enter pharmacy, and you get a list of pharmacies. Basically, what I made was a geocoder. Which is a bit funny, because last year it was when I was talking about reverse geocoder, and now I've got the forward one.
So, we got all the keyboards, we got a list of pharmacies, you click on one, and you get a card for the pharmacy with all the data, like open hours, phones, comments maybe. I couldn't help but stitch some map tiles together and place a marker, but most people actually do not understand maps.
So, how do you work with it? Well, I also add two photos. One how the venue looks from the street, so you're not lost, and one how it looks inside, so you show you are inside the venue.
And the buttons. Making a telly on board has made me reconsider emoji. I didn't think they were useful. They don't look serious, but when in your interface all you have is text, then emojis are a great replacement for icons.
Basically, emoji are a set of icons everybody can use in text. If you have buttons with a string, you have buttons with an icon in the string. It's great. Emojis are great.
On the street, I often am asked where is some building, because with this dense built-up area, addressing is not obvious. We have a street splitting two different regions.
So, to remedy that, I took a piece of satellite imagery, drawn addresses and labels on top of it, and added it to Telegram bot. So, with just one click, you have a map of every app which you can use for navigation. And
also, which is the thing I'm most proud of, I believe, is I surveyed every entrance in the area. And with my bot, now you can type an address and type in a parking number, and it will not only show the entrance
you need to use with its photo and location, but also it will tell you which floor you need to go on the elevator. So, yeah, this is a pretty great bot. It just needs one thing to function which I didn't have. And that is data. When do you get data in that amount?
OpenSeedMap had like a couple dozen subjects at the time, and there is no other source. You have to survey it by yourself.
And to start, maybe you need to drop some points on the map for buildings, for entrances, and to do that, I used, oh, not your solution, one of the open source map users, U-Map, mainly.
And in there, it seems pretty simple. You just click every marker, you place it on the map, you type some name, you type some attributes, save, add next marker, and so on. And so on, so on, and I got so tired of it just after a couple of dozen points. Because clicking, clicking, clicking, moving your mouse around, it's not very comfortable.
And with the density of points, just everything overlaps anything. And it's not just specific to your map. Every point editor on the
web or on the desktop, like QGIS, like GeoJSON.io, they're all complex, hard to use, when you need just one simple thing. But since I was already coding, why not make other two? So I made a GeoJSON point editor. And with that, adding points becomes fun.
Just open it, double click to add a point, click a button to delete it, to add attributes to just use a text area. Where you can write a plain text, name, space, something. And you can use it to copy
and paste attributes from one point to another. And basically, that's all. And I exported it to GeoJSON. It's very fun using this simple editor with great user experience. And I used it to add all buildings, all 73, I believe, entrances in my
area, and around 100 shops and amenities that I took photos. That was a great start. But then, you cannot get much info on shops and amenities around you without actually going out and surveying them.
So the next step is surveying. Going outside. And I cannot take my amazing point editor outside. All I have on the street is my phone. And what's else on my phone? My telegram bot. So I added, obviously, an editor to the telegram bot.
It sounds simple. Just there is a button, add new amenity. When I'm near one, I just type it, type its name, send its location.
Because in telegram you can send location to the bot. And I was pleasantly surprised that Android phones determine your locations and buildings pretty accurately. It was very handy when surveying shopping centers.
So yeah, you invent some keywords and fill the long list of attributes for a menu. Starting from description, comments, open hours, links, phones, its address, its floor, and so on and so on.
And on the phone, it's pretty fun. You just type, type, type, type, type, then open
a camera, make a photo, make a photo, go outside from inside, send it to the bot. Click save. And the menu is already in the database. You can forget about it because it's already there. And this is very important. Because when you have two step process, you basically make a photo of everything, then you have a thousand photos.
And you come home and these amount of photos waits on you until you sit down and process it one by one.
And it will be very tiring because of the sheer amount of photos, sheer amount of work. So if you can reduce two step process to one step, do it. It is very, very important. Otherwise, you get tired. And just looking around, surveying is fun. Just why there are so many mappers and opposite mappers and mapping is fun.
And processing data is not. So I surveyed 60 to 100 shops and amenities a day. Why so many? Because every day I came back
and I looked at my notes done during surveying and improved all the little things that bother me when editing. For example, entering HTTPS colon slash slash on a phone is hard. So I can make a machine do it.
Or instead of entering an address, I could just choose from a few options. So I polished every small thing. So the next day I collected things faster and faster. Because never make a human do things that a machine can do. Always think how you can improve user experience.
Because it can take five minutes of coding, but it can slash half an hour. Sorry. In the past week I have surveyed roughly 400 shops and amenities. And that's a lot.
If I knew there were so many at the start, I'm not sure I would have started this mode. But now the work is almost done. I have left roughly 100 in one of the shopping centers. And that's my plan for the next week. It will take a day, maybe two, I hope.
And the bot is virtually done. And it enjoys removing ten users a day. Ten. Because, why is that? It's public too. Meant to be used by everybody in the area and guests from other regions.
The issue is with marketing. Writing a bot is not enough. Or writing documentation, surveying the area. Again, not enough. Because people need to know about your software if you're making it not for a close circle of people who know each other, but for everybody.
You have to market it. Right now I've published info about the bot only in a couple of telegram groups. So roughly 300 people know about it.
And I plan more. I plan to contact major media in Belarus so that I get more people. And maybe distributing spreads of flyers around the area. Because I need users. Because having users means more eyes.
You may then find some core moderators to keep their database up to date. Because there's no sense in having an up-to-date database if people are not using it.
So, first step is about open source. And with that comes the question. In this thing, open source, can I install it for my built-up area? And of course, yes, you can. Everything I was talking about is open source.
There's just one small thing to overcome. The bot, all the strings, and all the documentation. There are lots of documentation I spent nearly a week on writing. They are all in Russian. So you either understand Russian, or you work with me. Like, write me.
To maybe speed up its utilization and speed up its installation. While you're surveying your area, I will be translating this. But yeah, it's open source. Open source is great.
Because right now, all you need to have are an idea and time. When you have a bot, everything else is simple. Like, all the building blocks are there. There was this great Telegram bot library, iOgram, thanks to the authors.
There was a pillow for image processing, there was a SQLite, which is a great database, the version that it looks like. And I just had to pull these blocks together, and I got my Telegram bot. That is awesome. And if you have ideas, and or if you have time, help make more great things. Just code.
So, to reiterate the ideas of this talk. First, and most important, when making a public tool, use the same medium as your target audience uses.
It's better to sell ice cream on a beach than at a museum. If everybody is on telegram, do it in telegram. If everybody is on Facebook, Facebook bot it is.
Then, don't make human do things that the machine can do. If you can pass part of the load from human to backend or frontend, do it. Because human resources are limited, machine power is infinite.
Emoji are great for user interface, because, well, for textual interfaces they replace icons. That's very important, because after a time people won't read your words, they will just look at icons. And coding is much less than half of a job.
You also have to collect data to write documentation to market your software. And that will take a lot more time. But the great thing about it is it can be parallelized and it can be postponed. So, yeah.
So, do great things and thank you for listening. I'm Ilya, I'll leave it right now if you want the same bot. Goodbye.
How many questions? Yeah, yeah, yeah, yeah. I hit the five star hand. Oh, yeah. Good. So, yeah. Because it's fascinating. Yeah, a lot of people are interested and are so much happy about your presentation.
Very nice. Thank you very much. Yeah, issues from UMAP and other stuff. Yeah, just a quick question. That is, where does the data go? Can you tell us something about the data?
Yeah, where does the data go? So, right now it's all contained. There's nothing related to OpenStreetMap or anything. But the format is compatible to OpenStreetMap. So, it is possible to import the data from OSM and to upload it back.
It just, I haven't developed any, like, finished tools to do that. But you can use OSM conflator and overpass for importing and exporting. But, yeah, so technically it is possible. It is all compatible to OpenStreetMap.
But right now this board is made for serving by yourself and storing your data in your own database. Yeah, you told us about your motivation. But I still want to ask you what pushed you to actually do this. Because you are putting a lot of information in the community and for yourself and for everyone.
Why did you decide to choose Telegram? Of course, yeah, maybe the people in your community use Telegram most. Because that is why so. But you can just tell us something again. Well, as I said in the talk, when you make something for the public, use the medium that public uses. And virtually everybody in my area is using Telegram.
So, Telegram is great not because it has great user interface or anything. But when you make your app inside it, that means people...