bits 0x2b - Calender Week 43, 2023

Good reads:

The Negative Impact of Mobile-First Web Design on Desktop

Summary: Mobile-first web designs cause significant usability issues when viewed on desktop. Content becomes overly dispersed across long scrolling pages with expansive white space and enlarged images and fonts, making it difficult for users to consume and understand the information.

[MARK] I need some good linters for my projs

This repository lists static analysis tools for all programming languages, build tools, config files and more.

Decentralization? Oh come on …

The Decentralization (and federation) of social networking is often praised for being fault-resistant and hard-to-censor. Well that’s a fucking lie. Because you don’t own the infrastructure! Just imagine if a TLD goes down, the whole instances will be wiped out because ActivityPub identifiers are bounded to domain names. Or if a datacenter went down, you’d better wish you have a up-to-date remote backup! Instances operated by individuals are far less robust than SNS operated by big evil techs. I think the fediverse is more about the decentralization of moderation than the decentralization of infrastructures. Guess what? The infrastructures are always centralized and they are owned by the big techs and the govs!

I jokingly posted this on fedi and people have some good takes in the comments.

cont. Building a (self governed) low tech internet Is a network without ISPs possible? Perhaps yes!

On “static blog”

Came across an article that claims the point of “static” blog is that you can make it serverless – if you got your hands on a server then you don’t need a static blog.

That’s not true. There are countless reasons why you want to deploy a static blog even on your dedicated server. It’s never about how you deploy things or what infrastructure you have access to.

  • Plaintext content management: with most static blog generators you write your in markdown - the best text format for lightweight journaling, period. And most importantly, you can manage the content anywhere and anyhow, with or without internet - because they are all plaintext organized in a flat filesystem. You don’t need to login to your web frontend to write new post.
  • Ultra portability, like said, your content are files, you make backups by simply making copies, or with a git repo. You never need to worry about “exporting your posts” in case you no longer want that service provider. And that leads to Fault tolerance1. The server is down? No problem! You are not losing anything!
  • Harmony: if you keep notes in markdown then a static blog works perfectly with your knowledge base.
  • Minimize bloats: well this one is too nerdy so I’m not gonna elaborate. Hey, my blog’s front page is 20KB including assets, and has ZERO javascript!

That said, I’m not claiming that static blogs are the way to go. The ultimate freedom in CMS is, on the other hand, a gate keeper for those who have little ideas of computer. I host a wordpress blog for my girlfriend because she has no interest in learning how to use a script to synchronize the blog. For a nerd like my, “convenience” means that you can do anything with your data, be it git, vim, emacs, terminals, ftp, rsync, or whatever. But for many people, “convenience” means “I can open the browser, log in, edit posts and publish them”.

Remarks on Euclid’s elements

An interesting take from veritasium’s video of Euclid’s fifth postulate.

Prof. Alex Kontorovich: So here’s the problem with what Euclid was doing. Definition 1, “A point is that which has no part”. What does it mean to have a part? What is a part? What does it mean not to have a part? “A line is a breadthless length.” What does it mean to have breadth? “(Definition 4: a straight line is a line which) lies evenly within the points on itself”. What the hell is he talking about? We read this two minutes ago, and we are nodding along like “yeah completely makes sense what he’s saying.” It’s all nonsense. Don’t give me a definition that have an infinite recursioA. If you give me a definition in terms of other things then you have to tell me what those things are. If you tell me what that is you have to tell me what the thing before it is.

Derek: Are the definitions a bad idea?

Alex: You shouldn’t have definitions. You should have undefined terms. I’m not gonna tell you what a point is, I’m not gonna tell you what a line is, I’m not gonna tell you what a plane is. All I’m gonna tell you is what the postulates are that they’re assumed to satisfy. It’s the relationships between the objects that’s important, not the definitions of the objects themselves. And once you free your mind to that possibility, all of a sudden, you realize that there’s a perfect good geometric world in which, by line, you mean great circle, and by plane, you mean sphere, and by point, you mean a point on a sphere, and then four of those axioms are satisfied, just not the fifth. And similarly there’s another model, something called a disk model for hyperbolic space, which, the disk is the plane. What I mean by straight lines are arcs of circles that are orthogonal to the disk, and then points are points inside the disk, and the disk is the plane.

git email workflow

Rust copy and drop traits

For “trivial” types, i.e. the length is known at compile time and can be stored on the stack, don’t need to care about copy or drop

For types that are stored on the heap

let s1 = String::from("hello");
let s2 = s1; 

s1 and s2 are all “pointers”(with extra information) to the actual data on the heap. If s1 and s2 were both valid, when they go out of scope, a double-free will be caused. So only one of them can be valid at the same time.

The rust programming language sec.4

Copy annotation can be placed on types that are stored on the stack. If a type implements the Copy trait, variables that use it do not move, but rather are trivially copied, making them still valid after assignment to another vairable.

Rust won’t let us annotate a type with Copy if the type, or any of its parts, has implemented the Drop trait., i.e. “we need something special to happen when the value goes out of scope”

passing values to function is similar to assigning to varaibles. Passing variable to function will move or copy as assigmnent does.

fire in the hole!

“Fire in the hole” is an expression indicating that an explosive detonation in a confined space is imminent. It originated from American miners, who needed to warn their fellows that a charge had been set.

Best way to pick up a programming skill

is to get yourself involved in a project.

  1. seriously, why I’m I mentioning the term “fault tolerance” so often recently?? ↩︎

[+] click to leave a comment [+]
the comment system on this blog works via email. The button
below will generate a mailto: link based on this page's url 
and invoke your email client - please edit the comment there!

[optional] even better, encrypt the email with my public key

- don't modify the subject field
- specify a nickname, otherwise your comment will be shown as   
- your email address will not be disclosed
- you agree that the comment is to be made public.
- to take down a comment, send the request via email.


[BITS] - the weekly archive -
bits 0x31 - Calender Week 49, 2023 (WIP)
bits 0x30 - Calender Week 48, 2023
bits 0x2f - Calender Week 47, 2023
bits 0x2e - Calender Week 46, 2023
bits 0x2d - Calender Week 45, 2023
bits 0x2c - Calender Week 44, 2023
bits 0x2b - Calender Week 43, 2023
bits 0x2a - Calender Week 42, 2023