@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

When you sudo a command, there's multiple privileges you might be requesting. To minimize your need to switch to an all-powerful account Linux supports granting these constituent privileges (or "capabilities") to other accounts. LibCap conveniently this functionality to userspace. Including providing a Go module I'll describe today.

This Go module incluldes a validator for a ProcAttr's system & for juggling mutexes, at it's simplest.

1/?

alcinnz,
@alcinnz@floss.social avatar

There's an enum of the different privileges which may be claimed, extensively documented.

There's a parser & (via histograms) serializer describing privileges textually.

There's a bitmask submodule.

It wraps a system-call library & the previously-mentioned mutex juggling submodule to expose various systemcalls.

There's a testsuite.

There's a binary parser & serializer from/to a given file. Or a file's attributes.

2/3

alcinnz,
@alcinnz@floss.social avatar

LibCap for Go also defines a launcher object which performs a blocking fork&exec.

There's another textual parser & serializer; tracking the inheritable, ambient, & bound privileges under a mutex. With corresponding binary ones.

And finally there's more functions exposing syscalls, accessor those privilege components to/from kernel-space, with corresponding datastructures.

3/3 Fin for today!

tl;dr binary & textual serializers around bitmasks & privileges accessor syscalls.

alcinnz, to random
@alcinnz@floss.social avatar

The Group Decode ROM: The 8086 processor's first step of instruction decoding - Ken Shirriff: http://www.righto.com/2023/05/8086-processor-group-decode-rom.html

alcinnz, to random
@alcinnz@floss.social avatar

I enjoyed watching this talk after yesterday's work on Mondrian: https://invidious.privacydev.net/watch?v=HmStJQzclHc

alcinnz, to random
@alcinnz@floss.social avatar

I've read W3C's CSS Colour specification now. And I've done some research regarding Haskell modules I can trust to get this right.

I don't see an implementation of the HWB colourspace (It'd be good if Colour could handle this, but I'm not clear how to contribute). As for the CIE colourspace there's another module which can handle it "Prizm": https://hackage.haskell.org/package/prizm

So I will support that once I add some more Haskell Stylist infrastructure!

alcinnz,
@alcinnz@floss.social avatar

@nedfed Haven't heard of one, sorry. Then again I haven't looked into it.

alcinnz, to random
@alcinnz@floss.social avatar

How I implement HTML: I parse it as an XML variant & apply CSS stylesheets! I avoid treating any HTML element specially, I barely the raw HTML! If it's not to determine which CSS to apply, that is.

The CSS I apply may be different for different mediums. But the styletree holds all the details I care about for rendering & typically interactivity.

(Rhapsode however extracts a links sidetable from the HTML)

alcinnz, to random
@alcinnz@floss.social avatar

How implement HTML: I parse it as an XML variant & apply CSS stylesheets! I avoid treating any HTML element specially, I barely the raw HTML! If it's not to determine which CSS to apply, that is.

The CSS I apply may be different for different mediums. But the styletree holds all the details I care about for rendering & typically interactivity.

(Rhapsode however extracts a links sidetable from the HTML)

alcinnz, to random
@alcinnz@floss.social avatar

Type42 is a PostScript font format, which FreeType supports.

Alongside the methodtable is defined a number of accessors & a couple array lookups.

Another file defines GlyphSlot (wrapping load_glyph method), sizes (wrapping generic FreeType infrastructure), the "driver" itself, & faces (initializer calls open method itself wrapping dict parsing). These are exposed to the rest of FreeType in that methodtable.

1/2

alcinnz,
@alcinnz@floss.social avatar

Finally another file defines "loader" & "parser" classes & implements a manually-written (apart from some struct-parsing macros) pushdown automaton binary parser, wrapping PSAux & Type1 subsystems.

1.1/1.1 Fin!

I'll take a break from the fediverse tomorrow. then I'll study LibCap!

I'll wrap up FreeType with Windows fonts then start skimming the rest of Apache Solr in place of revisiting GCC (took forever last time), & then start LibICU.

XMPP/email servers or map/PDF/Flash renderers next?

gabek, to random

It seems like when people talk about open source and free software it’s always framed in the context that it’s used exclusively by big businesses. There’s never any discussion about building things for individuals and small groups.

I was just listening to the @changelog podcast about funding open source, and it entirely focused the solution to funding open source around getting the huge corporation you work for to donate thousands of dollars per employee every year to your corporate focused open source projects.

