@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

My text is fully linkified! Tomorrow I'll gather up my remaining threads discussing LibPoppler (and now /dev/random) then publish everything!

Of particular note, here's some thorough notes on WiFi which don't require handing over your details: https://howiwifi.com/2020/07/13/802-11-frame-types-and-formats/

alcinnz, to random
@alcinnz@floss.social avatar

OpenSSL (which I've now confirmed that I've finished studying) relies on sourcing truly random inputs an attacker cannot predict. Linux provides this via the /dev/random device-file!

The source code I'm reading has some good comments: https://lxr.missinglinkelectronics.com/linux/drivers/char/random.c

The central add-rotate-xor hashing (+ fastpath) function here is a variation on CRC checks, apparently not cryptographically-secure but rapid enough to be called upon every CPU interrupt. May be wrapped in logging and/or mutexes.

1/?

alcinnz,
@alcinnz@floss.social avatar

There's a mutex-locked callback list, possibly called upon reseed.

That hashing function is wrapped in several more-public APIs so kernel-space (or even userspace) drivers can feed in more randomness from outside the computer itself. A lower-bound on the amount of randomness Linux has is estimated (mutex-protected), but that's barely relevant beyond bootup. The amount of "entropy" in the pool always increases, you can't make it less random except by looking at kernel memory!

2/3?

alcinnz,
@alcinnz@floss.social avatar

The core /dev/random logic implements some of its own fallback entropy harvesters (from e.g. timers, better than nothing!), with most of the code going into the public APIs.

When returning entropy (mutex-protected & logged) out of this pool it SHA1 hashes a computed number of bits & (is this needed?) subtracts off a certain amount of estimated entropy. This hash is mixed back into the entropy pool to ensure it remains unknown.

Exposes /dev/[u]random dev files & a getrandom() syscall.

3/3Fin

alcinnz, to random
@alcinnz@floss.social avatar

Omnivore App Accessibility and Low Vision - Veroniiiica:
https://veroniiiica.com/omnivore-app-accessibility-and-low-vision/

Wakelet Accessibility Features For Low Vision:
https://veroniiiica.com/wakelet-accessibility-features-for-low-vision/

alcinnz, to random
@alcinnz@floss.social avatar

Photographic comparison: Is the Kobo Libra Colour display worse than the Kobo Libra 2? - John Goerzen:
https://changelog.complete.org/archives/10671-photographic-comparison-is-the-kobo-libra-colour-display-worse-than-the-kobo-libra-2

alcinnz, to random
@alcinnz@floss.social avatar

Why use Web Components over traditional DOM manipulation? - Go Make Things:
https://gomakethings.com/why-use-web-components-over-traditional-dom-manipulation/

alcinnz, to random
@alcinnz@floss.social avatar

All error messages are necessarily bad to some degree - Gabriella Gonzalez:
https://www.haskellforall.com/2024/05/all-error-messages-are-necessarily-bad.html

alcinnz, to random
@alcinnz@floss.social avatar

On guestbooks - Manuel Moreale:
https://manuelmoreale.com/@/page/25583Thdp8L1dO0C

alcinnz, to random
@alcinnz@floss.social avatar

Oblivian - Olivia Colman @ Make My Money Matter (UK):
https://iv.datura.network/watch?v=EeZwnnOkrvw (YouTube via Invidious)

alcinnz, to random
@alcinnz@floss.social avatar

Improving my self-hosted scrobbling implementation - Cory Dransfeldt:
https://feedpress.me/link/23795/16676730/improving-my-self-hosted-scrobbling-implementation

alcinnz, to random
@alcinnz@floss.social avatar

Too Much Trouble To Bother - Michael Lucas:
https://mwl.io/archives/23575

alcinnz, to random
@alcinnz@floss.social avatar

CSS specificity and the cascade - Go Make Things:
https://gomakethings.com/css-specificity-and-the-cascade/

Endorsing...

Misconceptions about CSS Specificity - Bramus:
https://www.bram.us/2024/05/05/misconceptions-about-css-specificity/

&

Don’t Fear the Cascade - Mayank:
https://conf.11ty.dev/2024/dont-fear-the-cascade/

alcinnz, to random
@alcinnz@floss.social avatar

Pluralistic: The disenshittified internet starts with loyal "user agents" (07 May 2024) - Cory Doctorow:
https://pluralistic.net/2024/05/07/treacherous-computing/

Pretty much describes what gets me into browser dev... I'm sure we all think we know what's best for users though...

alcinnz, to random
@alcinnz@floss.social avatar

I strongly desire to see a UBI, or any other measure which means we don't require money to live!

Aside from a position that people shouldn't need to show their value to society in order to live... Looking at my own industry I think capitalists with the funds to spend are generally doing an atrocious job making these judgments!

