here you goThings I’ve made, read and saved — shared here.

Archive

9,619 entries: 60 from X, 8,926 from Pinboard, saved 1998 to 2026.

Browse by tag, site, author, folder or language

Tags

Sites

Authors

Folders

Languages

Showing 1,151–1,200 of 9,619

2025

Career Development:  What It Really Means to be a Manager, Director, or VP - Kellblog

kellblog.com

  • Managers are paid to drive results with some support. They have experience in the function, can take responsibility, but are still learning the job and will have questions and need support.  They can execute the tactical plan for a project but typically can’t make it.
  • Directors are paid to drive results with little or no supervision (“set and forget”). Directors know how to do the job.  They can make a project’s tactical plan in their sleep.  They can work across the organization to get it done.  I love strong directors.  They get shit done.
  • VPs are paid to make the plan. Say you run marketing.  Your job is to understand the company’s business situation, make a plan to address it, build consensus to get approval of that plan, and then go execute it.

djrobstep/migra: Like diff but for PostgreSQL schemas

github.com

migra: Like diff but for Postgres schemas

  • compare schemas
  • autogenerate migration scripts
  • autosync your development database from your application models
  • make your schema changes testable, robust, and (mostly) automatic

migra is a schema diff tool for PostgreSQL, written in Python. Use it in your python scripts, or from the command line like this:

$ migra postgresql:///a postgresql:///b
alter table "public"."products" add column newcolumn text;
alter table "public"."products" add constraint "x" CHECK ((price > (0)::numeric));

migra magically figures out all the statements required to get from A to B.

Block YouTube Ads on AppleTV by Decrypting and Stripping Ads from Profobuf

ericdraken.com

I discovered that putting a man-in-the-middle proxy between my Apple TV and the world lets me decrypt HTTPS traffic. From there, I can read the Protocol Buffer data Google uses to populate YouTube with ads. It is too CPU-intensive to decode Protobuf on the fly, so instead, I found a flaw in the Protobuf format which allows me to reliably change one byte to obliterate ads.

What follows is a reference guide for setting up a bare-metal network router to block malicious ads, obnoxious ads, tracking, clickbait, crypto-jackers, scam popups, Windows spying on you, etc. using blocklists to protect all networked devices.

The psychology of learning

metamodular.com

My friend told me that (with respect to this phenomenon) people can be roughly divided into two categories that she called perfection-oriented and performance-oriented.

The people in the category perfection-oriented have a natural intellectual curiosity. They are constantly searching for better ways of doing things, new methods, new tools. They search for perfection, but they take pleasure in the search itself, knowing perfectly well that perfection can not be accomplished. To the people in this category, failure is a normal part of the strive for perfection. In fact, failure gives a deeper understanding of why a particular path was unsuccessful, making it possible to avoid similar paths in the future.

The people in the category performance-oriented on the contrary, do not at all strive for perfection. Instead they have a need to achieve performance immediately. Such performance leaves no time for intellectual curiosity. Instead, techniques already known to them must be applied to solve problems. To these people, failure is a disaster whose sole feature is to harm instant performance. Similarly, learning represents the possibility of failure and must thus be avoided if possible. To the people in this category, knowledge in other people also represents a threat. As long as everybody around them use tools, techniques, and methods that they themselves know, they can count on outperforming these other people. But when the people around them start learning different, perhaps better, ways, they must defend themselves. Other people having other knowledge might require learning to keep up with performance, and learning, as we pointed out, increases the risk of failure. One possibility for these people is to discredit other people's knowledge. If done well, it would eliminate the need for the extra effort to learn, which would fit very well with their objectives.

unraid

I purchased a license for unraid on 2025-02-12 to build my homelab using an existing Lenovo i7 PC from around 2017 or so.

opdroid1234 had some recommendations to upgrade the storage:

  1. get some HDDs from serverpartdeals
  2. and two memory sticks from here (3x Intel Optane Memory M10 SSD M.2 2280 16GB MEMPEK1J016GAL PCIe 3.0 Xpoint NVMe) as [zfs] cache.

notes#homelab#linux

Writing for Developers

manning.com

Bought this book from manning today. However, instead of paying $25.99 for this book alone, I decided to purchase a monthly subscription at $24.99 that would allow me to read all their books online. I also get to keep the PDF and epub of this book. I think this is a good deal.

To more writing and technical blogging!

The DuckDB Local UI

duckdb.org

$ duckdb -ui

