pypypy

funny how all the AI/ML stuff is just humanity's effort at re-inventing the brain.

*faint javascript noises in the distance*: y dont u use a library 4 dat just go npm install hoho

#programming

what the fuck are syncopation, counter-melodies, overtones + harmonic series, negative harmony, just intonation vs equal temperament...

my relative pitch is horrific, i can't even remember the neapolitan chord and modes what the fuck are all those

#music

The hard part of learning after studying a concept is committing the understanding to the memory palace. It takes a massive amount of mental effort to create the metaphors for the concepts, memorize them, jot them down, not to mention the maintenance of keeping these palaces from being forgotten with spaced repetition.

Given how expensive this work of trying to keep stuff in your long term memory is, try to keep its usage to very fundamental concepts you absolutely need to memorize. In music, that may be scales or the Circle of Fifth; perspective types, anatomy theory, or composition rules in art; in programming are the data structures and algorithms, or the language quirks (Go's goroutines or Rust's ownership and borrow checker); maybe even something trivial but frequently referred to like your VPS' IP address if you're like me and can't ssh into your server without pressing 100 times in the terminal.

In the end, the result is that you have extremely firm knowledge of whatever you've put into your memory palace. You're not worried about lacking fundamentals if they're all committed to your memory storage. Life's good when you can pop the name of any scales and its dominant and subdominant chords off the top of your head or you don't have to reference the docs every 5 seconds when programming in Rust.

You shouldn't abuse memory palaces to try to remember every single thing. For most trivial stuff, we'd be better off just putting them in a notebook somewhere and refer to them on the rare occasion they're needed, rather than putting in the work and maintenance to store a memory palace for them with the excuse of “maybe I'll need it someday”.

#toolbox

use this if you want to get rid of the hovers constantly jumping in and out, breadcrumbs, inline error messages, etc. and just retain autocompletion and syntax checking.

or the alternative: RTFM and do it yourself: https://emacs-lsp.github.io/lsp-mode/tutorials/how-to-turn-off/

config

;; Disables most hovers, breadcrumps, mode-line info
(setq lsp-ui-doc-enable nil)
(setq lsp-lens-enable nil)
(setq lsp-headerline-breadcrumb-enable nil)
(setq lsp-ui-sideline--code-actions nil)
(setq lsp-ui-sideline-enable nil)
(setq lsp-modeline-code-actions-enable nil)
(setq lsp-eldoc-enable-hover nil)
(setq lsp-signature-auto-activate nil)
(setq lsp-signature-render-documentation nil)
(setq lsp-completion-show-detail nil)
;; Disable file-watch and logging for performance
(setq lsp-enable-file-watchers nil)
(setq lsp-log-io nil)

comparison

exhibit A

default:

changed:

exhibit B

default:

changed:

#programming #emacs

#programming

what I tried to learn while reading Effective C#. Kinda pointless now since I don't use C# that often anymore. I got to the LINQ chapter and gave up lmao.


  • Multicast Delegates i.e Delegates with multiple methods attached to it are apparently a thing.
  • The Null conditional operator for events invocations.
    • EventName?.Invoke(doStuff);
    • Used to check if the EventName has any handlers before invoking it.
    • Is way more complicated than just simply checking EventName != null.
  • Replace your hard-coded stringly-typed variable names with nameof(var). Instead of getting runtime errors saying how the compiler couldn't find the variable, you'll get compile-time errors instead!
Read more...

yeah sex is great but have you ever had an Emacs config that fits your need perfectly !??

keyboard-driven workflows are nice until your hands get sweaty af from 3 hours of programming and you get to smear a l l t h a t g r e a s e over your keyboard.

it's the minor but massive reason why I use Joplin + Todoist instead of Org-mode, traditional DEs instead of window managers, and why scrollbars are always enabled in my Emacs config.

#toolbox

Gmail's HTML-only view loads so much faster it's not even funny to see how bloated the standard view is.

you don't appreciate lightweight software until you're stuck with a 1Gb VPS or a 4Gb RAM laptop for years.