WEBVTT

00:00.000 --> 00:29.960
Thank you for sticking with it so long.

00:29.960 --> 00:33.400
So, great news. I wanted to do app.

00:33.400 --> 00:39.040
I thought we might need one, but not enough to do apps.

00:39.040 --> 00:44.640
I'm a multiple offender actually because a few years back I also gave a talk about writing

00:44.640 --> 00:45.640
it to do app.

00:45.640 --> 00:51.720
At that time it was building it with cute and rust and this time it will be totally different

00:51.720 --> 00:57.200
because we're using forage to do apps, do they actually work?

00:57.200 --> 00:58.200
That's a good question.

00:58.200 --> 01:01.200
I think at least so here's some of my tasks.

01:01.200 --> 01:05.200
This is moving boxes that need unpacking.

01:05.200 --> 01:10.960
Here is a table full of materials for building window paints that need to be done.

01:10.960 --> 01:13.160
Here's a picture of insulation materials.

01:13.160 --> 01:18.360
I have to put on my roof and there's a nice thing to put on the task list.

01:18.360 --> 01:20.160
As you can see these boxes are still empty.

01:20.160 --> 01:23.680
I haven't done them, but I'm giving a talk at first time.

01:23.680 --> 01:27.200
So at least something is being done.

01:27.200 --> 01:30.200
To do apps, what are the desirable features?

01:30.200 --> 01:35.880
I think to do apps are mostly too simple and I so before looking for one, I wrote down what

01:35.880 --> 01:38.160
I actually want to be able to do with them.

01:38.160 --> 01:41.760
I want to have notes I might to do, not just this one line.

01:41.760 --> 01:46.760
There should be collaborative if I have tasks that other people are affected by.

01:46.760 --> 01:48.760
They should be able to comment there as well.

01:48.760 --> 01:51.240
I should be able to attach pictures, attach links.

01:51.240 --> 01:57.560
There should be able to prioritize, have deadlines, dependencies between tasks.

01:57.560 --> 02:01.920
Multiple devices would be nice, especially a nice mobile user interface.

02:01.920 --> 02:06.760
That's important to me because I do lots of stuff behind the computer.

02:06.760 --> 02:10.680
I don't want to be behind the computer all the time, but I still want to have my

02:10.680 --> 02:13.240
to do list with me, so it should be on my phone.

02:13.240 --> 02:17.000
It should be easy to use also for people that are not nervous, like me.

02:17.320 --> 02:22.480
I want to label things, come down both would be nice, that's not a hard requirement.

02:22.480 --> 02:24.240
Change tracking would also be nice.

02:24.240 --> 02:26.240
This is important one, it should release dopamine.

02:26.240 --> 02:31.760
I should go, yeah, I fixed another to do great and low maintenance of course nice.

02:31.760 --> 02:36.680
So I looked at some of the options that I out there now, to do TXT is just a plain text file

02:36.680 --> 02:39.320
with some grammar and that's not simple for normal people.

02:39.320 --> 02:40.800
You have to know a grammar.

02:40.800 --> 02:46.520
The view to do eye calendar is not implemented very well everywhere and the specification

02:46.560 --> 02:49.080
doesn't have all the features that I just listed.

02:49.080 --> 02:53.120
Next cloud tasks is I think an implemented or fee to do.

02:53.120 --> 02:59.200
So while it's nice and it is collaborative and I'm saying that because you're sitting here.

02:59.200 --> 03:01.760
I'm not just kidding.

03:01.760 --> 03:07.560
Yeah, open projects, that's a bit too complicated for my needs.

03:07.560 --> 03:11.560
TXT is a command line thing that I used for a while, but then we have the problem that I can't use

03:11.600 --> 03:16.920
mobilely or I have to go and type too much on my mobile phone, which is not nice.

03:16.920 --> 03:20.720
I don't want to reinvent the wheel completely.

03:20.720 --> 03:22.720
Yeah.

03:22.720 --> 03:27.360
So could I use a code for it?

03:27.360 --> 03:34.280
Yeah, maybe a code for it has all the desired features that I just listed.

03:34.280 --> 03:36.200
Except there's one thing.

