WEBVTT

00:00.000 --> 00:10.680
All right, sorry for these slight delay in starting. Welcome to Lightning Lightning Talks.

00:10.680 --> 00:21.480
We have a set of very nice speakers who will speak for no more than 256 seconds. Yeah,

00:21.480 --> 00:25.200
and he over to you, he's guys.

00:25.200 --> 00:27.640
Thank you.

00:27.640 --> 00:31.480
My name is Salon Wilson. I'm part of the Permanent Racco Community.

00:31.480 --> 00:39.160
I've been at the stand in Billing K and you're still welcome, even it's only a few minutes left of the event.

00:39.160 --> 00:42.880
I'm here to present a contributing animal to you.

00:42.880 --> 00:47.040
But Piotr here is also here.

00:47.040 --> 00:52.720
Hi, I'm Piotr Carbash. I'm a part of the Apache Software Foundation.

00:52.720 --> 00:57.520
I work mostly on Apache the Khojai in common.

00:57.520 --> 01:05.440
So contributing animal, the question here of most of us who have been involved in open

01:05.440 --> 01:11.480
sources, I didn't help with my project, but this stuff that I don't know how to do.

01:11.480 --> 01:16.040
I can code, but I would love to have a website.

01:16.080 --> 01:19.720
I can make up, but it's kind of finding speakers.

01:19.720 --> 01:22.720
I'd like a logo for my project.

01:22.720 --> 01:26.200
I need help with translating and internationalization.

01:26.200 --> 01:29.360
Lots of types of problems.

01:29.360 --> 01:35.000
And we have a file out there in use called contributing.markdown.

01:35.000 --> 01:40.240
That covers how to do some contributions, but it doesn't go into details.

01:40.240 --> 01:46.360
Are we thinking, could we make this machine readable and add something extra in it?

01:46.360 --> 01:52.360
OK, so we changed the extension and call it contributing.jama.

01:52.360 --> 01:57.920
So what we want to do with this is help maintain this community kit, their project status,

01:57.920 --> 02:02.640
their support intentions, and their support needs.

02:02.640 --> 02:11.520
So by project status, we mean active archive, done, abandoned, adoptable, stuff that

02:11.520 --> 02:16.440
you're already finding some ecosystems, some of the statesmen can be done, but no, my

02:16.440 --> 02:17.440
trainer.

02:17.440 --> 02:22.040
Of course, I maintain and we will not say it's abandoned.

02:22.040 --> 02:28.360
With intentions, we could explicitly state that, yes, this project is actually maintained,

02:28.400 --> 02:33.880
or say something about how much it is maintained, casually, or not at all, or we only

02:33.880 --> 02:39.880
do security fixes, or this actually commercial support, or anything else that would

02:39.880 --> 02:43.720
be of that kind.

02:43.720 --> 02:52.320
By support needs, means everything that project can need besides code contributions like

02:52.320 --> 02:59.320
code review, community building, bug, and even security triage, graphic design, writing

02:59.320 --> 03:07.040
articles, mentoring, summer of code, and many, many more.

03:07.040 --> 03:14.080
This is actually part of a specification and standard session track at Ekmo.

03:14.080 --> 03:22.680
We are part of the TC 54 track, we call contribution dot EAMO, and we are creating the

03:22.680 --> 03:26.800
Jason schema that describes this information.

03:26.800 --> 03:36.080
Yes, so the number, the code number is TC 54, TG4.

03:36.080 --> 03:44.040
So something we want to ask users is to give us their use cases and stories,

03:44.040 --> 03:53.840
yeah, if you ever wish to have some kind of help, we have already a lot of examples, but

03:53.840 --> 03:58.680
there are many activities out there, so if you have good use of stories and experiences

03:58.680 --> 04:02.880
in running Europe, a source community, please switch out and tell us some of your stories

04:02.880 --> 04:09.560
so we can put this into the specification.

04:09.560 --> 04:19.800
The way we work, we have a bit of meeting, EO, evening morning in the US, we work as

04:19.800 --> 04:28.400
internally on the second stack, right now we have a shared Google doc, but once we

04:28.400 --> 04:34.200
advance it a bit more, we give it on.

04:34.200 --> 04:36.360
So we would love to join you in this work.

04:36.360 --> 04:42.380
This is Ekmo right here, we are already a bunch of people here, myself and the filter

04:42.380 --> 04:47.080
is mentioned since we are on stage, but we have not so support from Steve Springell from

04:47.080 --> 04:52.760
Chris Amelie and the host of all the people, but while we have many experienced in

04:52.760 --> 04:57.920
board and we don't have the complete experience, and if you would like to help us, you're

04:57.920 --> 05:02.360
super welcome.

05:02.360 --> 05:17.440
Hello, I'm Akie Braun, I'm a repertoire on a couple of different standards for the CRA,

05:17.440 --> 05:21.560
I'm here to talk about false heard, false heard, I have overheard from false to attendees

05:21.560 --> 05:26.360
about the CRA, I'm not going to give you my whole bio because we don't have time.

05:26.360 --> 05:30.320
There's more slides than we can get through, I'm going to see if I can get to the bonus

05:30.320 --> 05:31.320
round.

05:31.320 --> 05:35.920
Okay, first of all we're going to start with just talking about open source projects generally.

05:35.920 --> 05:41.280
First of all, I'll have to pay a big fine if I open source project has a vulnerability

05:41.280 --> 05:43.360
that I haven't mitigated.

05:43.360 --> 05:49.000
Totally false because open source projects that are not part of a commercial activity

05:49.040 --> 05:54.160
are exempt from all that, you don't have to do anything, you can just keep doing what you're

05:54.160 --> 05:55.160
doing.

05:55.160 --> 05:58.600
All right, donations are sponsorships for my work in open source, makes me personally

05:58.600 --> 05:59.600
liable.

05:59.600 --> 06:05.320
As of us, you can take donations for your work in open source, and you can cover your

06:05.320 --> 06:10.520
costs, the distinction of where something becomes a product that's placed on the market

