@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.

quinsibell, to linux
@quinsibell@sauropods.win avatar

I've been toying with the idea of switching to Linux for a while, and its just getting to that point now, you know? I hear Mint is the best for beginners?

alcinnz,
@alcinnz@floss.social avatar

@quinsibell I hear good things about Mint! Go for it!

(Personally my endorsement is elementary OS)

sarahjamielewis, to random
@sarahjamielewis@mastodon.social avatar

"Note that Recall does not perform content moderation. It will not hide information such as passwords or financial account numbers."

The computer, however, will stop you from recording DRM'd content.

Find it fascinating that when faced with drawing safety and security boundaries, the primary beneficiary is not the owner of the device, or the person using it, but random corporations who control the intellectual property rights.

The system doesn't work for you.

alcinnz,
@alcinnz@floss.social avatar

@sarahjamielewis We could certainly get a simpler & more capable solution to the problem Recall addresses with modern Computer Science by essentially reimplementing the entire OS to use CRDTs, but who's got the time for that?

The next best thing would be filesystems with efficient backups... Like BTRFS!

alcinnz, to random
@alcinnz@floss.social avatar

There's a widespread impression that "Linux" isn't user friendly. I say if you choose the right distro & desktop... I endorse elementary OS!

Despite what some will tell you, don't need to use the commandline!

(getting this out of my system without jumping down anyone's throats)

Incidentally, I encourage recommending something more specific than "Linux" to avoid giving others choice paralysis.

alcinnz, to random
@alcinnz@floss.social avatar

Upcoming topics:

Regarding the hypothetical string-centric hardware:

  1. More CRDTs! Including directories!
  2. Diffing text.
  3. Codeforge.
  4. Secure boot (addressing my qualms with the concept)

Regarding my Linux From Scratch schedule:

  1. Finish studying ELF Utils' commands.
  2. LibFFI
  3. Twisted Python networking framework (in place of revisiting Python)
  4. Flit-Core

Regarding "viewers" schedule:

  1. A couple more PDF tools
  2. Rust Flash reimplementation "Ruffle"
  3. LibShumate mapping
janriemer, (edited ) to microsoft

So here's the thing with 's new feature:
It's not about Microsoft now suddenly spying on you. They can probably already do that if they want in a much easier way without you knowing.

So please be more realistic!

The far more severe concern in the age of work is when person A shares their screen and person B having Recall enabled, thereby "recalling" the other person's screen without person A knowing.

So it is a privacy concern between people!

alcinnz,
@alcinnz@floss.social avatar

@faassen @janriemer Opt out, and only available on a specific laptop.

Terrible (yet, for Microsoft today, inevitable) idea, but the sky hasn't fallen just yet.

Now just hoping this AI bubble pops before Recall's shipped on more machines...

alcinnz, (edited ) to random
@alcinnz@floss.social avatar

To ensure this order independence, we must never incur a merge conflict! Instead we'd apply arbitrary yet deterministic priority based on peer IDs. With this peers can merge as frequently or infrequently as they like! Maybe we'd integrate this collaborative editing into the SRTP/XMPP videocalls I've established?

Our established text editor already logs a sequence of editing operations, which we can reformat into a text-CRDT by adding some provenance metadata.

2/3 for today!

alcinnz,
@alcinnz@floss.social avatar

Now that I've established the basics, we need to address performance issues!

First while writing could be as trivial as appending the edits, that would incur heavy overhead in reading the document in the correct order. However if we keep the document sorted in the correct order then writing to it will remain very efficient (akin to editing an ordinary plaintext file) whilst reading would become trivial!

Second we'd be storing a significant amount of data per byte of text!

3/4 for today!!

alcinnz,
@alcinnz@floss.social avatar

To compress a CRDT's provenance metadata away to practically nothing (following Ink & Switch's AutoMerge's lead, ideally we'd achieve compatibility with it!) arranging the data into columnar form reveals plenty of opportunities! Storing all values in one field across a bunch of edits, as opposed to storing an array of edits.

Depending on what works best for each column we could use run-length, diff, codebook, or Deflate compression. With variable-lengthed ints.

4/4.5 for today!!!

alcinnz, (edited )
@alcinnz@floss.social avatar

Stretching a bit beyond plaintext editing I've stated that I'd have devs highlight string literals (serialized in plaintext by surrounding 0 bytes) to denote them. However I'd represent them differently in a CRDT to ensure they get merged correctly. Designed a good CRDT is as much a UX exercise as it is a datamodelling one.

