@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

3D Gaussian Splatting - Why Graphics Will Never Be The Same - IndividualKex: https://yt.drgnz.club/watch?v=HVv_IQKlafQ (YouTube via Invidious)

Reshared by Simon Willison: https://simonwillison.net/2023/Dec/9/3d-gaussian-splatting/

HackerNews: https://news.ycombinator.com/item?id=38576974#38578059

I'm excited to see what people do with this!

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

Yesterday I finished describing how I'd handle internationalized text layout on some hypothetical browser & its underlying OS upon.

Questions: Are you enjoying this hypothetical as much as I am?
Should I continue? This could be a good stopping point.
If so, which topics should I tackle? Sound off in replies! I'm willing to broaden scope.

If you want me to continue, I'll add webfeed to help you follow my future writing!

alcinnz, to random
@alcinnz@floss.social avatar

ICMP is a protocol for network debugging, so today I'm studying Linux's kernel-space implementation!

Its full methodtable includes both initializers & finalizers with group-allocation. Berkely Packet Filter pre-checks.

Establishing a connections involves little more than for IP. Disconnection is as per UDP. ICMP has none of its own options to expose accessors for, only IP's.

ICMP headers are uilt in userspace, with extensive kernel-space code connecting to sockets with various checks.

1/2!

alcinnz, to random
@alcinnz@floss.social avatar

Having discussed how to decode FLAC files, today I'll explore how to encode them! Using the reference implementation! This is more involved, there's decisions for the computer to make... Thus require a lot more properties in the "encoder" class... And more hardware-acceleration...

The entrypoints are the FLAC__stream_encoder_process[_interleaved] method, wrapping a verification-ringbuffer, copying data into buffers, & for each "block" of a configurable size...

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Degrowth to me doesn't mean a lowering of living standards, it means questioning whether GDP correlates to living quality.

It means improving technology to consume less. Certainly the profit motive is actively harming the software industry, in my experience!

Tomorrow I'll see if the podcast episode I'm looking at comes to this conclusion... But I don't like the framing of its description!

alcinnz, to random
@alcinnz@floss.social avatar

The Vorbis codecs include not only a decoder & encoder but also a parser & tagger, akin to the options for FLAC. And there's additional support routines for building the GStreamer types.

3.1/3.1 Fin for today! Tomorrow: LibFLAC, followed by other reference implementations of these audio formats!

P.S. Ooo baby, I found the code for the "shagadellic" videofilter I mentioned the other day! Groovy! There's a lot of these plugins!

alcinnz, to random
@alcinnz@floss.social avatar

What punch cards teach us about AI risk - B. Cantrill "The Observation Desk": https://bcantrill.dtrace.org/2023/11/26/what-punch-cards-teach-us-about-ai-risk/

alcinnz, to random
@alcinnz@floss.social avatar

Proposal: an HTML element for spoilers - @Seirdy : https://seirdy.one/posts/2023/11/12/spoiler-element/

@alilly 's response: https://www.alm.website/blog/2023-11-12-note-1

While I'd have no trouble adding support in Haphaestus, for Rhapsode's sake I back a request for a "topics" (or whatever you want to name it) attribute. As I've stated before both publicly & privately.

My issue is that in Rhapsode's UX any interactive control needs a textual label to be triggerable.

alcinnz, to random
@alcinnz@floss.social avatar

In Unicode certain codepoints annotate the following character (akin to a "deadkey" on a typewriter, though decoupling digital from visual representations...), runs of those with the following character they apply to are called "graphemes". This introduces several nuances which need to be handled by a text renderer! Like the one for our hypothetical hardware-browser.

What if there isn't a valid character for those annotations to apply to? We may to insert dotted-circles.

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Hangul is a Korean writing system engineered in 1443 under commission from King Sejong the Great to increase literacy rates. It is the dominant means of writing Korean today, with that engineering making it an interesting one to study. If you speak this language, please correct any of my inevitable misunderstandings!

Each hangul consists of 3 parts: 2 vowels & 1 consonant positioned in a certain way.

I've seen elegant Hangul digital text-encodings, but that's not Unicode.

1/2?

alcinnz, to random
@alcinnz@floss.social avatar

Happy New Year! I hope 2024 brings more independant browser-engines, including my own Haphaestus!

That should be a perfectly reasonable goal...

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

Reading over more of Linux's TCP implementation, that secondary methodtable predominantly trivially-defers to the first one (or accesses its properties) with some locking & additional checks. Including configurable Berkely Packet Filters. Which, if you're following along, means there's now 2 layers of that!

socketpair() is unsupported here. getname() is an accessor for the IP/port we've connected to. ioctl()s may be dispatched to other components as well, very relevant to INetUtils!

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Plastic Waste in the Fuel Tank? - Low Tech Magazine: https://solar.lowtechmagazine.com/2023/11/plastic-waste-in-the-fuel-tank/

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

O.K., it seems like there's decent interest in my continue my hardware-browser hypothetical.

Follow-up question: In which direction should I take it? Multi-choice!

Feel free to expand or suggest more in replies!

alcinnz,
@alcinnz@floss.social avatar

I could probably write a meta-thread just on text editing! And if votes stay roughly as they are I might follow this up by discussing editing AutoMerge (CRDTs), HTML, CSS, & anything else requested of me.

Or exploring other network protocols is just-now catching up to that 2nd-place choice, so NTP? DHCP? XMPP? SMTP? I'd be discussing notifications & contacts as part of this...