06:10.520 --> 06:15.280
has to do with whether or not there's real economic activity, so just getting donations

06:15.280 --> 06:19.000
and GitHub sponsors is not the same thing.

06:19.000 --> 06:22.840
My work, oh, this one, my work on open source projects, my employer won't let me do

06:22.840 --> 06:25.720
anymore because they don't want to have your responsible.

06:25.720 --> 06:33.040
The CRA is product-related, it's product safety legislation or regulation, so it's really

06:33.040 --> 06:36.240
about the product that's placed on the market, doesn't really have anything to do with

06:36.240 --> 06:41.960
the individual people who are interacting with it.

06:41.960 --> 06:45.880
Using my open source project means I have to do compliance documents, if anybody integrates

06:45.880 --> 06:46.880
it.

06:46.880 --> 06:49.600
This one, I think a lot of us have heard the story about Daniel from Curl who got this

06:49.600 --> 06:55.480
lengthy form sent to him by some big software company, because hey, you need to fill out

06:55.480 --> 07:01.920
all of this information about the security pusher of Curl, and you have to get to us

07:01.920 --> 07:08.240
in two weeks because we need to be CRA conformant, and no, he doesn't.

07:08.240 --> 07:11.280
They're not paying him, he is not placing a product on the market.

07:11.280 --> 07:16.320
They are choosing to integrate Curl, and so it's not really his problem.

07:16.320 --> 07:20.520
He could choose to do that, and I think it's going to be better for the whole ecosystem

07:20.520 --> 07:26.080
if we, as open source maintainers, do try to provide that information, but it's not his

07:26.080 --> 07:27.360
responsibility.

07:27.360 --> 07:32.320
I have to find an open source steward from my project, also false.

07:32.320 --> 07:38.280
If you have a big project with lots of contributors and lots of complication, you might benefit

07:38.320 --> 07:43.400
from having an open source steward for somebody who's around who's there to make sure

07:43.400 --> 07:50.040
that you have clear vulnerability reporting processes and vulnerability management, but

07:50.040 --> 07:53.240
you don't have to do that.

07:53.240 --> 07:56.520
I'll just be an open source steward, not that simple.

07:56.520 --> 08:02.120
You have to generally be a legal entity, open source steward isn't just like a person

08:02.120 --> 08:06.360
who decides, especially if you're a maintainer, just focus on being a maintainer.

08:07.320 --> 08:10.360
Oh, the CRA requires projects to follow specific processes.

08:10.360 --> 08:15.320
I heard somebody talking about how they're going to have to change all of their

08:15.320 --> 08:19.320
pull request review processes because the CRA said, so the CRA doesn't really care what

08:19.320 --> 08:23.640
your processes are, as long as your product is secure, that's what the CRA cares about.

08:23.640 --> 08:30.120
It's all about whether or not your product is secure, so if your pull request process right

08:30.120 --> 08:37.480
now involves not reviewing them, okay, yeah, you probably should, but like you should anyway,

08:37.480 --> 08:42.120
change your processes. It has nothing to do with the tax of the CRA.

08:43.880 --> 08:50.520
Okay, next, on to products. Any CVE, on the integrative components will set me up for a big

08:50.520 --> 08:56.520
fine. Everything about the CRA is risk based, so what you need to do is look at your own risks.

08:56.520 --> 09:00.920
So if you have a product that's integrated or a component, it's integrated into your product

09:00.920 --> 09:06.840
and has a really high score CVE, but that actually doesn't have any risk in relation to the

09:06.840 --> 09:13.160
information your product processes or what it does, then your risk is null and you don't need to

09:13.160 --> 09:17.080
worry about it. Okay, a lot of time. I have stickers here that say, I'm a foster developer, zero

09:17.160 --> 09:19.800
series, obligations, lots of rights, come find me to get one.

09:29.240 --> 09:36.040
All right, thank you. Yes, don't go to smart TVs, watch your TV before watching you.

09:37.960 --> 09:44.680
Yeah, so you want to buy a new TV and you realize that most TVs is there is a smart TV,

09:44.680 --> 09:50.040
so you spend 52500 euros on a new TV, but it's integrated smart features and

09:51.080 --> 09:56.680
your reward, a unified platform that can do everything you want, say unified media platform,

09:56.680 --> 10:03.000
device control screencasting, etc. The price you are paying, where's ads on your home screen,

10:03.000 --> 10:09.720
even though you paid full price for the TV, there's blood wear, manufacturer is doing a

10:09.720 --> 10:14.120
funny thing about ACR, I'll touch up on that in a little bit, the infamous Netflix button

10:14.120 --> 10:20.680
on the remote and you're probably also paying your show as well. Yeah, so automatically content

10:20.680 --> 10:28.040
recognition, you buy a TV, literally anywhere from 2 to 100 times per second, it takes a low quality

10:28.040 --> 10:35.640
screen shot, it sends this over the internet to the manufacturer who then does some AI learning on

10:35.640 --> 10:42.440
it to detect what exactly you're watching, even if you're watching something from an

10:43.560 --> 10:48.120
ACR connected device that's not even like a streaming platform, and from this little

10:48.120 --> 10:53.560
fingerprinting and personalized advertising and who knows what, it just saw your data through

10:53.560 --> 11:01.800
third parties, this is a default setup when you connect this to the internet, and most of these

11:01.800 --> 11:07.880
remotes welcome with a Netflix button alongside Mary at the Photoshop offices,

11:12.280 --> 11:18.760
well then there's a non default setup, so if you love manualing through TV manuals with a

11:18.760 --> 11:26.520
shittery mode, then do all of these, think it's a bit too long of a list for this presentation,

11:26.760 --> 11:34.200
there will of them, if it's setting sounds like, improve and hands, personalize or recommend

11:34.920 --> 11:40.680
or something along that line, turn it off, from this whole list here,

11:40.680 --> 11:48.920
there's more to be where you allow you to turn off all of these things, and then the worst of all,

11:48.920 --> 11:53.160
if you do run an update at some point, some of these features, and I think you've disabled,

