Tracking our collaborative progress as a team
- Watch this repo so you receive notifications when people open or update issues.
- Use your name (real or otherwise) in the subject of the issue so we know whose project it is.
Tracking our collaborative progress as a team
I've been working on packaging Datasette, an app I've been very interested in for a while. I have a package which isn't friendly to use but proves the concept, and the lead developer is interested in helping fill those gaps in usability with some small plugins.
...and allow users to grant access via a popup. I have much of this implemented on my media-csp
branch.
(This got a little complicated since there was wrapup stuff not really in any category. Will probably leave milestone metrics below as "out of date" unless people are very interested.)
This section got out of date as far as hours, and it'll probably take more time than it's worth to get back up to date. But keeping around in old state in case anyone cares.
Caveat on vagrant-spk -> spk:
spk pack
ed version can't find any files in the package.
/usr/bin/bash
, not launcher.sh
, nothing.Sandstorm Packaging Stuff
Trivial items
Style
ep_author_neat
)Minifying/Caching/Performance
Dependencies
ep_comments_page
and ep_author_neat
) from source.Migrating dirty.db -> sqlite
Sandstorm Profile Integrations
ep_author_neat
(see below).Sandstorm Auth/Permission Integrations
Sandstorm Activities Integrations
Assorted
ep_author_neat
ep_comments_page
https://github.com/zenhack/incremental.js
I put together a preliminary version of the above in a couple days a while back. There are a couple of bugs to shake out, and I'll want to battle test it, probably as part of the UI for ocap-merkledag. But once I've gained some confidence I have interest in possibly using this as part of Sandstorm core, as I think it will make the UI code much easier to work on & maintain.
Thanks to FundOSS, our OpenCollective now has a sizeable $4,878 to work with to fund Sandstorm development. I think that it's critical that we translate this funding into progress in short order, so that people feel their investment has actually gone to where it belongs.
My understanding is that FundOSS intends to run another round in 3-6 months, which I feel should guide our disbursement rate somewhat, though until the next FundOSS is running, we should assume it may be a one-off, and try to raise our own recurring funding on OpenCollective. But if we were so lucky as to be able to run FundOSS again and come out similarly in 3-6 months, then we should look to spend $750-1,000 a month.
I think we should establish a list of appealing projects that can be completed in roughly a month or less, and assign a rough dollar value, based on the expected time needed and our goal disbursement rate (above). We should then determine a way for the community to indicate their preferences/ranking, such that we can prioritize spending on projects which the community is excited about. I think Framadate might be a suitable poll app for this, since people can vote for multiple options, though it falls short of ranked-choice or single-transferable voting.
Obviously the two biggest perks to running community funding this way compared to Ian's sponsors page is: We can easily distribute this to any community developer participating, and the community can direct the priorities of development rather than leaving it open-ended.
Kenton and Ian left additional review notes on sandstorm-io/sandstorm#3391 and I believe I can polish this up into a merge-able state. But I haven't done it yet.
A while back I wrote: https://github.com/zenhack/capnpc-node-typescript
...I should update the README; it's pretty much ready for prod, and I just need to integrate it into our build system, at which point we'll have types for everything that uses capnp.
On my grain-settings
branch, I am working on adding a per-grain settings page, where we can put stuff like managing a grain's capabilities & scheduled jobs, and anything else that makes sense (periodic backup policy comes to mind, someday)
On the bpf_asm
branch on my fork I have some WIP on two related things:
This is a fork of uWiki, seen here: https://github.com/sdassow/wiking
It's added a lot of features and polish from the original version I tried packaging in the experimental market. But the security improvements he added have been throwing me off. I had to get the "DNS rebinding protection" feature able to be shut off, and then I hit the CSRF issue. I'm hoping Ian's fix in the last release will unblock this, but I haven't tested it again yet.
Another app I've been interested in for Sandstorm is 2FAuth, which allows you to use TOTP tokens in the browser. A while back I asked if they had a way to bypass the login for it, and I was informed this past week you can now authenticate by HTTP header, which should be very compatible with Sandstorm.
Mostly in service of ocap-merkledag, I've been making some improvements to haskell-capnp, and there are some more that would benefit from it.
A lot of this is performance work, or reworking of APIs to make writing performant code more ergonomic.
Currently, I have a "it runs" branch at https://github.com/ocdtrekkie/drawio/tree/sandstorm and I have the packaging key.
The biggest issue here is to stage.sh (https://github.com/ocdtrekkie/drawio/blob/c9bbab5c11eaf879ff473e63533cfbaeaa043062/etc/sandstorm/stage.sh) explicitly copies files to use in the Sandstorm package... some of them I had to comment out, which means those features are renamed or moved. And a lot of new files aren't copied, so it's likely the package has a lot of holes I need to audit and test.
It would be nice to have the bundle for each Sandstorm release be a reproducible build.
My work on a nix expression for Sandstorm might help here, but another approach could be to use a Dockerfile, along with more conventional tools.
Kenton pointed me to https://github.com/fasterthanlime/capnp-ts/tree/rpc as a mostly-ready version of a pure-typescript capnproto rpc implementation. I poked at it, and the current version doesn't build; it looks like there are still a few TODOs. It also needs to be changed to not require node's finalizer support in order to run in the browser.
I'd like to get that work finished up so we can use capnp client side, both in sandstorm and for some apps.
We're close to closing the client-side loophole, but it's currently not possible to block WebRTC with CSP; that will require changes to web standards (and browsers, obviously). I'm trying to get some discussion going in the w3c about making this happen, it looks like there was some effort in this direction that stalled:
Related to #12, it would be nice if blocking the exfiltration hole provided by webrtc didn't prevent apps from making legitimate use of the functionality. Furthermore, right now (even without a block for that in place) if someone wanted to write a video conferencing app, they would run into the problem that iframes can't request mic & camera access, so I'd like to have some answer for how apps can do that sort of thing.
My ideal for this is that we'd be able to use postMessage() to transfer the relevant browser objects, so apps could request access to these from Sandstorm, much like they do for powerbox requests.
Related issue with w3c folks: w3c/webrtc-extensions#64
https://github.com/zenhack/ocap-merkledag is the foundation of my plans for Sandstorm's backup system, but in the shorter term it even a less integrated version as an app would be useful as a data-dumptruck for my own backups. Soonish I hope to get an MVP of this out. This will consist of a Sandstorm app with basically no UI other than an offer iframe, and a command-line tool that you can use to shove stuff into it. From there I'll build a UI and such, but this issue is for the MVP.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.