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

Archive

9,678 entries: 88 from X, 8,928 from Pinboard, saved 1998 to 2026.

Browse by tag, site, author, folder or language

Tags

Sites

Authors

Folders

Languages

Showing 1,601–1,650 of 9,678

2023

emulation

jart/blink: tiniest x86-64-linux emulator -- blink is a virtual machine that runs x86-64-linux programs on different operating systems and hardware architectures. It's designed to do the same thing as the qemu-x86_64 command, except that:

  1. Blink is 221kb in size (115kb with optional features disabled), whereas qemu-x86_64 is a 4mb binary.
  2. Blink will run your Linux binaries on any POSIX system, whereas qemu-x86_64 only supports Linux.
  3. Blink goes 2x faster than qemu-x86_64 on some benchmarks, such as SSE integer / floating point math. Blink is also much faster at running ephemeral programs such as compilers.

blinkenlights is a terminal user interface that may be used for debugging x86_64-linux or i8086 programs across platforms. Unlike GDB, Blinkenlights focuses on visualizing program execution.

notes#emulation

100-page-book

There is a niche for "small"ish books of about 100 pages that can be useful for

  • survey books
    • "what is there to know about X"
    • "what's new in X since Y event/version/year"
  • deep dive into a niche topic
    • "asyncio in python and how it is used in web applications"
    • "asyncio in python and how it can be used in non-web settings"

These small books should also be formatted for easy consumption over phone/tablet screen.

Why would this be a book vs a blog post?

There are many blog posts that have lives longer than published books, papers and manuscripts. I think thinking of a book forces a certain structure on the author and the content. Secondly, even a self-published book (a downloadable PDF) obtains the sheen a "product" vs writing, which some might desire.

Some exampled I can think of in this genre:

notes#publishing

sideproject

An educational side project -- article by Gergely Orosz

Challenging projects every programmer should try - Austin Z. Henley

Why I prefer making useless stuff - Austin Z. Henley

My Approach to Building Large Technical Projects – Mitchell Hashimoto

Darius Kazemi, Tiny Subversions - XOXO Festival (2014) - YouTube Most people are lucky if they finish a couple side projects in a year. Last year, Darius Kazemi released 72, averaging one every five days. His projects fall under what he calls “weird internet stuff” — bots that generate random Amazon purchases, surreal metaphors, rap battle lyrics, pickup lines, and everything in between. In "How I Won the Lottery," Darius explains how he became a successful lottery player, and with hard work and a little luck, how you can too. Recorded in September 2014 at XOXO, an arts and technology festival in Portland, Oregon celebrating independent artists using the Internet to make a living doing what they love.

notes#sideproject

Jupyter

Do not misuse Jupyter, understand the limitations -- "Notebooks are McDonalds of Code."

Books

Teaching and Learning with Jupyter An open book about Jupyter and its use in teaching and learning.

Tools

seeM/Jim: Jim is a simple, beautiful Jupyter notebook editor for macOS (last commit in 2023)

nbdev – Create delightful software with Jupyter Notebooks Write, test, document, and distribute software packages and technical articles — all in one place, your notebook.

voila -- Voilà allows you to convert a Jupyter Notebook into an interactive dashboard that allows you to share your work with others.

Alternatives / Improvements

marimo "is a reactive notebook for Python that models notebooks as dataflow graphs: run a cell or interact with a UI element, and marimo automatically runs affected cells, keeping code and outputs consistent and preventing bugs before they happen. Every marimo notebook is stored as pure Python, executable as a script, and deployable as an app." ;Lessons learned reinventing the Python notebook | marimo

nteract "NATIVE INTERACTIVE NOTEBOOKS"

In other languages

See also: srcbookdev/srcbook: JS/TS notebook for typescript.

Clerk in clojure is another alternative to jupyter note books.

Livebook.dev is for elixir.

See Data Apps for frameworks.

notes#jupyter#notebook#python

serverless

what is a common name for online services like stackblitz, vercel, railway.app, fly.io ?

( per ChatGPT4)

Online services like stackblitz, vercel, Railway.app, Fly.io, and others are commonly referred to as "Cloud Development Platforms" or "Serverless Platforms". They provide various functionalities such as real-time online coding environments, deployment, hosting, and scaling of web applications, among others.