03:36.200 --> 03:37.920
You have to talk about issues.

03:37.920 --> 03:42.400
So on a code for it you have a code base and you have a number of issues and it's always

03:42.400 --> 03:43.400
called issues.

03:43.400 --> 03:48.400
That's some trend I guess, but on a to-do list you have tasks.

03:48.400 --> 03:52.720
So yeah, you have to talk about issues instead of tasks.

03:52.720 --> 03:58.000
They have API support, which is great because then I can use the code for it as a back

03:58.000 --> 04:00.400
end and I only have to write the front end.

04:00.400 --> 04:01.400
Great.

04:01.400 --> 04:05.440
I don't have to think about data modeling other people have thought about it already.

04:05.440 --> 04:07.840
So which code for it should I use?

04:07.840 --> 04:14.080
Well, there's a number of options, well Microsoft GitHub is closed, GitLab is good.

04:14.080 --> 04:16.960
I use it at work, but it's heavy.

04:16.960 --> 04:21.520
SourceHot, great project, a lot of fun, but complicated for me.

04:21.520 --> 04:24.600
I have, yeah, it's a bit too complicated for me.

04:24.600 --> 04:29.360
GitLab for you are for me the sweet spot because they have a really simple interface that

04:29.360 --> 04:34.920
easy to host, it's just a go binary, so yeah, pretty easy.

04:34.920 --> 04:37.680
OK, now is a request.

04:37.680 --> 04:41.080
Can people please stop using GitHub?

04:41.080 --> 04:44.840
It's a pain in my butt because a lot of reasons.

04:44.840 --> 04:50.760
If you continue to use GitHub, you are using closed source software and you're saying,

04:50.760 --> 04:54.120
I'm doing open source, I'm doing open source, but it's on a closed source platform.

04:54.120 --> 04:55.680
That's not consistent.

04:55.680 --> 05:00.680
And you are agreeing to bad terms of services that allow Microsoft to use your code

05:00.680 --> 05:03.840
for training of their AI.

05:03.880 --> 05:06.080
You are part of a bad network effects.

05:06.080 --> 05:08.920
It's like smoking and other people are also smoking.

05:08.920 --> 05:10.560
If you use GitHub, your project is there.

05:10.560 --> 05:11.520
People want to contribute.

05:11.520 --> 05:14.080
I feel forced to also have an account there.

05:14.080 --> 05:16.960
And that's not good.

05:16.960 --> 05:19.760
And you're doing product placement for Microsoft.

05:19.760 --> 05:22.400
Your product URL starts.

05:22.400 --> 05:24.920
First, it says, GitHub, GitHub.

05:24.920 --> 05:27.040
And then, only comes your project name.

05:27.040 --> 05:28.480
That's not cool.

05:28.480 --> 05:32.880
You should just have your project name on your own domain.

05:32.880 --> 05:37.640
And you're also teaching people not to care about free software.

05:37.640 --> 05:39.040
You just ask them, go on there.

05:39.040 --> 05:44.040
And all day, when they're on there, somehow they need to think to themselves,

05:44.040 --> 05:46.640
it's not so bad because I have to use it.

05:46.640 --> 05:48.880
That's just how humans psychology works.

05:48.880 --> 05:52.120
So this is a great idea for Microsoft to offer this.

05:52.120 --> 05:54.400
But it's undermining the free software movement.

05:54.400 --> 05:57.040
So please trial to our tips.

05:57.040 --> 06:00.160
That was, yeah, maybe we should have a break now,

06:00.160 --> 06:02.520
so I can cool down a bit.

06:02.520 --> 06:05.720
And you can move your code.

06:05.720 --> 06:06.640
OK.

06:06.640 --> 06:08.280
So what's for you, then?

06:08.280 --> 06:09.360
Well, it's a code for.

06:09.360 --> 06:11.240
It's just like GitHub, a GitLab.

06:11.240 --> 06:12.920
It's written in Go.

06:12.920 --> 06:17.800
It's formed from Gitty, which is also a great project.

06:17.800 --> 06:20.280
There are, at this point, still exchangeable.