How does this encourage anybody to build things for the individual who can’t write that kind of check? Is the implied message that if your software isn’t useful for big corporations it shouldn’t exist because it’ll never be able to raise enough money to be sustainable?

We need serious open source projects built for the individual and small orgs if we’re going to take on Big Tech. We need to empower people. We need valid options. Otherwise we already lost if the only open source that matters is what is going to service large corporations.

I, clearly, don’t have the solution to how to fund these types of projects at scale. But let’s stop pretending they don’t exist and let’s begin to expand the conversation.

alcinnz,
@alcinnz@floss.social avatar

@gabek Yes please!
@changelog

alcinnz, to random
@alcinnz@floss.social avatar

Implement DNS in a Weekend - Julia Evans: https://implement-dns.wizardzines.com/index.html
Simon Willison's endorsement: https://simonwillison.net/2023/May/12/implement-dns-in-a-weekend/
Introducing "Implement DNS in a Weekend" - Julia Evans: https://jvns.ca/blog/2023/05/12/introducing-implement-dns-in-a-weekend/

alcinnz, to random
@alcinnz@floss.social avatar

Additions to my book, The Intelligence Illusion - Baldur Bjarnason: https://www.baldurbjarnason.com/2023/additions-to-the-intelligence-illusion/

alcinnz, to random
@alcinnz@floss.social avatar

Shoelace - Go Make Things: https://gomakethings.com/shoelace/

Official site: https://shoelace.style/

Might be worth keeping an eye on this for potential HTML enhancements...

alcinnz, to random
@alcinnz@floss.social avatar

‘What next?’ he asks with trepidation - Baldur Bjarnason: https://www.baldurbjarnason.com/2023/what-next-he-asks/

yatil, to accessibility
@yatil@yatil.social avatar
alcinnz,
@alcinnz@floss.social avatar

@yatil What can we do to ?

nedfed, to random en-gb

@alcinnz have you worked with GNOME Maps?

alcinnz,
@alcinnz@floss.social avatar

@nedfed I've got my eyes on it, but no.

alcinnz,
@alcinnz@floss.social avatar

@nedfed I've got my eyes on it, but no.

I have however worked with the Open Geospatial Consertium, and would like to see more of it's standards supported GNOME Maps' backend than last I checked!

alcinnz, to random
@alcinnz@floss.social avatar

Since I just boosted a View Transitions demo: FYI, I'm seriously considering implementing it.

But first I'd have to implement animations (I'm considering calling that module "Fleischer"), & it's not a priority.

Also animation tends to trigger bike-shed discussions...

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

I've added all the CSS colour keywords have been implemented!

Including a memorial to a brain-cancer victim. Nice gesture of the CSSWG to a colleague's daughter.

alcinnz,
@alcinnz@floss.social avatar

Now I've added support for transparent, currentcolor, & hsl().

Wow, Haskell's starting to tell me that I'm pattern matching too much... Nonsense!!

I won't support hwb(), unless someone would like to contribute that to https://hackage.haskell.org/package/colour ?

It's looking like I'd want to release another Haskell Stylist update already so I have the infrastructure to prioritize resolving the color property. I think I'll do this next before investigating whether I'll support CIE colours?

alcinnz, to random
@alcinnz@floss.social avatar

Code to parse CSS hexcode colours has been written! It compiles.

Next to handle the colour keywords. The "Colour" will help me some!

I'm thinking I won't bother support the "system colours", which selects configurable colours based on the UI role they fill. Does anyone actually want this feature?

alcinnz, to random
@alcinnz@floss.social avatar

The way I'll tackle webforms in my browserengines is to move them out-of-line from the embedding pages.

So I can render them however I find best for the device and/or OS without webdevs complaining about clashing designs! Because I like constraining myself UX-wise.

Also it simplifies the implementation. Webpage event-handling down to link selection, whilst aiding webforms to reuse native UI libraries who got accessibility right!

chriscoyier, to random
@chriscoyier@front-end.social avatar

LOOK. This is just a regular ol' website. No JavaScript whatsoever. Navigation pages with clicks <a> links to other HTML pages. The most basic website in the world. Yet, with a few lines of code to activate View Transitions, KAPOW.

video/mp4

alcinnz,
@alcinnz@floss.social avatar

@chriscoyier Degrades very gracefully too!

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