All right, sorry for these slight delay in starting. Welcome to Lightning Lightning Talks.
We have a set of very nice speakers who will speak for no more than 256 seconds. Yeah,
and he over to you, he's guys.
Thank you.
My name is Salon Wilson. I'm part of the Permanent Racco Community.
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.
I'm here to present a contributing animal to you.
But Piotr here is also here.
Hi, I'm Piotr Carbash. I'm a part of the Apache Software Foundation.
I work mostly on Apache the Khojai in common.
So contributing animal, the question here of most of us who have been involved in open
sources, I didn't help with my project, but this stuff that I don't know how to do.
I can code, but I would love to have a website.
I can make up, but it's kind of finding speakers.
I'd like a logo for my project.
I need help with translating and internationalization.
Lots of types of problems.
And we have a file out there in use called contributing.markdown.
That covers how to do some contributions, but it doesn't go into details.
Are we thinking, could we make this machine readable and add something extra in it?
OK, so we changed the extension and call it contributing.jama.
So what we want to do with this is help maintain this community kit, their project status,
their support intentions, and their support needs.
So by project status, we mean active archive, done, abandoned, adoptable, stuff that
you're already finding some ecosystems, some of the statesmen can be done, but no, my
trainer.
Of course, I maintain and we will not say it's abandoned.
With intentions, we could explicitly state that, yes, this project is actually maintained,
or say something about how much it is maintained, casually, or not at all, or we only
do security fixes, or this actually commercial support, or anything else that would
be of that kind.
By support needs, means everything that project can need besides code contributions like
code review, community building, bug, and even security triage, graphic design, writing
articles, mentoring, summer of code, and many, many more.
This is actually part of a specification and standard session track at Ekmo.
We are part of the TC 54 track, we call contribution dot EAMO, and we are creating the
Jason schema that describes this information.
Yes, so the number, the code number is TC 54, TG4.
So something we want to ask users is to give us their use cases and stories,
yeah, if you ever wish to have some kind of help, we have already a lot of examples, but
there are many activities out there, so if you have good use of stories and experiences
in running Europe, a source community, please switch out and tell us some of your stories
so we can put this into the specification.
The way we work, we have a bit of meeting, EO, evening morning in the US, we work as
internally on the second stack, right now we have a shared Google doc, but once we
advance it a bit more, we give it on.
So we would love to join you in this work.
This is Ekmo right here, we are already a bunch of people here, myself and the filter
is mentioned since we are on stage, but we have not so support from Steve Springell from
Chris Amelie and the host of all the people, but while we have many experienced in
board and we don't have the complete experience, and if you would like to help us, you're
super welcome.
Hello, I'm Akie Braun, I'm a repertoire on a couple of different standards for the CRA,
I'm here to talk about false heard, false heard, I have overheard from false to attendees
about the CRA, I'm not going to give you my whole bio because we don't have time.
There's more slides than we can get through, I'm going to see if I can get to the bonus
round.
Okay, first of all we're going to start with just talking about open source projects generally.
First of all, I'll have to pay a big fine if I open source project has a vulnerability
that I haven't mitigated.
Totally false because open source projects that are not part of a commercial activity
are exempt from all that, you don't have to do anything, you can just keep doing what you're
doing.
All right, donations are sponsorships for my work in open source, makes me personally
liable.
As of us, you can take donations for your work in open source, and you can cover your
costs, the distinction of where something becomes a product that's placed on the market
has to do with whether or not there's real economic activity, so just getting donations
and GitHub sponsors is not the same thing.
My work, oh, this one, my work on open source projects, my employer won't let me do
anymore because they don't want to have your responsible.
The CRA is product-related, it's product safety legislation or regulation, so it's really
about the product that's placed on the market, doesn't really have anything to do with
the individual people who are interacting with it.
Using my open source project means I have to do compliance documents, if anybody integrates
it.
This one, I think a lot of us have heard the story about Daniel from Curl who got this
lengthy form sent to him by some big software company, because hey, you need to fill out
all of this information about the security pusher of Curl, and you have to get to us
in two weeks because we need to be CRA conformant, and no, he doesn't.
They're not paying him, he is not placing a product on the market.
They are choosing to integrate Curl, and so it's not really his problem.
He could choose to do that, and I think it's going to be better for the whole ecosystem
if we, as open source maintainers, do try to provide that information, but it's not his
responsibility.
I have to find an open source steward from my project, also false.
If you have a big project with lots of contributors and lots of complication, you might benefit
from having an open source steward for somebody who's around who's there to make sure
that you have clear vulnerability reporting processes and vulnerability management, but
you don't have to do that.
I'll just be an open source steward, not that simple.
You have to generally be a legal entity, open source steward isn't just like a person
who decides, especially if you're a maintainer, just focus on being a maintainer.
Oh, the CRA requires projects to follow specific processes.
I heard somebody talking about how they're going to have to change all of their
pull request review processes because the CRA said, so the CRA doesn't really care what
your processes are, as long as your product is secure, that's what the CRA cares about.
It's all about whether or not your product is secure, so if your pull request process right
now involves not reviewing them, okay, yeah, you probably should, but like you should anyway,
change your processes. It has nothing to do with the tax of the CRA.
Okay, next, on to products. Any CVE, on the integrative components will set me up for a big
fine. Everything about the CRA is risk based, so what you need to do is look at your own risks.
So if you have a product that's integrated or a component, it's integrated into your product
and has a really high score CVE, but that actually doesn't have any risk in relation to the
information your product processes or what it does, then your risk is null and you don't need to
worry about it. Okay, a lot of time. I have stickers here that say, I'm a foster developer, zero
series, obligations, lots of rights, come find me to get one.
All right, thank you. Yes, don't go to smart TVs, watch your TV before watching you.
Yeah, so you want to buy a new TV and you realize that most TVs is there is a smart TV,
so you spend 52500 euros on a new TV, but it's integrated smart features and
your reward, a unified platform that can do everything you want, say unified media platform,
device control screencasting, etc. The price you are paying, where's ads on your home screen,
even though you paid full price for the TV, there's blood wear, manufacturer is doing a
funny thing about ACR, I'll touch up on that in a little bit, the infamous Netflix button
on the remote and you're probably also paying your show as well. Yeah, so automatically content
recognition, you buy a TV, literally anywhere from 2 to 100 times per second, it takes a low quality
screen shot, it sends this over the internet to the manufacturer who then does some AI learning on
it to detect what exactly you're watching, even if you're watching something from an
ACR connected device that's not even like a streaming platform, and from this little
fingerprinting and personalized advertising and who knows what, it just saw your data through
third parties, this is a default setup when you connect this to the internet, and most of these
remotes welcome with a Netflix button alongside Mary at the Photoshop offices,
well then there's a non default setup, so if you love manualing through TV manuals with a
shittery mode, then do all of these, think it's a bit too long of a list for this presentation,
there will of them, if it's setting sounds like, improve and hands, personalize or recommend
or something along that line, turn it off, from this whole list here,
there's more to be where you allow you to turn off all of these things, and then the worst of all,
if you do run an update at some point, some of these features, and I think you've disabled,
don't just be enabled themselves, so in every update you're going to have to go through all the
settings again, disable all the features, and sure, a temporary solution, just bind over TV,
right, and this works great, and so all the TVs are also smart in a couple of years from now,
you just just use it as a monitor where the smartphone factor computer, right, and don't
connect it to the internet, this works great for your home setup, but if you visit friends or
family, they might not want to invest in such a setup, and just opt for the convenience of having
a all-in-one device, smart TV, then the realistic, realistic solution, perhaps, thank you, thank you.
Yes, they're not connected to TV to the internet, this works great, and so many
factors start requiring internet, or a subscription, even for the TV to work, sometimes this is
referred to as hardware as a surface, there's some ratios with printer ink or weight
car keys, I think Toyota does this, where if you subject your subscription, you're lost your
car keys, but good luck, you can't find it now, also some homesick, GRT apps use this,
literally a list of solutions is hack your TV, there's some initiatives for different
manufacturers, often this involves opening up your TV, taking out the hard one,
thinkering with it, there's a semigo for Samsung, there's some custom Android ROMs to replace
anything that's running on Google TV, there's really much of your open LG TV for LG, or you can
build your own hack, don't forget to check this out, and yeah, I think that's it, thank you.
Hello, falls down, wow, my wife came and she's my inspiration, but also an inspiration for me
is Wikipedia, because what an achievement that Wikipedia brings free and open access to the best
articles in the world, to anyone in the world, what would be the equivalent for a personal fitness,
like how can we give free and open access to not only fitness information, but also fitness
applications that can help people with their personal fitness journey, so it's not just general
content, but actually personalize as well. For this mission, I first needed some education because
I'm a software engineer, so I decided to embark on basically the most advanced course that I could find,
which was a personal trainer course, and it was kind of funny to be the single software engineer
in this huge class full of personal trainers and professional athletes, and all of them are asking
me like, why are you in this course again? But anyway, I learned a lot in that course.
So the first thing I started building is a database that contains exercise definitions,
which by itself is nothing new, but you know, I'm trying to license this as permissively as I can,
so it has all the usual information that you find in other databases, but also it has
tweaks that you can apply to your exercises to kind of enhance how they affect your body,
like for personal injury reasons, or if you need a little bit of a different training focus,
there's all kinds of tweaks you can make, and most of those are supported by studies, so there's
link to the studies that there's links to YouTube videos that explain everything in more detail
Instagram posts, and those actually come from other creators, I don't create those videos,
but I can just link to them and I can include that in the database and still it's permissively licensed.
Once I have that database, I started creating applications, so the first application is a program
creator, so for anyone who wants to make their own weightlifting program or resistance training program,
an important thing to keep in mind is that many exercises train different muscles to different
extents, so it's kind of an interesting challenge, like how do you break it down, how do you make your
selection of all your different exercises, such that you add up all your volumes of all your
individual muscles to kind of the balance that you're looking for. Obviously any fitness app I think needs
to have a calorie calculator, so this one has the same, but also it has a volume calculator, so
based on your personal body, your age, all kinds of lifestyle factors, you can calculate your
optimal volumes for your exercises. There's now also a mobile application for your phone where
you can log your sets, your performance, you can analyze your performance over time,
at the end of your session, you can see the breakdown of all the muscles you worked and with
how much volume, and also I want to add functionality to loop that back into your program, so you
can refine your workout program based on your actual performance data. Of course there's also weight
logging, so pretty obvious, but weights, flux wage, flux to weights also every day, so there's
moving averages, you can see your weekly trend, you can see your monthly trends, and so on.
And yeah, for more information, check out the website, body.built. It's not only for bodybuilding,
it's just for anyone who wants to get fit, although it is a little bit on the advanced side right now,
but the.built domain name was available, so I thought it would be cool to buy it. That's why
it's called Body.built. The applications are on App Store and Play Store,
HEPL license code repository, and if you want to know more, please reach out to info at
Body.built. Thank you so much. Hi, my name is Mayur. I started this project around one year ago.
So the idea is to measure or quantify how far away your community postures equal is from
any postures derivative, postures for or postures product that start up new start up selling.
So this started with launch of when Amazon launch AWS launch are over a D-SQL, so there was a
viral discussion that it doesn't have views, doesn't have constraint, doesn't have anything,
but they were they had this postures compatible D-SQL in their marketing campaign.
So we were discussing this that we need some kind of framework or some measuring stick,
and because we have a lot of postures for postures derivatives, we have neon supobase,
Yugabaid, even Cockrozy, we have all the animals and amphibians and insects.
So this started with the idea of developing a framework, and it's because,
I mean it's natural that postures now has 30 years of network effect, so it's pretty natural
for new start-ups, new companies, try to cash in on that branding on that 30 years of network effect.
And there is nothing wrong with it, but the original iconic postures project identity should
not get dissolved. So and also there is nothing stopping from Oracle saying that they are the
most world's most advanced postures compatible enterprise database, there is absolutely nothing.
So this project kind of runs automated tests on whatever postures derivatives that can be plugged in
or that can use this plug-in to run those tests, and comes up with scores based on missing features,
missing behavior. It's basically kind of a behavior analysis for a database,
and early days it used to look like this, just a Python program and missing feature and some
score, but why not take it one step further? So now it's a website, pgscorecard.com,
and you can scan now, and it has a lot of postures derivatives listed, I did not list obvious one,
the postures, it's always going to be 100%, and then there are feature list, and you can toggle and play,
you can even compare some of the derivative with other products. I have a lot of saying, okay,
and I'm not a developer by profession, I'm a DBA, not backman as well. So I would, I would welcome any kind
of help or any new ideas or any code contribution. So this is green one is for open source contribution,
and if you're a startup or company that is selling postures, compatible things, and you want
your startup to be listed, then you can just send one PR for this DBA edition,
and this is my database comedy blog. It has this postures compatibility index flow and origin
story in detail, and some other things as well. So I have 20 to 2 seconds, I can just skip it for 20 seconds,
scan it, or I'm not leaving. Okay, fine.
All right, thank you.
Hey, full stem. So as you might know, there's this small Linux distribution called ARCH,
and it uses users get updates nearly every day or hour, so you want like a fast way to get your updates,
you get a lot of updates, or you get a lot of traffic, and maybe you have like multiple
ARCH machines in your home land, you have a laptop, a desktop, and something, and you are starting
to, you may might not have like the the biggest pipe to the internet, and but you do have a home
server. So then I have a solution for you. So there's a very easy way to set up a way to share
your Pac-Man cache. So the cache we're all the the packages live on your own local network.
And the only thing you need is this new feature. Well, new feature is already a few years old in
Pac-Man. So basically it's a cache server directive. You pointed to a web server,
this is an HB server, and on your network. And what Pac-Man will do when it starts updating your
system is first try to fetch the package from there, and if it cannot be found, it won't normally
the servers where where packages aren't found are removed from your from from being checked.
So with the cache server, it doesn't, it just, if there's four or four, it's all try your normal
mirror. And it doesn't use the package, the repository database, the index where all the packages
are, that it will capture from your mirror. And so with this new old config option,
the only thing you would need is an arch server, container, virtual machine, whatever,
something where you can keep a cache of. Pac-Man packages, an HB server, this can be anything,
and the system detimer to pull in your packages in there. And then you can set up an easy server.
So the HB server can just be a Python server, serving your Pac-Man cache. For example, your home server,
if runes the arch, the client configuration is simply dropping this cache server directive.
And that's basically it. Then you would want some timer to fetch the packages on your home
server every night. So when you, for example, if they kill up top, it tries to fetch as the
newest kernel from your from your home server. So you just created the daily timer and you used
the checkup dates, the scripts, it doesn't interfere with normally running Pac-Man. It creates a
lock file. And so it's a bit messy if you run Pac-Man in normally in a timer or a script or
all the minutes scripts and you run it again as in the CLI, as yourself. So there's the checkup
dates which uses some magic to prevent this. This will just download the packages you have
installed on the system into the cache directory. And then you can go through, although
it's only gigabit mine at work. So it's not really blue. But it's limited to whatever
whatever network speak you have in your land. If you want to endure more, just check up the
excellent wiki, there's configurations for any web server you might have. There's more alternative
approaches. And yeah, that was all. Oh sorry. Hello, my name is Benjamin Hunter. I'm from Belgium.
I've been attending all the first them since it exists when it was gold ors them. And I work on
software patents since 1998. I'm president of a association which fought the software patent
director 20 years ago. And this directive was rejected by the European Parliament because
large companies saw the Parliament could vote a lot that they didn't like. So they pushed
they asked a member of Parliament to drop this directive and push for the central patent court in 2005.
In 2006, the commission proposed a reform of the patent system to
centralize the the patent system in Europe and notably to remove national courts.
So the law is the European patent convention. It's an international law between several
member states of the EU plus some other states that Turkey. The law says article 52.2 is computer
programs I exclude of patentability but the next article says they are to be considered a search.
And the EPO since the 1980s ground software patents anyhow using this as such loophole.
In 2006, my predecessor Mr. Pillish predicted what would happen. So in July 2005, I have several
attempts to legalize software patents in Europe. The patent establishment changed strategy instead
of explicitly seeking to sanction the material of software. Then I was seeking to create a
central patent court for Europe which would establish and enforce patentability rules in their favor
without any possibility of correction by competing courts or democratically elected legislatures.
The last sentence is very important because the whole game here is to avoid the European
court of justice and basically the European Parliament said it's fine so they are not legislator anymore.
The unified patent court is a very strange beast where they invented they created new
judges without a law degree called technical judges and those it appears that those judges are
in fact patent lawyers who work for Nokia in the morning and become judges in the afternoon.
It's self-finance before it was financed by the EU but now it's self-finance was very very expensive
to go there to litigate or to be litigated to be sued there. The EPC is not EU law so the European
Court of Justice doesn't have a say and basically they are blocking the appeals to the European
Court of Justice on those questions. Now what we discovered by litigating against is that in the past
the European Court of Justice killed their previous attempt because national courts cannot be removed
of Eulo and in 2017 there was a case with investment courts that had to improve Eulo and the
Court of Justice killed them because it's an infringement of Article 267. Now in October there's a
company streaming company called Roku that tried to escalate this question of Eulo to the
European Court of Justice and the UPC denied the questions saying there was no issue while all the
experts say there is and actually it's a violation of Eulo Article 277.3 where courts are forced
they must escalate the questions of Eulo and so in the past there was a famous case with Poland
where the European Commission gave a heavy fine heavy daily fine to Poland for exactly the same
problem. Now we know the European Commission is not in this file is not excluding their eyes
and the question is whether someone can go to national court and try to escalate the problem
to the European Court of Justice by changing the validity not of the UPC treaty but of the
Brussels one regulation with contains the fake word of common court so in for investment courts
that's what they killed. So it's going to be my project for this year. Thank you.
Hello. So sometime ago I stumbled upon a project called Web A2E which basically allows you
to run terminal applications built on top of Ratatouille framework inside a web browser which I found
super cool but also I started wondering what would it take to turn this upside down and run
a modern web browser inside a terminal. So web browsers don't put the pixels directly on the screen
they communicate with a compositor which is a different process they talk to each other with a
protocol like Wayland or X and it's the compositor that takes the pixels from multiple applications
combines them together and actually puts them on a screen. So if only I could find a way to make a
compositor that actually ran just to a terminal I would be golden I wouldn't need to change the
web browser and I would get it in a terminal. So this sounded like a great way to dig into how
this all works under the hood and it kind of went downhill from here. So I found Smithay which is an
excellent Rust library for building without compositors which basically takes care of all the
wayland parts. So I need to figure out how to actually put the pixels in the terminal I could use
something like 6L or KT graphics protocol but there are some problems with this first of all somebody
already made an X server that renders to 6L to a terminal so it was not interesting but also using
either of this would be a smart idea and I was not interested in smart but funny. So instead of this
I chose this beauty. This is a unique upper half block. If I combine this with Ansie escape sequences
I can set background and foreground colors for the character and this way I encode two pixels
on one character. And since this is just a normal character I can use two e-frame like Radatui
and cross term to render this to a terminal and all I need is a bit of duct tape to connect those
two together which I did and the result honestly was much better than I expected. Here the
alacrity terminal emulator is actually able to render a full wayland display and running
Western terminal and because I convinced alacrity to render characters as one by two pixels this
is actually pixel perfect. So it was cool but it could be faster because obviously I tried running
doing it and it works but the framework is clearly not enough for 2020. So I found out that the
bottleneck is actually encoding as Ansie escape sequences on CPU it basically holds at 100% so I
did the obvious thing and uploaded it to a GPU. And obviously I used Web GPU because at this point
why not. And this actually proved a frame it quite a bit and I got something that can be
that can be considered a smooth experience and right now I believe my bottleneck is actually the
terminal emulator which can't keep up decoding those R&C sequences because I'm sending two
modules. Anyway some other pretty pictures it can run itself and most importantly it can run
the firefox. If you're interested here's a code run it yourself good luck and thank you.
Okay. Hi everybody my name is Martin and today I have a story for you about my grandma and her computer.
Those of you that manage a device for some of your family members. I'm guessing you had to deal with
the end of support of Windows 10 back in October. Those of you that didn't the problem was that
in order to officially upgrade your device needed to have some minimum hardware requirements. So doing
nothing meant that you would receive no security updates for example. And there were some estimates
that up to 400 million devices were affected but who really who really knows what I do know
is that my grandma's computer was one of these devices and because I managed it for her
because I managed it for her it was also my problem. To get you some context about my grandma and her
relationship with tech let me actually start from the opposite direction and let's look at some
populations statistics. So this is a small section from a 2023 survey about check households and
their relationship with tech and for us the important part is that households with people over 65
and no children only about a half of those even owned a computer right. If we go further and look
at reported skills then in my grandma's age bracket only about 23% of people knew how to copy files
and about 6% knew how to install a program. So knowing all this you would be right to assume
that my grandma is not a technical person but let me just say that's okay. I mean we all have different
hobbies right but unlike a large proportion of her peers she can copy files okay back in the day she
also was able to install Windows 10 with just me on the phone but now all she really uses is a browser
and office suite and a printer. But if we go back to the problem again the issue was that her
computer was running out of support and there was no realistic way to go further and so what can we
do about this? I mean by her a new computer well I don't know but there is an obvious solution right
I mean here we are just install Linux so that's what I did. Thank you thank you
my grandma is now a Linux user specifically her computers running Xorino S no affiliation by the way
the reason I chose this distribution was because it's desktop environment seemed familiar
or I thought it would be to her it also works out of the box seems difficult to mess up and it's also
super simple to run updates through the software update or utility and it's been about six months
there haven't really been any major issues so far my grandma was even able to print something
completely on her own without me showing her how and I thought honestly I thought that was pretty impressive
and a great testament to the UI of the whole system but I know that this whole example is not really
serious and it's not something you would draw conclusions from but regardless you know it gave me
tremendous hope about the state of Linux desktop especially for people like my grandma
so to wrap this up it turns out that my grandma did not meet a new computer and if you're wondering
whether some of your less technical family members would be able to use Linux just know
that my grandma is doing fine. Thank you.
Hi today I'll be presenting Simic which stands for Story or Mail in Get and it's
basically a more unixy way of dealing with mail but the synchronization primitive is get rather than
IMAP so I personally find mail user agents to be a bit of a pain because they all display
almost without exception they all display mail as some organizations of photos usually on the
left column of the user interface and then you have those opaque objects which are messages and they
have IMAP flags and oftentimes I don't know at least for me I would like to treat them as actual
normal files. What if they're actually files which can unlike in Moder which you basically
needed to follow a particular structure what if they're files you can just copy around move around
in your file system like any other file in a normal unix workflow and what if instead of IMAP
which often has issues with conflicts when multiple devices modify the same mailbox with
the same email at the same time what if we use a synchronization primitive that robustly handles
conflicts which has been talked about quite a few times in foster morality. My answer is get
and so I'm going to store each so we store the mail of each account inside one get repository
and mailboxes are photos but we actually don't have this concept that the native concept of
mailboxes because you can structure the repository however you want to do it. You could create a
inbox directory and put your new mail into there or you can put mail at the
or you could just literally make the inbox the route of the directory these are controlled by the
Steve script and the delivery configuration rather than something hard-coded and you can even use
rocketly organized archives or put everything in one directory although I don't know why you
want to do that. So the delivery semantics are relatively simple. Each recipient
resolves to get repository we fully resolve the head to a detached reference which go through a
image so we fully resolve the symbolic references and all of the delivery work happens against
that delivery dot commit snapshot that we found at the start of the delivery. So we read the delivery
configuration and determine the found name format. We run the Steve script and determine which
folder we deliver the email to and then sorry the delivery script decides the message format and the
message found name and the target path is decided by the Steve script. We read the commit, read the
tree, write the blob and then put the new email's blob into the tree and then write the tree
and write the commit. And then because if you look at the man page of get update rough you can
actually see that you can supply an old object ID for it to automatically compare and swap. So we
compare the so we make it compared the ID of what we expected to be the original commit with
it's actually in the current breath and then we update it if they match. Atomic. If on conflict
it means that the user has recently pushed or recently forced push so you just retry on the new
refette you don't need to rebase or merge. And the entire diamond's task is basically to accept
mail over TPR, SMTP, resolve and expand aliases and resolve recipients and for each recipient
deliver to its corresponding get repository. We need a lot of client utilities to make these work
in a normal units workflow. So for example unpacking parts around my message and custom indexing
because not much doesn't really work well in a flagless workflow. However, these are so under development
they're not fully available yet but hopefully in a few months I should get them ready.
And the repository is here if anyone wants to take a look. Thank you.
Hey I'm Ruth and I'm going to do a very quick overview of the RCL configuration language which also
happens to be quite a nice query tool. So are you ever in a situation where you have many configuration
files that share some parts and you want to have a single source of truth? For example a repository
full of rust grates and you want to synchronize a version number between them. Then instead of specifying
everywhere you want it in a single place and then import it. Or maybe you have many parts that are
very similar and you want to generate this with a loop. Then maybe you risk for string templating
but now you have all kinds of escaping issues and if you use YAML now you also have white space
issues and this happens because you're operating on the serialized form of some data structure
but what you really want is to transform the data structure directly. So this is what RCL does
and it turns out if you have a language that's good at transforming data it's quite a nice query
tool as well. So RCL extends JSON by adding variables functions loops into a simple functional
gradually typed programming language that you can use to have abstraction and reuse in your configuration.
So on the left is an example we can for example import from other files and then reference parts
of it so we can define a version number once and then reuse it. Or if there's a repetitive part
then now we can just write a loop and if we want to turn on documentation it's we can switch it
in one place. So how do you get from the thing on the left to the thing on the right?
Well there's a command line tool you can run RCL evaluate kind of normal JSON YAML but now you have to
update this thing all the time. So if you already have a build system or a task runner you can
integrate it into that. If you don't then there's also a built in RCL build command that can
update files for you. Then there's a query mode. So whoever curls something and then pipes it into
JQ, raise your hand. Whoever had an expression that they wanted to write in JQ would be easy to
write in Python or type script but couldn't figure it out. Right. So because every JSON document
is also an RCL document you can use RCL to query and if you know Python type script or Rust you
will find it's very natural. It takes an input document and then the query on the command line
and this is what you can use it for. And finally if you're doing something more advanced and you're doing
something in Python there's also Python module that's a drop-in replacement for the JSON module.
If you want to learn more check out RCL Lang.org. There is also interactive demo there
or come find me afterwards. Thanks.
So for those who don't know 14 years ago I gave a few lightning talks and I was so nervous at the end
of it I was drenched in sweat to my underwear. Now I stand in front of JOSO and even bigger rooms
and I don't care. I might get a little bit emotional during some opening speeches but other than this
the point here is get in front of people and speak about what you want to speak about. It takes
a few years but at some point you just do it. Do I need to click something or do you click for me?
What? Oh, there's a button.
Yeah so anyway we should make this orange. Anyway this is a talk I gave 14 years ago
and I wanted to just give an update on what change and what state to say. I'm going to rush through
it a little bit but the slides are already available for download on the program. So what is
good? I had to actually explain this 15 years ago this time I can't probably skip that one.
ETCkeeper is a tool which stores slash ETC off your local file and yes we all have Kubernetes
and containers and whatever but some of us also have desktop. Just install it. Thank me in five
years when something breaks and you can just restore it. Just install it. Don't question just
install it. If you use after anything it automatically makes checks and check in of your data
every single time you install something and change something it is glorious. Install it right now.
Yeah this is too long. But honestly I failed at using buff. It stores backups in in get.
It's too complicated and also pruning stuff is just painful so that didn't work out over the last 14
years. ETCkeeper back then a completely wild idea of storing a website source in get and then
compiling a static website. I'm not using this anymore but also I'm not using anything else because
just to much work today I would probably be using Google but same difference that one and 15 or 14
years later still valid. Get annex. Who here knows what get annexes? Okay that should be 100%.
You can store stuff in get but the large files are kept only as references and you can copy
big stuff back and forth across 10 different external hard drives across the internet. It is super
reliable. It is used in the rainforest to distribute learning materials between different
indigenous tribes. It is glorious please use it. I have photos and family stuff from like
literally 15, 20 years or not quite 20 and it just keeps working and I know for effect I will never
lose this data. It is absolutely genius highly encourage everyone in this room to use it. So yeah
that one held a pretty well that is one of the best things ever. That's the data you can download
this on the website when you go to the talk information but also you've probably read this by now.
Metamonger, I use this to store XF data and basically pull it into file system information
and then store this in get. These days honestly you don't really need it anymore because the
tooling around all of those problem spaces have improved massively. If you still rely on on
date time of your files on the file system to be correct this allows you to store this information
into get and to restart in other get repositories which for some use cases can be insanely useful
anyone who doesn't know what I just said ignored you don't need it. This is another one which I
would highly encourage you and yes some bias cuts is mine but I would highly encourage you to use.
So who here is using get? That's not everyone so that's a reason why I'm asking but it's like
for the recording is 95%. Who here uses more than one get repository in the same directory?
Yeah exactly that's maybe 5%. You can actually do this get supports this through the magic
called get work tree and it is completely arcade and really hard to use but this is a good
wrapper and just enables you to put more than one get repository into one directory. Why would you do this?
Your home directory and you can actually start saving your stuff. I have 20 seconds left so
I'm speaking up even more. MR is now called my repos it allows you to take an arbitrary amount
of repositories and just update stuff so you have internet for a few minutes at the airport or whatever
you hit the button and all the repositories are updated it is also very useful.
Such a is really good so one second left the point is get is incredibly stable and I'm surprised
by how much it held up here is your microphone. The time is up. I have a thank you for all of the
lovely speakers thank you for joining us at lightning light and talk that's all.