@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

Some notes on my language:

  1. I do use jargon to aid with clarity & concision. In my blogposts I make an effort to add links to any jargon I write, & feel free to ask for definitions. Also, jargon helps me gloss over all the parsers I see in my studies.

  2. When I use the term "edgecase" that's me asking the question "How do I handle it when these 2 things meet?" If you use the term to discard potential users, shame on you!

1/2

alcinnz, to random
@alcinnz@floss.social avatar

I'll see how many more of Shadow's authorization/accounts commandline tools I can cover this morning...

After initializing internationalization, some vars & SysConf id validates the count of commandline args (possibly ouputting usage), retrieves the process's user & group IDs followed by the corresponding password/group entries outputting them if non-NULL, possibly iterates over the user's groups looking up & outputting each of them, & cleans up.

1/?

alcinnz,
@alcinnz@floss.social avatar

After initializing LibShadow & validating at least 2 commandline args are given newuidmap looks up the PID for the first argument, opens its /proc/ directory, finds the user's password entry, performs validations, parses remaining commandline args as ranges, validates each of those ranges, & outputs them to the proc dir's uid_map file.

newgidmap works very similarly!

Unless the command's disabled, after initializing LibShadow & internationalization grpunconv has a special -R case.

2/?

alcinnz,
@alcinnz@floss.social avatar

Then it parses the remaining -h commandline flag, checks that /etc/gshadow is present & can be opened under a lock, & linear-scans that file to find the entry to overwrite setting the password.

After init'ing i18n logout might fork if the debug flag is set, initializes logging & LibShadow, & repeatedly iterates over the utmp[x] file checking if they're allowed to be logged in at this time. If not it forks, sends a message to their terminal, killing their process, & syslogging.

3/3 today!

alcinnz, to random
@alcinnz@floss.social avatar

From my latest blogpost...

An Introduction to the fr CSS unit - Robin Rendle @ CSS-Tricks: https://css-tricks.com/introduction-fr-css-unit/

Evolution of the scrollbar - Sébastien Matos: https://scrollbars.matoseb.com/

A Guide To The State Of Print Stylesheets In 2018 - Rachel Andrew @ Smashing: https://www.smashingmagazine.com/2018/05/print-stylesheets-in-2018/

C Recursion - Programiz: https://www.programiz.com/c-programming/c-recursion

alcinnz, to random
@alcinnz@floss.social avatar

How To Create Image Descriptions For Red Carpet Looks - Veroniiiica: https://veroniiiica.com/writing-image-descriptions-for-red-carpet-outfits/

alcinnz, to random
@alcinnz@floss.social avatar

How To Survive Your Project's First 100,000 Lines - Evan Ovadia: https://verdagon.dev/blog/first-100k-lines

100k LoC is where I start getting really concerned about software complexity. But Ovadia's writing a compiler, which is well suited to taking complexity off other projects!

As for my browserdev strategies: I lean heavily on Haskell's typesystem more than I use assertions. Unexpected codepaths get debugging statements.

Haskell's designed specifically to avoid non-determinism!

1/2

alcinnz,
@alcinnz@floss.social avatar

I have unittests (could have more), which I find valuable to help me build the individual pieces. But end-to-end are the more exciting, where I have webpages I want to test against!

I have clear module boundaries which helps both me, & others reusing my code.

Ovadia advises prioritizing dev velocity, & isn't keen on Haskell's inflexibility. Personally I find Haskell very expressive & it's errors helpful. It has good compiletimes (not great) & memory safety.

2/2

alcinnz, to random
@alcinnz@floss.social avatar

Beware of AI pseudoscience and snake oil - Baldur Bjarnason: https://www.baldurbjarnason.com/2023/beware-of-ai-snake-oil/

alcinnz, to random
@alcinnz@floss.social avatar

The Internet Isn’t Meant To Be So Small - Kelsey McKinney @ Defector: https://defector.com/the-internet-isnt-meant-to-be-so-small

alcinnz, to random
@alcinnz@floss.social avatar

A few developer console tricks - Go Make Things: https://gomakethings.com/a-few-developer-console-tricks/

alcinnz, to random
@alcinnz@floss.social avatar

Quickly resize a video with FFmpeg/Vaapi for Mastodon - Paolo Melchiorre: https://www.paulox.net/2023/05/03/quickly_resize-a-video-with-ffmpeg-for-mastodon/

alcinnz, to random
@alcinnz@floss.social avatar

10 Million Blacklight Scans Later, Here’s What You Found - Maria Puertas @ The Markup: https://themarkup.org/blacklight/2023/05/03/10-million-blacklight-scans-later-heres-what-you-found

