
log.ryanatkn.com
- updated the cosmicplayground.org summary, "a free and open source noncommercial hobby project exploring tools and toys using web tech for fun and learning"
- updated my first blog post
- made web interaction study, a small tool for inspecting JavaScript mouse, touch, and pointer events on various devices and browsers: github.com/ryanatkn/web-interaction-study
- improved and re-announced my alternative docs for the ActivityStreams vocabulary of ActivityPub
- in cosmicplayground
added pinch-to-zoom gesture support, like for
Soggy Planet, so non-busted mobile
support is almost there, and soon I want to extract it so it's reusable, maybe as an action
instead of the current component (pulls
#76,
#77, and
#78)
why it took 3 PRs and it's still not done
There's a janky zoom bug that took a couple extra PRs to diagnose and it's still not fixed. Firefox for Android is delaying some pointer events which causes big janky jumps for some quick pinch gestures, and then reversing your pinch won't put you where you started. Chrome for Android works great, so at least my code seems ok, but it's little consolation when my primary mobile browser feels broken with it. I'm now wondering if I should abandon pointer events and revert to mouse+touch. I started down the Bugzilla rabbit hole but it's deep... The silver lining is that the problem nudged me to improve the code significantly from the first pass. - on this website added dark mode support by upgrading felt-ui and using Themed - currently it only detects the user's preference, soon I'll fix things upstream so we can add a switcher for users without the current boilerplate (pull #2)
- in cosmicplayground published a tour of Soggy Planet with a YouTube video (pulls #72 and #75)
- in cosmicplayground
added a media player and put it on the main menu (press
Escape
on cosmicplayground.org, pull #73)
- in felt-ui added support for themes and color schemes, including dark mode (pull #247)
- in felt-ui added the contextmenu from felt-server (pull #293)
- deployed earbetter.ryanatkn.com with enough features to be announced
- added the initial proof-of-concept for earbetter.ryanatkn.com, an ear training game and tools for programming music and audio, features a configurable trainer and a piano with MIDI support (source, pull #1)
- added the editor proof-of-concept for control.ssag.dev (pull #5, #6)
- revamped the camera in dealt (dealt.dev, pull #59) and published @feltcoop/dealt@0.4.0, examples at dealt.dev/membrane and dealt.dev/gravity
- in felt-ui made Whiteboard.svelte data-driven, and used those changes to make the whiteboard sketch collaborative by piggybacking felt-server's infrastructure when iframed (pull #274)
- deployed the new www.felt.dev (pull #5) and ui.felt.dev (pull #273)
- in felt-ui added Whiteboard.svelte and the whiteboard sketch (pull #269)
- in felt-server merged a change that allows clients to construct actions using a generic form (pull #614)
revised and tooted about my second blog post, "Modeling virtual social spaces: in this house we post cat pics on Saturday", with more on Mastodon:
@ntnsndr@social.coop (Mastodon): WIth ntnsndr.in/ImplicitFeudalism in mind, I'm curious whether there is any possibility of checking the power of Control? Is there a way in which that could be non-absolute?
@ryanatkn@hci.social (Mastodon): Yeah! Here's how we're thinking about it right now with Felt. Still ratcheting up the ladder to climb out of the feudal hole.
Control is held at the group/org/community level (Felt names these "hubs" now) by actors. In the default hub template the creator gets the all-powerful "steward" role, but the hub itself has an actor, and control is transferable/sharable. The hub actor's actions are controllable by automated/assisted/direct processes. Other group actors could be involved.
to clarify, "steward" is just the name for a role in the default hub template and a convenient way to reference the idea, they can be constrained with fine-grained permissions like any other customizable role - this contrasts with Slack (no customizable roles) and Discord (coarse-grained permissions)
given this API you could design a set of roles that split powers, separating/balancing concerns
hub templates make it easy to share pre-fab designs with the initial roles/permissions/etc
In our implementation, actors are assigned roles which have permissions. You helped me realize that by splitting permissions among roles we could support non-absolute power with this: hci.social/@ryanatkn/109770994846184255
An all-powerful group actor's actions could result from collective governance processes
or, I think we can support designing systems with structural checks and balances through permission assignment, so any actors could have mutually co-checking subsets of permissions in a hub
That's the first-order UX prioritized by end users. This second part is ignorable by most people most of the time, but for the governance enthusiast:
Hubs are hosted on infrastructure controlled by "operator" actors. These have the power to pull the plug, and may technically have hub control bypassing stewards, like modifying a database.
Maybe there's instance/server/etc levels between infra and hub, but that's an impl detail. Felt has instances controlled by "admins".
The operator actor could be co-ops/nonprofits/other orgs, or as you've written about, bl0ckchains or similar. Bchain enthusiasm makes sense here b/c the operator won't pull the plug or modify the db barring acts of God. Felt.social plans to be a platform co-op operator providing infra.
btw I love this so much, Boba Board (boba.social) has leaned into *explicit* feudalism for their fandom communities, owning it right in the brand! "Be the Monarch of Your Own Realm!"
- renamed this project's main building block from
Bulletin
toDigest
, seems friendlier and better for puns (commit)
- moved most of our projects on GitHub from @feltcoop to @feltjs, which will be a nonprofit, tightening @feltcoop's scope to be a platform operator at felt.social (still with the goal to be a platform co-op), and making @feltjs and its repos a community project more explicitly
- posted the first draft of my second blog post, Modeling virtual social spaces: in this house we post cat pics on Saturday
added the
Board
view to Felt - it's like a chat room but upside-down, so the input is at the top and content flows downward, replies are nested, and the newest posts and replies appear at the top: github.com/feltjs/felt-server/pull/663
- published a repo with setup instructions and resources for my dev environment: github.com/ryanatkn/setup
- merged a pull request with a change that was suggested by an AI for the first time: github.com/ryanatkn/setup/pull/2
- fixed a rendering performance problem in Soggy Planet in cosmicplayground, closing this issue with this PR - the fix had me write my first WebGL shader! The code isn't great but it works, and I'll be able to use this pattern for more performance improvements and new rendering capabilities
- created Svelte store study for assessing several Svelte stores 🧡 source, @ryanatkn/svelte-store-study#1
- designed and implemented this website's digests (@ryanatkn/log#1)
- published the first three digests here at log.ryanatkn.com
- created this project to log my doings (log.ryanatkn.com, source)
- started work on an ear training game named Earbetter (ryanatkn.github.io/earbetter, source), porting code from an old prototype which was a followup design to my simple ear training game Ear Sharpener (source)
- improved the ability to create a Felt community and its initial objects from JSON data (@feltjs/felt-server#632)