06:20.280 --> 06:22.320
They don't have all the same features.

06:22.320 --> 06:26.760
I chose Forjo for a reason that our will become clear later.

06:26.760 --> 06:28.880
And it's easy to host.

06:28.880 --> 06:31.800
My relationship with Forjo, well, I'm a user and a big fan.

06:31.800 --> 06:33.880
I use it at my job at an outlet foundation

06:33.880 --> 06:36.360
where we sponsor open source projects.

06:36.360 --> 06:38.320
I use it at home for my private projects

06:38.320 --> 06:40.640
that I would don't want to publish publicly.

06:40.640 --> 06:41.920
And I use Codeberg.

06:41.920 --> 06:45.640
Codeberg, who here knows Codeberg?

06:45.640 --> 06:46.120
Great, nice.

06:46.120 --> 06:46.800
Half the people.

06:46.800 --> 06:50.000
So I have some education to do for the other half.

06:50.000 --> 06:54.240
Codeberg is a place that will host your open source software

06:54.240 --> 06:57.520
for free in an interface that looks very familiar.

06:57.520 --> 06:59.560
Important stuff in there is easy.

06:59.560 --> 07:02.080
And it's a membership organization.

07:02.080 --> 07:04.760
So it's a non-profit for collaborating

07:04.760 --> 07:06.520
on open source software.

07:06.520 --> 07:09.840
It runs on Forjo, which is a software that I'm talking about.

07:09.840 --> 07:14.680
So it's basically the same software that you can use at home.

07:14.680 --> 07:19.640
And also, the Forjo Code is developed on Codeberg itself.

07:19.640 --> 07:21.760
So it has an acceleration going on there.

07:21.760 --> 07:22.280
Oh, sorry.

07:22.280 --> 07:24.680
This is a complicated one.

07:24.680 --> 07:26.080
It's a member organization.

07:26.080 --> 07:27.920
I'm a proud member.

07:27.920 --> 07:31.600
You pay a yearly fee and you are allowed to vote

07:31.600 --> 07:34.000
on how they behave, what they do.

07:34.000 --> 07:37.120
For example, they have some very ecologically positive

07:37.120 --> 07:39.960
policies, which say that they try to optimize running

07:39.960 --> 07:43.280
Cijops when the sun is shining.

07:43.280 --> 07:44.920
Of course, you don't always want that.

07:44.920 --> 07:48.000
Some Cijops, you want faster.

07:48.000 --> 07:50.640
At work, we go around that by having our OCI

07:50.640 --> 07:54.280
and coupling that to Codeberg, which is also possible.

07:54.280 --> 07:56.160
Yes, easy to import from other forges.

07:56.160 --> 08:00.040
So here is an overview of an issue page on Codeberg,

08:00.040 --> 08:02.480
or actually Forjo.

08:02.480 --> 08:06.400
And you see that all of these things are implemented.

08:06.400 --> 08:07.200
There are somewhere there.

08:07.200 --> 08:09.400
Some, like the Cumbendon, is not visible on this page,

08:09.400 --> 08:11.360
but it's there.

08:11.360 --> 08:13.560
There's a nice mobile interface, not a reason.

08:13.560 --> 08:16.880
If you open this on your browser and your mobile phone,

08:16.880 --> 08:19.160
it's not easy to work with.

08:19.160 --> 08:20.320
So it's not easy to use.

08:20.320 --> 08:22.520
So we need a solution for that.

08:22.520 --> 08:25.520
Well, if you install Forjo on your machine,

08:25.520 --> 08:26.680
you start it up for the first time.

08:26.680 --> 08:28.720
You go to the homepage, you see this.

08:28.720 --> 08:32.240
And here in the corner, if we zoom in, we see API.

08:32.240 --> 08:33.560
Great.

08:33.560 --> 08:34.680
So it has an API.

08:34.680 --> 08:36.760
We can talk to it with software.

08:36.760 --> 08:39.320
So what we can do is we can explore what the API looks

08:39.320 --> 08:40.040
like.

08:40.040 --> 08:42.080
We can see all the functions that I'm in there.

