@alcinnz@floss.social
@alcinnz@floss.social avatar

alcinnz

@alcinnz@floss.social

A browser developer posting mostly about how free software projects work, and occasionally about climate change.

Though I do enjoy german board games given an opponent.

Pronouns: he/him

This profile is from a federated server and may be incomplete. Browse more on the original instance.

alcinnz, to random
@alcinnz@floss.social avatar

This is interesting... I'm linking to my hardware-browser hypothetical in applying to a contract!

I think it shows the skills they want from me!

alcinnz, to random
@alcinnz@floss.social avatar

When I discuss what should be in the web & what I consider to be bloat, it becomes clear that different people want different things from the web!

What I want are inter-connected documents, which can be rendered (given appropriate software) beautifully to any device!

I want it to be feasible for a small team to build their own!

And I don't mind extra features being added to the web as long as it has graceful degradation. So smaller browsers don't have to implement it!

alcinnz, to random
@alcinnz@floss.social avatar

Perhaps the most vital dev tools for our hypothethetical string-centric hardware would be those for converting from a human-legible form (stick to text status-quo since this hardware is string-centric, caveat) to what each of our coprocessors can reasonable be expected to understand!

And back! Though I'd minimize the need for that by shipping updates as source code where I can.

Also tools to run these programs, providing an intuition over their behaviour.

Topics for next several days!

1/4?

alcinnz,
@alcinnz@floss.social avatar

The Graphics Compositor & SFX coprocessors would be primarily programmed by the Output Unit using compiletime constants. As would the Arithmetic Core, with the aid of a special "label" type.

To aid debugging that Arithmetic Core I'd probably end up creating a tool which has the Input Preprocessor emulate its RAM, triggered by user input or a periodic timer. So we can stepwise debug the program, and view its entire state! As well as a disassembler rendering arrows for control flow.
2/3?

alcinnz,
@alcinnz@floss.social avatar

To debug those output programs it could be useful to send them a signal ranging from low to high, to see/hear how the handle each input value.

Similarly I'd have a tool which runs an FPMA program output the results as scatterplots showing the output for each value of each input (holding other inputs to, by default, zero), verbalized as differently-pitched beeps. I've already described how its compiler would work.

And I've already described a stack of language for our "Layout Coprocessor".
3/4!

alcinnz,
@alcinnz@floss.social avatar

This Layout Coprocessor would have tool rendering its visual output for given input values, with an option to sweep an input from low to high to see how the output responds to every value.

The Output Unit (frequently combined with the Parsing Unit) would have tool that opens tabs/windows for all the outputs (including the Arithmetic Core's code) generated by running one of its programs.

And I'd give the Parsing Unit a tool which styles its input text to annotate which rules it matched.

4/4Fin

ajroach42, to random
@ajroach42@retro.social avatar

The problem with federated alternatives to centralized services (and also one of the main problems with centralized services which lead people to look for an alternative) is Discovery.

Etsy and Twitch and YouTube provide an audience, supposedly. With the right pitch (and the right advertising dollars) you can get your own slice of that audience. (For as long as the algorithm graces you, and as long as you're willing to stomach the other things your viewers will be algorithmically suggested.)

alcinnz,
@alcinnz@floss.social avatar

@ajroach42 As best as I can tell from existing examples: Community groups! Letting their best work spread beyond their community.

Still there's the problem of finding these communities, & today that tends to happen on these centralized services...

alcinnz, to random
@alcinnz@floss.social avatar

To load additional code into kernel-space, you can use various commandline tools which call the appropriate syscalls & device files. With the kmod command dispatching to the appropriate subcommand.

After parsing commandline flags insmod converts remaining arguments into a multi-string, & constructs a Module object to (with preprocessing) call the init_module syscall.

There's someadditional logging infrastructure, which might write to Syslog.

1/3?

alcinnz,
@alcinnz@floss.social avatar

After validating no further args are given lsmod parses each line of /proc/modules (via LibKMod) & iterates over the linkedlist to serialize textual output. Any benefit here beyond cat /proc/modules?

After parsing commandline flags (filling in missing args with uname) depmod constructs some directory paths to consult, validates a dependency files/directory, initializes various objects, iterates over a given file (one format or another) gathering symbols to link into a hashmap, ...
2/4

alcinnz,
@alcinnz@floss.social avatar

... loads all the config files & a directory of modules OR loads the modules listed in commandline args, converts the modules hashmap into an array, parses a modules.order file consulting the hashmap, computes a topological sort of dependencies from the gathered collections, & outputs the results in a choice of format.

After parsing flags filling in missing onesmodinfo builds a KMod context & iterates over remaining args (which it validates exist) loading their modules in 1 of 3 ways.

3/4?

alcinnz,
@alcinnz@floss.social avatar

For each of those modinfos modinfo serializes various info LibKMod has parsed from device files.

After parsing commandline flags modprobe initializes logging, fills in missing parameters, initializes a LibKMod context having it parse its "resources", & runs a chosen subsubcommand.

These subcommands may output various properties of the LibKMod context, output loaded version numbers, output a module's symbols, or hand off to rmmod or insmod.

4/5?

alcinnz,
@alcinnz@floss.social avatar

After parsing commandline flags rmmod initializes a LibKMod context & iterates over remaining commandline args (validating they exist) leading each given module in 1 of 2 ways. Calling the delete_module syscall on each via a light LibKMod wrapper.

After parsing commandline flags static-nodes opens modules.devname device file directly & an output file, to parse the modules.devname to reformat into a chosen format.

5/5 Fin for today! Tomorrow: Kernel-side!

alcinnz, to random
@alcinnz@floss.social avatar

Detect JavaScript Support - Robin Rendle "The Cascade":
https://www.csscade.com/detect-javascript-support

Detect JavaScript Support in CSS - Ryan Mulligan:
https://ryanmulligan.dev/blog/detect-js-support-in-css/

alcinnz, to random
@alcinnz@floss.social avatar

Alternatives to Open Source - Simon Safar:
https://simonsafar.com/2024/source_available/

alcinnz, to random
@alcinnz@floss.social avatar

The CPU That Will Never Die - Matt Lee @ Tedium:
https://feed.tedium.co/link/15204/16679426/zilog-z80-history

alcinnz, to random
@alcinnz@floss.social avatar

Unleash the power of scroll-driven animations - The Cascade:
https://www.csscade.com/unleash-the-power-of-scroll-driven-animations

Scroll-driven Animations - Bramus Van Damme:
https://scroll-driven-animations.style/

Introduction | Unleash the power of Scroll-Driven Animations (1/10) - Chrome for Developers:
https://invidious.protokolla.fi/watch?v=5noL_qFobm0 (YouTube via Invidious)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • Leos
  • khanakhh
  • magazineikmin
  • Durango
  • thenastyranch
  • Youngstown
  • slotface
  • InstantRegret
  • tacticalgear
  • ngwrru68w68
  • rosin
  • kavyap
  • tsrsr
  • DreamBathrooms
  • tester
  • hgfsjryuu7
  • everett
  • osvaldo12
  • mdbf
  • modclub
  • cisconetworking
  • PowerRangers
  • GTA5RPClips
  • vwfavf
  • ethstaker
  • normalnudes
  • cubers
  • anitta
  • All magazines