💾 Archived View for paritybit.ca › greenhouse › clippings.gmi captured on 2023-01-29 at 15:42:06. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
A collection of notes and clippings from articles that don't yet fit anywhere else, but which I still find valuable.
While the only bar for publishing what you write is the one that you set for yourself, you need to find a balance between perfectionism and just publishing the damn thing already.
Things to write about are everywhere, you just have to get better at recognizing the opportunity.
Ever find yourself about to ship something that isn't good enough?
…"We can always come back and fix it up later".
You can, but you won't.
New priorities pull harder than old ones.
A lack of quality rarely qualifies as a bug, and it's hard to justify the time, effort, and tradeoffs required to come back with a polishing cloth down the road.
Selling out is usually more a matter of buying in. Sell out, and you're really buying into someone else's system of values, rules and rewards.
https://web.mit.edu/jmorzins/www/C-H-speech.html
In taking notes, it’s the journey that matters (the habitual process of taking notes, synthesizing ideas, and re-articulating them) not the destination (a highly-organized and tagged library of notes for recall).
https://blog.jim-nielsen.com/2022/reading-notes-june/
https://www.baldurbjarnason.com/2022/on-online-collaboration/
Web3 is a fun buzzword used by a group of people who believe our use of the web will evolve into a digital land-grab where you can monetise absolutely everything with the help of environment-destroying technology.
https://chaos.social/@cityroler/108697761132980120
Humans naturally build consensus when in groups, even when they don't intend to.
And that’s all great and intuitive… until you get to humans. Humans, he said, demonstrate the opposite principle: more interactions equals dumber behavior. When we come together and interact as a group seeking consensus, we lose sophistication and intelligence. Ants get smarter while we get dumber.
At its simplest form, it means that if you take a bunch of people and ask them (as individuals) to answer a question, the average of each of those individual answers will likely be better than if the group works together to come up with a single answer.
-- Kathy Sierra, _The "Dumbness of Crowds"_
https://headrush.typepad.com/creating_passionate_users/2007/01/the_dumbness_of.html
Robot
The term originates from Czech "robot"/"robota" for drudgery, servitude. Also was a system of serfdom in Central Europe under which a tenant's rent was paid for in forced labour.
Perhaps automaton and derived term auton are nicer and give off less "slavery", "capitalism", "forced to serve" vibes.
https://library.kiwix.org/?lang=eng
Focus is the ability to keep awareness on the person or thing engaged with until a conscious choice is made to move the awareness onto the next thing.
Awareness can be thought of as a ball of light within the mind that we can control to focus on various different parts of our minds. If the ball is in the angry part of the brain, then we will be angry, and so on. This is a useful metaphor that can give us greater control of what we choose to spend our awareness on and when, and can be a "rehoming point" to help us more easily refocus when our awareness drifts (think about shifting the ball of light, instead of trying really hard to focus on something else). The ability to focus is the ability to control where awareness goes in the mind.
Being focused is something that needs to be practiced. TikTok/Instagram, etc. influence our ability to focus because we are training ourselves to switch focus every 30-60 seconds and this is one reason why so many of us feel like it's so hard to stay focused.
Find opportunities to practice concentration. Give things your undivided attention and catch yourself when your mind starts to wander. The more you practice this, the easier it will become.
Mindfulness is a byproduct of focused awareness.
AoM Podcast 832: The Power of Unwavering Focus
Just a collection of resources related to Uxn:
https://wiki.xxiivv.com/site/varvara.html
https://github.com/hundredrabbits/awesome-uxn
https://compudanzas.itch.io/introduction-to-uxn-programming
https://wiki.xxiivv.com/site/uxntal.html
https://wiki.xxiivv.com/site/uxntal_cheatsheet.html
https://wiki.xxiivv.com/site/uxntal_reference.html
ircs://irc.esper.net:6697/#uxn
What if we only had a handful of passwords that we memorized in our heads, and for all the other accounts we simply used email-based password resets as authentication.
I would probably have the following passwords in my head:
And if I needed to log into anything else, I'd simply reset the password, auto-generate a new one, paste it in, immediately forget it upon logging in, and repeat for any time I need to re-authenticate with that site. It would be an interesting way of doing things.
https://text.causal.agency/017-unpasswords.txt
Using one big server instead of several tiny "cloud native" or "kubernetes cluster" container things or whatever the buzzword is for it today is often cheaper, simpler to manage, less prone to incomprehensible failures, and just as if not more powerful and capable than the latter.
https://specbranch.com/posts/one-big-server/
Various cycling-related resources
https://ottawavelooutaouais.com/2022/07/30/biking-to-the-ottawa-international-airport-from-downtown/
http://www.southcoastbikes.co.uk/articles.asp?article=Care
https://bicycles.stackexchange.com/questions/89/periodic-maintenance-task-for-bike-commuters
Bicycle Shops in Ottawa, Canada
Simplicity is not about the number of parts something has, it's about how intertwined they are.
Mutable state or immutable state both contribute to complexity because the more state you have, the greater the number of possibilities in your program. This grows non-linearly. Branching also grows complexity non-linearly. Timelines/threads that need to communicate also contribute. There are 1,000,000 different ways that two processes can execute 12 steps, for example.
More state also means more code to handle consistency. It is hard to reason about program outcomes when there is lots of state.
Mutable state is worse than immutable state because there is change over time.
Naturally, reduce complexity by removing constructs that contribute to it. Keep mutable state small so that it's easier to manage.
Simplicity is hard. It requires conscious effort to maintain.
Object Oriented Programming is uniquely hard to make simple. OOP has state and procedures that manipulate this state which can get very complex and hard to limit or restrict. OOP leads to additional complexity because more code is needed to manage this state. Languages that don't fall into this trap seem to be Actor-style languages and SmallTalk (the original OOP language, from which OOP seems to have been corrupted into whatever the heck it is today). Pure functional programming eliminates state and is naturally highly parallel sizable because it avoids state.
There are three areas:
Essential complexity is the essence of the problem as seen by the users. It is complexity that cannot be avoided because it is the very nature of what the program needs to do.
Accidental complexity is all the rest that the developer would not have to reason about in the real world (e.g. manipulating registers, memory management, unnecessary abstractions, over re-use of data types, data hiding, etc.).
A useful data structure for managing complexity is the tree since it can store exponentially more data for each unit of depth.
A useful way is to program in a data-oriented way where you program at different data interpretation levels (e.g. byte->char->json->http) without needing to define an API inside your program. You are free to move up and down the levels without indirection.
Don't prematurely add complexity to code because "one day you might need to use another database engine" or something like that. Wait until you actually need that other database engine to make the changes. You will have to rewrite some things for the new database engine, but your code overall will be simpler.
Avoid abstraction barriers: places where abstractions become black boxes, hard to interact with or reason about.
My Response to Out of the Tar Pit
What is an Abstraction Barrier
Power corrupts. The more powerful a language, the harder it is to understand what the software does. Compare: C++ vs. C.
An ideal declarative programming language is one that can formulate some kind of formal specification from an informal specification. It would be able to know exactly how much state is needed, and manipulate only that state doing only the necessary control operations.
Using multiple languages that each have different restrictions can be useful. Restrictions can help frame problems of different domains in ways that would reduce complexity for those programs.
Alan Kay indicated that it's impossible for an app designer to be able to anticipate the needs of millions of users. An extensional system in which end users do most of the tailoring and even construction of new tools themselves is ideal.
"There would be millions of personal machines and users. Where would the applications and training come from? Why should we expect an applications programmer to anticipate the specific needs of a particular one of the millions of potential users? An extensional system seem to be called for in which the end users would do most of the tailoring and even some of the direct construction of their tools." - Kay
These days you simply buy or download an app and train yourself to use it, there is little customization of your workflow to fit your needs, only fitting yourself inside of another's ideas of how you should work.
Alan Perlis: "It has been such a long time since I have seen so many familiar faces shouting among so many familiar ideas, discovery of something new and programming languages like any discovery has somewhat the same sequence of emotions as falling in love, a sharp elation followed by euphoria, a feeling of uniqueness, and ultimately the wandering eye."
"A twentieth century problem is that technology has become too "easy". When it was hard to do anything whether good or bad, enough time was taken so that the result was usually good. Now we can make things almost trivially, especially in software, but most of the designs are trivial as well. This is inverse vandalism: the making of things because you can. Couple this to even less sophisticated buyers and you have generated an exploitation marketplace similar to that set up for teenagers." - Kay
This is basically saying "things were better when they were worse", but it's worth exploring why he feels this way instead of dismissing it as the angry rants of an old man against today's youth. Perhaps it's so easy to make bad designs because of a lack of constraints in our modern systems. Perhaps education is highly lacking and we have "armed neanderthals with guns and tanks", as it were.
LispCast: The Early History of Smalltalk
The Early History of SmallTalk
The problem with powerful languages is that it breeds individualism. Because it's so easy to develop a solution that fits your needs (does 60% of the whole), you don't collaborate or contribute to a team that's trying to solve the same problem. We end up with 100s of libraries that roughly do the same thing, but not quite. People become obsessed with bootstrapping but never take these concepts to their "final point". No boring/mundane work is done to finish or take the project to completion. This is common in "rockstar" programming.
(I argue this is good. Not only does it create programmers knowledgable and skilled in solving more problems (reducing division of labour), it reduces the need for dependencies and eliminates the control that another entity has over your software.)
Companies would rather have several replaceable programmers than have one skilled but important programmer who isn't as easily replaceable.
(This is why this sort of power is good actually.)
Suburbia is bleeding North America dry. Not only has it led to vast networks of asphalt which need to be maintained to support a car-addicted and car-dependent society, it also results in the creation of boring, same-y,