These services essentially make it easier for developers to build, test, and deploy their applications, without worrying about the underlying infrastructure. As a result, they can focus more on writing the code and less on managing servers, hence the term "serverless".

Additionally, they could also be grouped under terms like "Continuous Deployment Services", "Cloud Application Platforms", or "Platform as a Service (PaaS)" depending on their specific features and functionalities.

See also: PaaS, ServerlessHorrors

notes#cloud#serverless#web

openpolicyagent

Home Page: Open Policy Agent Policy-based control for cloud native environments. Flexible, fine-grained control for administrators across the stack

use OPA to decouple policy from the service's code so you can release, analyze, and review policies (which security and compliance teams love) without sacrificing availability or performance. Stop using a different policy language, policy model, and policy API for every product and service you use. Use OPA for a unified toolset and framework for policy across the cloud native stack.

Declarative policy (sample code):

Policy:

package application.authz

import future.keywords

# Only owner can update the pet's information
# Ownership information is provided as part of OPA's input
default allow := false

allow if {
	input.method == "PUT"
	some petid
	input.path = ["pets", petid]
	input.user == input.owner
}

Input:

{
    "method": "PUT",
    "owner": "bob@hooli.com",
    "path": [
        "pets",
        "pet113-987"
    ],
    "user": "alice@hooli.com"
}

Output:

{
    "allow": false
}

Rego is the playground to write and evalute policies against input.

See also:

notes#nixos#openpolicyagent

utm

UTM  is a full featured system emulator and virtual machine host for iOS and macOS. It is based off of QEMU. In short, it allows you to run Windows, Linux, and more on your Mac, iPhone, and iPad.

UTM employs Apple's Hypervisor virtualization framework to run ARM64 operating systems on Apple Silicon at near native speeds.

Run multiple instances of macOS (Monterey or higher) on your Apple Silicon Mac with UTM. This can be useful for developers as well as security conscious users.

UTM looks and feels like a Mac app with all the privacy and security features you expect as well.

While QEMU is powerful, it can be difficult to set up and configure with its plethora of command line options and flags. UTM is designed to give users the flexibility of QEMU without the steep learning curve that comes with it.

utmapp/UTM: Virtual machines for iOS and macOS - apache licensed.

notes#qemu#utm

dns

Learn

Learning Center — NsLookup.io -- set of articles on DNS, record types, email & dns, domain names, operations, security and command line tools (nslookup).

How DNS works. What is DNS? Learn how step by step. -- a colorful comic to explain DNS.

New talk: Learning DNS in 10 years by https://jvns.ca including some details on how to use wireshark.

Tools

  • Doggo "Command-line DNS client for humans", written in Go. Has human-readable, color coded console output. Has json output. See also dog; doggo is dog + go.

  • shovel.report (showing report for this domain.)

notes#dns

transformers

8 Google Employees Invented Modern AI. Here’s the Inside Story | WIRED

Transformers from Scratch

Transformers were introduced in this 2017 paper as a tool for sequence transduction—converting one sequence of symbols to another. The most popular examples of this are translation, as in English to German. It has also been modified to perform sequence completion—given a starting prompt, carry on in the same vein and style. They have quickly become an indispensible tool for research and product development in natural language processing.

The Python Library

Transformers provides APIs and tools to easily download and train state-of-the-art pretrained models.. save you the time and resources required to train a model from scratch. These models support common tasks in different modalities, such as:

  • NLP - text classification, named entity recognition, question answering, language modeling summerization, translation, mulitple choice, and text generation.
  • Computer vision - image classification, object detection, and segmentation
  • Audio - automatic speech recognition and audio classification
  • Multimodal - table question answering, optical character recognition, information extraction from scanned documents, video classification and visual question answering.

transformers support interop between pytorch, tensorflow, and jax. WIth this one can use a diff framework at each stage of a model's lifecycle; train, load, and inference. models can be exported to format like ONNX and torchscript for deployment in prod envs.

Read the documentation here : https://huggingface.co/docs/transformers/index


Sentence Transformers (sbert)