11:53.320 --> 11:57.560
don't just be enabled themselves, so in every update you're going to have to go through all the

11:57.560 --> 12:04.680
settings again, disable all the features, and sure, a temporary solution, just bind over TV,

12:04.680 --> 12:09.240
right, and this works great, and so all the TVs are also smart in a couple of years from now,

12:12.600 --> 12:16.040
you just just use it as a monitor where the smartphone factor computer, right, and don't

12:16.040 --> 12:20.920
connect it to the internet, this works great for your home setup, but if you visit friends or

12:21.000 --> 12:27.320
family, they might not want to invest in such a setup, and just opt for the convenience of having

12:27.320 --> 12:37.640
a all-in-one device, smart TV, then the realistic, realistic solution, perhaps, thank you, thank you.

12:41.160 --> 12:45.560
Yes, they're not connected to TV to the internet, this works great, and so many

12:45.560 --> 12:51.720
factors start requiring internet, or a subscription, even for the TV to work, sometimes this is

12:51.720 --> 12:56.920
referred to as hardware as a surface, there's some ratios with printer ink or weight

12:56.920 --> 13:01.160
car keys, I think Toyota does this, where if you subject your subscription, you're lost your

13:01.160 --> 13:06.920
car keys, but good luck, you can't find it now, also some homesick, GRT apps use this,

13:08.760 --> 13:11.880
literally a list of solutions is hack your TV, there's some initiatives for different

13:12.040 --> 13:16.760
manufacturers, often this involves opening up your TV, taking out the hard one,

13:16.760 --> 13:21.480
thinkering with it, there's a semigo for Samsung, there's some custom Android ROMs to replace

13:21.480 --> 13:27.240
anything that's running on Google TV, there's really much of your open LG TV for LG, or you can

13:27.320 --> 13:35.320
build your own hack, don't forget to check this out, and yeah, I think that's it, thank you.

13:42.600 --> 13:52.600
Hello, falls down, wow, my wife came and she's my inspiration, but also an inspiration for me

13:52.600 --> 14:02.760
is Wikipedia, because what an achievement that Wikipedia brings free and open access to the best

14:02.760 --> 14:10.120
articles in the world, to anyone in the world, what would be the equivalent for a personal fitness,

14:10.120 --> 14:17.320
like how can we give free and open access to not only fitness information, but also fitness

14:17.320 --> 14:22.920
applications that can help people with their personal fitness journey, so it's not just general

14:22.920 --> 14:30.120
content, but actually personalize as well. For this mission, I first needed some education because

14:30.120 --> 14:37.240
I'm a software engineer, so I decided to embark on basically the most advanced course that I could find,

14:37.240 --> 14:42.520
which was a personal trainer course, and it was kind of funny to be the single software engineer

14:42.600 --> 14:47.640
in this huge class full of personal trainers and professional athletes, and all of them are asking

14:47.640 --> 14:52.680
me like, why are you in this course again? But anyway, I learned a lot in that course.

14:54.840 --> 15:00.520
So the first thing I started building is a database that contains exercise definitions,

15:00.520 --> 15:06.760
which by itself is nothing new, but you know, I'm trying to license this as permissively as I can,

15:07.720 --> 15:12.920
so it has all the usual information that you find in other databases, but also it has

15:13.560 --> 15:20.760
tweaks that you can apply to your exercises to kind of enhance how they affect your body,

15:20.760 --> 15:26.760
like for personal injury reasons, or if you need a little bit of a different training focus,

15:26.760 --> 15:32.200
there's all kinds of tweaks you can make, and most of those are supported by studies, so there's

15:32.200 --> 15:36.600
link to the studies that there's links to YouTube videos that explain everything in more detail

15:36.600 --> 15:41.800
Instagram posts, and those actually come from other creators, I don't create those videos,

15:41.800 --> 15:46.680
but I can just link to them and I can include that in the database and still it's permissively licensed.

15:49.080 --> 15:55.400
Once I have that database, I started creating applications, so the first application is a program

15:55.400 --> 16:00.520
creator, so for anyone who wants to make their own weightlifting program or resistance training program,

16:01.480 --> 16:07.720
an important thing to keep in mind is that many exercises train different muscles to different

16:07.720 --> 16:12.280
extents, so it's kind of an interesting challenge, like how do you break it down, how do you make your

16:12.280 --> 16:18.520
selection of all your different exercises, such that you add up all your volumes of all your

16:18.520 --> 16:26.920
individual muscles to kind of the balance that you're looking for. Obviously any fitness app I think needs

16:27.000 --> 16:32.920
to have a calorie calculator, so this one has the same, but also it has a volume calculator, so

16:32.920 --> 16:39.240
based on your personal body, your age, all kinds of lifestyle factors, you can calculate your

16:39.240 --> 16:47.720
optimal volumes for your exercises. There's now also a mobile application for your phone where

16:47.720 --> 16:53.000
you can log your sets, your performance, you can analyze your performance over time,

16:53.800 --> 16:58.040
at the end of your session, you can see the breakdown of all the muscles you worked and with

16:58.040 --> 17:04.520
how much volume, and also I want to add functionality to loop that back into your program, so you

17:04.520 --> 17:10.520
can refine your workout program based on your actual performance data. Of course there's also weight

17:10.520 --> 17:18.520
logging, so pretty obvious, but weights, flux wage, flux to weights also every day, so there's

17:18.520 --> 17:23.560
moving averages, you can see your weekly trend, you can see your monthly trends, and so on.

17:25.400 --> 17:30.840
And yeah, for more information, check out the website, body.built. It's not only for bodybuilding,

17:30.840 --> 17:35.000
it's just for anyone who wants to get fit, although it is a little bit on the advanced side right now,

17:35.000 --> 17:39.320
but the.built domain name was available, so I thought it would be cool to buy it. That's why

17:39.320 --> 17:43.320
it's called Body.built. The applications are on App Store and Play Store,

