lifelab
Show code
#!
tasks = nb.query_all(block_type="task", tags=['blog/lifelab'])
nb.transclude([x['id'] for x in tasks], mode='interactive')A jupyter notebook has everything in one linear sequence of blocks. This allows you to mix code and prose into a coherent story, unfortuntely it makes it difficult to navigate pinned or repeated information. For a smarter journal with dashboards, it didn't really work, because I kept scrolling past the same blocks over and over again. I changed it to contain 2 panes. A main text + code pane, and a collapsible sidebar that has all pinned pages and backlinks, allowing adhoc dashboards and mini apps.
When building is more fun than documenting
I have definitely spent more time implementing a blogging system than actually blogging.
The goal of this blog will be to collect papers and Bay Area snippets, porting over all content from http://nhlism.bearblog.dev
It will also highlight lifelab, the system where I actually take the notes.
Sub-pages
- ML engineer discovers pagination2026-03-15
- ai2026-03-06
- bottom bar2026-02-26
- Matryoshka software2026-02-23
- Finally hit the limit2026-02-20
- What does damn this is hard mean in LLM era2026-01-30
- The courage to delete2026-01-23
- logbook2026-01-05
- Advent Of Code2025-12-16
- LifeLab vs Tiddlywiki2025-11-29
- what is lifelab PKM edition2025-11-29
- what is lifelab user edition2025-11-29
- what is lifelab data scientist edition2025-11-29
- what is lifelab techie edition2025-11-29
- screenshots2025-11-28