(there's exceptions which prove the rule)

mia, to random
@mia@void.rehab avatar

so, you've seen ™ and ™️ before. but like. why are there two. well, i have an explanation! the answer is: FE0F

first, unicode. unicode is a standard definition of a bunch of codepoints, where a codepoint is just a number with meaning. for example, unicode codepoint U+263A refers to ☺︎, or "White Smiling Face", and U+1F431 refers to 🐱, or "Cat Face"

so, lets start by looking at the codepoints for ™. decoding it, it becomes the codepoint U+2122, referred to as "Trade Mark Sign". this was added in unicode 1.1 in 1993, a decent time ago!

next, the codepoints for ™️. decoding it, we get two codepoints! U+2122 (™︎) and U+FE0F. wait. who is FE0F. why is he in my emoji

well, unicode isn't as simple as a series of codepoints that refer to single characters. take a look at é̗ for example. this is three codepoints, U+0065 (Latin Small Letter E), U+0301 (Combining Acute Accent), and U+0317 (Combining Acute Accent Below). the first codepoint is simple enough, it's just e. the next two, however, are combining codepoints. this means that they combine with the codepoint before them to modify it. U+0301 adds an acute accent above the previous codepoint, and U+0317 adds an acute accent below the previous codepoint. this example specifically isn't very useful (i don't know any language with a é̗ character beyond conlangs), but it becomes very useful for languages that use a lot of diacritics. imagine if we had to make a new set of characters for each set of possible diacritics! big waste of space, we shouldn't have done that!

so, what is U+FE0F? well, it's a special codepoint called "Variation Selector-16". variation selectors are a reserved block of 16 unicode codepoints. only some have been defined, but among those currently in use are U+FE0E (VS15) and U+FE0F (VS16). from wikipedia: "VS15 and VS16 are reserved to request that a character should be displayed as text or as an emoji respectively." so, what's happening with ™️ is that it's combining a U+2122 (™) and a U+FE0F (Variant Selector-16) to create an emoji version of ™. they're the same character, just that one has been instructed to become an emoji!

also, for the interested, here's the word "unicode" with a shit ton of combining characters: ù́̂̃̄̅̆̇̈̉n̖̗̘̙̐̑̒̓̔̕i̡̢̧̨̠̣̤̥̦̩c̴̵̶̷̸̰̱̲̳̹ò͇͈͉́͂̓̈́͆ͅd͓͔͕͖͙͐͑͒͗͘eͣͤͥͦͧͨͩ͢͠͡. what appears to be seven letters is actually 77 codepoints, taking up 147 bytes when encoded in utf-8. or 156 in utf-16. or 312 in utf-32. why does anyone use utf-16 if it's longer? historical reasons :3

TL;DR: ™️ is ™︎ but instructed to be an emoji

alcinnz,
@alcinnz@floss.social avatar

@argv_minus_one @coolbean @mia We'd use that warp drive to travel back in time so there'd be less code for us to rewrite!

alcinnz, to random
@alcinnz@floss.social avatar

I'm linking heavily to https://www.timeanddate.com/ since searching these topics is difficult, everyone else takes these concepts for granted!

alcinnz, to random
@alcinnz@floss.social avatar

LibPoppler's vendored "FoFi" library provides a couple classes to aid parsing binary files (with lookuptables for charsets), & uses themto simplistically parse the major font formats common in PDFs.

I expected LibFreeType to be involved... But all the sophisticated handling of font files is, for worse, precomputed in PDFs prior to saving the file.

0.5/0.5 Tomorrow: Something totally random!

alcinnz, to random
@alcinnz@floss.social avatar

Abby Foreman's personal site "ArborVille":
https://arborville.glitch.me/

Our Friend The Computer - Camilia & Ana:
https://www.ourfriendthe.computer/ (podcast)

External Pages - Ana Meisell & others:
https://externalpages.org/

alcinnz, to random
@alcinnz@floss.social avatar
alcinnz, to random
@alcinnz@floss.social avatar

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

Some links from it...

Why monopolies are harmful - Richard Murphy "Funding the Future":
https://www.taxresearch.org.uk/Blog/2024/04/30/why-monopolies-are-harmful/ (embedded YouTube)

Custom Element Naming - Joe Gregorio:
https://bitworking.org/news/2024/04/custom-element-naming/

My approach to HTML web components - Jeremy Keith "adactio":
https://adactio.com/journal/21078

How do you accidentally run for President of Iceland? - Anna Anderson @ UX Collective:
https://scribe.rip/how-do-you-accidentally-run-for-president-of-iceland-0d71a4785a1e (Medium via Scribe)

alcinnz,
@alcinnz@floss.social avatar

Last few...

Managing Up - Edward Zitron "Where's Your Ed At":
https://www.wheresyoured.at/managing-up/ (Substack)

Social media 1, ChatGPT 0 - PZ Myers "Free Thought Blog":
https://freethoughtblogs.com/pharyngula/2024/05/01/social-media-1-chatgpt-0/
Sounds familiar...

Turning Off Adobe Acrobat’s AI Assistant - Wes Cowley:
https://www.wordsbywes.ink/articles/tools/turning-off-adobe-acrobats-ai-assistant/

Graph: Growing number of threats leveraging Microsoft API - Symentic:
https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/graph-api-threats

Misconceptions about CSS Specificity - Bramus Van Damme:
https://www.bram.us/about/

See 1st link for more links & commentary!

jollyorc, to random
@jollyorc@social.5f9.de avatar

if your website disables the paste functionality in the password field, you deserve a SPECIAL circle of hell.

alcinnz,
@alcinnz@floss.social avatar

@jollyorc What's the punishment?

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,
@alcinnz@floss.social avatar

Btw, I try to keep this in mind with everything I write. Including my hypotheticals!

martin, to random
@martin@nondeterministic.computer avatar

Automerge shipped a big new feature today: full support for rich text, and integration with ProseMirror! Previously we only supported inline formatting like bold/italic. Now we also have block elements such as bullet points (including nesting). This was a lot of work! https://automerge.org/blog/2024/04/06/richtext/

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

@martin I'm excited to read it! Whenever its ready!

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