https://github.com/nichoth/notes
Notes on everything
https://github.com/nichoth/notes
Last synced: 6 months ago
JSON representation
Notes on everything
- Host: GitHub
- URL: https://github.com/nichoth/notes
- Owner: nichoth
- Created: 2016-02-22T18:52:43.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2025-05-01T18:18:45.000Z (about 1 year ago)
- Last Synced: 2025-05-01T19:30:41.825Z (about 1 year ago)
- Homepage:
- Size: 254 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# notes
Contents
- [discussions](#discussions)
- [CSS](#css)
* [HUG pattern](#hug-pattern)
- [2025-04-18](#2025-04-18)
- [2025-04-18](#2025-04-18-1)
- [2025-02-20](#2025-02-20)
* [My chaotic journey to find the right database](#my-chaotic-journey-to-find-the-right-database)
- [2025-02-14](#2025-02-14)
* [p2p](#p2p)
- [vscode](#vscode)
- [WIP](#wip)
* [2025-2-13](#2025-2-13)
* [2024-12-22](#2024-12-22)
- [local first](#local-first)
- [See also](#see-also)
- [Some documents](#some-documents)
- [Mon, Dec 2, 2024](#mon-dec-2-2024)
- [patterns](#patterns)
* [The Baked Data architectural pattern](#the-baked-data-architectural-pattern)
- [WIP](#wip-1)
* [Tues, 2024-10-29](#tues-2024-10-29)
* [Wed, Oct 16, 2024](#wed-oct-16-2024)
* [Mon, Oct 7, 2024](#mon-oct-7-2024)
* [Sun, Oct 6, 2024](#sun-oct-6-2024)
* [Sat, Oct 5, 2024](#sat-oct-5-2024)
* [Fri, Oct 4, 2024](#fri-oct-4-2024)
* [Thurs, Oct 3, 2024](#thurs-oct-3-2024)
* [Web, Oct 2, 2024](#web-oct-2-2024)
* [Tues, Oct 1, 2024](#tues-oct-1-2024)
* [Mon, Sept 30, 2024](#mon-sept-30-2024)
* [Web, Sept 18, 2024](#web-sept-18-2024)
* [Mon, Sept 16, 2024](#mon-sept-16-2024)
- [changelog](#changelog)
- [license](#license)
- [June 9, 2024](#june-9-2024)
## discussions
[See discussions](https://github.com/nichoth/notes/discussions)
## CSS
### [mol Responsive CSS Grid](https://smolcss.dev/#smol-css-grid)
> Create an intrinsically responsive grid layout
```css
.smol-css-grid {
--min: 15ch;
--gap: 1rem;
display: grid;
grid-gap: var(--gap);
/* min() with 100% prevents overflow
in extra narrow spaces */
grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--min)), 1fr));
}
```
### [HUG pattern](https://youtu.be/kKdH6QLQGFk)
HUG is an acronym -- HTML, Utility class, Group classes
Don't use many classes, eg Tailwind style, just add styles. Use the
"cascade" of CSS.
Group classes -- for when you have multiple utility classes that are applied in
multiple places. Should be intuitive.
--------------
## 2025-04-18
* [a nice background color](https://intangible.ca/2025/02/05/what-you-can-do/)
```css
color: #ffeaeb;
```
## 2025-04-18
* [Tigris Data](https://www.tigrisdata.com/) -- a globally distributed
S3-compatible object storage service
## 2025-02-20
### [My chaotic journey to find the right database](https://youtu.be/3gVBjTMS8FE)
#### [The backend](https://youtu.be/3gVBjTMS8FE?t=1322)
> We picked `dexi` for our local layer, and I need to put that data somewhere.
> I picked an interesting place. Let's call this `redis V1`.
#### Tinybase
* websocket sync layer
## 2025-02-14
### p2p
* [A p2p Vision for QUIC](https://seemann.io/posts/2024-10-26---p2p-quic/)
#### Address Discovery using STUN
> In a nutshell, a STUN client sends a "Binding Request" to a STUN server. The
> "Binding Response" of the server encodes the IP source address and the source
> port that the server observed on the client's request.
#### Hole Punching Coordination using ICE
> The traditional hole punching process is specified by ICE
## vscode
* `F7` / `Shift + F7` -- go to next matching Symbol
* `F8` -- go to next error / merge conflict
-------------------------------------------------------------------------
## WIP
### 2025-2-13
#### some p2p
* [A p2p Vision for QUIC](https://seemann.io/posts/2024-10-26---p2p-quic/)
* __Everything you never knew about NATs and wish you hadn't asked__
- [part 1](https://educatedguesswork.org/posts/nat-part-1/)
- [part 2](https://educatedguesswork.org/posts/nat-part-2/)
- [part 3](https://educatedguesswork.org/posts/nat-part-3/)
### 2024-12-22
* [Web Authentication extensions](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API/WebAuthn_extensions)
> it lets a passkey be used not just for authentication but also for deriving
> encryption keys for sensitive data on a site
--------------------------------------------------------------------------
## local first
* [The offline cookbook](https://jakearchibald.com/2014/offline-cookbook/)
* [Local First Academy](https://localfirstacademy.com/)
* [localfirst.fm](https://www.localfirst.fm/) -- A podcast about local-first software development
* [Johannes Schickling: Why Local-First? (Local-First Meetup Berlin #1)](https://youtu.be/jxuXGeMJsBU)
* [Local-first news](https://www.localfirstnews.com/)
## See also
* [the list on my website](https://nichoth.com/list/)
* [Every badge you might need](https://gist.github.com/nichoth/1fb086c5bee5cd189d66e0f87d1a4825)
* [common tasks in node JS](https://gist.github.com/nichoth/35def0bf3e37fe0dd090f40bb3e43d9b)
* [common tasks with `npm`](https://gist.github.com/nichoth/1f054534a8749cefe2034a199b588948)
## Some documents
- [iroh](./IROH.md)
- [e2ee](./End-to-End-Encryption-in-the-Browser.mht)
+ plus, [see this on the internet](https://blog.excalidraw.com/end-to-end-encryption/)
- [End-to-End Encryption in Web Apps](https://cronokirby.com/posts/2021/06/e2e_in_the_browser/)
- [some `vim` notes](./vim.md)
- [loca-first notes from discord](./LOCAL_FIRST.md)
## Mon, Dec 2, 2024
#CSS
* [CSS frosted glass](https://www.joshwcomeau.com/css/backdrop-filter/)
## patterns
### [The Baked Data architectural pattern](https://simonwillison.net/2021/Jul/28/baked-data/)
> provides many of the advantages of static site generators while avoiding most of their limitations
> Baked Data: bundling a read-only copy of your data alongside the code for your application, as part of the same deployment
## WIP
### Tues, 2024-10-29
### Wed, Oct 16, 2024
#music
* [Canbombe Cambá - Yamandu Costa e Martín Sued & Orquestra Assintomática](https://www.youtube.com/watch?v=6spG6w1Tfn8&ab_channel=YamanduCosta)
### Mon, Oct 7, 2024
#crypto
* [Ed25519 to Curve25519](https://libsodium.gitbook.io/doc/advanced/ed25519-curve25519) -- that link from @getify.
- [An example in use](https://github.com/mylofi/local-data-lock/blob/ac2a28e64b6666d4bd6a142e97a71ad2745fe18a/src/ldl.js#L538)
### Sun, Oct 6, 2024
#local-first
#crypto
* add [local-first notes](./LOCAL_FIRST.md) from discord
* [rfc9420](https://github.com/mlswg/mls-protocol/blob/1a441b8af19f2dd6dc0b7301a9c788bb8985090f/rfc9420.md)
### Sat, Oct 5, 2024
#CSS #web
* [CSS and Network Performance](https://csswizardry.com/2018/11/css-and-network-performance/)
* [Conditionally loading resources with media queries](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#conditionally_loading_resources_with_media_queries)
Use a media query in the `link` tag, and separate the CSS by media query, so
you only need to download the relevant CSS.
### Fri, Oct 4, 2024
#JS
#web
#design
* [Leader election in browser tabs, the easy way](https://greenvitriol.com/posts/browser-leader)
* [component.gallery](https://component.gallery/)
>
> Designed to be a reference for anyone building component-based user
> interfaces, The Component Gallery is an up-to-date repository of interface
> components based on examples from the world of design systems.
>
### Thurs, Oct 3, 2024
#web
* [What is atproto.com good for?](https://bnewbold.net/2022/atproto_thoughts/)
#music
* Alabaster DePlume
#JS #server
* [Hono Web application framework](https://hono.dev/)
+ [github](https://github.com/honojs/hono)
* [Nitro -- Next Generation Server Toolkit](https://nitro.unjs.io/)
+ [github](https://github.com/unjs/nitro)
* [h3 -- The Web Framework for Modern JavaScript Era](https://h3.unjs.io/)
+ [github](https://github.com/unjs/h3)
* [unjs](https://unjs.io/)
### Web, Oct 2, 2024
#webcomponent
* [The different ways to instantiate a Web Component](https://gomakethings.com/the-different-ways-to-instantiate-a-web-component/#inside-the-constructor)
### Tues, Oct 1, 2024
#css
#webcomponent #web-component
* [CSS Masonry & CSS Grid](https://css-tricks.com/css-masonry-css-grid/)
* [CSS ::part selector](https://developer.mozilla.org/en-US/docs/Web/CSS/::part)
### Mon, Sept 30, 2024
* [Git from the inside out](https://maryrosecook.com/blog/post/git-from-the-inside-out)
* [The Cloud Is a Prison. Can the Local-First Software Movement Set Us Free?](https://www.wired.com/story/the-cloud-is-a-prison-can-the-local-first-software-movement-set-us-free/) (local-first in Wired magazine)
* [CRDTs Turned Inside Out](https://interjectedfuture.com/crdts-turned-inside-out/)
#web-components #JS
* [Requirements for custom element constructors and reactions](https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-conformance)
* [Using custom elements](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#types_of_custom_element)
* [The Great Divide](https://css-tricks.com/the-great-divide/)
--------------
* [Web components are okay](https://nolanlawson.com/2024/09/28/web-components-are-okay/)
#JS
#### create an array of length
```js
Array.from({ length: 5 }, (v, i) => i)
// => [0, 1, 2, 3, 4]
```
#### get an array of the alphabet
```js
Array.from({ length: 26 }).map((_, i) => String.fromCharCode(i + 1 + 64))
```
### Web, Sept 18, 2024
* [Iroh — IPFS reimagined](https://youtu.be/9jR9EWZ2bO8)
> Content discovery is the hard part.
> You want a global view into the world -- who has the answer to this query?
> something older than 24 hours on the IPFS network, that's not on the gateway, that's hard to get
> high latency
> too many layers
The hidden killer of many projects -- too many layers.
* [see this note via iroh discord](./IROH.md)
### Mon, Sept 16, 2024
* [HTML5 with storing files in IndexedDB](https://robnyman.github.io/html5demos/indexeddb/)
- [html5demos/indexeddb/js/base.js](https://github.com/robnyman/robnyman.github.com/blob/master/html5demos/indexeddb/js/base.js)
* [robnyman.github.io/camera-api](https://robnyman.github.io/camera-api/)
* [Blobs and More: Storing Images and Files in IndexedDB](https://dzone.com/articles/blobs-and-more-storing-images)
* [Aljoscha Meyer & Sam Gwilym - Earthstar + Willow](https://nlnet.nl/project/Earthstar/interview.html) — an interview by nlnet
* [signal protocol — Diffie-Hellman ratchet](https://signal.org/docs/specifications/doubleratchet/#kdf-chains)
* [The Garden and the Stream: A Technopastoral](https://hapgood.us/2015/10/17/the-garden-and-the-stream-a-technopastoral/)
* [Of Digital Streams, Campfires and Gardens](https://tomcritchlow.com/2018/10/10/of-gardens-and-wikis/)
-----------------------------
* [Hyper Hyper Space: Conclusions and ideas for building p2p secure data sync](https://www.hyperhyperspace.org/report.html)
* [messwithdns.net](https://messwithdns.net/)
* [maxnowack/signaldb](https://github.com/maxnowack/signaldb)
* [Rebuilding the Web We Lost](https://www.anildash.com//2012/12/18/rebuilding_the_web_we_lost/)
* [More on Streams vs. Pages](https://www.anildash.com//2012/08/15/more_on_streams_vs_pages/)
* [Stop Publishing Web Pages](https://www.anildash.com//2012/08/14/stop_publishing_web_pages/)
* [Don’t Be Evil: Fred Turner on Utopias, Frontiers, and Brogrammers](https://logicmag.io/justice/fred-turner-dont-be-evil/)
* [MOTIVATED: Playing with MP4 Metadata](https://whtwnd.com/msh.bsky.social/3l42sodfdzh22)
* [signal — kdf chains](https://signal.org/docs/specifications/doubleratchet/#kdf-chains)
* [Understanding HKDF](https://soatok.blog/2021/11/17/understanding-hkdf/) — a dhole moment
* [dajiaji/hpke-js](https://github.com/dajiaji/hpke-js/tree/main)
* [Everything you wanted to know about Elliptic Curve Cryptography](https://fission.codes/blog/everything-you-wanted-to-know-about-elliptic-curve-cryptography/)
-------------
* [esbuild bundle analyzer](https://esbuild.github.io/analyze/)
* [electric-sql/pglite](https://github.com/electric-sql/pglite)
* [pglite.dev](https://pglite.dev/)
## changelog
* [common changelog](https://common-changelog.org/)
* [keep a changelog](https://keepachangelog.com/en/1.0.0/)
## license
* A badge for [the Polyform Shield license](https://polyformproject.org/licenses/shield/1.0.0/)
A link to the badge: [badge](https://github.com/nichoth/badge?tab=readme-ov-file#polyform-shield-license)
Looks like this: 
---------------------------
## June 9, 2024
* [vella.ai](https://vella.ai/auth/) -- Local-First Auth
----------
* [Elasticlunr.js](http://elasticlunr.com/) -- Lightweight full-text search engine in Javascript for browser search and offline search