17:44.120 --> 17:50.520
HEPL license code repository, and if you want to know more, please reach out to info at

17:50.520 --> 18:06.120
Body.built. Thank you so much. Hi, my name is Mayur. I started this project around one year ago.

18:06.520 --> 18:18.520
So the idea is to measure or quantify how far away your community postures equal is from

18:19.480 --> 18:27.160
any postures derivative, postures for or postures product that start up new start up selling.

18:27.560 --> 18:38.280
So this started with launch of when Amazon launch AWS launch are over a D-SQL, so there was a

18:38.280 --> 18:44.360
viral discussion that it doesn't have views, doesn't have constraint, doesn't have anything,

18:44.360 --> 18:51.960
but they were they had this postures compatible D-SQL in their marketing campaign.

18:52.280 --> 19:00.280
So we were discussing this that we need some kind of framework or some measuring stick,

19:01.160 --> 19:07.240
and because we have a lot of postures for postures derivatives, we have neon supobase,

19:07.240 --> 19:14.040
Yugabaid, even Cockrozy, we have all the animals and amphibians and insects.

19:14.760 --> 19:23.560
So this started with the idea of developing a framework, and it's because,

19:24.920 --> 19:32.520
I mean it's natural that postures now has 30 years of network effect, so it's pretty natural

19:32.520 --> 19:39.400
for new start-ups, new companies, try to cash in on that branding on that 30 years of network effect.

19:39.400 --> 19:45.160
And there is nothing wrong with it, but the original iconic postures project identity should

19:45.160 --> 19:52.760
not get dissolved. So and also there is nothing stopping from Oracle saying that they are the

19:52.760 --> 20:00.200
most world's most advanced postures compatible enterprise database, there is absolutely nothing.

20:01.160 --> 20:12.840
So this project kind of runs automated tests on whatever postures derivatives that can be plugged in

20:12.840 --> 20:21.080
or that can use this plug-in to run those tests, and comes up with scores based on missing features,

20:21.080 --> 20:26.200
missing behavior. It's basically kind of a behavior analysis for a database,

20:27.160 --> 20:34.200
and early days it used to look like this, just a Python program and missing feature and some

20:34.200 --> 20:43.160
score, but why not take it one step further? So now it's a website, pgscorecard.com,

20:43.880 --> 20:52.440
and you can scan now, and it has a lot of postures derivatives listed, I did not list obvious one,

20:52.520 --> 20:58.920
the postures, it's always going to be 100%, and then there are feature list, and you can toggle and play,

20:59.720 --> 21:08.440
you can even compare some of the derivative with other products. I have a lot of saying, okay,

21:08.440 --> 21:19.160
and I'm not a developer by profession, I'm a DBA, not backman as well. So I would, I would welcome any kind

21:19.160 --> 21:31.400
of help or any new ideas or any code contribution. So this is green one is for open source contribution,

21:32.120 --> 21:40.280
and if you're a startup or company that is selling postures, compatible things, and you want

21:40.280 --> 21:46.680
your startup to be listed, then you can just send one PR for this DBA edition,

21:47.000 --> 21:57.160
and this is my database comedy blog. It has this postures compatibility index flow and origin

21:57.160 --> 22:03.720
story in detail, and some other things as well. So I have 20 to 2 seconds, I can just skip it for 20 seconds,

22:05.320 --> 22:07.720
scan it, or I'm not leaving. Okay, fine.

22:08.120 --> 22:12.120
All right, thank you.

22:16.120 --> 22:24.840
Hey, full stem. So as you might know, there's this small Linux distribution called ARCH,

22:25.960 --> 22:37.160
and it uses users get updates nearly every day or hour, so you want like a fast way to get your updates,

22:37.960 --> 22:45.800
you get a lot of updates, or you get a lot of traffic, and maybe you have like multiple

22:45.800 --> 22:51.880
ARCH machines in your home land, you have a laptop, a desktop, and something, and you are starting

22:51.880 --> 22:57.880
to, you may might not have like the the biggest pipe to the internet, and but you do have a home

22:57.880 --> 23:04.680
server. So then I have a solution for you. So there's a very easy way to set up a way to share

23:04.760 --> 23:11.880
your Pac-Man cache. So the cache we're all the the packages live on your own local network.

23:13.320 --> 23:18.280
And the only thing you need is this new feature. Well, new feature is already a few years old in

23:18.280 --> 23:26.040
Pac-Man. So basically it's a cache server directive. You pointed to a web server,

23:26.920 --> 23:33.400
this is an HB server, and on your network. And what Pac-Man will do when it starts updating your

23:33.480 --> 23:42.120
system is first try to fetch the package from there, and if it cannot be found, it won't normally

23:43.400 --> 23:51.800
the servers where where packages aren't found are removed from your from from being checked.

23:52.360 --> 23:57.400
So with the cache server, it doesn't, it just, if there's four or four, it's all try your normal

23:57.400 --> 24:04.920
mirror. And it doesn't use the package, the repository database, the index where all the packages

24:04.920 --> 24:12.920
are, that it will capture from your mirror. And so with this new old config option,

24:14.040 --> 24:18.440
the only thing you would need is an arch server, container, virtual machine, whatever,

24:18.440 --> 24:25.800
something where you can keep a cache of. Pac-Man packages, an HB server, this can be anything,

24:26.520 --> 24:34.920
and the system detimer to pull in your packages in there. And then you can set up an easy server.

24:34.920 --> 24:42.760
So the HB server can just be a Python server, serving your Pac-Man cache. For example, your home server,

24:42.760 --> 24:49.800
if runes the arch, the client configuration is simply dropping this cache server directive.

24:50.760 --> 25:01.160
And that's basically it. Then you would want some timer to fetch the packages on your home

25:01.160 --> 25:07.240
server every night. So when you, for example, if they kill up top, it tries to fetch as the

25:07.240 --> 25:16.120
newest kernel from your from your home server. So you just created the daily timer and you used

25:16.280 --> 25:22.840
the checkup dates, the scripts, it doesn't interfere with normally running Pac-Man. It creates a