Python module for accessing, using, and training state-of-the-art text and image embedding models. It can be used to compute embeddings using Sentence Transformer models (quickstart) or to calculate similarity scores using Cross-Encoder models (quickstart). This unlocks a wide range of applications, including semantic search, semantic textual similarity, and paraphrase mining.

notes#ai#huggingface#llm

Hugging Face

Hugging Face is a company that focuses on natural language processing (NLP) and artificial intelligence (AI) research. They are best known for their open-source library called "transformers," which provides state-of-the-art general-purpose architectures for NLP tasks. These architectures include BERT, GPT, RoBERTa, T5, and others, which are pre-trained on large datasets and can be fine-tuned for specific tasks such as sentiment analysis, machine translation, question-answering, and more.

Hugging Face's mission is to advance AI research and democratize access to powerful NLP tools for developers, researchers, and organizations. Their platform offers an ecosystem of resources, including pre-trained models, datasets, and community-contributed tools, making it easier for users to implement and experiment with cutting-edge NLP technologies.

Getting started instructions

2023-05-07From their website on creating a new account:

Getting started with our git and git-lfs interface

If you need to create a repo from the command line (skip if you created a repo from the website)

$ pip install huggingface_hub
$ huggingface-cli login
$ huggingface-cli repo create repo_name --type {model, dataset, space}

Clone your model or dataset locally

