@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

In sending a network request as I described yesterday, we need timeouts, encryption, randomness, counters, & all the redundant 1's Complement checksums I didn't mention.

That checksum & the counters don't need to be further explored today.

The clock would be it's own counter periodically incremented even when the computers' otherwise off. From this timeout events could be dispatched via the Parse Unit to the Output Unit as I'll explore later.

As for randomness & encryption...

1/5?

alcinnz, to random
@alcinnz@floss.social avatar

Something I need to consider: How'll I fund The ongoing? Hopefully route some money upstream, & fund accessibility/internationalization work!

Any recommendations for services that'll help me do this transparently?

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

The Last Page Of The Internet - Defector: https://defector.com/the-last-page-of-the-internet

It's challenging, but I think I have a strategy to continue finding good webpages.

alcinnz, to random
@alcinnz@floss.social avatar

Last few links from my last page on my auditory-browser hypothetical ( https://adrian.geek.nz/from-scratch/browser-networking )...

OneRNG - Theory of operation: http://moonbaseotago.com/onerng/theory.html

What are Avalanche Diodes? - Utmel Electronic: https://www.utmel.com/blog/categories/diodes/what-are-avalanche-diodes

What Is POST (Power-on Self Test)? - Arthur Brown @ Make Use Of: https://www.makeuseof.com/what-is-port-poweron-self-test/

How does a USB keyboard work? - Ben Eater: https://vid.priv.au/watch?v=wdgULBpRoXk (YouTube via Invidious)

Btw I've started the process of publishing next page on this topic...

alcinnz, to random
@alcinnz@floss.social avatar

We generally want to prevent total strangers from using our personal computers, so Shadow provides libraries & commands for checking whether you know some shared secret. This is an enhancement upon earlier UNIX authentication which was trivial to bypass due to it's access control not being properly considered.

Today I'll describe LibShadow, with LibSubID & the commandline tools coming the next couple days.

The library has accessor for global program-name & log-FD variables.

1/?

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

How to Kill a Decentralised Network (such as the Fediverse) - Ploum: https://ploum.net/2023-06-23-how-to-kill-decentralised-networks.html

(Yes, I'm tired of this topic too, but I want to get this point accross to techies: learn from history!)

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

Someone here on the fediverse once linked me to a blog describing how GPUs work. I'm trying to find the link to it again & I keep failing.

Does anyone have any idea which blog this might have been?

Edit: I've received my answer: https://alaingalvan.gitbook.io/a-trip-through-the-graphics-pipeline/

alcinnz, to random
@alcinnz@floss.social avatar

Perhaps the main task a browser does is parsing network responses, so how'd I design hardware centered on that?

Also with metaprogramming this circuit could be used for CSS styling, cache lookups, filesystem reads, or other collections.

At the core I'd use a bitmask-addressed program counter. Each cycle it'd read an input byte (or even bit!) looking up that offset in the appropriate registers forming edgetables & ORing together the new set of states current states.

1/?

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

Hey, does anyone have any software development work that needs doing? I have some free months that need filling with contracts!

I know a number of languages including but certainly not limited to Python, Java, C, JavaScript, Vala, Haskell, Lua, Julia, GLSL, & more.

I have experience with standards & standards-setting, geospatial data, metadata, linked-data, opensource, static websites, GTK apps, & I'm developing a browser engine.

Also: I enjoy speaking!

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

Please help me plan where I'm taking this hypothetical browser metathread after I've described how to render audio! And how to build the infrastructure for visual rendering.

How much interest is there in discussing the following topics? If there isn't enough, I'll link to my previous writing of how equivalent & existing software works!

I'll be running additional such polls over the following days...

P.S. My next page is coming together quickly, I should have it published soon...

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

Computer output, if not its input, is typically modeled numerically. So (let alone we ask them to do it so often many consider a Full Adder to be the core of computing) computers do a lot of arithmetic! So in turn, since text is a common input, they frequently need to parse numbers!

Parsing an int is easy! For each digit we multiply the result by the "base" (typically 10 or a power-of-2) & add the digit.

On our Arithmetic Core 10x = x<<1 + x <<3, power-of-two can be folded into the adds.

1/4?

alcinnz, to random
@alcinnz@floss.social avatar

Hearing discussion about the unusability of Git (I'm not defending it, but I'm pretty happy to use it!) I wonder: Could we build a distributed version control system upon CRDTs? That'd probably require us to build our own editors for it...

Could double as an alternative to Microsoft's Language Server Protocol, though we would want an adaptor. Whilst allowing for live collaboration where desired.

Still that doesn't answer the question: What would a decent DX look like?

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

Choose a show/genre to listen to!

Fantastical ensemble comedy "Magus Elgar" https://maguselgar.com/ (2018)

Space hi-jinks "Wolf359" https://wolf359.fm/ (2014-2017)

Urban horror "The Magnus Archives" https://rustyquill.com/show/the-magnus-archives/ (2016-2021)

1930s superheroes "The Red Panda Adventures" https://decoderringtheatre.com/shows/red-panda-adventures/ (2005-2015)

I love these shows, pinnacles of their genre! Quote them to show you do too!

Polls ends on my birthday, or day before.

alcinnz, to random
@alcinnz@floss.social avatar

The benefit of the "depth buffering" algorithm I've been describing is that as long as we can read the results out it's trivial to keep throwing hardware at it! The actual physics of lighting (it bounces everywhere) contradicts this parallelisability, so we'll need to rely on approximations.

And then 1990s movies narratively justify these physical innaccuracies!

Or we could ofcourse reverse-simulate relevant lightrays, parallelising per output pixel.

1/4?

alcinnz, to random
@alcinnz@floss.social avatar

Before I describe how I'd simulate a vocal tract through which our hypothetical device would speek, I think I'll first establish what exactly it'd output. And what additional hardware might be needed. Maybe fileformats too?

Audio are vibrations in the air, which we can have vibrate a magnet inside a "solenoid" (coil of wire) thus producing a fluctuating voltage. We can connect a capacitor in paralel & a resister in series to strip out frequencies >20khz we cannot hear.

1/?

alcinnz, to random
@alcinnz@floss.social avatar

Time. We can't sense it, but we do experience it passing. Computers do so by repeatedly charging & draining a capacitor (typically a synthetic quartz crystal) as it converts its saw-wave to a square-wave. Each iteration of which causes your CPU (when its not sleeping) to evaluate the next step in your programs.

Then as we build up from there, the question "what time is it?" has a surprisingly culturally-defined answer.

So how do we often build up upon Linux?

1/3?

alcinnz, to random
@alcinnz@floss.social avatar

Authorship - Baldur Bjarnason: https://www.baldurbjarnason.com/2023/authorship/

I can't speak for film (though I have watched a fair amount of older movies), but this does remind me of a certain audioshow I won't name which gave me the impression of hallow sci-fi drama. And it surprised me that that reminded me of blockbuster film & TV.

An AI link from that page...

Knowledge Laundering - Jim Nielsen: https://blog.jim-nielsen.com/2023/knowledge-laundering/

alcinnz, to random
@alcinnz@floss.social avatar

This morning I'm skimming over the rest of LibPopplers core library & describing what I missed in using the pdftohtml command as a guide in studying it.

Which includes:

  • Parsed & binary searched Unicode Mapping tables, used in various Output Devs & the Global Params.
  • Various dataheaders, especially related to Unicode & builtin fonts. May be paired with lookup routines.
  • Convert between UTF8, UTF16, & UCS4.
  • UTF8-handling utils.
  • Parsed viewer preferences.

1/2?

alcinnz, to random
@alcinnz@floss.social avatar

To load additional code into kernel-space, you can use various commandline tools which call the appropriate syscalls & device files. With the kmod command dispatching to the appropriate subcommand.

After parsing commandline flags insmod converts remaining arguments into a multi-string, & constructs a Module object to (with preprocessing) call the init_module syscall.

There's someadditional logging infrastructure, which might write to Syslog.

1/3?

alcinnz, to random
@alcinnz@floss.social avatar

In our hypothetical string-centric hardware the "Parsing Unit" would perform most of the computation, including all control flow for the Output Unit! So how'd we program this Parsing Unit?

Its microcode would use bitmask addressing, consulting lookuptables for all active states. Whilst updating appropriate preprocessing registers, pushing/popping a stack, & synthesizes Output Unit opcodes.

Except that circuit won't scale to any non-trivial syntax...

1/6?

alcinnz, to random
@alcinnz@floss.social avatar

Code isn't the only thing which would be included in an the OS for our hardware-Internet Communicator! It'll need images, fonts, audio, voices, etc to communicate with you! Can we self-host much of this development too?

Up to a few thousand pixels, we could have a UI for setting the colour at any given pixel of an image (stored in Arithmetic Core) displayed onscreen. Probably worth sacrificing colour-depth for resolution. Include flood-fill!

1/3?

alcinnz, to random
@alcinnz@floss.social avatar

Yesterday I discussed collaboratively editing text, but there's other things you might want to edit!

Implementation notes: I'd keep the data in RAM in its sorted & compressed form, only decompressing it transiently for processing & modifying. Zipping from columnar format into "edit" rows would be most involved step.

For instance we'd want to edit not only individual files but whole directories of them! And the attributes attached to each of its files!

1/?

alcinnz, to random
@alcinnz@floss.social avatar

We could get far on our hypothetical string-centric hardware collaborating peer-to-peer using the CRDT version control system I described the other day! But giving the project a central server (running on our custom hardware, lets say) can streamline development whilst adding quality control, so how'd we implement it?

We'll implement our "codeforge" as a suite of independent services, using an (as yet, proprietary) <form> control for authentication.

1/?

  • 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