08:42.080 --> 08:47.600
And we can code our own PWA on top of Forjo.

08:47.600 --> 08:50.680
A PWA is a special concept.

08:50.680 --> 08:54.200
It's basically just a web app, but a web app

08:54.200 --> 08:56.120
that you can install on your mobile phone,

08:56.120 --> 09:01.280
without needing to go to Android Store or an iOS store.

09:01.280 --> 09:04.960
You go to the web page, and you say add to my home screen.

09:04.960 --> 09:06.920
And it will be a local app.

09:06.920 --> 09:09.200
It has storage.

09:09.200 --> 09:11.560
It has the permission to go full screen.

09:11.560 --> 09:13.520
There are a lot of benefits to doing that.

09:13.520 --> 09:16.160
It will just look like a normal app.

09:16.160 --> 09:16.760
It's great.

09:16.760 --> 09:18.000
It's really, really great.

09:18.000 --> 09:18.960
And it's cost platforms.

09:18.960 --> 09:20.760
So you develop it only once.

09:20.760 --> 09:25.200
And it runs on iOS, Android, on your Linux desktop,

09:25.200 --> 09:27.280
it's very, very nice.

09:27.280 --> 09:29.520
So yeah, what does it consist of?

09:29.520 --> 09:33.280
HTML, JavaScript, JSON, SVG files.

09:33.280 --> 09:37.080
This particular one, you can serve from a static file server.

09:37.080 --> 09:39.280
You just copy the files there and it works.

09:39.280 --> 09:42.080
So no need for a complicated backend.

09:42.080 --> 09:45.560
The complicated backend is for Jo.

09:45.560 --> 09:51.720
This is an extract from the API.

09:51.720 --> 09:58.640
So here, the endpoint slash user has a get method.

09:58.640 --> 10:01.720
So you can get information about the user.

10:01.720 --> 10:05.480
And here it's described the 200 response.

10:05.480 --> 10:07.200
We'll give you a user object.

10:07.200 --> 10:11.400
The 400 on one gives you an authorized message.

10:11.400 --> 10:15.320
And here is an idea for what you could use this endpoint

10:15.320 --> 10:19.000
if it were a function in a programming language.

10:19.000 --> 10:20.720
There's another example.

10:20.720 --> 10:23.720
This time we are generating a token.

10:23.720 --> 10:27.960
So what you can do with the API is you can create a token.

10:27.960 --> 10:33.000
And this token will you can store in a cookie.

10:33.000 --> 10:36.400
And you can use that to do further API requests.

10:36.400 --> 10:37.840
Now here are the parameters that you

10:37.840 --> 10:39.320
would normally put in a function call.

10:39.320 --> 10:41.400
Here is another function named suggestion.

10:41.400 --> 10:46.640
And you can also do this first search.

10:46.640 --> 10:48.120
Actually, this is a bit redundant.

10:48.120 --> 10:51.480
It's mostly more of the same.

10:51.480 --> 10:57.240
So now we come to how can we use this API to easily

10:57.240 --> 10:59.080
program a front end.

10:59.080 --> 11:02.000
For that, there is the rest for client generator

11:02.000 --> 11:03.600
called Oval.

11:03.600 --> 11:05.760
This is an MPM package.

11:05.760 --> 11:10.200
And it reads the API JSON and it writes TypeScript.

11:10.200 --> 11:14.200
In the case today, we're going to generate a view application.

11:14.200 --> 11:18.680
And we're going to use axios to do talking to the server.

11:18.680 --> 11:22.600
10 sec queries is another library that we'll be using.

11:22.600 --> 11:26.000
The name of Oval might be familiar to some people.

11:26.000 --> 11:27.200
Yes.

11:27.200 --> 11:28.880
It's a beer.

11:33.880 --> 11:36.880
So 10 sec queries, that's just another MPM package.

11:36.880 --> 11:41.440
And it makes it easier to keep the results of your

11:41.440 --> 11:45.160
forger queries in memory, because it carries them.

11:45.160 --> 11:47.760
And if you make a new issue, for example,

11:47.760 --> 11:50.600
or you change it, it will invalidate the queries.

