Olivier Forget · @teleclimber
349 followers · 2835 posts · Server social.tchncs.de

Just posted: August progress report for

This was primarily a vacation month but I started work on app changelogs which was interesting to think about.

olivierforget.net/blog/2023/dr

#dropserver #opensource

Last updated 1 year ago

Olivier Forget · @teleclimber
350 followers · 2826 posts · Server social.tchncs.de

I'm working on adding release notes (aka changelogs) to app packages in .

As usual I like to look at other platforms to see how they present things. It's interesting that the Google Play store buries the latest change, and doesn't allow you to see previous changelogs (why??) while embraces the changelog and presents the log in a pleasant and useful way.

Google may have even tried to get rid of them altogether: androidpolice.com/google-play-

What other platforms do changelogs well?

#dropserver #ios

Last updated 1 year ago

Olivier Forget · @teleclimber
348 followers · 2797 posts · Server social.tchncs.de

post: progress report for July 2023

olivierforget.net/blog/2023/dr

In August I'll be taking some time off 😴. Back at it in September.

#blog #dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
347 followers · 2784 posts · Server social.tchncs.de

This "Review icon update" screen noticed by @rgegriff is relevant to the work on app packaging I was doing just recently.

Changes between versions can signal to the user that the app may not be good to keep around. It's the platform's job to highlight these changes.

In I highlight name, and license changes.

Not clear how to implement for icon though. File hash would trigger on compression change. Image "similarity" is harder to implement but this motivates me to look into it.

#dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
347 followers · 2784 posts · Server social.tchncs.de

Adding a table of app migrations in the "new app" view in ? Easy.

Aligning the text in the thead with the baseline of the label to the left of the table? Impossible (at least for me).

I could try all kinds of variations of flex box and grid and all kinds of other tricks, but that would eat up the rest of the morning.

So it's ugly. So it goes.

#dropserver #css

Last updated 1 year ago

Olivier Forget · @teleclimber
343 followers · 2769 posts · Server social.tchncs.de

"So the only path for creating a web app is to still run a *service*. Which means figuring out monetization, authentication, sensitive user data storage, abuse prevention, maintenance, uptime…. Gah."

- @jonikorpi

This is why I'm creating . There are many very talented devs with good ideas out there, but if it's a type of thing, they can't share their creation unless they make a service out of it. But that's a whole 'nother thing many won't touch.

mastodon.gamedev.place/@joniko

#dropserver #webapp

Last updated 1 year ago

Olivier Forget · @teleclimber
343 followers · 2745 posts · Server social.tchncs.de

Installing a personal web service on : in the gif below it takes about 20 seconds* from start to interacting with the running web-app as the logged in user.

I can still improve this by eliminating some unnecessary interactions.

* in actual use it will take a bit longer: I had to do this a few times bc I fumbled, as a result the code was cached by @deno_land so the initial run was very fast.

I'll describe what's going on in the gif in the post below.

#dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
340 followers · 2738 posts · Server social.tchncs.de

Finally released version 0.11.0 of

This brings the ability create app packages (via the ds-dev helper program) and use these packages on a Dropserver instance.

This is the "packaging" part of "packaging and distribution". Next I work on distribution. Then I'll put my existing apps out there and you'll actually be able to use all this. πŸ˜…

I also improved the a fair bit.

Dropserver is an application platform for your personal web services. dropserver.org/

#dropserver #ui #selfhosting

Last updated 1 year ago

Olivier Forget · @teleclimber
338 followers · 2697 posts · Server social.tchncs.de

Blog post: progress report for mid-April to June.

olivierforget.net/blog/2023/dr

This is a long one that covers most of my work on application packaging. I hope to write these monthly now, so future ones will be less epic πŸ˜…

PS: dropserver.org is an application platform for your personal web services

#dropserver #opensource #development

Last updated 1 year ago

Olivier Forget · @teleclimber
326 followers · 2612 posts · Server social.tchncs.de

Following up on yesterday's post on safely handling compressed archives in :

social.tchncs.de/@teleclimber/

I updated the code where it handles tar-gz app packages to count space used as it decompresses and writes to disk and it bails if over limit.