25:22.840 --> 25:31.640
lock file. And so it's a bit messy if you run Pac-Man in normally in a timer or a script or

25:31.640 --> 25:36.840
all the minutes scripts and you run it again as in the CLI, as yourself. So there's the checkup

25:36.840 --> 25:42.200
dates which uses some magic to prevent this. This will just download the packages you have

25:42.280 --> 25:50.840
installed on the system into the cache directory. And then you can go through, although

25:52.040 --> 25:56.840
it's only gigabit mine at work. So it's not really blue. But it's limited to whatever

25:56.840 --> 26:02.760
whatever network speak you have in your land. If you want to endure more, just check up the

26:02.760 --> 26:09.800
excellent wiki, there's configurations for any web server you might have. There's more alternative

26:09.800 --> 26:25.080
approaches. And yeah, that was all. Oh sorry. Hello, my name is Benjamin Hunter. I'm from Belgium.

26:25.880 --> 26:31.080
I've been attending all the first them since it exists when it was gold ors them. And I work on

26:31.080 --> 26:37.720
software patents since 1998. I'm president of a association which fought the software patent

26:37.720 --> 26:43.560
director 20 years ago. And this directive was rejected by the European Parliament because

26:43.560 --> 26:49.880
large companies saw the Parliament could vote a lot that they didn't like. So they pushed

26:49.880 --> 26:55.400
they asked a member of Parliament to drop this directive and push for the central patent court in 2005.

26:56.360 --> 27:01.400
In 2006, the commission proposed a reform of the patent system to

27:02.360 --> 27:06.920
centralize the the patent system in Europe and notably to remove national courts.

27:10.520 --> 27:14.680
So the law is the European patent convention. It's an international law between several

27:14.680 --> 27:21.800
member states of the EU plus some other states that Turkey. The law says article 52.2 is computer

27:21.880 --> 27:27.400
programs I exclude of patentability but the next article says they are to be considered a search.

27:28.120 --> 27:35.640
And the EPO since the 1980s ground software patents anyhow using this as such loophole.

27:37.480 --> 27:44.440
In 2006, my predecessor Mr. Pillish predicted what would happen. So in July 2005, I have several

27:44.440 --> 27:49.240
attempts to legalize software patents in Europe. The patent establishment changed strategy instead

27:49.240 --> 27:53.640
of explicitly seeking to sanction the material of software. Then I was seeking to create a

27:53.640 --> 27:58.360
central patent court for Europe which would establish and enforce patentability rules in their favor

27:58.360 --> 28:03.560
without any possibility of correction by competing courts or democratically elected legislatures.

28:04.120 --> 28:08.200
The last sentence is very important because the whole game here is to avoid the European

28:08.200 --> 28:13.320
court of justice and basically the European Parliament said it's fine so they are not legislator anymore.

28:13.640 --> 28:21.720
The unified patent court is a very strange beast where they invented they created new

28:22.280 --> 28:28.040
judges without a law degree called technical judges and those it appears that those judges are

28:28.040 --> 28:33.080
in fact patent lawyers who work for Nokia in the morning and become judges in the afternoon.

28:33.640 --> 28:38.520
It's self-finance before it was financed by the EU but now it's self-finance was very very expensive

28:38.520 --> 28:47.080
to go there to litigate or to be litigated to be sued there. The EPC is not EU law so the European

28:47.080 --> 28:53.560
Court of Justice doesn't have a say and basically they are blocking the appeals to the European

28:53.560 --> 29:01.080
Court of Justice on those questions. Now what we discovered by litigating against is that in the past

29:01.080 --> 29:06.600
the European Court of Justice killed their previous attempt because national courts cannot be removed

29:06.680 --> 29:14.680
of Eulo and in 2017 there was a case with investment courts that had to improve Eulo and the

29:14.680 --> 29:22.920
Court of Justice killed them because it's an infringement of Article 267. Now in October there's a

29:22.920 --> 29:27.240
company streaming company called Roku that tried to escalate this question of Eulo to the

29:27.240 --> 29:34.520
European Court of Justice and the UPC denied the questions saying there was no issue while all the

29:34.600 --> 29:43.480
experts say there is and actually it's a violation of Eulo Article 277.3 where courts are forced

29:43.480 --> 29:49.960
they must escalate the questions of Eulo and so in the past there was a famous case with Poland

29:51.080 --> 29:56.280
where the European Commission gave a heavy fine heavy daily fine to Poland for exactly the same

29:56.280 --> 30:02.520
problem. Now we know the European Commission is not in this file is not excluding their eyes

30:03.480 --> 30:09.960
and the question is whether someone can go to national court and try to escalate the problem

30:09.960 --> 30:16.520
to the European Court of Justice by changing the validity not of the UPC treaty but of the

30:16.520 --> 30:22.360
Brussels one regulation with contains the fake word of common court so in for investment courts

30:22.360 --> 30:28.360
that's what they killed. So it's going to be my project for this year. Thank you.

30:33.480 --> 30:45.560
Hello. So sometime ago I stumbled upon a project called Web A2E which basically allows you

30:45.560 --> 30:53.000
to run terminal applications built on top of Ratatouille framework inside a web browser which I found

30:53.000 --> 31:00.600
super cool but also I started wondering what would it take to turn this upside down and run

31:00.600 --> 31:09.400
a modern web browser inside a terminal. So web browsers don't put the pixels directly on the screen

31:09.400 --> 31:15.880
they communicate with a compositor which is a different process they talk to each other with a

31:15.880 --> 31:22.520
protocol like Wayland or X and it's the compositor that takes the pixels from multiple applications

31:22.520 --> 31:29.400
combines them together and actually puts them on a screen. So if only I could find a way to make a

31:29.400 --> 31:34.360
compositor that actually ran just to a terminal I would be golden I wouldn't need to change the

31:34.360 --> 31:43.480
web browser and I would get it in a terminal. So this sounded like a great way to dig into how

31:43.480 --> 31:50.920
this all works under the hood and it kind of went downhill from here. So I found Smithay which is an