alcinnz, to random
@alcinnz@floss.social avatar

Prompt injection explained, with video, slides, and a transcript - Simon Willison: http://simonwillison.net/2023/May/2/prompt-injection-explained/#atom-everything

alcinnz, to random
@alcinnz@floss.social avatar

I don’t hate it though - Andy Bell: https://andy-bell.co.uk/i-dont-hate-it-though/

seachanger, to random

Rad things about mastodon we take for granted

CW - these are amazing

Editing posts - hard to go back once you taste this

Alt text as the norm - total community enforcement

Replies - option to delist them so we don’t clog the feed

Timeline curating - we have near infinite timeline options with filters, lists, local, federated, hashtags etc

Muting - we can choose a time period!

Character count - 500 let’s you get an effing thought out

Ownership - we can own the damn thing ourselves

alcinnz,
@alcinnz@floss.social avatar

@yatil @notjustbikes @EposVox @seachanger My tip specifically for your images: Naming the location as the description should be enough. That fits the purpose of your images!

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

Proofreading my code for inserting extra text into the styletree, I've found a few corrections to make already!

  • Corrected from display: list to display: list-item to trigger generation of "list markers".
  • Added implicit counter-increment: list-item to that display type.
  • Added support for list-style-position: outside; marker-side: match-self/parent;. Involved parsing direction property.

https://git.argonaut-constellation.org/~alcinnz/haskell-stylist/tree/main/item/src/Data/CSS/Preprocessor/Text.hs

alcinnz,
@alcinnz@floss.social avatar

Few more fixes, which should really help my auditory browser "Rhapsode":

  • Found a bug where counters weren't getting inherited unless they were being modified. This fix should really help Rhapsode's in-page navigation!
  • I now pay attention to @counter's speak-as property. If caller supports the more general property.
alcinnz,
@alcinnz@floss.social avatar

Finally, I've made a tweak to ensure newline-collapse settings are preserved during whitespace collapsing!

Tomorrow I think I'll publishing this new release of Haskell CSS Syntax!

NireBryce, to random
@NireBryce@hachyderm.io avatar

what's everyone using as a static site generator these days?

ideally it'd take markdown but if it's good enough I'll gladly switch to another posting format.

alcinnz,
@alcinnz@floss.social avatar

@NireBryce I'm happy with Jekyll!

alcinnz, to random
@alcinnz@floss.social avatar

The most important projects I think right now for the software freedom movement & the open web are art! As long as it's published DRM-free!

It doesn't even have to be about our movement (though do please advocate something positive).

If you use free software that helps us improve & advertise "look what can be accomplished!" But regardless just having something DRM-free helps avoid the bad look of endorsing piracy.

1/1.2

alcinnz,
@alcinnz@floss.social avatar

@ajroach42 I've got my own LibrePlanet talk, jokingly concluding that Gregg Taylor's the best Batman!

khm, to random
@khm@mastodon.sdf.org avatar

deleted_by_author

  • Loading...
  • alcinnz,
    @alcinnz@floss.social avatar

    @khm Good to have this clarity, the top-of-thread could be interpreted as overly toxic!

    As someone who semi-regularly uses Firefox (behind GNOME Web or my own not-ready-yet handiwork; ie not Chrome) I would say there are things to complain about regarding Mozilla & Firefox. I find much of their behaviour quite tragic & self-sabotaging.

    But FakeSpot isn't one, at least yet, & I prefer to focus on "What are we doing about it?"

    alcinnz,
    @alcinnz@floss.social avatar

    @khm Fully agreed!

    The "it doesn't support all the same web standards Chrome does" complaints bothers me a lot as an amateur browserdev. I can't compete on that metric at all, while others struggle!

    evan, (edited ) to random
    @evan@cosocial.ca avatar

    It is bad business to start your own protocol when there's an existing open standard.

    It's like making a new brand of air.

    Open standards are a commons. They're a gift. Some idealists and eggheads have already worked out the hard parts. You get that part of the stack 100% free.

    Why in the world would you put any effort whatsoever into replicating the free part?

    Work on the other parts. The parts people care about and pay for.

    alcinnz,
    @alcinnz@floss.social avatar

    @evan I'd never say don't work on new standards, but I would prefer if I saw new standards be better justified than I usually see.

    Work subtoot: "Developers prefer JSON" is not a satisfactory justification in my books!

    alcinnz,
    @alcinnz@floss.social avatar

    @Andres @evan How about "never work on private standards"?

    You have no right to refer to it as a standard if you don't seek external input & implementations!

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