Make sure you have git-lfs installed (https://git-lfs.github.com)

$ git lfs install
$ git clone https://huggingface.co/username/repo_name

Then add, commit and push any file you want, including larges files

# save files via `.save_pretrained()` or move them here
$ git add .
$ git commit -m "commit from $USER"
$ git push

In most cases, if you're using one of the compatible libraries, your repo will then be accessible from code, through its identifier: username/repo_name.

For example for a transformers model, anyone can load it with:

 tokenizer = AutoTokenizer.from_pretrained("username/repo_name") model = AutoModel.from_pretrained("username/repo_name")](https://huggingface.co/welcome)

-- Deploy Evidence on Hugging Face Spaces; see evidence.

notes#ai#huggingface#llm

LangChainAI

LangChainAI, is a framework (python library, and also javascript), for developing application powered by llm.

  1. Be data-aware: connect a language model to other sources of data
  2. Be agentic: Allow a language model to interact with its environment

Value props of LangChainAI:

  1. components:
    1. schema
    2. models
    3. prompts
    4. indexes
    5. memory
    6. chains
    7. agents
  2. use-case specific chains.
    1. personal assistants
    2. question answering over docs
    3. chatbots
    4. querying tabular data
    5. interacting with APIs
    6. extraction
    7. evaluation
    8. summerization

notes#llm

macOS

MacOS Applications

zero-native | Desktop Apps with Zig + WebView "Build native desktop apps with web UI. Tiny binaries. Minimal memory. Instant rebuilds."

looks interesting

but haven't bought/installed it.

TinyWeb | The Tiniest, Bezeless HTTP Client

New Mac Setup

notes#apple#operating-system#unix

kafka

Articles

The Log: What every software engineer should know about real-time data's unifying abstraction | LinkedIn Engineering; the origins.

Gently Down the Stream -- a gentle introduction to apache Kafka using illustrations.

Hosted Kafka: Upstash: Serverless Data for Redis® and Kafka®.

Why Apache Kafka doesn't need fsync to be safe — Jack Vanlightly; Apr 2023.

Kafka vs Redpanda Performance - Do the claims add up? — Jack Vanlightly; May 2023. Seven part series.

Kafka is dead, long live Kafka - WarpStream WarpStream is an Apache Kafka® protocol compatible data streaming platform built directly on top of S3. It's delivered as a single, stateless Go binary so there are no local disks to manage, no brokers to rebalance, and no ZooKeeper to operate. WarpStream is 5-10x cheaper than Kafka in the cloud because data streams directly to and from S3 instead of using inter-zone networking, which can be over 80% of the infrastructure cost of a Kafka deployment at scale.

See tisonkun/morax: Message queue and data streaming based on cloud native services. for an "Open Source Warpstream"

Use Cases and Architectures for Kafka at the Edge - Kai Waehner -- "Single Broker Kafka".

Kafka Zero Copy

Deep dive into Apache Kafka storage internals: segments, rolling and retention; 2021.

Libraries

Apache Beam -- unified programming model for batch and streaming data processing pipelines that simplifies large-scale data processing dynamics.

Jikkou --  open-source framework that enables self-serve resource provisioning. It allows developers and DevOps teams to easily manage, automate, and provision all the resources needed for their Apache Kafka platform. Describe the entire desired state of any resource you need to manage using YAML descriptor files.

Tools

via

  • kafka connect

  • kafka streams

  • schema registry

  • REST proxy

  • cruise control "continuously monitors the cluster’s metrics and automatically reacts based on that to alleviate things has to be there"

  • ksqlDB - streaming Kafka over SQL.

  • Strimzi operator - Sets up Kafka and associated components in Kubernetes

  • kafka-ui -- view schemas and connectors, while also allowing you to manage multiple Kafka clusters.

  • Kroxylicious | Network proxy framework for Apache Kafka. "Topic encryption, policy-enforcement, multi-tenancy, audit and much more." --

  • kadeck | ‍Kafka UI

Kafka-like

Iggy.rs "is the persistent message streaming platform written in Rust, supporting QUIC, TCP (custom binary specification) and HTTP (regular REST API) transport protocols. Currently, running as a single server, it allows creating streams, topics, partitions and segments, and send/receive messages to/from them. The messages are stored on disk as an append-only log, and are persisted between restarts. The goal of the project is to make a distributed streaming platform (running as a cluster), which will be able to scale horizontally and handle millions of messages per second."

notes#kafka

typesense

Typesense  is a modern, privacy-friendly, open source search engine built from the ground up using cutting-edge search algorithms, that take advantage of the latest advances in hardware capabilities. Typesense can be used to build blazing-fast search experiences, faceted navigation experiences, geo-search, vector search, semantic search, similarity search and much more. The Open Source Alternative to Algolia, The Easier To Use Alternative to Elasticsearch


https://bfritscher.github.io/typesense-dashboard/ via @bigthingist

Typesense dashboard

notes#elasticsearch#vectordb

elasticsearch

See typesense as C++ implemented alternative to elasticsearch and algolia (and some claims of it being a candidate for use as vector-databases)

Story about HorizonDB -- How we replaced Elasticsearch and MongoDB with Rust and RocksDB. I don't think the product is Open Source, but it is interesting to see all the different libraries they used: tantivy, fasttext, rust, apache-spark, LightGBM, fst, RocksDB ..

Elasticsearch Was Never a Database or "Elasticsearch: Search Index, Not System of Record" by paradedb devs.

notes#elasticsearch

roapi

roapi/roapi: Create full-fledged APIs for slowly moving datasets without writing a single line of code. -- ROAPI automatically spins up read-only APIs for static datasets without requiring you to write a single line of code. It builds on top of Apache Arrow and Datafusion. The core of its design can be boiled down to the following:

  • Query frontends to translate SQL, GraphQL and REST API queries into Datafusion plans.
  • Datafusion for query plan execution.
  • Data layer to load datasets from a variety of sources and formats with automatic schema inference.
  • Response encoding layer to serialize intermediate Arrow record batch into various formats requested by client.

notes#apache-arrow#api#datafusion#graphql#rest#rust

graphql

Don't use GraphQL -- Why, after 6 years, I’m over GraphQL; May 2024, via

Introduction

Describe your data:

type Project {
  name: String
  tagline: String
  contributors: [User]  }

Ask for what you want:

{
  project(name: "GraphQL") {
    tagline
    }
}

Get predictable results:

{
  "project": {
    "tagline": "A query language for APIs"
    }
}

Tools

Use roapi to create GraphQL frontend for static datasets without writing code.

notes#api#graphql

watchfiles

Watchfiles is a file watching and code reload in python, written in rust.

Usage:

# pip install watchfiles
from watchfiles import watch

for changes in watch('./path/to/dir'):
    print(changes)

Also supports async via awatch:

import asyncio
from watchfiles import awatch

async def main():
    async for changes in awatch('/path/to/dir'):
        print(changes)

asyncio.run(main())

Alternatives

notes#nix#python#rust

Apache Arrow

Apache Arrow Project: https://arrow.apache.org/

Sub Projects

See also

Articles

Apache Arrow Uses
Apache Arrow Uses
[via](https://x.com/Dipankartnt/status/1773903690371326436).

notes#analytics#arrow#bigdata

Processing

Home page: Processing.org

The Nature of Code (A CC by NC licensed #book) uses processing.

an online resource and print book exploring the unpredictable evolutionary and emergent properties of nature in software via the creative coding framework Processing. 2024 version with a new and rebooted version of this book built around JavaScript and the p5.js library. The book has a few new coding tricks this time, but it’s the same old nature—birds still flap their wings, and apples still fall on our heads.

Welcome to py5! is a new version of Processing for Python 3.9+. The goal of py5 is to create a version of Processing that is integrated into the Python ecosystem. Built into the library are thoughtful choices about how to best get py5 to work with other popular Python libraries and tools such as Jupyter, numpy, shapely, trimesh,matplotlib, and Pillow. needs Java 17

notes#processing#visualization

htmx

Home page -- </> htmx - high power tools for html

Papers

[@10.1145/3648188.3675127]; PDF

Articles

Presentations

Videos

Resources

Related

See Also

Golang

Python

Django

Elixir

  • phoenix liveview

Ruby

Javascript

From the creator of Ahastack = Astro.js + HTML + Alpine.js

Every feature I add to a new webapp I'm building with Astro + Alpine + htmx + Tailwind + Pocketbase just brings me joy in how simple this stuff can really be. It's delightful. via

Plainweb is a framework using HTMX, SQLite and TypeScript.

plainweb learned from and is heavily inspired by the Grug Brained Developer, SQLite, HTMX, PocketBase, Remix, Litestream and some of the Go proverbs.

dotnet

HTMX for ASP.NET Core Developers - JetBrains Guide

CSS

Franken/UI -- HTML-first, framework-agnostic implementation of shadcn/ui - franken/ui.

notes#html#htmx#javascript#web

Making Websites

What to keep in mind while making websites -- Rediscovering the Small Web - Neustadt.fr

What should a personal website be? - ratfactor

100 things you can do on your personal website | James' Coffee Blog

notes#web

Clickhouse

Introduction

Home page -- Fast Open-Source OLAP DBMS - ClickHouse

clickhouse-local is an easy-to-use version of ClickHouse that is ideal for developers who need to perform fast processing on local and remote files using SQL without having to install a full database server. With clickhouse-local, developers can use SQL commands (using the ClickHouse SQL dialect) directly from the command line, providing a simple and efficient way to access ClickHouse features without the need for a full ClickHouse installation. One of the main benefits of clickhouse-local is that it is already included when installing clickhouse-client. This means that developers can get started with clickhouse-local quickly, without the need for a complex installation process.

curl https://clickhouse.com/ | sh will download a single clickhouse binary, which can be used as clickhouse-local:

./clickhouse local -q "SELECT * FROM file('reviews.tsv', 'TabSeparated')"
# to see the inferred schema
./clickhouse local -q "DESCRIBE file('reviews.tsv')"
# a query
./clickhouse local -q "SELECT
argMax(product_title,star_rating),
max(star_rating)
FROM file('reviews.tsv')"

This can also be used to query data in a parquet file on S3 storage:

./clickhouse local -q "
SELECT count()
FROM s3('https://datasets-documentation.s3.eu-west-3.amazonaws.com/house_parquet/house_0.parquet')"

chDB

embedded SQL OLAP Engine powered by ClickHouse

The birth of chDB - auxten -- "rocket engine on a bicycle". github.

  • In-process SQL OLAP Engine, powered by ClickHouse
  • No need to install ClickHouse
  • Minimized data copy from C++ to Python with python memoryview
  • Input&Output support Parquet, CSV, JSON, Arrow, ORC and 60+more formats, samples
  • Support Python DB API 2.0, example
  • pip install chdb
query = "SELECT distinct city from 'employees.csv' "
res = chdb.query(query, "CSV")
print(res)

See Trying chDB, an embeddable ClickHouse engine for more code examples.

TODO: What's the comparison to duckdb and where would one shine over the other?

Comparisons

[ClickHouse or StarRocks? Here is a DETAILED Comparison | by Tianyi Wang | Dec, 2021 | Medium]; (https://archive.is/llUmZ) (archive).

Articles

Papers

ClickHouse - Lightning Fast Analytics for Everyone ( PDF ) (2024). Youtube Talk.

This paper presents an overview of ClickHouse, a popular open- source OLAP database designed for high-performance analytics over petabyte-scale data sets with high ingestion rates. Its storage layer combines a data format based on traditional log-structured merge (LSM) trees with novel techniques for continuous trans- formation (e.g. aggregation, archiving) of historical data in the background. Queries are written in a convenient SQL dialect and processed by a state-of-the-art vectorized query execution engine with optional code compilation. ClickHouse makes aggressive use of pruning techniques to avoid evaluating irrelevant data in queries. Other data management systems can be integrated at the table function, table engine, or database engine level. Real-world bench- marks demonstrate that ClickHouse is amongst the fastest analyti- cal databases on the market.

Internals

Related

ByConity is a fork of clickhouse by tiktok; it is a distributed cloud-native SQL data warehouse engine, that excels in interactive queries and Ad-Hoc queries, featuring support for querying multiple tables, cluster expansion without sensation, and unified aggregation of offline batch data and real-time data streams.

observability

Clickhouse is winning the Observability Wars July 2026 - Mat Duggan.

  • The amazing thing is that ClickHouse scales without changing shape.
  •  ClickHouse at 10 TB a day looks like ClickHouse at 1 TB a day with more shards. That's it. That's the pitch.

notes#database

typescript

Typescript was created at Microsoft.

Learn

TypeScript Deep Dive by basarat is a good tutorial for TS. It helped me understand various terminology like what what package.json, tsconfig.json are. commonjs modules, exports; setting up projects for various target - node.js vs browsers etc.

Typescript Book by Simone Poggiali.

Cloud

Val Town -- If GitHub Gists could run And AWS Lambda was fun. Val Town is a social website to write and deploy TypeScript. Build APIs and schedule functions from your browser.

notes#javascript#programming-language

pandas

Top level notes

  • Pandas Documentation Homepage
  • Installing (2.0) -- pip install pandas==2.0
    • installing pandas will also install numpy
  • Pandas helps in working with tabular data (databases, spreadsheets)
  • Helps = explore, clean and proess
  • Anything you can do with SQL you can also do with Pandas.
    • Group by operations
  • Summary Statistics. eg., mean, median, std..
  • The data table is called a DataFrame
  • pandas can read (read_ methods) from various file formats like csv, xls, parquet, hdf5, json, sql (db) and generate output (to_ methods) in the above formats.
  • matplotlib is used to generated plots from data tables.
  • split-apply-combine approach. Hmm.. map-reduce?
  • melt() to convert from wide -> long/tidy form and pivot() to convert from long to wide format.
  • combine multiple tables using concat() function for column-wise or row-wise joining
  • for database like joining/merging, use the merge function. pd.merge(tbone, tbtwo, how="left", left_on="col1", right_on="col2"). also merge_asof
  • pandas supports inner, outer, right and left joins.
  • use shape() to find the rowxcolumn shape.
  • TODO: how vectorization is done in pandas
  • TODO: where numpy is faster than pandas
  • TODO: Pyspark with pandas

Quick intro

import numpy as np
import pandas as pd

# create new Series
s = pd.Seres([1,2,3, pd.nan, 8, 121])
# pd.nan = not a number

# pd.date_range("<YYYYMMDD", periods=n) produces a
# a date range starting at YYYYMMDD for the period `n`

# dataframes are created with

df = pd.DataFrame(nparray, index=<indexvec>, columns=list(names))
# the nparray is a 2-d numpy array of mxn dimensions

# the df can also be created by passing a dict with keys as the
# column names and the value as the series.

Articles

notes#python

Obsidian

Obsidian is a knowledge base that works on top of your local folder of plain text files. Think of logseq and roamresearch.

Obsidian Graph
Obsidian Graph, manually exported from the Graph View as a screenshot - 2024-04-05

How I'm using Obsidian

  • This website is orgnized using markdown
  • I open up the content directory as a vault (obsidian word).
  • I edit them as any other markdown file
  • The hotkeys and / commands are handy in writing
  • I use WikiLinks (double square brackets) to link to peer pages, these are converted to HTML links via the Python-Markdown extension. wikilinks = WikiLinkExtension(base_url="/", end_url=".html")

Templates

Creating and using templates in Obsidian.

Use case: I write my notebooks and posts using markdown and ergo obsidian. The two types have a frontmatter that looks like this (taken from this document):

---
title: Obsidian
kind: notebook
date: 2023-04-12
tags:
  - pkm
  - markdown
  - text-editor
---

Using instructions from the templates page, i created _obstemplates directory and added notebook.md as a file with the following content:

---
title: {{title}}
date: {{date}}
kind: post
description: TODO
tags:
  - TODO
---

To use this template, use the "ribbon" and select "Insert Template". voila!

Plugins

I'm using these plugins

  • dataview
  • emoji-toolbar
  • style-settings
  • periodic-notes
  • table-editor

Alfred Workflows

Obsidian published websites

Examples of interesting obsidian published websites

Templater


Related:

Introducing My Knowledge Lakehouse

notes#markdown#pkm#text-editor

Distributed Systems

News

Learning

Learning about distributed systems: where to start? from Prof Murat Demirbas.

MIT 6.824 Distributed Systems (Spring 2020) Videos and Schedule

Dan Creswell's Distributed Systems Reading List I often argue that the toughest thing about distributed systems is changing the way you think. The below is a collection of material I've found useful for motivating these changes.

Articles

Blogs

College Courses

notes#distributed-systems

SVG

TinyVG -- binary format with 10 commands and a readable 20-page spec; can render a large subset of SVG (and has some good criticisms of SVG qua format) 🐥

A Deep Dive Into SVG Path Commands If you've ever looked at the SVG code for an icon before, you might have noticed that they're usually made up of a bunch of path elements, each with a cryptic dattribute.

NN SVG -- Publication-ready NN-architecture schematics; github.

Making noisy SVGs — Daniel Immke via HN (good discussion, tangents and links)

Grainy Gradients | CSS-Tricks - CSS-Tricks

Intro - Notes on SVG parsing

Sites built using SVG

notes#graphics

ConTeXt

Context installation

2022-03-22

If you want to run ConTeXt everywhere, you need to adapt the path, like:

  export PATH=/Users/pradeep/context/tex/texmf-osx-arm64/bin:$PATH

If you run from an editor you can specify the full path to mtxrun:

  /Users/pradeep/context/tex/texmf-osx-arm64/bin/mtxrun --autogenerate --script context --autopdf ...

If you also want to run LuaTeX and MkIV you can provide --luatex but first the file
database has to be generated (this time with context and not mtxrun):

  context --luatex --generate
  context --luatex --make

The following settings were used:

  server   : lmtx.contextgarden.net,lmtx.pragma-ade.com,lmtx.pragma-ade.nl
  instance : install-lmtx
  extras   :
  ownpath  : /Users/pradeep/context
  platform : osx-arm64

notes#typesetting

Vercel

Notes

  • Vercel Markup Many of Vercel's products are built on top of another service. They usually add a significant markup that may not outweigh the convenience. This documents the markup percentage for each service based on their reported pricing, although some numbers are estimates.; via HN

My Vercel hosted pages and apps

Connects using gitlab account.

Below are not deployed using git{hub, lab} integration. direct deployment.

2023-05-01vercel announced storage including KV( redis ), postgresql, and blob powered by cloudflare r2

An alternative for the "expensive" vercel redis is upstash.

notes#vercel#webhosting

Minify HTML

wilsonzlin/minify-html : Extremely fast and smart HTML + JS + CSS minifier, available for Rust, Deno, Java, Node.js, Python, Ruby, and WASM

The Python library on pypi.

Using the Python library:

# code/example_minifyhtml.py
#!/usr/bin/env python

import minify_html

with open("output/index.html") as f:
    t = f.read()
    print(t)
    o = minify_html.minify(
        t,
        do_not_minify_doctype=True,
        keep_spaces_between_attributes=True,
        ensure_spec_compliant_unquoted_attribute_values=True,
    )
    print(o)

notes#html#python