31:50.920 --> 31:56.920
excellent Rust library for building without compositors which basically takes care of all the

31:56.920 --> 32:03.400
wayland parts. So I need to figure out how to actually put the pixels in the terminal I could use

32:03.400 --> 32:10.520
something like 6L or KT graphics protocol but there are some problems with this first of all somebody

32:10.520 --> 32:19.080
already made an X server that renders to 6L to a terminal so it was not interesting but also using

32:19.160 --> 32:27.240
either of this would be a smart idea and I was not interested in smart but funny. So instead of this

32:29.560 --> 32:39.240
I chose this beauty. This is a unique upper half block. If I combine this with Ansie escape sequences

32:39.240 --> 32:45.320
I can set background and foreground colors for the character and this way I encode two pixels

32:45.320 --> 32:53.080
on one character. And since this is just a normal character I can use two e-frame like Radatui

32:53.080 --> 33:01.000
and cross term to render this to a terminal and all I need is a bit of duct tape to connect those

33:01.000 --> 33:08.840
two together which I did and the result honestly was much better than I expected. Here the

33:08.840 --> 33:15.400
alacrity terminal emulator is actually able to render a full wayland display and running

33:15.400 --> 33:23.240
Western terminal and because I convinced alacrity to render characters as one by two pixels this

33:23.240 --> 33:34.280
is actually pixel perfect. So it was cool but it could be faster because obviously I tried running

33:34.280 --> 33:45.400
doing it and it works but the framework is clearly not enough for 2020. So I found out that the

33:45.400 --> 33:52.840
bottleneck is actually encoding as Ansie escape sequences on CPU it basically holds at 100% so I

33:52.840 --> 34:01.880
did the obvious thing and uploaded it to a GPU. And obviously I used Web GPU because at this point

34:02.040 --> 34:10.040
why not. And this actually proved a frame it quite a bit and I got something that can be

34:12.040 --> 34:18.520
that can be considered a smooth experience and right now I believe my bottleneck is actually the

34:18.520 --> 34:25.560
terminal emulator which can't keep up decoding those R&C sequences because I'm sending two

34:25.720 --> 34:33.560
modules. Anyway some other pretty pictures it can run itself and most importantly it can run

34:33.560 --> 34:47.560
the firefox. If you're interested here's a code run it yourself good luck and thank you.

34:48.200 --> 35:07.480
Okay. Hi everybody my name is Martin and today I have a story for you about my grandma and her computer.

35:09.240 --> 35:15.560
Those of you that manage a device for some of your family members. I'm guessing you had to deal with

35:16.440 --> 35:22.760
the end of support of Windows 10 back in October. Those of you that didn't the problem was that

35:23.480 --> 35:31.160
in order to officially upgrade your device needed to have some minimum hardware requirements. So doing

35:31.160 --> 35:37.560
nothing meant that you would receive no security updates for example. And there were some estimates

35:37.560 --> 35:45.080
that up to 400 million devices were affected but who really who really knows what I do know

35:45.080 --> 35:51.400
is that my grandma's computer was one of these devices and because I managed it for her

35:53.720 --> 36:00.760
because I managed it for her it was also my problem. To get you some context about my grandma and her

36:00.760 --> 36:06.200
relationship with tech let me actually start from the opposite direction and let's look at some

36:06.200 --> 36:13.960
populations statistics. So this is a small section from a 2023 survey about check households and

36:13.960 --> 36:22.520
their relationship with tech and for us the important part is that households with people over 65

36:22.520 --> 36:32.120
and no children only about a half of those even owned a computer right. If we go further and look

36:32.120 --> 36:41.000
at reported skills then in my grandma's age bracket only about 23% of people knew how to copy files

36:41.640 --> 36:49.560
and about 6% knew how to install a program. So knowing all this you would be right to assume

36:49.560 --> 36:58.040
that my grandma is not a technical person but let me just say that's okay. I mean we all have different

36:58.040 --> 37:06.920
hobbies right but unlike a large proportion of her peers she can copy files okay back in the day she

37:06.920 --> 37:15.720
also was able to install Windows 10 with just me on the phone but now all she really uses is a browser

37:15.720 --> 37:22.360
and office suite and a printer. But if we go back to the problem again the issue was that her

37:22.440 --> 37:30.680
computer was running out of support and there was no realistic way to go further and so what can we

37:30.680 --> 37:37.800
do about this? I mean by her a new computer well I don't know but there is an obvious solution right

37:38.440 --> 37:50.520
I mean here we are just install Linux so that's what I did. Thank you thank you

37:51.480 --> 37:59.160
my grandma is now a Linux user specifically her computers running Xorino S no affiliation by the way

37:59.640 --> 38:05.080
the reason I chose this distribution was because it's desktop environment seemed familiar

38:05.640 --> 38:11.640
or I thought it would be to her it also works out of the box seems difficult to mess up and it's also

38:11.640 --> 38:19.160
super simple to run updates through the software update or utility and it's been about six months

38:19.640 --> 38:25.640
there haven't really been any major issues so far my grandma was even able to print something

38:25.640 --> 38:31.880
completely on her own without me showing her how and I thought honestly I thought that was pretty impressive

38:31.880 --> 38:39.000
and a great testament to the UI of the whole system but I know that this whole example is not really

38:39.000 --> 38:44.600
serious and it's not something you would draw conclusions from but regardless you know it gave me

38:44.680 --> 38:50.360
tremendous hope about the state of Linux desktop especially for people like my grandma

38:51.320 --> 38:57.720
so to wrap this up it turns out that my grandma did not meet a new computer and if you're wondering

38:57.720 --> 39:04.280
whether some of your less technical family members would be able to use Linux just know

39:05.080 --> 39:10.920
that my grandma is doing fine. Thank you.

39:19.720 --> 39:25.160
Hi today I'll be presenting Simic which stands for Story or Mail in Get and it's

39:25.160 --> 39:30.120
basically a more unixy way of dealing with mail but the synchronization primitive is get rather than

