With local-first apps, users have full control over their data, and it is stored on their own device rather than on remote servers. This reduces the risk of data breaches and unauthorized access to data.
ODD apps are not only local-first, but they are also able to work offline and collaborate across multiple devices. #oddsdk #localfirstcomputing #p2p
Agregore 2.2.0 just got released with improvements to load times and our extension system.
https://github.com/AgregoreWeb/agregore-browser/releases/tag/v2.2.0
You can check out @mauve doing a live toot of their debugging here: https://mastodon.mauve.moe/@mauve/110340934453455969
For anyone curious, here's the diff for the work I was doing: https://github.com/AgregoreWeb/agregore-browser/commit/575528d9e21b84fcfd4798e4eb52c79f157866a2
Love me some deleted code 🥰
I'm especially happy with this file for tracking all the built in extensions. Should make it way easier to customize Agregore for communities.
Also! While I'm at it I've added more mime types to the JSON renderer so now when I view ActivityStream data I can get a nice formatted view with clickable links. 😁
Adding new extensions and updating versions for extensions is now super easy.
All I need to do is add a new entry to a JSON file with a `url` for downloading the zip file for an extension, as well as a `version` string which is used to compare against the manifest on disk.
The URL also has some basic templating where the system will replace occurances of `{version}` with the version number. With this I just need to update the one line to update the version.
AHA! "Fixed" the Ublock Origin issue by reverting to version 1.47.4
1.48.0 added a fancy new thing for rendering icons and it seems my extension system doesn't support whatever this fanciness is.
https://github.com/gorhill/uBlock/releases/tag/1.48.0
Could also be one of the patches since then though. 🤷
Anyway, now I've changed how built in extensions work.
On build I add some zip files for extensions into the browsers binary along with version and name metadata.
On boot it will check if the extensions folder has an older version (or empty) for one of these builtins.
If so it'll extract the zip over top before all the extensions get loaded.
Also extension loading happens in parallel now
As part of this I've done some profiling of the startup time for Agregore (using console logs and my sense of time) and I found that reordering some of the initializing code can drastically improved perceived boot speed.
The main culprit was the `app.setAsDefaultProtocolClient` API. It's probably doing a bunch of sync API calls to the OS which is getting in the way. God I hate sync APIs. :P
I think for one or two protocols it's not a big deal, but in Agregore we're doing like 10 so it adds up.
Current coding soundtrack:
https://soundcloud.com/pilouandco/buzz-fuzz-d-leria
Been really into techno lately.
K, fuck it. AppImage is causing me issues where none of my web extensions are able to keep their history since they're being served from a different folder each time.
That and the fact that ublock origin is somehow busted is telling me it's time to rewrite how WebExtensions are bundled into Agregore.
One benefit of this will be the ability for users to mess with their installed extensions directly.
First: Removing all the old extensions and making sure there's a step to publish them as ZIPs
Gonna look into using #pyinstaller combined with a github action to see if it'd be easy enough to automate.
https://pyinstaller.org/en/stable/requirements.html
https://github.com/marketplace/actions/versatile-pyinstaller
Why, yes, I *did* stay up until 5 AM watching a #homestuck readaloud thing on YouTube. Why do you ask?
Also tried to set up scdl but python was having some sort of problems with LibreSSL so that didn't work out. Honestly, CLI tools should make a point to have binary downloads for each platform.
Got fed up with iOS and how much trouble my partner was going through trying to get music on their phone.
Ended up buying them an MP3 player with a 16 GB SD card and showing them how to download stuff from the internet.
I had to go to like 5 stores before I found one that had one, and it was just a single model. 🙃
Hello friends 🙂 It's been a week since we started announcing a series of interviews with project founders of dat-ecosystem.
Join the journey to sustainability with Agregore - the #p2p web browser from @mauve !
Here is a link to the interview 😊
https://blog.dat-ecosystem.org/meet-mauve/
#Agregore #Sustainability #LocalFirst #dat_ecosystem #dat #p2p
How hard is it to add a replica to even a subset of the #InternetArchive or to get ones own "Internet in a box" deployment going? Like, price wise and access to data wise.
Do I need to budget for a petabyte or two of storage? Does it necessitate an entire datacenter?
Occult Enby that's making local-first software with peer to peer protocols, mesh networks, and the web.
Exploring what a local-first cyberspace might look like in my spare time.