11:50.600 --> 11:53.400
And you have a nice global object to get to everything.

11:53.400 --> 11:56.320
So that's just a convenience.

11:56.320 --> 12:00.320
So how do we create an application, a very rough steps?

12:00.320 --> 12:03.680
I'm using viewify, which is a view application framework,

12:03.680 --> 12:08.240
which looks nice and has nice widgets.

12:08.240 --> 12:11.080
Once it's ready, you want MPM one-deaf.

12:11.080 --> 12:13.360
Oh, this is the one, or it does matter.

12:13.360 --> 12:17.000
But you get the API from this URL.

12:17.000 --> 12:20.960
And if you host yourself, just change the domain name.

12:20.960 --> 12:24.600
And then this Oval can be used with a configuration

12:24.600 --> 12:30.840
to generate from the very large API file, which is 30,000 lines

12:30.840 --> 12:34.040
to a 60,000-line TypeScript file.

12:34.040 --> 12:36.280
Well, that's a bit much.

12:36.280 --> 12:39.080
And the compiler gets slow when you do that.

12:39.080 --> 12:41.880
So in the repo for this demo application,

12:41.880 --> 12:46.720
I have added the script, where I only list six end points

12:46.720 --> 12:50.400
and extract all the information needed to generate code

12:50.400 --> 12:51.120
from that.

12:51.120 --> 12:53.440
It's a bit of an implementation detail.

12:53.440 --> 12:58.520
30,000 lines of code goes to 2,000 lines of code,

12:58.520 --> 13:01.840
which is very nice for the compiler.

13:01.840 --> 13:03.920
This is what the login screen looks like.

13:03.920 --> 13:05.920
And there's one thing you should notice, which

13:05.920 --> 13:08.040
is different from normal login screens.

13:08.040 --> 13:12.000
You have to say to which forgeo instance you want to speak.

13:12.000 --> 13:14.800
Then you just fill in your username and password

13:14.800 --> 13:17.000
of that instance and press login.

13:19.720 --> 13:23.480
What you see then is the list of all your repositories

13:23.480 --> 13:26.280
because after all is just forgeo instance.

13:26.280 --> 13:28.360
And you can choose one.

13:28.360 --> 13:32.240
Now, how do we implement this list?

13:32.240 --> 13:36.360
Here's a simplified fragment of a Google code.

13:36.360 --> 13:41.680
So what's important here is the use repo search function,

13:41.680 --> 13:43.520
which was in the API.

13:43.520 --> 13:45.480
So this is generated for us.

13:45.480 --> 13:47.320
And what we call it with these parameters.

13:47.320 --> 13:51.280
So this is my user ID.

13:51.280 --> 13:55.040
This is also my user ID, which is nice for searching here,

13:55.040 --> 13:57.960
because it limits the number of repositories

13:57.960 --> 14:02.000
to the ones I own and use some other specific things

14:02.000 --> 14:03.560
that I'm just going to go into now.

14:03.560 --> 14:06.520
But what you get back is a data object and an error object.

14:06.520 --> 14:09.800
Now, if the error object is no, you can use the data object

14:09.800 --> 14:13.240
and use it in a list here and just iterate

14:13.240 --> 14:15.880
over the things that are in there, which you probably

14:15.880 --> 14:17.440
familiar also without a framework.

14:17.440 --> 14:20.040
And then you get a list like this.

14:21.040 --> 14:23.000
So the to-do screen?

14:23.000 --> 14:28.720
Yes, this is a very basic to-do screen, right?

14:28.720 --> 14:33.160
This is much, much simpler than the forgeo page.

14:33.160 --> 14:35.240
Basically, what you do is, if you want a new to-do,

14:35.240 --> 14:40.280
you just type it here, you press enter and as added down here.

14:40.280 --> 14:44.640
You can click the checkbox to make market as done.

14:44.640 --> 14:46.480
You can filter in different ways.

14:46.480 --> 14:48.480
And we have a great fallback.

14:48.480 --> 14:50.800
Because if there is something that we want to have,

14:50.800 --> 14:53.520
but which is not yet implemented in this UI,