Instead I'd dangle begin/end "annotations" off the insert-character edits for toggling string literals on & off.

5/5 Fin for today! Tomorrow: Other CRDTs!

alcinnz, to random
@alcinnz@floss.social avatar

I've described enough tooling to make it easy to individually implement software for our string-centric hardware on the device, but building an entire browser & OS as a solo-endeavour is inconceivable... So what tooling do we need to collaborate on it!

In just the past decade Computer Science brought us the concept of CRDTs! Which represents your document as a series of edits, which combine such that no matter in which order these edits you recieved we get the same result!

1/?

alcinnz, to random
@alcinnz@floss.social avatar

ELF files can be queried from the commandline, so I'm starting studying thse tools!

After init'ing i18n & parsing commandline flags addr2line parses addresses from stdin or remaining commandline args. For each (if valid) it might parse trailing text, iterates over DWARF modules list is available to find the specified one, iterates over the module's ELF SCN headers to build a relocations table to locate given address & offset it. With possible postprocessing based on additional parsing.

1/?

alcinnz,
@alcinnz@floss.social avatar

Otherwise with some validation it binary searches the address in a DWARF lookuptable to retrieve the containing module, checks additional lookuptables including some tree traversals to find & output which function & sourcefile the address is in to output, similar for the symbol name & type amongst other things to display as the reader desires.

addr2line leans heavily on the DWARF format to supply these details! Which is is implemented as separate libraries in the same repo.

2/2 Fin today!

alcinnz, to random
@alcinnz@floss.social avatar

Blogroll Network Map - Robert Alexander:
https://alexsci.com/rss-blogroll-network/

Boosted by Jan-Lukas Else: https://jlelse.blog/links/2024/05/2024-05-21-xgout

alcinnz, to random
@alcinnz@floss.social avatar

Links and photos (20 May 2024) - Baldur Bjarnason:
https://www.baldurbjarnason.com/2024/links-17/

Some links from it...

Updating from macOS Ventura to Sonoma silently enables iCloud Keychain - Jeff Johnson:
https://lapcatsoftware.com/articles/2024/5/3.html

Google Cloud shows it can break things for lots of customers – not just one at a time - Simon Sharwood @ The Register:
https://www.theregister.com/2024/05/20/google_cloud_network_outage/

Complicated Sticks. - Stephen Farrugia:
https://fasterandworse.com/complicated-sticks/

alcinnz,
@alcinnz@floss.social avatar

Several more links from Bjarnason's linkdump...

Generative AI Is Totally Shameless. I Want to Be It - Paul Ford @ WIRED:
https://www.wired.com/story/generative-ai-totally-shameless/

The Future of 11ty (2024) - Zach Leatherman:
https://www.zachleat.com/web/11tyconf-keynote-2024/

Some of my Eleventy Filters - Chris Burnell:
https://chrisburnell.com/article/some-eleventy-filters/

Baseline progressive enhancement - Jermy Keith "adactio":
https://adactio.com/journal/21128
Yup, this is my gripe about Baseline!

The wrong way to do Web Components - Go Make Things:
https://gomakethings.com/the-wrong-way-to-do-web-components/

alcinnz,
@alcinnz@floss.social avatar

Last several links from Bjarnason's dump...

‘Magical thinking’: hopes for sustainable jet fuel not realistic, report finds - Oliver Milman @ The Guardian:
https://www.theguardian.com/environment/article/2024/may/14/sustainable-jet-fuel-report?CMP=Share_iOSApp_Other

The four causes of writer’s block and what to do about them - Suw Charman-Anderson "Chocolate & Vodka":
https://chocolateandvodka.com/2024/05/15/the-four-causes-of-writers-block-and-what-to-do-about-them/

The New Golden Age of Black and White Photography - Christopher J Feola @ Entax Forums:
https://www.pentaxforums.com/articles/photography/new-golden-age-bw-photography.html

So top-of-thread link for more links & commentary!

baldur, to random
@baldur@toot.cafe avatar

We really don’t make enough of the fact that you don’t need JS to make a nice website. Just HTML and CSS

And, whatever most programmers say about them, HTML and CSS are absolutely much more accessible to learn than JS ever has been or will be

alcinnz,
@alcinnz@floss.social avatar

@baldur Its worth emphasizing: These skills don't goes out-of-date! Browserdevs go out of our way to ensure the pages you've written yesterdecade still work!

