Show newer

I just got around to gathering up my recent toot threads about how several of Rhapsode's dependencies work & little editing it to publish more permantly:

Next I'll discuss how a few more parsers work, followed by some parsing frameworks. I'll put those on that page too.

Then how some of the development tools (file-embed, Cabal, Haddock, HSpec), followed by GHC itself.

You can read more such writings at

CORRECTION: It is ofcourse division, not remainder, for negative exponents. I got confused by somewhat more correct mathematical notation as opposed to other programming languages.

Show thread

@gabriel @cwebber

I’ve been treating Chrome as a dedicated Google services client and nothing else for years now. This tends to make me avoid most Google services unless I need them enough to justify starting up Chrome, which isn’t often.

@cwebber Dominent member of the w3c announces "Fuck standards, actually, it's just me and my anti-antitrust blanket now"

Wow, GamingOnLinux has a big list of free Linux games:

You can filter by genre.
If you want to find open source games, you can also filter by license!

#opensource #linux #gaming

Tomorrow I'll discuss some more of the parses I use in Rhapsode. Because personally I don't find it all that interesting to write parsers myself.

I'll discuss XML then HTML then URLs. Then consider what next...

Show thread

Converting from a real number to a Scientific ammounts to long division, with some logic to prevent repeating digits from becoming infinite loops. Converting to/from text is easy as a Scientific hasn't yet been fully converted to base 2.

For an unfixed-bitsize integer it uses Haskell's builtin Integer type, which may be implemented GHC either as bindings to LibGMP or in pure Haskell. In which case it does most it's work by iterating over each fixed-bitsize "digit" in the number.

4/4 Fin.

Show thread

The lookup table is constructed to start with 1 & 10, and followed by `table[i, i+1] = [x*x, 10*x*x] where x = table[i/2]`. You can do math directly on a Scientific value, but it may not be secure or performant.

If the coefficient is too large for that table (> 324) it may compute the additional exponent. Or more optimally it'll first check whether it's outside the exponents which are representable in Float's bitsize. Both approaches are implemented.


Show thread

@alcinnz @bob Yes. This is totally not a feature that you can find anywhere in their UI. My guess is that they only still have this for the personal convenience of staffers.

I was wondering whether it would be possible to subscribe to a YouTube channel in #Epicyon. The answer is yes, but because there is no standards identifier Google could break the functionality at any time.

Haskell CSS Syntax yields to my code either unbounded Integers or Scientific values at it's convenient, both of which I convert to CPU-native Floats. The Scientific in turn stores a fixed-bitsize base 10 exponent and an unfixed-bitsize coefficient.

To perform the conversion for small enough exponents Scientific consults a lookup table to decide what it should multiply (for positive exponents) or take the remainder (for negative) by the coefficient.


Show thread

Yesterday I mentioned that Haskell CSS Syntax uses a seperate module to parse any floating point numbers.

Decoding numbers involves converting to the computer's native base from our of base 10. For integers this is a simple multiply and add, as was implemented by Haskell CSS Syntax.

But for floating point we still have the same issue. "Scientific Notation" is coefficient*10^exponent, whereas computers use coefficient*2^exponent. So how does this work?


Um um um um ummmmm... is this what it sounds like? Google is blocking browsers it doesn't "approve" of... apparently just letting in Firefox and Chrome?

The web as an open standards platform is rapidly falling apart. :\



Browser standards

The browser must have JavaScript enabled. For more details, see our previous blog post.


"Improve Web security by forcing Javascript to always be on", that's a good one

@cwebber It sounds like they're heading to a situation where you could only sign into a Google account with Chrome or Firefox, with javascript enabled and no proxying (which would rule out things like Tor browser).

I've been degoogling for a decade, and YouTube is the only thing of theirs which I still use with any regularity. The more they try to become Microsoft the more incentive there will be to use other things.

The plain text project, a listing of tools to help you do most of your work using plain text files.

if there is a remote Guix conference next year and i've written some more useful code, i might just submit a talk just so that i can record a fake infomercial like this.
as anyone who spent at least a week with me can testify, impromptu informecials are one of my favorite rhetorical devices.

Show thread

Cosmic Voyage:

This is a nice fictional dipiction of the space travel's demands on communication technology.

There's a new "experimental feature" being tested in Firefox 83: sponsored sites in the URL bar.

"Mozilla works with advertising partners to place sponsored tiles on the Firefox home page (or New Tab) that would be useful to Firefox users. Mozilla is paid when users click on sponsored tiles."

You can disable this by setting `browser.newtabpage.activity-stream.showSponsoredTopSites` to `false`.

Found via


I STRONGLY back the recommendations for ebooks, music, & movies though I *really* wish I could add more to the latter. Especially since "streaming" doesn't have aesthetic of a gift!

Here's my recommendations for audio shows & too few movies:
Man From Earth could be good for any sciency-types you know.

Their RNG dongle & VPN box recommendations could be great gifts for the right person.

I like their help-wanted section. I know Pine64 is worth watching there.


Show thread
Show older

For people who care about, support, or build Free, Libre, and Open Source Software (FLOSS).