14:53.520 --> 14:56.240
you can press this link and you can go straight to the forgeo

14:56.240 --> 14:58.160
instance and look at the full thing.

14:58.160 --> 15:01.680
So any feature that's not completely done from the start,

15:01.680 --> 15:04.080
you can just fall back to the full implementation,

15:04.080 --> 15:08.480
the full user interface of forgeo itself.

15:08.480 --> 15:13.360
Well, here's another bit of code that shows how this works.

15:13.360 --> 15:16.760
We import again from the generated code.

15:16.760 --> 15:20.480
And then we get here the create new item function,

15:20.480 --> 15:23.120
which calls the create issue.

15:23.120 --> 15:26.800
And the create issue is what we get from this API.

15:26.800 --> 15:29.760
So the API gives us a use issue, create issue.

15:29.760 --> 15:31.360
It's a bit of a weird name.

15:31.360 --> 15:33.720
But what it does, it's give you just a function

15:33.720 --> 15:35.680
to create new issues.

15:35.680 --> 15:38.760
And there you have to just say what a title is.

15:38.760 --> 15:40.840
You can add more information, of course.

15:40.840 --> 15:43.160
But this is basically how it works.

15:43.160 --> 15:45.880
And then at the end, you say invalidate the other queries

15:45.880 --> 15:51.360
so that the list of items has to be fetched again.

15:51.360 --> 15:55.760
Well, some observations I had while doing all this.

15:55.760 --> 15:59.000
First, you have to enable course on forgeo.

15:59.000 --> 16:01.800
So I'm not going to explain exactly what course is.

16:01.800 --> 16:05.360
It just means that your forgeo instance will accept

16:05.360 --> 16:09.000
web requests from other web pages than itself.

16:09.000 --> 16:12.280
And codebook.org has that enabled by default.

16:12.280 --> 16:13.480
These days, so that's great.

16:13.480 --> 16:14.480
You don't have to do anything.

16:14.480 --> 16:16.040
But if you install it yourself,

16:16.040 --> 16:19.960
make sure to add that in the configuration.

16:19.960 --> 16:23.680
The direct login, which you saw here,

16:23.680 --> 16:25.360
only works since a few releases.

16:25.360 --> 16:28.800
So if you have a slightly older forgeo running,

16:28.800 --> 16:32.080
it won't work because the course was not working on there yet.

16:32.080 --> 16:34.320
They fixed that in forgeo 14.

16:34.320 --> 16:34.720
And it's fine.

16:34.720 --> 16:38.600
You can work directly, but the initial versions of this app.

16:38.600 --> 16:41.440
I had to also still one small proxy server

16:41.440 --> 16:43.760
to route the request, which was a bit annoying.

16:43.760 --> 16:44.880
But now it's totally clean.

16:44.880 --> 16:48.400
So yeah.

16:48.400 --> 16:51.120
And funny implementation thing, forgeo,

16:51.120 --> 16:53.920
if you want to preview a comment that you're writing,

16:53.920 --> 16:58.080
I would imagine that it would just use JavaScript to do that.

16:58.080 --> 17:00.480
But what it does instead is they want to be so sure

17:00.480 --> 17:03.120
that it's exactly the same as it's rendered on the server,

17:03.120 --> 17:05.320
that it just sends the text to the server,

17:05.320 --> 17:06.440
and it returns the preview.

17:06.440 --> 17:08.080
I thought that particularly funny.

17:08.080 --> 17:09.040
It's just one more round.

17:09.040 --> 17:10.680
It doesn't matter, but it was.

17:10.680 --> 17:13.720
I thought it funny to see that.

17:13.720 --> 17:15.920
Yeah, so note of caution.

17:15.920 --> 17:19.200
The API changes slightly every six months,

17:19.200 --> 17:22.480
because forgeo has a very aggressive release cycle.

17:22.480 --> 17:26.760
So make sure that the API that you're using corresponds

17:26.760 --> 17:31.720
to the version of the forgeo instance that you're talking with.

17:31.720 --> 17:34.960
And yeah, this is just a quad application meaning

17:34.960 --> 17:37.280
that for everything I do, I talk to the server