New optional features have been added, & best practices have solidified since the 1990s... But still!

Having to periodically rewrite outdated code is something webdevs bring upon themselves! Having to keep ontop of the latest frameworks is something webdevs bring upon themselves!

alcinnz,
@alcinnz@floss.social avatar

@teleclimber @baldur Oh yes, the cases where skills become outdated because we have better tools now!

alcinnz, to random
@alcinnz@floss.social avatar

Tangentially to current events...

Who's your favorite AI from fiction?

I say HERA (Michaela Swee) from Wolf359 in a heartbeat! You?

Go as obscure or mainstream as you want...

alcinnz, to random
@alcinnz@floss.social avatar

Code isn't the only thing which would be included in an the OS for our hardware-Internet Communicator! It'll need images, fonts, audio, voices, etc to communicate with you! Can we self-host much of this development too?

Up to a few thousand pixels, we could have a UI for setting the colour at any given pixel of an image (stored in Arithmetic Core) displayed onscreen. Probably worth sacrificing colour-depth for resolution. Include flood-fill!

1/3?

alcinnz,
@alcinnz@floss.social avatar

If we need a larger canvas, we could lean on the Compositor Coprocessor to blend in brush-strokes simulated from the full detail of (if we have it) the signal-processed & smoothed touchscreen input. Akin to Krita. We'd probably add a sidebar form to tweak this brush.

Or we might want to save input from the camera to edit! Likewise for the microphone, producing audio data.

In all these cases we'd want to compress this sheer quantity of data. And postprocess it!

2/3?

alcinnz,
@alcinnz@floss.social avatar

Since I've established a couple graph viewers, we could use those to compose all the various "transcoding" (defined generously!) tools to tweak data however you want it. This could save as code for the Output Unit, whilst (with relatively little extra effort) providing a convenient tool to refine recorded images, audio, video, etc! Add a gesture to view results at any stage in the pipeline.

Maybe we'd add a few tools to use with it, as desired!

As for rendering text...

3/4!

alcinnz,
@alcinnz@floss.social avatar

There'd be some Microsoft fonts we'd be practically expected to ship (non-commercial licensed). As for self-hosting the development of our own...

I'd need to render a menu of glyphs (labeling it before we have a font would be interesting... though we'd probably use Times or something), & overlay some draggable sprites upon the vector outline when editing an individual glyph.

Another editor could be used for the BIOS's font, based on the bitmap editor. Nudging towards compressibility!

4/4.5!

alcinnz,
@alcinnz@floss.social avatar

As for auditory fonts... I've stated that I'd include a joystick in that form-factor. We could use it to select a parameter (in the Arithmetic Core) to nudge up & down as the voice reads out some text.

Or we could ship eSpeak's, since we'd be shipping their pronunciation rules! These could be edited as text.

For further creative tools... Maybe another metathread? This should be enough to self-host development of the OS.

5/5 Fin! Tomorrow: Collaborative editing!

alcinnz, to random
@alcinnz@floss.social avatar

Unless your programs are truly trivial (and even then you'd want to call OS "libraries" for I/O) they are constructed from multiple parts each compiled separately, so we need tooling & formats to "link" these parts together into a singular whole. The other day I explored how Linux does this as it is running, today I'll be exploring the official implementation of the ELF file format.

Aside from trivial accessors, memory-mapping, hashing, & wrappers LibELF (from ELF-Tools) includes...

1/?

alcinnz,
@alcinnz@floss.social avatar
  • Initialize a new P header.

  • Some bitwidth-appropriate table lookups calls the looked up method.

  • Initialize & free an ELF file.

  • ZLib compression & decompression.

  • Lookup "AR" symbol.

  • Checksums.

  • Writing to an, ideally, mmap'ed file.

  • Compute a default E header.

But mostly it defines C datastructures defining the ELF format.

5.5/5.5 Fin! Tomorrow: ELF commands!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • DreamBathrooms
  • modclub
  • tacticalgear
  • GTA5RPClips
  • magazineikmin
  • thenastyranch
  • Youngstown
  • InstantRegret
  • rosin
  • slotface
  • everett
  • kavyap
  • provamag3
  • cubers
  • ngwrru68w68
  • normalnudes
  • cisconetworking
  • Durango
  • khanakhh
  • Leos
  • ethstaker
  • tester
  • anitta
  • osvaldo12
  • megavids
  • lostlight
  • All magazines