Size checked:
- from tar Header (not trustable but it's there)
- during io.Copy
- after copy is complete

github.com/teleclimber/Dropser

I wrote tests but haven't thrown a real bomb at it. Not sure how to do that safely.

1/

#dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
326 followers · 2603 posts · Server social.tchncs.de

Inspired by @dansup 's post on (not) handling zip files on the PixelFed server I took some time to dig into how I will handle compressed archives in .

mastodon.social/@dansup/110531

I am currently working on app packaging, so the tar-gzipped app files are what I'm leaning into right now (I also accept zip files for data restore, but that ill have to be dealt with separately, though probably using the same principles.)

1/

#dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
325 followers · 2597 posts · Server social.tchncs.de

I got frustrated yesterday when my personal instance stopped responding to some requests (the ones that involve an app sandbox).

But then I realized it had been running continuously for almost two months, it's alpha software that I make changes on constantly, and it had been reliably serving requests for my shopping list app, the leftovers tracking app, and my personal note taking app and others non-stop and without any noticeable issue every day for nearly two months.

So πŸ‘

#dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
325 followers · 2568 posts · Server social.tchncs.de

I'm going to let app devs declare an "accent-color" in their app manifests. It's a very cheap, easy and safe way of giving apps more personality inside the Dropserver UI.

I use a lib to parse the color and regenerate it using a CSS color parsing library to prevent an injection attack.

It won't affect accessibility because I'm not using the color for text foreground or background.

(Note: Davros is not a DS app, I borrowed it from to play w/ full-bleed icon in ).

#penpot #sandstorm #dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
325 followers · 2536 posts · Server social.tchncs.de

A month ago I wondered if should support "Single File Apps". (social.tchncs.de/@teleclimber/) Some thoughts, after a month of working on app packaging:

SFAs don't make a lot of sense for Dropserver apps. Most will include some sort of font-end (whether it's plain HTML or an SPA) in addition to the backend code, which implies additional files: templates, stylesheets, , etc...

I was trying to make it easier to publish an app, but if the app is neutered there is no point.

1/

#js #css #html #dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
324 followers · 2495 posts · Server social.tchncs.de

I'm less thrilled about the way "secondary indexes "work". You basically duplicate your data and store them at different keys. Yay? Looks labored and possibly inefficient from a disk space pov. We'll see.

deno.com/manual@v1.33.1/runtim

Yet all-in-all I'm very happy to see this in Deno. Will make a big difference for apps and I look forward to converting one of my apps that doesn't need a relational DB from to Deno kv.

#sqlite #dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
324 followers · 2492 posts · Server social.tchncs.de

key-value store now has an official page:

deno.com/kv

...and docs:

deno.com/manual@main/runtime/k

My quick thoughts on what this means for apps:

social.tchncs.de/@teleclimber/

@deno_land

#dropserver #deno

Last updated 1 year ago

Olivier Forget · @teleclimber
324 followers · 2460 posts · Server social.tchncs.de

I'm looking at config file formats for app metadata. looks good but there are criticisms I can't ignore:

hitchdev.com/strictyaml/why-no

I can't tell whether it's a case of people expecting too much out of a simple config, or "grass is greener on the other side"? or maybe "the only config file format nobody complains about is the one nobody uses".

More signifcant might be that TOML has very little mind share in the universe so it might be DOA given apps are written in JS.

#js #toml #dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
325 followers · 2400 posts · Server social.tchncs.de

New: you can give a try using . Just run:

docker run -p 5050:5050 teleclimber/ds-host:latest

Then look at the logs for the setup link. More details here: dropserver.org/docs/ds-host-do

Note this is meant for "kicking the tires" around the DS interface, not for running in production.

Unfortunately still missing is an easy way to get apps. App packaging and distribution is the next big thing I'm working on.

In the meantime, make your own apps? πŸ˜‰

dropserver.org/docs/build-drop

#docker #dropserver

Last updated 1 year ago

Olivier Forget · @teleclimber
323 followers · 2384 posts · Server social.tchncs.de

Interesting. It appears @denoland is implementing a key-value inside : github.com/denoland/deno/pull/

I had hoped they would implement , but this appears to be harder than it should be. github.com/denoland/deno/issue

I would prefer a standard, but I'll take it.

In apps I tend to import as module, but that doubles the sandbox startup time. I can make do with a KV store if it comes for free. In many cases that will work well enough.

deno.land/x/sqlite@v3.7.0

#wasm #sqlite #dropserver #indexeddb #deno

Last updated 1 year ago

Olivier Forget · @teleclimber
322 followers · 2267 posts · Server social.tchncs.de

I've been playing around with to see if it would be a good way for people to install . Turns out, not so great.

- Running Bubblewrap within Docker is troublesome github.com/containers/bubblewr
- Create cgroups within the container is apparently not supported lewisgaul.co.uk/blog/coding/ro

Both are used to prevent a rogue app from ruining your day.

I'll probably still release a Docker image for local experimentation only. That will make it easier to et a taste of dropserver.org

#dropserver #docker

Last updated 1 year ago