I'm trying to do a thing that seems simple, but is basically unsearchable.
I want a piece of software to build video playlists.
I don't want youtube playlists, which is all I find when I search for this.
I don't want music playlists.
I don't want to use the playlist function built in to VLC because, while it's perfectly serviceable, it occasionally crashes while I'm building the list, it doesn't autosave when it crashes, and it's a pain in the ass to move things around.
@TechConnectify Personally my gripe is scheduling international calls. At four seemingly random points in the year I have to reschedule to match the shifted clocks. And I struggle to keep track of the timezone offset when incorporating DST.
I'd be happy even if NZ stopped with DST & most other places didn't. Then it'd only be 2 times in the year!
O.K., I've decided to use 96 font-units per inch. Harfbuzz recommends a value of at least 72 (if I'm reading it's documentation correctly) per inch, & I've already got the 96 factor since it's part of the W3C standards now that maintain compatibility with webpages designed for that resolution.
I am very much drawn to languages that have minimal structure
Things like C, Perl, Forth, Shell, JavaScript, etc. are all way more fun to me because it feels like they let me write programs in a unique and playful way, as opposed to the rigidity that I feel when writing in Python or Go.
Traversing the tree to split block elements off was interesting... Required a couple functions! This is especially important since I'm not using an HTML parser that complies with WHATWG-standard error-correction...
I've basically finished integrating inline text layout into block layout!
I just need to figure out what numeric conversion factor I want to use with Harfbuzz & Balkon...
Started working on retrieving the output from Balkon's inline text layout via CatTrap. Now for the serious work: Getting the inline spans...
This bit will be harder because I'll want to incorporate it into my usual datastructures I'm handing to the output. Which is more-or-less my input datastructure, meaning I'd need to handle it's passed in as input...
Computers used to directly output text, but now we emulate that going to great length to better serving a much wider breadth of people. It is still reasonably popular to near-directly receive textual input from hardware buttons since that gives tactile feedback, however reduced it often is now.
Text is a very information dense medium to communicate with computers over!
As for text, there's essentially 2 levels we deal with it at. At lower-levels we deal largely in terms of iterating over characters & concatenating arrays of them. Maybe some lookuptables. Then if we want to do some serious processing we need to parse it into something else.
At higher, internationalized, levels we tend to largely rely on string-lookups & domain-specific languages to match the user's cultural customs.
Audio generally requires a couple 16bit numbers to be computed precisely 44,100 (technically 40,000, we give ourselves a bit of wiggle-room lining up to analog storage capabilities) times a second. This covers the entire range of human hearing according to Nyquist-Shannon Theorem, & that timing is crucial. Miss it & we hear inadvertant pops.
So what characterizes audio isn't so much data quantity (though it was a lot for the 1980s) but precise timing! Often fullfilled using ringbuffers.
Over the past week or so I've been tooting about how computer graphics works. Characterising it as require large amounts of data needing to be computed 30+ times a second in a way we're used to making sense of.
I hope you're getting the impression that the most computationally-involved task we set for computers is to communicate their computations with us! So how does this apply to other mediums?
The second reason I don't love code formatters is that, ime, any rules that avoid unreadably cluttered code in edge cases always make average code take up more vertical space.
That, in turn, means you get less code per screen. So coding involves way more context-switching. Maybe my short-term memory just sucks, but imo "having code fit in one screen" is a hugely underrated superpower.
Repeated addition/subtraction/multiplication/division Lucas Modulo operation, supporting its own stringifier.
Repeated exponentiation labelled "Miller-Rabin".
Relatively simple prime-number testers.
Bittesting, absolutes, bit-subtraction, bitsetting, bitclearing, & more logical operators. Hamming distance via ops on each bit. Array-scanning. Sizing per base. Stringifying abstractions.
There's routines for computing greatest-common-divisor on single words or multiprecision numbers through repeated refinement. With divide-by-2 fastpaths. Similarly there's Lowest-Common-Multiple routines.
There's exponentiation routines which may involve repeated multiplication, or divide&conquer algorithms via division.
There's a binary-search for squareroots with a fastpath.
There's another implementation file containing macros implemented similarly. As well as utilities for crashing, managing memory & managing those callbacks, memory-copying & -comparison loops, loop to compute normalized sizes. And ofcourse loops over the words in multiprecision number(s) to perform mathematical operators on them whilst propagating carries, Mini GMP implements these in C.
Divide is more complex involving multiple fastpath routines. Which are involved in stringifying.
Electric cars aren't just here to save the car industry, but to save the idea that we can keep doing things as we did before.
That we can just purchase the latest product, that we will just make our own individual decisions and everything will be fine and we will live in the late 90s and early 2000s forever.
But if you look at the numbers, this isn't possible. We either change under or own terms, or catastrophically.
Within GMP there's a submodule named "Mini GMP" which initializes, normalizes, clears, conanicalizes, set fields, compare, & finalizes `mpz_t` & `mpq_t` structures. And ofcourse there's mathematical operators. These are all straightforward with possibly a couple branches.
You can swap fields between 2 `mpq_t`s.
Convert to or from doubles involves a loop taking an exponent of a power-of-2. Or it can convert to/from strings.
The actual logic with most of the loops is implemented as macros.
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#noindex