 So let's welcome our next speaker, Igor. We're going to be presenting console-orientated services. Hi, guys. Well, I suppose that the font here is not big enough, right? So you can just curl this URL, and you will see the same on your laptops, if you want to. Just try. So can you read this curl cheat.sh for them? You can use both the short version of cheat and the long version. It doesn't matter. And if you use this loop, you can constantly update the content of your terminal with enter. Streaming is possible, too. So it could be possible to even stream this presentation to your laptops using curl. And probably I will show you how it works if we have enough time for that. OK, so let us start. So my name is Igor, as I already said. And I'm working for Exosoliti's company in Nuremberg. We are doing our relational database management system. According to many benchmarks, it is one of the fastest, or maybe even the fastest, database management system in the world. But it is not really well known because it is interesting only for big companies that have really much data, such as Sony or Adidas or whatever, so typical of our customers. But if you want to read about it, just Google. And you will find out a lot of interesting things. But today, I want to speak with you not about how you can analyze the data as quickly as possible, but how you can use the data as quickly as possible. And for me, the best tool for that, it is terminal. So terminal is the best tool to analyze data, to use data, as well as code. We have plenty of tools that are running in terminals, whatever, so shells, editors, mail clients, instant messengers, and so on, so on, so on. So actually, for each and every task, you have one tool or many tools in terminal, and there are usually states of that. But at least one thing where you have to switch to GUI, so live terminal and switching to GUI, it is when you want to solve the internet, when you need a browser. Of course, I know that such things as console browsers exist, so here is a list of console browsers. For example, links, W3M, and even a recent one, Brow.sh. You can read more about it. It is a really cool project. Just check it out. But for me, from my point of view, it is not really a satisfying experience still. And the problem is not the lack of graphical capabilities of terminal. The problem is, so as I said, in my opinion, the problem is that terminal is already a browser, so to say. So you can perceive terminal as a browser and the prompt as your location bar. And that is why it is strange and a natural idea to start a browser inside a browser. And that is why it doesn't really work. So if you start something like links, well, it works, but you don't like it usually. So the question is, could it be possible to create some service or some website that could be accessible directly from the console without any additional layer just directly from the console as you usually do it from a web browser? And the answer is yes, it is possible first and the second it is really efficient. So the services are really efficient and people, users do like them. Maybe many of you already use the services and found they good. Okay, let us go through a couple of examples. So this one is probably the most famous one, the most popular one, it is Weather In. It is a weather reporting service for a console. You can use it with curl directly, so let us just try. You run something like curl weather in and you will get, oops, this font is too big, you will get something like that. So you will get weather reports for the current location. In this case it is a new and better because my shell is running somewhere in Germany but if you run this comment on your laptops you will get probably Brussels. Or you can specify any location you want. If you want to specify Brussels, you can do it. Let us go to the next one. Curve and code. With this service you can quickly bring some text from the console on your smartphone if you want to. So let us try curve and code. Oh, sorry, probably we have, yeah. And I have just converted curve with this service fosdm.org into curve code. And if you scan it with your smartphone you will get the text here. You can bring even larger parts of text. For example, some text file, etc.past.vdl, whatever. This service used some graphics but it is not really graphic, it is some boxes and well, you can say it is text. But could it be possible to create some service that really use graphics? So I mean, could you represent some graphical information? Yes, I have created proof of concept for that. Rade.6 it was for cryptocurrencies because they hyped at that time and so I decided to make a service for that. But of course you can use the same method for any information you want. So for example, you can represent traffic over interface or whatever with this method. Okay, let us try. Where is it? Yeah, okay. That is Bitcoin price in this case. For two weeks, two weeks and we can specify the interval we want. For example, two months, okay? Or six months, okay. So actually, as you can see, you can visualize any graphical information. And my favorite one, cheat.sage. Actually Stack Overflow is a site that I use all the time. And so I thought probably I could create some service that could allow to access the data from Stack Overflow directly from console without installing anything. And that is how this service was created. So with this service, you can ask any programming language equation directly from console using nothing but curl. Okay, let us try. Curl.cheat.sage. If you specify some command name here, look, I don't know what tar, for example, you will get cheat sheet for this command tar. If you specify programming language, for example, Python and then some question. So let us try Python and then, well, I don't know, create empty file. For example, yeah? You will get explanation how you can create an empty file. And here, at the last line, you see the source of the answer. So in this case, it was Stack Overflow, this answer. So you can always open it and read it through if you want to. Actually, all of the services were just proof of concept to show people, community that first, it is possible to create such services and second, that they are really efficient and that it is possible to have users for them. Actually, I was really impressed with their popularity. I didn't expect that they will be so popular. Just a couple of numbers. So whether in, for example, has currently has more than one million queries daily. For some projects that I created in a couple of days, it is really amazing and I did not any advertisement for that. So people just want to use it because it is convenient. The same number of query for a rate of six, so one million queries daily. Cheat.sh has something like 50,000 active users. I see it in the logs. And you can check the popularity on GitHub, the number of stars and things like that. And that is not because the services are, so I mean this particular services are so cool, but because the approach does work. So that means that you can try to create something like that and you will see that people want to use it. It is really easy to create services like that, but I hope that it will be even easier in the future because we are working on a special framework for that. It will, it's called Curlator. That is framework by means of web. You can convert any Unix or Linux program into a console-oriented service, or you can use it as an adapter for an existing web service. Okay, that is my Twitter if you want to follow me and to see and use about console-oriented services. And for the end I want to show you a new proof of concepts that I created to demonstrate new possibilities of the services. So all of them, all of the services that we have seen before were not really, not really interactive. So we should, so we send queries, we get answers, and so on. Yeah, we could not work interactively with them, but the question is, is it theoretically possible to create a service that could be accessible with only Curl and nothing except Curl? And that would be really interactive. For example, some such, well, I don't know, game or something like that. Would it be possible or not? Okay, let us try. Of course, it is not yet possible with only one Curl call, but it is possible, we will see it now, with just minimum of scripting. So if you use this small script, you can run this interactive application. In this case it will be, okay, I will just execute it. Okay, that is what I do. So I execute the small script, but I could start directly from the console, of course. And it doesn't work. Well, what is the problem? Sorry, well, I'm surprised. Okay, let me try here. Maybe it will work here. Okay, and now, okay, it works. So, okay, I should switch this debug information off, but as you can see, it is status. And it, no, really, it works. But, well, not as good as I hoped. Okay, let us try again. Okay, sorry, this last trick was not really successful. But it doesn't matter, because, well, someone is playing now. Okay, well, I will publish it in my Twitter as soon as it will work properly. Okay, so that is basically everything that I wanted or better to say planned for today. So if you have any questions, I would be happy to answer them. And thank you very much for your time. One question, so, yep. So the question was, why do we use HTTP for interactive stuff? What could we use instead of that? You mean SSH? Or, yes, well, it is a good question. So the reasons for that is, first, that you want to have the same look and feel as usual in browser. So in browser, you have HTTP, HTTPS. So you have a URL, and you want to access URL. So of course, you could replace URL with, well, hostname and then command name, but it is not the same. And the idea is that you could access the same services directly from browser or from your terminal.