can have multiple databases including in memory database attached. Can explore the databases using Table summary, the notebooks are useful in organizing work into notebooks. SQL is the language of the notebooks like [[python]] is for [[jupyter]] notebooks. The notebook cells support syntax highlighting and autocompletion.

The results can be visualized using the column explorer, which shows the summary of the results. It is "type aware", and thus can visulize things like percentiles, median etc.

Interestingly, the the UI extension is all written in [[cpp]] - https://github.com/duckdb/duckdb-ui

re2c — Regular Expressions to Code

re2c.org

lexer generator that supports C/C++, D, Go, Haskell, Java, JavaScript, OCaml, Python, Rust, V, Zig, and can be extended to other languages by implementing a single syntax file. The primary focus of re2c is on generating fast code: it compiles regular expressions to deterministic finite automata and translates them into direct-coded lexers in the target language (such lexers are generally faster and easier to debug than their table-driven analogues). Secondary re2c focus is on flexibility: it does not assume a fixed program template; instead, it allows the user to embed lexers anywhere in the source code and configure them to avoid unnecessary buffering and bounds checks. Internal algorithm used by re2c is based on a special kind of deterministic finite automata: lookahead TDFA. These automata are as fast as ordinary DFA, but they are also capable of performing submatch extraction with minimal overhead. re2c is used in other open-source projects, such as php, ninja, yasm, spamassassin, BRL-CAD, wake, etc.

re2c.orgPinboardPermalink

#regex

Church Of Turing - The Landscape of Lisp

churchofturing.github.io

Tl;dr:

  • If you want a minimalist, elegant Lisp with a strong academic foundation: choose Scheme.
  • If you want a powerful, batteries-included Lisp with a rich standard library and decades of history: choose Common Lisp.
  • If you want a modern Lisp with functional programming, concurrency, and JVM interop: choose Clojure.
  • If you want a beginner-friendly Lisp with great tooling and a focus on education and extensibility: choose Racket.

Age and cognitive skills: Use it or lose it | Science Advances

science.org

Cross-sectional age-skill profiles suggest that cognitive skills start declining by age 30 if not earlier. If accurate, such age-driven skill losses pose a major threat to the human capital of societies with rapidly aging populations. We estimate actual age-skill profiles from individual changes in literacy and numeracy skills at different ages. We use the unique German longitudinal component of the Programme of the International Assessment of Adult Competencies (PIAAC-L) that retested a large representative sample of adults after 3.5 years. Our empirical approach separates age from cohort effects and corrects for measurement error from reversion to the mean. Two main results emerge. First, average skills increase strongly into the forties before decreasing slightly in literacy and more strongly in numeracy. Second, skills decline at older ages only for those with below-average skill usage. White-collar and higher-educated workers with above-average usage show increasing skills even beyond their forties. Women have larger skill losses at older age, particularly in numeracy.

