@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

Studying Shadow's commandline tools...

After initializing LibShadow, internationalization, & auditting lastlog parses/validates commandline flags ensuring no args remain, opens /var/log/lastlog retrieving its filesize, either updates or prints to it, & closes it. Updating involves between validation & flushing querying password entries to update. For each relevant entry it seeks to that offset in the lastlog & writes a binary structure with audit logging. Printing gathers more info.

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Should only be a couple days left in studying Shadow's commandline tooling...

After initializing LibShadow, internationalization, logging, & exit handlers whilst parsing a few commandline flags (handling -R & -P specially) validating that 1 arg remain groupdel may (if ACCT_TOOLS_SETUID & USE_PAM are setattempts to authenticate via PAM logging any errors. If theSHADOWGRP` buildflag is set it validates that file's presence. It looks up the group ID for given arg reporting errors.

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Surveillance advertising has lots of overhead.

There's extra clientside processing gathering data (this bit has been measured).
There's extra networking downloading those javascripts & uploading their data.
There's extra serverside processing deciding which ads to show you.
The ads need to be downloaded (which gets more expensive as they get more "engaging").
Increasingly there's the time waiting to be able to dismiss the ad.

All there solely to get you to buy more stuff! Unacceptable!

1/2

alcinnz, to random
@alcinnz@floss.social avatar

I'm not part of this Web Engines Hackfest I've been hearing about, but if you wish to contribute to my or create your own browserengine please tell me!

I'm also keen to hear such interests at other times, but it seems especially relevant now.

alcinnz, to random
@alcinnz@floss.social avatar

End-user Programming - Szymon Kaliski, Adam Wiggins, & James Lindenbaum @ Ink&Switch: https://www.inkandswitch.com/end-user-programming/

alcinnz, to random
@alcinnz@floss.social avatar

Today I'll study some of the commands The PSMisc project provides.

After initializing internationalization & parsing a couple commandline flags validating more args remain prtstat checks that /proc/self/stat exists, retrieves sysconf(_SC_CLK_TCK), & iterates over those commandline args parsing them as ints. For each it opens the stat file for that process ID pasing it using sscanf & printing it nicely in one of 2 formats before freeing memory.

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Hopefully finishing my studies of Shadow's accounts/authorization commands today...

After initializing LibShadow, internationalization chgpasswd parsing commandline flags (handling -R special), opens log, checks privs with PAM if suppored, checks shadow-group file's presence if it's buildflag's set, opens relevant files under lock reporting errors, & reads each line of stdin before reporting errors & cleaning up.

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Diffing can be incredibly helpful for managing software! It can be used to retrofit CRDT support, monitor changes being made, guide how the software should be adjusted to match desired output(s), etc. Maybe for our Output Unit we'll have tool which autoruns & diffs a converter to guide its development, maybe adding automation where we find it worth the effort?

So how'd we implementing diffing on our string-centric hardware? Strings specifically? Its not trivial!

1/5?

alcinnz, to random
@alcinnz@floss.social avatar

In compiling software graphs come up all the time!

For our hypothetical string-centric hardware we may want to view parsing code at different levels of compilation! Or how about editing any parsing code visually (requires a bit more tooling...)?

Furthermore we may want to get a highlevel view of how all the components hook together! Or to debug the implied control flow in the Layout Coprocessor!

Maybe it'd even be useful for disassembling Arithmetic Core code...

1/5?

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

I believe that the web is best suited to publishing information/entertainment/etc, whereas native platforms are best suited for heavily-used interactive tools! Like editors! Ofcourse these are 2 ends of a spectrum, & as such no project fully rests on either extreme.

But this is what the visual affordances & underlying languages of these platforms favour. So choosing the appropriate platform for your project will help its longevity!

Not that the tech industry cares about longevity...

@vertigo

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

With summarization being arguably the most valuable thing out of these Large Language Models, I wonder: Has anyone tackled a more elegant solution involving less training data? How would you do that?

alcinnz, to random
@alcinnz@floss.social avatar

As it turns out our hypothetical hardware-browser is pretty much already an IDE! Including multiple tabs/windows, text editing (with zero-overhead syntax highlighting!), & a file browser possibly-rendered in a sidebar. All we need to add is alternate viewers/tools for the opened file!

We may even have the syntax highlighters gather symboltables to add helpful links, tooltips, & autocompletions! Maybe even render it as a table-of-contents, & highlight other uses of the selected name!

1/5?

alcinnz, to random
@alcinnz@floss.social avatar

Having described the main processor I'd implement a browser engine & its underlying OS upon, what other hardware might I include for an auditory browser?

The output would predominantly be audio, with a headphone jack. I may or may not include a Signal Processor to take some live load off the main processor. A buzzer could be useful for communicating notifications & security info, but I won't explore it further.

A microphone (via headphone jack when available) would be the primary input.

1/4?

alcinnz, to random
@alcinnz@floss.social avatar

This Web Environment Integrity proposal...

I disapprove of all their usecases, but the thing that most strikes me is that the clumsy way they phrased advertisers need to know they're being viewed by real humans as being in users' interest directly echoes what I hate about my industry!

"Users like visiting websites that are expensive to create and maintain, but they often want or need to do it without paying directly. These websites fund themselves with advertising..."

https://github.com/RupertBenWiser/Web-Environment-Integrity/blob/main/explainer.md

alcinnz, to random
@alcinnz@floss.social avatar

Computers rarely generate audio from scratch (less so when porting eSpeak to our hypothetical hardware), typically anything your hear from them are pre- & post-processed recordings. For which we need standardized fileformats.

A common format for earcons & SFX is WAV. After a header with structural & provenance metadata (encoded in a hierarchy of tagged/size "chunks") these store raw audio samples.

WAV can store compressed audio, but that hasn't been coherently designed. Rarely supported.

1/?

alcinnz, to random
@alcinnz@floss.social avatar

I'll study the next chunk of LibICU in more detial today...

But to get some simpler things out of the way:

  • There's macros optionally wrapping <assert.h>, or becoming noops, based on buildflags.
  • There's more (compressed) lookuptries, with wrapper functions, regarding bidirectional text behaviour. Including diff-compressed mirroring.
  • Alongside those an iteration of text classifying all the characters into spans.
  • Sorting algorithms.

1/?

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

Developer's PSA: The way you & your culture do things isn't the way everyone does things! Be wary of cultural constructs, no matter how basic they may seem!

Time & dates. Text. Punctuation. Names. Addresses. Iconography.

What else am I forgetting?

P.S. This is also a politics PSA. Very topical to NZ right now!

alcinnz, to random
@alcinnz@floss.social avatar

Yesterday I cited the derivatives of cos(0) as 0, 1, 0, -1, 0, ... from which I computed it's Taylor Series. Where do those derivatives come from?

To answer that question we'll need to go the fundamentals of Calculus your quickly might have glossed in favor of rote memorization. To express the paradoxical concept of an instant mathematicians use the formula df(x)/dx = lim [d->0] ((f(x + d) - f(x))/d). That what does the slope of the graph approach as we decrease the range we sample?

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Perhaps the most complex task a visual browser has to perform (certainly the one which is taking the most effort from me) is deciding where to place everything onscreen! In my hypothetical hardware-browser I designed a domain-specific programming language to simplify this.

Where we specify formulas to convert the CSS units, keywords, etc into drawing operations for the Compositing Co-Processor (aka Display List Rasterizer) I described. A topological sort & implicit loops would help a lot!

1/?

alcinnz, to random
@alcinnz@floss.social avatar

A large portion of LibICU are various lookuptables with more-or-less sophisticated wrapper functions some of which may support parsers & serializers, including (but not limited to) ones for:

  • Character properties
  • Function names for debugging
  • Dynamically-merged ones for conversion between text encodings
  • Character class names
  • Character property names
  • "commondata"
  • Case mapping
  • Bidi properties, as diff-compressed tries
  • Common charactersets
    ...

1/?

alcinnz, to random
@alcinnz@floss.social avatar

It's my Birthday today, September 12th! 29 today.

alcinnz, to random
@alcinnz@floss.social avatar

The New CSS - Matthias Ott: https://matthiasott.com/notes/the-new-css

I really like the new features which have & are coming to CSS, they really fit the language's ideology whilst making it more expressive! For the most part they're very easy to add support for, the exceptions there can't be helped more than the specs have already.

alcinnz, to random
@alcinnz@floss.social avatar

Text is a dominant component of I/O in computing, for which internationalization is especially vital.

Early home computers had hardware for rendering English (or maybe other languages), & before then we hooked up typewriters to computers. But today all this rendering has been moved to software vastly improving inclusivity.

I've been studying GNOME's rendering stack for quite a while now, but today I'll summarise which components are often involved on freedesktops.

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Branching is a core construct in computing: We want different outputs for different inputs! But the SIMT architecture GPUs use makes branching more difficult: Every compute unit receives the same microcode.

The optimal solution is the ?: operator, so every compute unit is kept.

Failing that we could send the condition to all Compute Units as part of the microcode for them to evaluate against their boolean latches & decide whether to let the write through.

clamp() could use both!

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Finishing up my studies of Shadow's commandline tooling this morning...

After initializing LibShadow & internationalization userdel parses a few commandline args (handling -R & -P special) validating a single arg remains whilst opening logging, authorizes the action with PAM if supported, validates relevant files are present, runs a configurable pre-action script, reads specified password entry, takes into account the given prefix, configures TCB user if supported, ...

1/?

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