39:30.120 --> 39:37.480
IMAP so I personally find mail user agents to be a bit of a pain because they all display

39:38.680 --> 39:44.200
almost without exception they all display mail as some organizations of photos usually on the

39:44.200 --> 39:50.440
left column of the user interface and then you have those opaque objects which are messages and they

39:50.440 --> 39:58.040
have IMAP flags and oftentimes I don't know at least for me I would like to treat them as actual

39:58.040 --> 40:05.400
normal files. What if they're actually files which can unlike in Moder which you basically

40:05.400 --> 40:10.760
needed to follow a particular structure what if they're files you can just copy around move around

40:10.760 --> 40:18.040
in your file system like any other file in a normal unix workflow and what if instead of IMAP

40:18.040 --> 40:24.360
which often has issues with conflicts when multiple devices modify the same mailbox with

40:24.360 --> 40:29.560
the same email at the same time what if we use a synchronization primitive that robustly handles

40:29.560 --> 40:35.560
conflicts which has been talked about quite a few times in foster morality. My answer is get

40:38.440 --> 40:45.560
and so I'm going to store each so we store the mail of each account inside one get repository

40:46.280 --> 40:51.240
and mailboxes are photos but we actually don't have this concept that the native concept of

40:51.240 --> 40:58.280
mailboxes because you can structure the repository however you want to do it. You could create a

40:58.280 --> 41:03.080
inbox directory and put your new mail into there or you can put mail at the

41:06.280 --> 41:12.760
or you could just literally make the inbox the route of the directory these are controlled by the

41:12.760 --> 41:19.160
Steve script and the delivery configuration rather than something hard-coded and you can even use

41:21.000 --> 41:25.400
rocketly organized archives or put everything in one directory although I don't know why you

41:25.400 --> 41:32.200
want to do that. So the delivery semantics are relatively simple. Each recipient

41:32.200 --> 41:38.440
resolves to get repository we fully resolve the head to a detached reference which go through a

41:38.520 --> 41:43.560
image so we fully resolve the symbolic references and all of the delivery work happens against

41:43.560 --> 41:50.200
that delivery dot commit snapshot that we found at the start of the delivery. So we read the delivery

41:50.200 --> 41:55.560
configuration and determine the found name format. We run the Steve script and determine which

41:55.560 --> 42:02.760
folder we deliver the email to and then sorry the delivery script decides the message format and the

42:02.840 --> 42:09.720
message found name and the target path is decided by the Steve script. We read the commit, read the

42:09.720 --> 42:17.160
tree, write the blob and then put the new email's blob into the tree and then write the tree

42:17.160 --> 42:23.720
and write the commit. And then because if you look at the man page of get update rough you can

42:23.720 --> 42:29.960
actually see that you can supply an old object ID for it to automatically compare and swap. So we

42:30.040 --> 42:36.520
compare the so we make it compared the ID of what we expected to be the original commit with

42:36.520 --> 42:42.120
it's actually in the current breath and then we update it if they match. Atomic. If on conflict

42:42.120 --> 42:47.720
it means that the user has recently pushed or recently forced push so you just retry on the new

42:47.720 --> 42:54.600
refette you don't need to rebase or merge. And the entire diamond's task is basically to accept

42:54.600 --> 43:01.080
mail over TPR, SMTP, resolve and expand aliases and resolve recipients and for each recipient

43:01.080 --> 43:07.000
deliver to its corresponding get repository. We need a lot of client utilities to make these work

43:07.000 --> 43:12.040
in a normal units workflow. So for example unpacking parts around my message and custom indexing

43:12.040 --> 43:19.080
because not much doesn't really work well in a flagless workflow. However, these are so under development

43:19.080 --> 43:22.440
they're not fully available yet but hopefully in a few months I should get them ready.

43:23.400 --> 43:27.400
And the repository is here if anyone wants to take a look. Thank you.

43:37.880 --> 43:44.280
Hey I'm Ruth and I'm going to do a very quick overview of the RCL configuration language which also

43:44.360 --> 43:52.600
happens to be quite a nice query tool. So are you ever in a situation where you have many configuration

43:52.600 --> 43:59.080
files that share some parts and you want to have a single source of truth? For example a repository

43:59.080 --> 44:04.920
full of rust grates and you want to synchronize a version number between them. Then instead of specifying

44:04.920 --> 44:11.000
everywhere you want it in a single place and then import it. Or maybe you have many parts that are

44:11.080 --> 44:17.960
very similar and you want to generate this with a loop. Then maybe you risk for string templating

44:17.960 --> 44:23.560
but now you have all kinds of escaping issues and if you use YAML now you also have white space

44:23.560 --> 44:29.800
issues and this happens because you're operating on the serialized form of some data structure

44:29.800 --> 44:37.720
but what you really want is to transform the data structure directly. So this is what RCL does

44:37.800 --> 44:43.960
and it turns out if you have a language that's good at transforming data it's quite a nice query

44:43.960 --> 44:55.880
tool as well. So RCL extends JSON by adding variables functions loops into a simple functional

44:55.880 --> 45:02.760
gradually typed programming language that you can use to have abstraction and reuse in your configuration.

45:02.760 --> 45:11.400
So on the left is an example we can for example import from other files and then reference parts

45:11.400 --> 45:17.800
of it so we can define a version number once and then reuse it. Or if there's a repetitive part

45:17.800 --> 45:23.960
then now we can just write a loop and if we want to turn on documentation it's we can switch it

45:23.960 --> 45:28.920
in one place. So how do you get from the thing on the left to the thing on the right?

45:29.080 --> 45:37.320
Well there's a command line tool you can run RCL evaluate kind of normal JSON YAML but now you have to

45:37.320 --> 45:42.280
update this thing all the time. So if you already have a build system or a task runner you can

45:42.280 --> 45:48.520
integrate it into that. If you don't then there's also a built in RCL build command that can

45:48.520 --> 45:56.840
update files for you. Then there's a query mode. So whoever curls something and then pipes it into