I may focus on keyboard/mouse (desktop/laptop) interactivity with remarks made to other options.

Thoughts?

2/2 Fin!

alcinnz,
@alcinnz@floss.social avatar

These polls seem to have stabalized, but you still have until Christmas to vote.

So if votes stay roughly as they are, here's what I'm thinking...

There's strong interest in my continuing describing how HTML/CSS rendering works. I don't know how much more there is for me to explore, but the 2nd poll helps. Even if you all appear a bit indecisive there! With a slight keyboard/mouse preference.

So I think I'll finish off by describing borders, backgrounds, scrolling, & forms.

1/2

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

Seeing the direction that poll for general topics to discuss is going... A slightly more specific poll to guide how I'll cover them!

What input devices are you interested in me exploring? Multichoice.

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

So its Cyber Monday?

How about buying digital work online, as opposed getting something physical that's energy-intensive to manufacture?
Computers were meant to dematerialize society, so let them!

A few things off the top of my head:

@baldur has some good ebooks: https://www.baldurbjarnason.com/bundle/2023/

Or there's World Wide Waste by @gerrymcgovern : https://gerrymcgovern.com/books/world-wide-waste/

I enjoy Lackadaisy: https://iron-circus.itch.io/lackadaisy
Or Magus Elgar: https://maguselgar.bandcamp.com/album/magus-elgar-season-one-fancy-edition

And so, so, SO much more!

alcinnz, to random
@alcinnz@floss.social avatar

Things that could help me get around to building a desktop browser engine:

  1. Contribute GTK4 accessibility to LibVTE for me to emulate, we should have that anyways!

  2. Anyone know of a GTK or Qt widget for LibPoppler? Searches are giving me demo code.

  3. Render forms to GTK or Qt widgets, to be incorporated into those desktop browser engines.

  4. Contribute support for OGC's WMS or WMTS protocols into LibShumate.

1/1.5!

alcinnz, to random
@alcinnz@floss.social avatar

Having boosted something yesterday I somewhat regret now...

While I certainly get the impression that Mozilla could be better managed, given the status quo I doubt anyone could manage them well.

Browsers as we conceptualize them today are expensive, yet no one will pay for them. Reform is badly needed, but Mozilla can't & shouldn't deliver that!

Reading the reporting I don't see any threat to Firefox stopping. Just Mozilla's acknowledging its not profitable & must be subsidized.

alcinnz, to random
@alcinnz@floss.social avatar

To separate specified adjacent elements, CSS allows you to add borders. These are rendered as trapezoids (alter x/width every scanline of the sprite every scanline) between the computed "border" & "padding" boxes. Filled with a specified border-*-color, possibly (rarely in practice) masked or brightness-tweaked by a trivial formula chosen by border-*-style.

Image borders are something different (akin to clipped backgrounds) drawn in the same spot.

Outlines are basically a 2nd border.

1/5?

alcinnz,
@alcinnz@floss.social avatar

Rounded boxes add a Pythagorean-distance calculation for the Compositor to clip & tweak the border.

What other CSS properties impact rendering?

opacity tweaks the alpha channel of after compositing together the descentdent elements (doing it before can lead to visual glitches, especially regarding cursive fonts), but we can avoid a need for prerendering if the Control Unit can group sprites!

overflow: clip tweaks descendent bboxes & filters them, should be trivial if not for...

2/4

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

I think elementary's facing an interesting challenge. Call it "stagnation" if you want, I prefer the term "stability".

They've built a UX they're happy with, and has been transitioning from development to maintenance of a necessarily-complex project (though they've done a great job keeping it simple!). The challenge is that our industry generally doesn't value maintenance, whether in terms of money or volunteer effort.

So I'm very keen to see how well they manage to handle this!

1/2

alcinnz,
@alcinnz@floss.social avatar

I've seen "rewrite it in Rust" being suggested as a fix, but while its not a terrible idea... it'd be a mere band aid. The problem would resurface sooner or later.

Maybe that's why there's so much turmoil in our industry? We don't know how to fund ourselves otherwise?

2/2!

alcinnz, to random
@alcinnz@floss.social avatar

GStreamer is an in-process push/pull pipeline framework for media processing, recording, & playback! Even including (or included?) a groovy Austin Powers filter!

GStreamer organizes its codecs into "base" (covers featureset even if not practically-all formats), "good" (well-maintained & legal), "bad" (potentially buggy), & "ugly" (legally-questionable, shrinking). It kind of makes sense that a video player would make movie references...

Xiph designs royalty free media formats.

1/?

alcinnz,
@alcinnz@floss.social avatar

To write Ogg files from multiple input streams, there's a "demux" codec!

This repeatedly reads a packet (push or pull) from one of its upstreams to add the appropriate Ogg headers on (no support library needed here!) using some state tracking. In a pull pipeline. Whilst adding Fishbone metadata.

There's also a simplified demuxer which has a single downstream output, split into pages. Also lacks seeking.

There's support funcs for data-conversion, & calling special methods on inner codecs.

4/5

alcinnz,
@alcinnz@floss.social avatar

That support source-file also includes further routines for sniffing Xiph's media (not just Dirac & Vorbis as mentioned earlier) formats to convert into those into the GStreamer's standard encoding-negotiation formats, with the help of a lookuptable. In some cases this allows us to use generic decoders! Or to source an index to consult!

And there's a "OGM" codecs for audio, video, & text which performs minor tweaks to the stream before deferring elsewhere.

5/5 Fin today! Tomorrow: LibOgg!

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