20 random bookmarks
stuff me collect
stuff me collect
Breeze PDF is a powerful, free PDF editor that works entirely offline in your browser. No uploads, 100% privacy guaranteed.
Hive the board game puzzles. A notation for games is also introduced.
via Optozorax
Wow so advanced
via Optozorax
Shipping is really hard and you have to make it your main priority
Shipping doesn’t mean deploying code, it means making your leadership team happy
You need your leadership team to trust you in order to ship
Most of the essential technical work is in anticipating problems and creating fallback plans
Scale back your implementation work as you approach launch so you’re free to jump on last-minute problems
You should constantly ask yourself “can I ship right this second?”
Knowing the consequences I want, what choice would create them? What big choice would nudge a hundred others that way?
Our design goals are safety, performance, and developer experience. In that order.
Contrary to popular belief, simplicity is also not the first attempt but the hardest revision
code, like steel, is less expensive to change while it's hot.
NASA's Power of Ten — Rules for Developing Safety Critical Code
Use only very simple, explicit control flow for clarity.
Put a limit on everything. Fail Fast
Assertions detect programmer errors. The only correct way to handle corrupt code is to crash.
Assertions are a safety net, not a substitute for human understanding.
Build a precise mental model of the code first.
encode your understanding in the form of assertions,
write the code and comments to explain and justify the mental model to your reviewer,
and use VOPR as the final line of defense, to find bugs in your and reviewer's understanding of code.
No memory may be dynamically allocated (or freed and reallocated) after initialization.
Declare variables at the smallest possible scope, and minimize the number of variables in scope.
Good function shape is often the inverse of an hourglass: a few parameters, a simple return type, and a lot of meaty logic between the braces.
Centralize control flow. When splitting a large function, try to keep all switch/if statements in the "parent" function, and move non-branchy logic fragments to helper functions.
Centralize state manipulation. Let the parent function keep all relevant state in local variables, and use helpers to compute what needs to change, rather than applying the change directly.
Add units or qualifiers to variable names, and put the units or qualifiers last, sorted by descending significance. latency_ms_max
rather than max_latency_ms
.
Callbacks go last in the list of parameters.
Order matters for readability (even if it doesn't affect semantics). On the first read, a file is read top-down, so put important things near the top. The main function goes first.
Don't overload names with multiple meanings that are context-dependent.
Баунс читает Кафку.
Would you love me if I became a worm?, somebody could ask. I would respond that no, I don't in fact love you, for you are a worm.
Indeed I find humans more valuable.
Open source 2FA authenticator, with end-to-end encrypted backups
One of my favorite tools on the internet. I love the design! The person behind it: https://pketh.org/archives/ seems cool as well. They also worked on Glitch.
Your unofficial guide to dotfiles on GitHub.
I can't get the noise out of my head. People who watch the video express awe and disgust. And that is why Dutch software developer Bert Hubert's experiment is so powerful. It doesn't really uncover something that we shouldn't already know. Something we often choose to ignore. The brilliance is
WTF Notebook gives me a place to park the impulse to fix it now, damn it! until I have more context for deciding what to work on first. Instead, for two weeks, I just write things down.
Classic MacOS & GS/OS widget library for linux (and other?) - buserror/libmui
Set of tools to be installed on every your server, because if something goes down there might be no way and/or time to install it anymore
Using a single init.lua or vimrc configuration file for (Neo)Vim file is better than a multi folder/file layout approach.