WEBVTT 00:00.000 --> 00:14.720 Hello. Welcome to Lightning Lightning Talks. This is Lightning Talks with even faster. So this 00:14.720 --> 00:30.320 time we're going for 256 second talks. That's all for me. 00:30.320 --> 00:35.360 Hello everyone. My name is Remy Durafer. I'm pretty simple technically that we know. I've 00:35.360 --> 00:40.520 been working on open source software for many times now and as a side productive my life 00:40.520 --> 00:46.760 I'm also a volunteer fire fighter in a small fire station. So you might have noticed that there 00:46.760 --> 00:53.000 is many companies that are providing tools and services for emergency services but the emergency 00:53.000 --> 00:57.960 services are quite slow to adapt new technologies. In fact if you know them a bit more, they are 00:57.960 --> 01:02.680 not slow to adapt new technologies, they are reluctant to it. They don't really want to. Mainly 01:02.680 --> 01:07.320 because they are big and strict organizations. So there is a process for absolutely everything and if 01:07.400 --> 01:12.760 new product does not fall into the right process it will be difficult to adopt. Also they have 01:12.760 --> 01:18.120 a low budget for innovation because most of their budget is going to operation obviously training 01:18.120 --> 01:25.240 and maybe later on into new new things. Also because new technologies are often not really 01:25.240 --> 01:31.480 made sure or a good fit for them. Because they have quite strong requirements, they need to have 01:31.480 --> 01:36.120 something which is reliable, easy to use and unbreakable and I will show you a bit why. 01:37.000 --> 01:41.240 When I'm speaking about something which is reliable, as an example, when I'm 01:41.240 --> 01:47.880 cool for an intervention and I'm at that place, sorry, and free system will try to call me a 01:47.880 --> 01:53.800 pageer, a phone dialer which is a robot that will call my phone and a number of applications. 01:54.200 --> 02:01.800 Obviously the most reliable one is a pageer from 1981. If you I did some small statistics 02:02.600 --> 02:08.600 and the pageer will ring 99% of the time, while the Android application will run like 50 02:08.600 --> 02:13.800 percent of the time which is pretty bad. Also the device itself, the pageer, the battery will last for 02:13.800 --> 02:19.480 month, at least. It has a cell battery that I can change quickly while I will need a smartphone 02:19.480 --> 02:25.800 from my Android application that will blast for one or two days maximum. Also the device is a 02:25.800 --> 02:32.760 pageer cheap, it's light and it's difficult to break, while a smartphone is opposite to 02:32.760 --> 02:37.160 completely easy to break and also you need that data coverage which is not always a case. 02:38.200 --> 02:41.960 So funny enough, but the pageer is not going to go away anytime soon. 02:43.240 --> 02:49.000 Second one, we need to be, you need something that is easy to use, but under which circumstances, 02:50.360 --> 02:53.880 if I'm cool for an intervention, it might be two in the morning, I'm sleeping in my bed, 02:54.360 --> 02:59.400 and the pageer may be the form will ring. I have to wake up first, take some time, 02:59.960 --> 03:03.480 address, dry to the fire station, I'm technically still partially sleeping. 03:04.360 --> 03:07.960 Then you look for the address at the fire station for the reason for the call and you're still 03:07.960 --> 03:14.040 sleepy. After a free call like that in one night, it can happen. It's difficult to speak right after 03:14.040 --> 03:20.120 being wake up because your brain are just dead, honestly. So you need to have something, oh sorry, 03:20.200 --> 03:25.880 and also, if not forget that when I'm going for a fire, I'm wearing fire gears, which I have gloves, 03:25.880 --> 03:31.000 so touching something, using something is difficult. So the visibility is largely reduced by 03:31.000 --> 03:37.720 the helmet, I'll see something like that, and movement are difficult. So it has to be easy to use, 03:37.720 --> 03:45.560 even with the also stress and smoke that you had on top of it. So it's usable, it has to be 03:45.560 --> 03:51.000 usable even when you're tired. So the keep it simple, principle is very important, 03:51.000 --> 03:57.080 if you can remove a feature, remove it. It also has to be usable with gloves and limited visibility. 03:57.080 --> 04:01.000 This example is a one product that is really cool, it's working well, it has one pattern, 04:01.000 --> 04:04.840 but then it's simple display and it rings in kettle danger, just works. 04:06.120 --> 04:10.760 And last one is it's unbreakable really, because on intervention we are stressed tired 04:10.760 --> 04:14.520 another pressure, so we don't care about the equipment itself, we just have to do things. 04:15.320 --> 04:20.440 One last story, because I have some time at the fire station, one magic manufacturer rents 04:20.440 --> 04:25.800 for learning and breakable security shoes, and even say that you can roll over it with fire truck. 04:25.800 --> 04:29.960 He left the fire station, and the next day they call him saying, no, you can't, it's not working, 04:29.960 --> 04:37.560 we break it. So obviously, if you want to build something for emergency services, make it reliable, 04:37.560 --> 04:42.600 easy to use on a breakable, and if you, if you in depth, just call them and try to have some time with them. 04:43.480 --> 04:45.480 Thanks for your time. 04:45.480 --> 04:47.480 All right. 04:52.200 --> 04:59.000 Hello, everyone. Wow, I'm here for the fifth time, and I didn't see so many people. Thank you for joining. 04:59.000 --> 05:04.840 I'll tell you a short story under 200 seconds on how we change the world and how you can. 05:04.840 --> 05:10.440 So I come from Bulgaria, very beautiful country, but we have problems with the government, right? 05:10.600 --> 05:18.600 We have hosts in our roads. So we try to ask the government to fix it for a year or so, 05:18.600 --> 05:25.240 they didn't do nothing. So we decided to hack it. We went by some sprays, and we started, you know, 05:25.960 --> 05:31.240 pictureing around the holes, giving the people warning that, you know, something's going on, 05:31.240 --> 05:38.920 and three weeks after that, the hosts were fixed. So this is how hack you can use to make your 05:39.000 --> 05:47.800 government work. So after that, we decided to say, hey, can we do something more? So this is a good use case. 05:48.360 --> 05:56.200 Let's create something like a theater show. Let's encourage people to use the art that is 05:56.200 --> 06:01.400 leaping in all of us, because everyone here is good at art, even if you don't believe that. 06:02.120 --> 06:08.040 To encourage people to go and change the world. Right. How they can change that? This is up to you. 06:08.600 --> 06:15.000 You can paint a picture, you can draw something on the street, you can, you know, 06:15.800 --> 06:24.840 add amazing words on the walls. So we did this, and why I'm here today, because this is a 06:24.840 --> 06:30.760 theater that is under creative common license. So anyone can go and contribute to that. 06:32.040 --> 06:36.280 They can help us with the script, they can help us with more ideas on how we can get more people. 06:36.920 --> 06:45.960 And when we run this, that's me though. We did it again, open source way. We gave it for free, 06:45.960 --> 06:52.920 and at the end we asked for donations. So we got even more money that we invested into doing the 06:52.920 --> 07:01.960 theater, which is a really good one. So this is how we manage it. We ask our feedback, show after show 07:01.960 --> 07:09.320 or idea after idea. We get feedback. Then we accept, let's say, PRs, but ideas for how to 07:09.320 --> 07:18.440 do a script change. And it's, we use the creative common, and public, the main music. 07:19.480 --> 07:26.200 How we can help, because I have, wow, hundred seconds. You can help us with ideas on how we can 07:26.200 --> 07:32.920 make this better, if you're good writer, or you have other creative ideas, or you can help us run 07:32.920 --> 07:39.960 this show in your own country by inviting us, or you can take this script in ideas, and you can 07:39.960 --> 07:51.240 make your own show in your own country. Thank you. This is my master. I have 74 seconds. Thank you. 07:56.520 --> 08:11.640 Hello, everyone. I'm mine of Naugda from London. Recently, I came across a tool called 08:11.640 --> 08:20.520 Screen Copy. That shiny new phone. The Z trifles, the iPhone 17 Pro Max, the Xiaomi 17 Pro Ultra, 08:20.680 --> 08:25.080 the one you've always wanted. But what happens to your old phone after that? 08:26.120 --> 08:31.960 I'll call it a bucks and eBay, getting chocolate and landfill, laying for gotten somewhere, collecting dust? 08:33.240 --> 08:40.040 Well, let me tell you, it does not need to be like that. Your old android can become a multi-task 08:40.040 --> 08:46.760 and powerhouse. With Screen Copy, you can not only mirror your android so you're computer, 08:46.840 --> 08:51.800 you can even control your remotely full functionality from the comfort of your PC. 08:53.400 --> 08:59.560 First, Screen Copy shines as a last resort. When you just need to get that little bit of data off 08:59.560 --> 09:04.840 when your phone broke, or when the entire screen crashes, simply hook up your phone, 09:05.560 --> 09:14.040 control remotely, and you're good to go. Perfect, simple, easy. But that's as a last resort. 09:15.000 --> 09:18.840 Screen Copy is much more useful than just that. 09:21.240 --> 09:28.360 So firstly, everyone knows laptop have really bad webcams. Even really expensive webcams 09:28.360 --> 09:34.680 that have decentish quality. Well, they're very expensive. Beyond your phone with the set of 09:34.680 --> 09:42.280 rare cameras, it has a quality that's very good. For example, my own S8, as you can see in the image 09:42.280 --> 09:49.080 there, it has a rare camera setup that's pretty modern power with a hundred plus dollar webcams 09:50.040 --> 09:56.120 and Screen Copy, it's free. Simply hook it up to your laptop and you have a built-in webcam. 09:56.360 --> 10:04.920 And if you need to see the feed from your laptop, simply mirror it and you're good to go. 10:06.120 --> 10:11.720 It's that easy. But Screen Copy is not just for breathing life into all phones. 10:12.760 --> 10:19.720 It's also about breaking the limits of current ones. One more, we're moving to an app-based society. 10:20.680 --> 10:26.040 And many mobile apps are simply better, more optimized and more feature-etch than the PC counterparts. 10:27.400 --> 10:33.160 For example, messaging apps like WhatsApp and Snapchat, or an apps like Engine, 10:34.280 --> 10:37.800 having a proper full-size keyboard can be useful for so many things. 10:39.080 --> 10:43.800 So simply Screen Copy and selling your texting as a hundred eighty-wide for a minute 10:43.800 --> 10:48.280 or slaying what was like a pro. And even if you're on the developer side of things, 10:49.000 --> 10:54.360 being able to interact with your apps directly from your workstation can be a very useful thing to do. 10:55.400 --> 10:59.800 Make it easy to troubleshoot and visually identify everything that you need to. 11:01.880 --> 11:07.800 Now Screen Copy has been around for years, but what makes it truly special is that it's constantly 11:07.800 --> 11:14.280 evolving. Just a short time ago, a new feature was added, largely gained higher second virtual 11:14.280 --> 11:20.600 desktop as you can see on the screen. Which allows you to free up your phone to do whatever task 11:20.600 --> 11:29.000 you need to, but still having things like updates and other apps running in the background in focus 11:29.000 --> 11:35.160 so it doesn't close automatically. This new display is a difference between 2D and 3D 11:35.160 --> 11:41.800 and the usability of your Android and looks entire new tier. So whatever you can imagine, 11:42.520 --> 11:48.920 Screen Copy can provide. Screen Copy is not just another service, it's not just another package, 11:49.480 --> 11:55.880 it's not just a simple tool, it's a bond, a bridge that allows your phone to become an extension 11:55.880 --> 12:04.680 of your PC, once not to love. If you have any questions, you can speak to me after or message me 12:04.920 --> 12:08.920 on LinkedIn. 12:20.920 --> 12:27.960 Hey everyone, today I'm presenting my very experimental product called Google Infiduration. 12:28.760 --> 12:36.440 So basically, here it's myself one year ago, talking about how web recipes are broken and 12:36.440 --> 12:44.200 there are obvious reasons like lots of ads and I don't optimize for clickbait, but there are also 12:44.200 --> 12:53.800 issues with scattering recipes. So we have it in all different apps and it's very hard to use them. 12:53.800 --> 13:06.280 And also, because like optimizations for marketing, people come up with some unique and 13:07.320 --> 13:12.680 trying to get some attention recipes like this for the salmon. And so my question was, 13:13.640 --> 13:17.080 how to find and try them through recipes which I can trust. 13:17.160 --> 13:27.960 So last year I proposed this solution to use plain text files for recipes because files 13:27.960 --> 13:35.400 just been around for decades, maybe 40, 50 years and we all know how to send them to a friend 13:35.400 --> 13:42.760 or organizing folders, but we just need some light markup on top of this and Googleank is 13:42.760 --> 13:49.480 just exactly it. So you just tag your ingredients with Ed Symbol, put your amounts in curly braces 13:49.480 --> 14:01.640 and the set you have in cooking. And that's enough for apps to have a render and use it in cooking 14:01.640 --> 14:10.120 and also create shopping lists and somewhere this. So of course, you can do much more, you can 14:13.480 --> 14:21.160 add like recipe sections, whatever. So I'm trying to express like any recipe with Googleank. 14:22.200 --> 14:30.600 But still, how can I find recipes that I can trust? So a few of my friends have websites. They 14:30.600 --> 14:38.680 do blogging and also they publish the recipes and I was thinking if we can fall back back to 14:39.400 --> 14:50.040 good old RSS which is just a format explaining what's recipe, what's name and when it was 14:50.040 --> 14:55.480 last updated and also they're quite a bunch of public repositories with those recipes. 14:58.200 --> 15:08.360 So the aggregator can fetch all those recipes, index them and present it in a nice web or API 15:08.360 --> 15:19.480 interface. So basically it's a bit stupid name because there is no really interaction between 15:19.480 --> 15:25.560 server, one server to another exchange or information, but maybe it's just yet, maybe it will be at 15:25.560 --> 15:34.680 some point. It's written in Rust and the Tantivi, it will allow you to search like by ingredients 15:34.760 --> 15:44.200 you have in your fridge, like plain text search or by tag. So currently there are more than 70 15:44.200 --> 15:55.720 feeds and 4,000 recipes and it's growing like every day. So not exactly fully solved the 15:55.720 --> 16:02.760 problem, so there is no visibility if the recipe was used or was shared. So integration the 16:02.760 --> 16:11.000 activity map where they have native events or attachments will be nice. Also maybe I should 16:11.000 --> 16:19.640 care only about a few feeds and have like a client up. And yeah that's it. Thank you for attention and 16:32.840 --> 16:56.120 all right. All right. So I use Arch on a mainframe. So modern mainframe architecture dates back to 16:56.200 --> 17:02.520 the 50s and it uses this S390X architecture instead of X86 and I'll tell you a little bit about 17:02.520 --> 17:12.920 the challenges of porting Arch to run on a mainframe. So S390 in 30 seconds is basically so it's 17:12.920 --> 17:20.360 this old architecture that runs on these IBM mainframes. It's the last big Indian kind of architecture 17:20.440 --> 17:26.680 that is still maintained nowadays and there are a bunch of special quirks and we'll mostly just 17:26.680 --> 17:35.080 focus on the boot stuff today. So it's IPL which is initial program load that it uses and yeah 17:35.080 --> 17:41.400 mainframes are still relevant today because your banks are still using them and 95% of your ATM 17:41.400 --> 17:49.160 transactions are running cobalt somewhere on a mainframe. But why would you do this? 17:50.440 --> 17:57.320 Very simple. I thought it would be funny. So this actually started a year ago at Fossdom when I 17:57.320 --> 18:02.840 was talking to one of my art friends and telling them about the mainframe projects I was working on 18:02.840 --> 18:09.560 at Red Hat and I said well wouldn't it be funny to try to make art run on it and yeah here we are. 18:12.520 --> 18:19.800 So the kind of general problem is that Arch will assume that you're building your boot 18:19.800 --> 18:31.400 artifacts on the same architecture as you're running on and I do not own a mainframe but I do have 18:31.400 --> 18:41.640 access to one. So I was able to leverage that for that and the solution is kind of a hybrid build 18:41.640 --> 18:50.520 because there's a challenge to this. Kind of a chicken egg problem where the initial ram file 18:50.520 --> 19:03.320 system needs to be built on a system that it also boots and then the more like early user space 19:03.400 --> 19:13.000 stuff and system D has to be compiled on real S390 architecture. So yeah that's how that's why it's a 19:13.000 --> 19:17.320 chicken egg problem and that's why it's like a hybrid build to make it boot at first. 19:20.280 --> 19:26.040 The kernel cross compilation works really well actually there isn't a big challenge here. 19:26.280 --> 19:40.680 And yeah the there are more challenges to come. So I'm using busy box to just get like the core 19:40.680 --> 19:50.680 utility stuff going for the beginning and it has to be statically linked and yeah the reliable static 19:50.760 --> 20:01.480 linking requires native compilation and yeah you need a real mainframe for that and yeah that's the 20:01.480 --> 20:07.880 the other challenge where I make in its CPIO will assume that it can run the binary set it packs 20:07.880 --> 20:19.080 but then obviously it's I can't run the S390 binaries on my X86 laptop and to work around this I just 20:20.040 --> 20:26.680 had to write a little bash array to statically then hard code all these outputs. 20:29.400 --> 20:34.360 All right so then I have some boot artifacts with these things that I built 20:35.640 --> 20:44.120 system D boots and immediately dies and I stared at the screen and I looked at 20:44.120 --> 20:53.560 QEmo logs for ages and then I found the one parameter I had to set and yeah then we got like an 20:53.560 --> 20:58.200 actual boot and yeah the work is sweeping out the state. 20:59.000 --> 21:16.040 Hello everyone I'm going to talk about Proscoverge which is a cross language coverage profiler 21:17.880 --> 21:22.520 and the problem that tries to solve is that imagine that you want to build your 21:22.840 --> 21:26.840 compile software and you want to run your functional test directly on your 21:28.840 --> 21:34.680 very production ready binary. You know want to build your binary twice because you typically 21:34.680 --> 21:40.200 like lagging specific tooling they require you to build instrumentation inside your binary so you 21:40.840 --> 21:46.840 end up building twice so that you can ship your production ready binaries and test the 21:46.920 --> 21:52.440 instruction instrumented once. On the other hand Proscoverge what it does is because it leverages 21:52.440 --> 21:59.400 general level instrumentation it enables you to run your test exactly on your production ready binaries 22:00.440 --> 22:06.120 and this cross language compatible and the way it works is that it attaches one new probe to 22:06.120 --> 22:12.360 which function and then from EVF you notify back to user space what function is specific moment 22:12.440 --> 22:17.640 runs and then finally in user space you do the calculations because you know what functions 22:17.640 --> 22:23.720 have been run and what not. So as you can see you have one program multiple attachment 22:23.720 --> 22:30.280 and thanks to EVPF you promote it so you can attach with a single attachment 22:30.280 --> 22:36.520 Cisco to thousand and thousand functions you report back to user space where you do finally the 22:36.600 --> 22:44.120 calculation that you generate the report. As you can see with a re-buffer to notify back to 22:44.120 --> 22:50.120 user space what has been running a specific moment we keep track with the hash map what functions 22:50.120 --> 22:55.560 have been run so far and as you can see the event contains the cookie which is our function in the 22:55.560 --> 23:03.480 entire. And then in the space we keep track of the old supported functions in our binary in the 23:03.560 --> 23:07.960 map of cookie to function information which contains the single name and the offset. 23:08.680 --> 23:14.200 This information then we use it's used a touch time where we pass all our offset so the 23:14.200 --> 23:22.680 functions and all the cookies with the single call. At the moment at the time actually LBPF 23:22.680 --> 23:29.880 go didn't support that I into the support back LBPF go and now I could use that directly you 23:29.880 --> 23:37.400 promote directly from go. The program actually is pretty simple gather the cookie if the function 23:37.400 --> 23:43.160 it's a bit we've been seen it just returned otherwise it notifies back through the ring buffer 23:43.160 --> 23:50.360 to user space say this function has been just run and then in user space we just get the event 23:50.360 --> 23:57.000 from the event the cookie which is a functionality in our case and we keep track of all the 23:57.000 --> 24:03.240 functions that have been run so far and whatnot and finally calculates the coverage. 24:04.520 --> 24:10.680 It's pretty simple like the CLI you can run the touch mode you can include or exclude 24:10.680 --> 24:15.960 some functions for example here it's done for for the go because we want to ignore the go run 24:15.960 --> 24:21.640 time functions we synchronize with test with the weight command we run test one they complete 24:21.720 --> 24:32.040 we stop cross cover and the viewport is generated as you can see it's 89% of coverage. Of course there 24:32.040 --> 24:40.120 are some challenges and limitations because this leverage is the single table enough so 24:40.120 --> 24:46.280 strip the boundaries need specific attention you can use the bug information which are 24:46.280 --> 24:53.960 mostly specific to language so like the go program counter line table and also we need to 24:53.960 --> 25:00.280 tune the ring buffer side especially when you have high frequency executions and we need to keep 25:00.280 --> 25:07.400 in mind that there is a limitation of around one million of you probe with the single attachment 25:08.280 --> 25:16.760 so yeah and let's see thank you very much you can find me home get up my maximum 92 25:17.320 --> 25:21.880 and this is all the documentation the reference about this thank you 25:21.880 --> 25:37.880 so hello everyone this presentation is going to be about is that slot.com which is a working 25:37.880 --> 25:44.040 progress project that aims to be a community power a is what detection so for those of you 25:44.040 --> 25:49.800 living under a rock what say is love the actual dictionary definition is this one digital content 25:49.800 --> 25:55.240 of low quality that is produced usually in quantity by means of artificial intelligence 25:55.240 --> 26:01.160 I would define it better as digital content of low value let's say that the function that's 26:01.160 --> 26:09.960 evolving and I will say that's the actual one so something is that a is love is everywhere right now 26:09.960 --> 26:17.960 and this truth is it's going to get way worse and the thing is they are a detectors and they 26:17.960 --> 26:23.160 don't work the health of the maras come and the other ones alright they don't work and we've seen 26:23.160 --> 26:30.360 major a major consulting firms using AI and we've seen reports we've seen for instance major 26:30.360 --> 26:35.800 news outlets report on the casualties and the effects of the right well accident in Spain 26:35.800 --> 26:42.120 using seminar generated images and honestly the AA generated content it's getting so good 26:42.120 --> 26:49.480 that you have to browse the internet with a mentality and a focus that it's exhausting like 26:49.480 --> 26:54.840 for instance this is an image that's insanely well generated but still some users are able to 26:54.840 --> 27:01.640 catch that the perspective of the handle the suitcase is not correct so the only positive thing 27:01.640 --> 27:08.520 I think to extract from here is that we humans are still able to detect it so why don't we work 27:08.520 --> 27:15.000 together and aggregate all of this to make the internet a place in which we maybe don't have to 27:15.000 --> 27:20.360 think that that hard and spend all this energy in detecting what it's about and what it 27:20.360 --> 27:28.440 isn't so the aim of is that is that slope.com is to be able to review any of these content sources 27:28.440 --> 27:36.040 whether that be websites, applications, users on those apps or specific posts and to do so at any of 27:36.040 --> 27:43.400 these levels in a hierarchical manner so for a source you get a score or a tierl say let's say 27:43.400 --> 27:48.600 that goes from artificial content to mostly human to questionable to compromise and then slope 27:49.640 --> 27:56.520 so all the this score will be computed algorithmically from the claims that users sent so 27:57.320 --> 28:05.320 these claims for instance let's say we see this post from a user on Instagram and we spot something fishy 28:05.400 --> 28:10.760 and this case there are like very weird faces that point to this being AI in some sort of way 28:10.760 --> 28:16.520 and maybe in UC attacks and there are way too many endashes or maybe the text starts with sure 28:16.520 --> 28:22.040 let me take care about that so there are many signs of this so let's create a claim in this case 28:22.040 --> 28:26.760 for this post first of all we have to determine the impact it's not the same for an image to 28:26.760 --> 28:31.960 regenerate it when it's decorative for an article let's say but in this case this image is the 28:32.040 --> 28:39.400 core content so the impact here is big and then the confidence that or how confident are we that 28:39.400 --> 28:44.680 our claim is accurate in this case unless there's been a glitch in the matrix or they are 28:44.680 --> 28:51.880 wearing some like very weird masks where fairly confident that this is AI so after so meeting this 28:53.160 --> 29:01.560 together with our evidence image we would be computing this new tier so from this we can build 29:01.640 --> 29:07.160 an expand cool thing to have would be to be able to create a browser extension so that when 29:07.160 --> 29:14.680 users browse to sites they can be alerted when they go to a source that's very likely AI or it's compromised 29:14.680 --> 29:22.440 or it's low then from here we can also do cool stuff like track if the sources are actually 29:22.440 --> 29:27.800 using AI in the way they say they might have an AI policy but actually the claims from people 29:27.800 --> 29:34.040 prove otherwise and then if at some point this AI detectors actually work we can add their claims as 29:34.040 --> 29:41.480 well and see how they fur and of course any feedback ideas or suggestions on this is super welcome 29:41.480 --> 29:48.280 so yeah the project is being built in public and you can follow me at instagram i sorry 29:48.280 --> 30:03.720 on instagram and i'll link in or visit the website good morning and well the real good time 30:03.720 --> 30:11.880 I guess okay so I'm here to talk about open prices it's the first crowd sourced open database 30:11.960 --> 30:23.240 on prices so it's a new project from the open food community let's go so why open prices so you have 30:23.240 --> 30:28.520 quite a few issues if you're a researcher you want to track inflation, shrinkflation, stuff like this 30:28.520 --> 30:34.920 well good luck very low data you have to fetch it yourself you want to know that in the next 30:34.920 --> 30:40.760 store from first them there is a product available good luck as well there is no data either 30:41.400 --> 30:46.040 and so on and so forth you want to compare prices before buying and so on and so forth 30:46.040 --> 30:52.680 track your own consumption like what did you buy last year how much of part of organic products 30:52.680 --> 31:02.840 do you buy yourself and so on and overall everything here we're talking about requires an actual 31:02.840 --> 31:10.120 database and preferably an open one and a share one so it's more of an open diet data torque 31:10.120 --> 31:16.040 than an open source even though the full code base is of course open source so some ground 31:16.040 --> 31:21.640 words that the community behind it put at the first the beginning of the project well let's 31:21.640 --> 31:27.240 not do it alone so let's do it be part of bigger community existing one so very easy open food 31:27.240 --> 31:35.240 facts think Wikipedia of food in a way this is a digital command with a four million products at 31:35.240 --> 31:41.320 the time of I made the slides so maybe more now there is the open-slide map community as well 31:41.320 --> 31:46.680 to have like shop location also another community and you mix a bit the both and you get a project 31:46.680 --> 31:52.600 like open prices some more of the other rules as well no scrubbing this is very important if you 31:52.600 --> 31:58.920 want to don't have any legal problem with the with the project later on so that the base will be 31:58.920 --> 32:07.160 audio is audio-based so yeah a strong one so this leads to quite a few issues and it's quite 32:07.160 --> 32:13.800 quite a few challenges like we have to start from zero and we have to ask for people to go 32:13.800 --> 32:19.720 in stores or to scan very sit and and take some pictures we can see the example of pictures and so on 32:19.720 --> 32:25.000 but at the end you have a dataset that you can trust and also why as well but I didn't mention 32:25.000 --> 32:32.360 of course it's a technical challenge that's why as developer do most of the stuff so how is it going 32:32.360 --> 32:41.720 where we have mostly coverage in Europe currently we are like 170,000 I think prices on the 32:41.720 --> 32:48.600 on the database contributed by more than 2,000 contributors so you can be one it seems like a lot of 32:48.600 --> 32:55.400 prices but actually it's not a lot at all a single store has more than 20,000 prices and that was 32:55.400 --> 33:01.720 today so tomorrow the ice 20,000 more prices that might have changed because it was a weekend or 33:01.720 --> 33:08.520 for whatever reason precision is quite frankly but overall it's quite we're quite proud as a 33:08.520 --> 33:14.920 community we're quite a lot of people contributing we need more help so there is a technical 33:14.920 --> 33:20.360 stock that I won't go into but that needs some developers so join us we need people to 33:20.360 --> 33:29.000 contribute prices we need designers and so on and the door is open so I still have a minute and I will 33:29.000 --> 33:36.440 use this last minute just for you people to just search on your favorite engine for open prices 33:37.560 --> 33:38.360 you have to now 33:39.000 --> 33:41.800 thanks 33:57.560 --> 34:03.560 hello I'm Benjamin I do translations and I would like to tell you something about that to point out 34:03.560 --> 34:13.640 a few quirks we see a lot in open stores software world please do not translate names if you 34:13.640 --> 34:23.160 translate the name of your app other people will not find it even in their own system because let's say 34:23.160 --> 34:29.320 there is an app like for backing up you need to change the settings of your backup and you have to 34:29.320 --> 34:39.240 find the icon because it's not called how you download it from the from the store from flat help 34:39.880 --> 34:48.600 so do not translate names it makes people lost even in their own systems that's why we are on 34:48.600 --> 34:54.040 first them and we don't call it in multiplying which is totally different names because that would be a 34:54.040 --> 35:02.840 different place you don't have to invent new translations standards you don't have to invent new 35:02.840 --> 35:08.120 solutions for translating care product localizing care product is pretty 35:10.040 --> 35:17.720 standardized think you just can use what's already there the translation file format is basically 35:18.280 --> 35:27.960 special for any SDK any framework you have in your mind has their own translation file format 35:27.960 --> 35:34.840 you don't have to create another one you will create a lot of work for yourself and other people 35:35.480 --> 35:45.080 will be blocked away from getting translated contributing translations to your project 35:45.320 --> 35:52.120 if you make it easy for everyone involved be it developers they are contributing to your project 35:52.120 --> 36:04.040 translators that are they are craving for helping you if you said that by low with a nice tool of your 36:04.040 --> 36:11.240 choice because they are already and the translators are already probably using the tool if somebody wants 36:11.240 --> 36:16.760 to contribute to your project they are already probably contributing to other projects they didn't 36:16.760 --> 36:25.240 very well know how to do it if you just join the group if you become one of the many friendly 36:26.040 --> 36:32.200 places to contribute to you will get a lot of contributions and you will have happy users because they can 36:32.680 --> 36:44.200 say it's my software because it's my in my own language then there are outcomes if you invent 36:44.200 --> 36:49.720 words and that happens nobody knows what it is what you mean and they will switch back to English 36:50.600 --> 36:59.640 if you fill it with source it will again quiz quiz other people it will be hard make it 36:59.800 --> 37:05.240 the first thing that comes to your mind is probably usually the best translation you can use 37:06.920 --> 37:14.040 and then there is being responsible if you start something you have to look after it you should 37:14.040 --> 37:23.400 keep it up you shouldn't make a few translations get it from a few very enthusiastic contributors 37:23.400 --> 37:28.120 and then because it was too hard they stop contributing you have to build a community you have to 37:28.200 --> 37:36.120 look after them outside without that you will not have something that's long-class thing 37:37.080 --> 37:46.840 which is coming to the one of the last points make use sustainable solutions if something is there 37:46.840 --> 37:52.920 for a long time you can just use it if you invent something you it's hard to keep it up if you just 37:52.920 --> 38:01.160 use something that's available then people will happily use it it doesn't have to be 38:01.880 --> 38:09.640 weblight it can be anything else I thank you for attention if you are interested in localization 38:09.640 --> 38:13.880 we have a BOS in just few minutes 38:14.200 --> 38:31.240 Hello I presume you know what an FPGA is SOS is a system on chip you put some electronic 38:31.240 --> 38:38.680 components inside of that FPGA and reach the devices design you want this is this was a test for several 38:38.760 --> 38:50.280 technologies main technologies use is light exit way of producing SOS incorporating some peripherals 38:50.280 --> 38:59.240 that comes from from light exit and some from you then there's LVGL which is the graphic 38:59.320 --> 39:08.280 library for the LCD display yes this is the board the LCD display is not part of it you have to 39:08.280 --> 39:17.480 purchase it separately it is a few euros and the FPGA board is 30 euros it's not a lot if you think 39:17.880 --> 39:30.680 it has HDMI output Ethernet USB as the card and whatever yes it's very easy the hardware is 39:30.680 --> 39:38.200 not so complicated but this is just in a few hours I received the signals on the 40 meters band 39:38.200 --> 39:47.560 by the way you can see that I got a transmitter in the middle of the ocean on the western part of 39:47.560 --> 39:57.000 Africa yes it was an icebreaker coming from from Europe to Antarctica which was just a chance 39:57.000 --> 40:06.280 but anyway you can see global coverage yes this is the only part that needed and you can do it in a 40:06.280 --> 40:14.520 few hours there's the antenna input on the on the left left bottom side low pass filter here 40:16.120 --> 40:23.880 amplifier and the ADC there are also some components not used right now it was for tests and things like this 40:24.920 --> 40:33.080 this is the low pass filter three poles inductor is a commercial is not a wound but you can 40:33.160 --> 40:41.720 produce it by yourself yeah amplifier if you don't want to do this you can use an MMI C it is 40:41.720 --> 40:49.560 basically the same thing because topology uses two bipolar transistors in my case I change a little 40:49.560 --> 40:57.320 the resistors in order to have an higher input impedance but you're running out of time this is 40:57.720 --> 41:06.840 the SOC we have a processor Vexer is five a RISFI processor other other components provided by 41:07.480 --> 41:16.840 by LITX the biggest part is the SD card interface it understands the VFAT file system 41:18.440 --> 41:26.200 you put your RISFI code in it with LVGL then there's etherbone that's it's a sort of 41:26.440 --> 41:37.480 UDP protocol that can that can interface with the internal registers of the SOC and the other 41:37.480 --> 41:48.360 part were done by me that the SDR the ADC converter which is a one bit sigma delta ADC which uses 41:49.160 --> 42:02.200 LVDS differential input as a comparator yeah so you don't want to see this anyway it is 42:02.200 --> 42:11.960 how the SDR works we have two mixers and CO the NCO is a courtesy of going because the 42:12.040 --> 42:21.320 IP uses a not shaping much better than my you don't want to look at this it is a Hilbert filter 42:21.320 --> 42:32.200 for SSB's Reception some code I don't have the time to explain anyway this is a better ADC 42:32.200 --> 42:39.080 you don't see anyway this is some some link to why you tiob video bye 42:39.800 --> 42:41.800 thank you 42:43.320 --> 42:49.960 okay hello I'm Anton I'm from fresher from London and I have a question is someone in 42:49.960 --> 42:59.400 the audience up for some positive okay I have the answer so let's go so this is kind of like 42:59.400 --> 43:07.480 boober do we have any posts in the audience okay what is boober beaver okay correct okay so 43:07.480 --> 43:13.160 the story this is a search box this search box is actually kind of like search as you go feature 43:13.160 --> 43:21.000 so you enter some characters and then the search is refined as you type more so how's it implemented 43:21.000 --> 43:27.080 it's implemented like as a gist index in positive you would ask why not gine index because it's 43:27.080 --> 43:33.480 usually considered like more performant well I want to tell but this guy this guy is watching me so 43:33.560 --> 43:40.360 if you want to find an answer for this kind of a question find me watch out so gist index is 43:40.360 --> 43:46.600 basically a tree and this tree consists of some branches of sub trees and basically you compare 43:46.600 --> 43:53.320 and go down the tree to get the most matching subset of kind of like elements here 43:53.320 --> 43:58.840 elements is three grams what is three grams is three letters charged it actually kind of like 43:58.840 --> 44:05.720 allow you to refine your search okay hope it's not too confusing so let's try to search boober 44:06.600 --> 44:14.520 this is as you see like arm architecture so it works yeah then let's go and try to search 44:15.560 --> 44:24.360 on x86 no answer why I mean like it's a physical replica just to be clear so it's basically like 44:24.440 --> 44:32.920 the same but transfer towards the wire why it doesn't work the answer is simple let's try to show 44:32.920 --> 44:39.080 three grams the actual three grams that boober consists on our master which do you remember is 44:39.080 --> 44:51.960 on arm and it's like so and on replica which is x86 it's different why let's go to the actual 44:51.960 --> 45:01.640 C code and pg3gm model and see how the comparison function is defined well looks normal no I mean like 45:01.640 --> 45:10.680 charged charged don't know okay the answer is basically that because on x86 45:10.680 --> 45:18.440 charged without specification but default is signed and charged on arm the unsigned and imagine if you 45:18.440 --> 45:24.360 have like a unicode code point which is actually kind of like on a higher range of numbers then 45:24.360 --> 45:30.600 you basically when you search the same index on x86 for example then it would be a negative number 45:30.600 --> 45:37.400 so the sorting order would be a lot different what is the status of this so basically the last 45:37.400 --> 45:42.920 year possibly is coming into fix it must take a savada provided a patch let's talk about like how 45:43.000 --> 45:49.560 you could fix it basically you need two steps first step you just need to define what is the 45:49.560 --> 45:56.920 signness expected okay now decided it's signed charged that's it that's the first step another one 45:56.920 --> 46:01.880 what to do if you are actually having like a running cluster and now suddenly the things become 46:01.880 --> 46:08.200 more complicated but what if you just define like some flag and say like oh okay when I created this 46:08.760 --> 46:13.640 it was signed so when I transfer these bytes to the replica and replicate square it with this 46:13.640 --> 46:20.520 index so I just need to use the same signness as a master right that's exactly what was done 46:22.200 --> 46:28.520 and yeah if you want some key takeaways from these new clusters have signed charged by default 46:28.520 --> 46:33.640 for the comparison function the old cluster remembers the original signness if you do pg upgrade 46:33.720 --> 46:38.920 compatibility mod is used so you just encourage like there old clusters behave before 46:39.800 --> 46:52.680 and basically I think let's hit that concludes today's lightning light and talks 46:53.480 --> 46:58.680 we have another slot tomorrow there's still some space we have a third number submissions but 46:58.760 --> 47:05.400 they're all very serious so if anyone wants to have a slightly more amusing talk then go and 47:05.400 --> 47:10.200 look at the agenda and there's a link about why you could submit thanks everyone