45:56.840 --> 46:05.720
JQ, raise your hand. Whoever had an expression that they wanted to write in JQ would be easy to

46:05.720 --> 46:13.960
write in Python or type script but couldn't figure it out. Right. So because every JSON document

46:13.960 --> 46:21.240
is also an RCL document you can use RCL to query and if you know Python type script or Rust you

46:21.320 --> 46:27.720
will find it's very natural. It takes an input document and then the query on the command line

46:29.320 --> 46:34.920
and this is what you can use it for. And finally if you're doing something more advanced and you're doing

46:34.920 --> 46:40.600
something in Python there's also Python module that's a drop-in replacement for the JSON module.

46:43.080 --> 46:48.280
If you want to learn more check out RCL Lang.org. There is also interactive demo there

46:48.280 --> 46:59.240
or come find me afterwards. Thanks.

46:59.240 --> 47:07.400
So for those who don't know 14 years ago I gave a few lightning talks and I was so nervous at the end

47:07.400 --> 47:14.280
of it I was drenched in sweat to my underwear. Now I stand in front of JOSO and even bigger rooms

47:14.280 --> 47:19.480
and I don't care. I might get a little bit emotional during some opening speeches but other than this

47:20.760 --> 47:26.280
the point here is get in front of people and speak about what you want to speak about. It takes

47:26.280 --> 47:31.720
a few years but at some point you just do it. Do I need to click something or do you click for me?

47:32.040 --> 47:45.480
What? Oh, there's a button.

47:49.160 --> 47:55.480
Yeah so anyway we should make this orange. Anyway this is a talk I gave 14 years ago

47:56.360 --> 48:00.920
and I wanted to just give an update on what change and what state to say. I'm going to rush through

48:00.920 --> 48:05.880
it a little bit but the slides are already available for download on the program. So what is

48:05.880 --> 48:10.520
good? I had to actually explain this 15 years ago this time I can't probably skip that one.

48:11.560 --> 48:19.000
ETCkeeper is a tool which stores slash ETC off your local file and yes we all have Kubernetes

48:19.000 --> 48:24.600
and containers and whatever but some of us also have desktop. Just install it. Thank me in five

48:24.600 --> 48:29.800
years when something breaks and you can just restore it. Just install it. Don't question just

48:29.800 --> 48:36.760
install it. If you use after anything it automatically makes checks and check in of your data

48:36.760 --> 48:41.320
every single time you install something and change something it is glorious. Install it right now.

48:43.000 --> 48:51.240
Yeah this is too long. But honestly I failed at using buff. It stores backups in in get.

48:52.840 --> 48:57.720
It's too complicated and also pruning stuff is just painful so that didn't work out over the last 14

48:58.360 --> 49:04.840
years. ETCkeeper back then a completely wild idea of storing a website source in get and then

49:04.840 --> 49:09.480
compiling a static website. I'm not using this anymore but also I'm not using anything else because

49:09.480 --> 49:15.800
just to much work today I would probably be using Google but same difference that one and 15 or 14

49:15.800 --> 49:23.640
years later still valid. Get annex. Who here knows what get annexes? Okay that should be 100%.

49:23.800 --> 49:32.280
You can store stuff in get but the large files are kept only as references and you can copy

49:32.280 --> 49:37.800
big stuff back and forth across 10 different external hard drives across the internet. It is super

49:37.800 --> 49:42.600
reliable. It is used in the rainforest to distribute learning materials between different

49:42.600 --> 49:49.080
indigenous tribes. It is glorious please use it. I have photos and family stuff from like

49:49.080 --> 49:56.280
literally 15, 20 years or not quite 20 and it just keeps working and I know for effect I will never

49:56.280 --> 50:01.960
lose this data. It is absolutely genius highly encourage everyone in this room to use it. So yeah

50:01.960 --> 50:08.040
that one held a pretty well that is one of the best things ever. That's the data you can download

50:08.040 --> 50:12.440
this on the website when you go to the talk information but also you've probably read this by now.

50:13.160 --> 50:20.920
Metamonger, I use this to store XF data and basically pull it into file system information

50:20.920 --> 50:26.200
and then store this in get. These days honestly you don't really need it anymore because the

50:26.200 --> 50:32.600
tooling around all of those problem spaces have improved massively. If you still rely on on

50:33.160 --> 50:40.040
date time of your files on the file system to be correct this allows you to store this information

50:40.120 --> 50:46.440
into get and to restart in other get repositories which for some use cases can be insanely useful

50:46.440 --> 50:52.120
anyone who doesn't know what I just said ignored you don't need it. This is another one which I

50:52.120 --> 50:56.520
would highly encourage you and yes some bias cuts is mine but I would highly encourage you to use.

50:56.520 --> 51:03.720
So who here is using get? That's not everyone so that's a reason why I'm asking but it's like

51:03.720 --> 51:12.040
for the recording is 95%. Who here uses more than one get repository in the same directory?

51:14.120 --> 51:19.880
Yeah exactly that's maybe 5%. You can actually do this get supports this through the magic

51:19.880 --> 51:24.040
called get work tree and it is completely arcade and really hard to use but this is a good

51:24.040 --> 51:32.520
wrapper and just enables you to put more than one get repository into one directory. Why would you do this?

51:32.520 --> 51:36.520
Your home directory and you can actually start saving your stuff. I have 20 seconds left so

51:36.520 --> 51:41.880
I'm speaking up even more. MR is now called my repos it allows you to take an arbitrary amount

51:41.880 --> 51:46.680
of repositories and just update stuff so you have internet for a few minutes at the airport or whatever

51:46.680 --> 51:50.920
you hit the button and all the repositories are updated it is also very useful.

51:52.360 --> 51:59.720
Such a is really good so one second left the point is get is incredibly stable and I'm surprised

51:59.800 --> 52:06.200
by how much it held up here is your microphone. The time is up. I have a thank you for all of the

52:06.200 --> 52:14.920
lovely speakers thank you for joining us at lightning light and talk that's all.