Text-to-SQL is dead 💀 The next generation of querying is agentic - and it’s already here. This paper (…

@victorialslocum

Text-to-SQL is dead 💀

The next generation of querying is agentic - and it’s already here.

This paper (https://arxiv.org/abs/2502.00032) introduces a type of agentic querying called 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻 𝗖𝗮𝗹𝗹𝗶𝗻𝗴 that uses an LLM to structure queries using predefined function calls in https://twitter.com/victorialslocum/status/1897612417237983580/video/1

@victorialslocum Victoria SlocumXPermalink1,683 likes, 232 reposts, 46 replies

Video preview from the post

Model Context Protocol

MCP is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect your devices to various peripherals and accessories, MCP provides a standardized way to connect AI models to different data sources and tools. -- https://modelcontextprotocol.io/introduction

  • To expose your data to AI → Use an MCP server
  • To access data → Build an MCP client

Introducing the Model Context Protocol \ Anthropic from Nov 2024.

Composio.dev's MCP servers:

  • They support hundreds of applications -
  • They manage authentication and authorization for your MCP integration
  • Support for 20,000+ different actions for automation
  • Very easy to integrate with Claude and Cursor

Example usage of MCP: You add Slack, GitHub, and Linear servers to Cursor using Composio-MCP. You can then ask Cursor to work on the top-priority issue from Linear, finish it, submit a pull request to GitHub, and notify the team on Slack. Suddenly, Cursor is not just about coding but an end-to-end workspace.

notes#mcp

Flow Matching and Diffusion Models

diffusion.csail.mit.edu

Diffusion and flow-based models have become the state of the art for generative AI across a wide range of data modalities, including images, videos, shapes, molecules, music, and more! This course aims to build up the mathematical framework underlying these models from first principles. At the end of the class, students will have built a toy image diffusion model from scratch, and along the way, will have gained hands-on experience with the mathematical toolbox of stochastic differential equations that is useful in many other fields. This course is ideal for students who want to develop a principled understanding of the theory and practice of generative AI.

Quartz

Quartz is a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites.

It is often recommended as a publishing companion to obsidian, which is how I use it.

I publish this site using Quartz and cloudflare's workers.

Notes

If you want a statically rendered html (e.g: this page to appear in the directory listing (e.g.: /kannada ), you can create a corresponding .md file for the .html and fill in the title, date, and optionally tags fields.

Quartz sites

See also Quartz showcase

notes#quartz#static-sitegen

Cursor

Purchased on Feb 13, 2025 through Feb 13, 2026. Cancelled renewal on Aug 17, 2025 after 2025-33

Writing Cursor Rules with a Cursor Rule

Notes

Prompt to

"Reflect on 5-7 different possible sources of the problem, distill those down to 1-2 most likely sources, and then add logs to validate your assumptions before we move onto implementing the actual code fix"

notes#cursor#editor

"APL since 1978" in Proceedings of the ACM on Programming Languages

dl.acm.org

The Evolution of APL, the HOPL I paper by Falkoff and Iverson on APL, recounted the fundamental design principles which shaped the implementation of the APL language in 1966, and the early uses and other influences which shaped its first decade of enhancements.

By Roger Hui. (108 pages). Should be a comprehensive historical review of the APL language.

Minions: the rise of small, on-device LMs

hazyresearch.stanford.edu

shift a substantial portion of LLM workloads to consumer devices by having small on-device models collaborate with frontier models in the cloud. By only reading long contexts locally, we reduce cloud costs with minimal or no quality degradation. We imagine a future where an “intelligence layer” running persistently on-device interacts with frontier models in the cloud to deliver applications with cost-effective, “always-on” intelligence.

Reseach by Stanford's Hazy Research.

ollama also has a related blog post

Cites this work: "LLM×MapReduce: Simplified Long-Sequence Processing using Large Language Models"

The proposed LLM×MapReduce framework splits the entire document into several chunks for LLMs to read and then aggregates the intermediate answers to produce the final output. The main challenge for divide-and-conquer long text processing frameworks lies in the risk of losing essential long-range information when splitting the document, which can lead the model to produce incomplete or incorrect answers based on the segmented texts. Disrupted long-range information can be classified into two categories: inter-chunk dependency and inter-chunk conflict. We design a structured information protocol to better cope with inter-chunk dependency and an in-context confidence calibration mechanism to resolve inter-chunk conflicts.

How Core Git Developers Configure Git

blog.gitbutler.com

git butler, Git client for simultaneous branches on top of your existing workflow, talked to git core developers and asked them to help define What git config settings should be defaults by now. Here are some settings that even the core developers change.

# clearly makes git better

[column]
        ui = auto
[branch]
        sort = -committerdate
[tag]
        sort = version:refname
[init]
        defaultBranch = main
[diff]
        algorithm = histogram
        colorMoved = plain
        mnemonicPrefix = true
        renames = true
[push]
        default = simple
        autoSetupRemote = true
        followTags = true
[fetch]
        prune = true
        pruneTags = true
        all = true

# why the hell not?

[help]
        autocorrect = prompt
[commit]
        verbose = true
[rerere]
        enabled = true
        autoupdate = true
[core]
        excludesfile = ~/.gitignore
[rebase]
        autoSquash = true
        autoStash = true
        updateRefs = true

# a matter of taste (uncomment if you dare)

[core]
        # fsmonitor = true
        # untrackedCache = true
[merge]
        # (just 'diff3' if git version < 2.3)
        # conflictstyle = zdiff3 
[pull]
        # rebase = true

read rest of the article on why

Claude 3.7 Sonnet and Claude Code Anthropic

anthropic.com

Anthropic announced new version of Claude today, and it has been received very positively going by the reactions on X. Simon Willison ran it through his usual gauntlet.

The new thing is the claude CLI tool that allows you run commands against Claude api from the command line, which also would be a big aid for programming tasks.

I had unsubscribed from Claude for the last couple of months, and looks like it's time to get back on it.