17:37.280 --> 17:38.200
and it talks back.

17:38.200 --> 17:40.160
I don't store anything locally.

17:40.160 --> 17:43.520
That's also, we have a whole track at forgeo for a software

17:43.520 --> 17:45.960
which is awesome, but this is a simple thing.

17:45.960 --> 17:47.000
It doesn't do that.

17:47.000 --> 17:50.320
So you have to be online to use this.

17:50.320 --> 17:51.200
That's it.

17:51.200 --> 17:55.200
Conclusions, forgeo is fantastic in my opinion.

17:55.200 --> 17:57.800
If you use it longer, you'll also find that it's great.

17:57.800 --> 18:03.840
And so it's also a great backend for a to-do app.

18:03.840 --> 18:07.920
For the future, will I continue working on this app?

18:07.920 --> 18:12.560
Well, I can guarantee that I'm going to work on my issues.

18:12.560 --> 18:14.560
Other than any questions.

18:14.560 --> 18:15.560
Thank you.

18:15.560 --> 18:16.560
Thank you.

18:16.560 --> 18:17.560
Thank you.

18:23.560 --> 18:26.560
So there's this issue.

18:26.560 --> 18:31.560
I think it's that you have told y'all that there should be

18:31.560 --> 18:33.560
all of that.

18:33.560 --> 18:38.560
But it's a problem at the end point for issues.

18:38.560 --> 18:41.560
And you could use your URL.

18:41.560 --> 18:42.560
Yeah.

18:42.560 --> 18:49.560
So the question is, could you make a cloud of bridge for forgeo?

18:49.560 --> 18:51.560
I think you could.

18:51.560 --> 18:56.560
You would have to somehow handle fields that are present in forgeo,

18:56.560 --> 19:00.560
which are not present in the feed-to-do specification and vice versa.

19:00.560 --> 19:04.560
So you might lose data or you have to be specific in, you know,

19:04.560 --> 19:09.560
it's data which is temporarily temporarily stored in a different field.

19:10.560 --> 19:12.560
But you know how to get it back.

19:12.560 --> 19:13.560
So there is some mismatch.

19:13.560 --> 19:15.560
I'm sure of it.

19:15.560 --> 19:17.560
But the basics could be done.

19:17.560 --> 19:20.560
I'm not sure I would really feel comfortable using something like that,

19:20.560 --> 19:21.560
to be honest.

19:21.560 --> 19:26.560
If you thought geo would to the supply that negatively would solve your problem.

19:26.560 --> 19:33.560
But if the forgeo data model would be extended to also encompass all the fields

19:33.560 --> 19:37.560
in the feed-to-do application, yes, then it would be fine.

19:40.560 --> 19:41.560
Another question there.

19:46.560 --> 19:47.560
Nope.

19:47.560 --> 19:48.560
It's not so much.

20:00.560 --> 20:04.560
The question is, to do apps are empty-heart.

20:04.560 --> 20:06.560
Am I actually using it?

20:06.560 --> 20:08.560
Yes, I am actually using it.

20:08.560 --> 20:10.560
Yes, it's kind of sticky.

20:10.560 --> 20:11.560
Yes.

20:11.560 --> 20:14.560
What I especially enjoy is that when I'm done with the task,

20:14.560 --> 20:17.560
I can take a picture and upload the picture.

20:17.560 --> 20:19.560
And I have proof.

20:19.560 --> 20:22.560
Yes, this is a clean chicken shit now.

20:22.560 --> 20:26.560
Although for the chicken shit, I don't go that far that I do that every time.

20:26.560 --> 20:29.560
For example, when I shove the whole field, that's kind of work.

20:29.560 --> 20:31.560
Instead of bothering other people with that on the Fediverse,

20:31.560 --> 20:34.560
I just put it in my to-do results.

20:35.560 --> 20:36.560
Yes.

20:43.560 --> 20:46.560
Thank you very much for your attention.

20:46.560 --> 20:47.560
Thank you very much.

20:47.560 --> 20:50.560
Thank you very much for the invitation.

20:50.560 --> 20:53.560
Thank you very much for the invitation.

