Why the titles are not subject names but some weird goals kind of thing?
I always had issues relating what I am studying to how I am going to use it. A foolish attempt to resolve this is to mention
the why of the syllabus
instead ofthe syllabus name(subject)
. Also it’s easier to tell the why then to assign a subject because the resources I have under them are somewhat unstructured.
Whenever I have a new information resource, I categorize it at entry. It can go under any one of these:
- This page,
/docs/updates/syllabi
- The full syllabus
- Dump file 1 Technical learning resources (need a better name no cap)
- Dump file 2 Engineering blogposts
- Dump file 3 anti_lib
I try my best to not repeat links across these pages. I have not setup any automated link checker for either duplication/backlinks/linkrots etc.
This is my syllabi created in October'22.
πΌ HB01: How businesses works #
Understand basic economics #
- The personal MBA (Book)
- Economics in One Lesson (Book)
- An-Introduction-to-Stock-Options-for-the-Tech-Entrepreneur-or-Startup-Employee
- Economics Γ©tudes: books, papers and courses
- Supply & Demand: An interactive explainer
- The Guide to Stock Options Conversations | Hacker News
- Marginal Revolution University (Course)
- Financial Markets (Course)
- Microeconomics: The Power of Markets (Course)
- Innovation Systems for Science, Technology, Energy (Course)
Additional cherry for businesses #
- Understand how VCs work
- Venture Dealr
- Startup to exit: Lessons from a first-time founder
- Marketing to Minorities | Patrick McKenzie | BoS 2010
- Strategy Letter V β Joel on Software
- Ask HN: Learning about fundraising as first-time tech founders | Hacker News
- The bubble has popped for unprofitable software companies
- Working for a Dating Website (2015) | Hacker News
- /r/smallbz
Understand how to start #
- The Minimalist Entrepreneur (Book)
- MAKE Bootstrapper Handbook (Book)
- https://x.com/_swanand/status/1802609282380136563 (esop)
- Startup School: The First 100 Days - Stanford CS183F - Spring 2017 - YouTube
- Startup Handbook by Julian Shapiro
- Patio11’s Greatest Hits
- Start Small, Stay Small
- Paul Buchheit at Startup School 08 - YouTube
- Tyler tringas (StoreMapper): Micro Saas - YouTube
- Bootstrapping Side Projects To Profit by Pieter Levels
- David Heinemeier Hansson at Startup School 08 - YouTube
π₯ HB02: Become more confident with problem solving #
Revisit the basics #
- [-] Grokking Algorithms (Book)
- How to solve it (Book)
- [-] Skiena’s Algorithms (Course)
- GoDS (Go Data Structures)
- Bitshifting Operations (Course)
- Primegen Course
- Teaching, Playing, and Programming: Designing a Data Structure
Deal with long term fears #
- How to prove it (Book)
- Graphs
- Dynamic programming
- Optimization
- [-] Recursion
- Hash table & Bloom filters
- Immutable DS
π HB03: Get back at basic math #
Get introduced #
- Do basic school math for 7 days straight from KhanAcademy (Course)
- Why Math? (Book) : Basics Revisit
- Homepage for A Gentle Introduction to the Art of Mathematics
- Notes on the Euler formula - Eli Bendersky’s website
- Pikuma: Fundamental Math for Game Developers
- Calculus Learning Guide β BetterExplained
- Math β Susan Rigetti
- How to Read Mathematics
- An Introduction to Number Theory
- Number theory explained from first principles
Resurface basic comp sci math #
Permutations and numbers #
Linear Algebra #
- Introduction to LA - GS (Book) | Graphical Notes
- Linear Algebra (Course)
- Algebra 1 | Math | Khan Academy
- Life Lesson from Stanford CS Prof John Ousterhout - YouTube
- Essence of linear algebra - YouTube (Course)
- LA done right (Book)
π HB04: Get a grip over Web Development #
Get your HTTP basics right #
- [-] Basics
- How Did REST Come To Mean The Opposite of REST?
- restful is a scam, but browsers are cool | Lobsters
- A New Definition of HTTP
- How HTTPS works - How HTTPS works
- The state of HTTP in 2022
- The HTTP crash course nobody asked for | Hacker News
- Use of HTTPS Resource Records
- Tracing HTTP Requests with tcpflow Β· Anantha Kumaran
- What Is a URL | Azeem Bande-Ali | Engineering Manager
- Introduction to HTTP Multipart | Hacker News
- Headers
- Caching
- SSE
- Cookies
- Usecases
React and Typescript way to mastery #
- Javascript
- JavaScript language overview - JavaScript | MDN
- Learn javascript in Y Minutes
- Modern Javascript: Everything you missed over the last 10 years
- Standard built-in objects - JavaScript | MDN
- [-] JavaScript Garden
- Eloquent JavaScript
- Understanding the Event Loop, Callbacks, Promises, and Async/Await in JS
- React
- State Management
- Client state
- Server state
- Typescript
Get a hold of web engineering #
- High Performance Browser Networking (Book)
- The ultimate single-page app
- Load Testing: An Unorthodox Guide
- Engineering for Slow Internet | Hacker News
- The web’s clipboard, and how it stores data of different types
- Optimizing images with the HTML picture tag | jfhr
- How many ways can you slice a URL and name the pieces? - Tantek
- Improving Performance with HTTP Streaming
- Video
- Devtools
- Browsers
- Web-workers
- Websockets
- The WebSocket Handbook | Hacker News
- Server-Sent Events, WebSockets, and HTTP
- Django 4.2 w async StreamingHttpResponse, SSE and PG LISTEN/NOTIFY
- I Wrote Websockets “From Scratch” - YouTube
- Websockets: The Powerful Protocol
- WebSockets for fun and profit - Stack Overflow Blog
- Implementer’s Guide to WebSockets - Cookie Engineer’s Web Log
- WebSockets: Shaping Real-time Communication | by Atakan Serbes | Oct, 2023 | Medium
- Ask HN: How do you scale WebSocket? | Hacker News
- Woe be unto you for using a WebSocket | Hacker News
- Writing a toy WebSocket server from scratch | Hacker News
- Direct Sockets: Proposal for a future web platform API | Hacker News
- Show HN: DriftDB β an open source WebSocket backend for real-time apps
Time for Webassembly #
- The Go WebAssembly ABI at a Low Level - Xe
- WebAssembly and its platform targets
- WASI Support in Go | Hacker News
- WebAssembly: A new development paradigm for the web - YouTube
- The tug-of-war over server-side WebAssembly
- Reaching the Unix Philosophy’s Logical Extreme with Webassembly - Xe Iaso
- www which wasm works
- Understanding Wasm, Part 2: Whence Wasm - Chris Dickinson
- Determinism is WebAssemblyβs hidden superpower
- Performance of WebAssembly runtimes in 2023 | Frank DENIS random thoughts.
- WebAssembly Text Code Samples | Hacker News
- The State of WebAssembly 2023
- Adding Python support to Wasm Language Runtimes
- missing the point of webassembly | Lobsters
- Understanding every byte in a WASM module | Hacker News
- WASI 0.2.0 and Why It Matters | Hacker News
- FAAS in Go with WASM, WASI and Rust - Eli Bendersky’s website
- Check burntcarrot/wasmninja
- A world to win: WebAssembly for the rest of us | Hacker News , Lobsters
- Tools
- Advanced
- Experiment
Other experiments with web that are worth #
Get your web security right #
- CS253 - Web Security (Course)
- The Copenhagen Book (Book)
- </> htmx ~ Web Security Basics (with htmx)
- Everything You Ever Wanted to Know About Web Authentication
- End-to-End Encryption in the Browser | Excalidraw Blog
- Certificates
- Aiken & Driscoll & Webb (Illustrated TLS and QUIC) π
- Why Certificate Lifecycle Automation Matters | Hacker News
- Introducing Sunlight, a CT implementation built for scalability, ease of operation, and reduced cost - Let’s Encrypt
- We build X.509 chains so you don’t have to | Hacker News
- https://news.ycombinator.com/item?id=41106205
- Pwned Certificates on the Fediverse | Hacker News
- The Certificate Authority model does not work for LAN devices | Lobsters
- X CA manager
- Running oneβs own root Certificate Authority in 2023 | Hacker News
- HTTPS
- Mediocre Engineerβs guide to HTTPS
- TLS Certificate
- The ACME Protocol in Practice and Reality β Matt Holt
- The Embarrassing State of Enterprise ACME Support
- Which Root Certificates should you trust? Find out with CertInfo - Raymii.org
- Ask HN: Why SSL certs are not decentralized? | Hacker News
- Filling in the Knowledge Gap: HTTPS/TLS Certificates | Lobsters
- SSH over HTTPS
- The Difference Between Root Certificate Authorities, Intermediates, and Resellers
- Shortening the Let’s Encrypt chain of trust | Hacker News
- Understanding the Limitations of HTTPS β text/plain
- Easy HTTPS for your private networks | Hacker News
- HSTS preload adoption and challenges
- CSRF, CORS, and HTTP Security headers Demystified
- The fascinating world of HTTP Strict-Transport-Security | Ergomake
- The browsers biggest TLS mistake | Lobsters
- Challenge Types - Let’s Encrypt
- How CDNs Generate Certificates Β· Fly
- SSH PKI on top of Web PKI | Paul’s page
- TLS
- What happens in a TLS handshake? | SSL handshake | Cloudflare
- Announcing Clipper: TLS-transparent HTTP debugging for native apps - jade’s www site
- MITM’ing TLS/SSL for debugging purposes
- TLS overhead - netsekure rng
- Merkle Town: Explore the certificate transparency ecosystem | Hacker News
- SquareLemonm TLS Fingerprinting
- SNI
- Server Name Indication - Wikipedia
- Writing an SNI Proxy in 115 Lines of Go
- Things like green tunnel bypass SNI detection using things like http chunking etc.
- [-] CORS
- [-] Cache your CORS, for performance & profit | HTTP Toolkit
- Public CDNs Are Useless and Dangerous | HTTP Toolkit
- [-] A design philosophy for CORS middleware libraries
- Introduction to CORS for Go programmers - Eli Bendersky’s website
- CORS is such a mess. What are current best practices?
- Figuring out the state of the art in CSRF protection
- [-] CSRF
π HB05: Computer graphics #
Basics of CG #
- A trip through the Graphics Pipeline 2011: Index | The ryg blog
- CS 4600 - Fall 2022 - Introduction to Computer Graphics (Course)
- 3D Programming Fundamentals - YouTube (Series)
- How do I become a graphics programmer?
- The GJK Algorithm: A weird and beautiful way to do a simple thing | Hacker News
- CS 5610/6610 - Interactive Computer Graphics (Course)
- The Book of Shaders (Book)
- LearnOpenGL - Introduction (Book)
- Animation and Interactivity
- https://mrl.cs.nyu.edu/~perlin/graphics/
Ray tracing #
WebGPU #
Easings #
ThreeJS #
- Three.js Tutorials
- I wish I knew this before using React Three Fiber
- GitHub - pmndrs/drei: π₯ useful helpers for react-three-fiber
- React Three Fiber Camera’s Explained
- Build a 3D World in React with Three.js - {React Three Fiber Tutorial}
- The magical world of Particles with React Three Fiber and Shaders
π HB06: Basic security knowledge upgrade #
Server, sessions and web #
OAuth and OIDC and Tokens #
- OAuth2
- OAuth.com - OAuth 2.0 Simplified (Book)
- A simple application of OAuth: Mastodon’s API - Dan Schnau dot com
- Sign in with GitHub in Go - Eli Bendersky’s website
- Google OAuth is broken (sort of) | Hacker News
- OAuth is Not User Authorization
- Oh-Auth β Abusing OAuth to take over millions of accounts | Hacker News
- Why is OAuth still hard in 2023? | Hacker News
- OAuth 2 Simplified β’ Aaron Parecki
- Does OAuth2 have a usability problem? (yes!)
- An Introduction to OAuth 2 | DigitalOcean
- A Guide To OAuth 2.0 Grants - Alex Bilbie
- Understanding OAuth2 and OpenID Connect
- OIDC
- [-] Others
- [-] JWT
For personal knowledge #
Cryptography #
- CSCI-UA.9480: Introduction to Computer Security (Course)
- An intensive introduction to cryptography (Book)
- Cryptography 101 with Alfred Menezes β Video lectures, notes, and exercises in all areas of applied cryptography
- Crypto 101 (Book)
- Practical Cryptography for Developers (Book)
- Cryptography | Computer science | Computing | Khan Academy (Course)
- Intuition for Cryptography | Azeem Bande-Ali | azeemba.com
- Going Bark: A Furryβs Guide to End-to-End Encryption
- On the Word βNonceβ in Cryptography and the UK - Dhole Moments
- https://gist.github.com/geekodour/fa5561f3873af9a3ff1e0675368e91a8
- How To Learn Cryptography as a Programmer
- Cryptography is not Magic
- [-] Passwords
π² HB07: Become functional #
Be at ease with Python #
- Fluent Python, the lizard book (Book)
- Designing Pythonic library APIs
- Welcome! | practical-python
- Ten Python datetime pitfalls, and what libraries are (not) doing about it | Arie Bovenberg
- GitHub - dabeaz-course/python-mastery: Advanced Python Mastery (course by @dabeaz)
- PEP 703 β Making the Global Interpreter Lock Optional in CPython | peps.python.org π (Python GIL)
- Progress on no-GIL CPython [LWN.net]β
- How to create a Python package in 2022
- Things Iβve learned about building CLI tools in Python
- How virtual environments work
- Thoughts on the Python packaging ecosystem | Pradyun Gedam
- Python Packages (Not well known but good)
- Things Iβve learned about building CLI tools in Python
- zedr/clean-code-python: Clean Code concepts adapted for Python
- GitHub - satwikkansal/wtfpython: What the f*ck Python? π± (Satwik all round A1 guy btw!)
- [-] Caching a lot of methods in Python - death and gravity
- [-] Python 3 Module of the Week β PyMOTW 3
- Generator Tricks for Systems Programmers
- David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015 - YouTube
- https://github.com/dabeaz/blog/blob/main/2023/three-problems.md
- https://github.com/dabeaz/blog/blob/main/2023/different-refactoring.md
- David Beazley: Discovering Python - PyCon 2014 - YouTube
- https://github.com/dabeaz/blog/blob/main/2021/barely-interface.md
- Namespaces and Scope in Python β Real Python
- A crash course in Python βcomprehensionsβ and βgeneratorsβ
- What new Python features are the most useful for you? | Hacker News
- Learn by reading code: Python standard library design decisions explained
- Using python decorator with or without parentheses - Stack Overflow
- Data Classification: Does Python still have a need for class without dataclass
- The Hitchhikerβs Guide to Python! β The Hitchhiker’s Guide to Python
- Pythonβs βDisappointingβ Superpowers - lukeplant.me.uk
- Bo Bayles Annex - Yo, I heard you like decorators
Be at ease with shell scripting and my local system #
- Spend time reading manuals for tools that I use
- Get cheatsheets organized. Think shift from cheat to
org-mode+fzf+rg
- Setup some basic emacs snippets for shell scripting
Be building with Golang #
- [-] Basics
- [-] GitHub - teivah/100-go-mistakes: π 100 Go Mistakes and How to Avoid Them
- The absurd cost of finalizers in Go | Lobsters
- Go Enums Suck
- fixing the other go loop bug
- Writing secure Go code | Hacker News
- Debugging Go with stack traces (evanjones.ca)
- How I write unit tests in Go | Hacker News
- Context Control in Go | Hacker News
- A practical introduction to PostgreSQL in Go (Golang)
- Client-side pagination in Go (range-over function edition) - Vladimir Varankin
- Interfaces Are Not Meant for That | Lobsters
- How I write HTTP services in Go after 13 years | Hacker News π
- How Golang Handles HTTP
- Go internals: invariance and memory layout of slices - Eli Bendersky’s website
- Thanos coding style guide
- A Tour of Go
- Effective Go - The Go Programming Language (Book)
- What is a Go function variable? | Lobsters
- Chris’s Wiki blog/programming/GoFinalizerCostsNotes
- Frequently Asked Questions (FAQ) - The Go Programming Language
- What’s the proper way to wrap errors in Go? - YouTube
- a{low:high:max} in Golang β A Rare Slice Trick | Blog | build-your-own.org
- Learn Go with Tests - Learn Go with tests (Course)
- Gopherfest 2015 | Go Proverbs with Rob Pike - YouTube
- [-] More Basics
- Writing HTTP client middleware in Go
- A silly mistake that I made with io.TeeReader
- Which Go router should I use? (with flowchart)
- Structured logging in Go with slog
- How to Use //go:embed Β· The Ethically-Trained Programmer
- Interface Upgrades in Go (2014) | Hacker News
- Error handling in Go web apps shouldn’t be so awkward | Lobsters
- The Two Reasons I Prefer Passing Struct Pointers Around Β· Preslav Rachev
- [-] Concurrency (Not super go specific)
- introconcurrency
- Solving Concurrency Bugs Using Schedules and Imagination | Ankush Menat
- The Little Book of Semaphores β Green Tea Press (Book, mostly pseudo, python and little c)
- Tips for concurrent programming | Lobsters
- Preemption in Go: an introduction - Unskilled
- GopherCon Europe 2024: Raghav Roy - Using Formal Reasoning to Build Concurrent Go Systems - YouTube
- Notes on structured concurrency, or: Go statement considered harmful β njs blog
- Concurrency Freaks: How to (not) invent concurrent algorithms
- Time is not a synchronization primitive | Lobsters
- Concurrency in Go (Course)
- LearnConcurrency Β· golang/go Wiki Β· GitHub
- loong/go-concurrency-exercises
- How itch.io uses Coroutines for non-blocking IO | Lobsters
- The Art of Concurrency in Go with this
- File Locks on Linux | Hacker News
- Data related
π’ HB08: Server Admin and network troubleshooter #
Deploying systems #
- caching - Can one cache and secure a REST API with Cloudflare? - Stack Overflow π
- School Of SRE (Book)
- [-] Infrastructure as Code, Patterns and Practices w Python and Terraform (Book)
- Where does my computer get the time from? | Hacker News (NTP)
- Terraform best practices for reliability at any scale - Substrate
- Can We Make Idiot-Proof Infrastructure pt1? | Lobsters
- Git from the Bottom Up (Book)
- https://github.com/jvns/nginx-playground/ (Read code, tiny app)
- Achieving High Availability with HAProxy and Keepalived
- Sysadmin basics revisit
- 11 years of hosting a SaaS - Alex Ghiculescu’s Newsletter
- DevOps, SRE, and Platform Engineering
- How I write backends
- Building a serverless secured dead drop - Ayende @ Rahien
- Using Atomic Transactions to Power an Idempotent API
- How I run my servers | Lobsters
- Django for Startup Founders
- How Kinopio is Made
- How Mozillaβs Rust dramatically improved our server-side performance
- futurice/backend-best-practices
- The secret inside One Million Checkboxes | Lobsters
- Cheap Infra
- [-] Arc Note: Datasette - Simon Willison
- One process programming notes (with Go and SQLite)
- Life after Heroku: What’s a dev to do? - Reaktor
- Deploying Containers using Nomad and Traefik
- (A few) Ops Lessons We All Learn The Hard Way
Maintaining Services #
- Architecture Notes (Series)
- The Software Architecture of Palia
- How Standard Ebooks serves millions of requests per month with a 2GB VPS; or, a paean to the classic web - Alex Cabal
- Introducing βDatabase Performance at Scaleβ- ScyllaDB (Book)
- A tale of three architectures - daverupert.com
- AWS Well-Architected (AWS, Book/Workshop)
- Why I recommend Renovate over any other dependency update tools Β· Jamie Tanna | Software Engineer
- Reddit - Postmortem
- DSLs are a waste of time | Lobsters
- Gregory Szorc’s Digital Home | Modern CI is Too Complex and Misdirected
- Delivering Value with Platform Engineering - Max Countryman
- How to leverage Cloudflare Stream for high-availability and low-cost video streaming
- So, you want to deploy on the edge? - /dev/knill
- Debugging in production Β· jbd.dev
- Cache invalidation really is one of the hardest problems in computer science β Surfing Complexity
- Debugging latency Β· jbd.dev
- Why All My Servers Have an 8GB Empty File
- Ask HN: Is a self-MitM HTTPS proxy that injects API keys useful?
- Understanding AWS Services for Modern Cloud Architectures - Bas codes
- Determine the number of threads to fire off in a machine w n cores
- Event Sourcing and Microservices β Unix Style
- How to set an ideal thread pool size
- General guidance when working as a cloud engineer
- leandromoreira/cdn-up-and-running
- Learn how to build a simple streaming platform based on the Real Time Messaging Protocol
- Dukaan vs Shopify
- Retries
- [-] Rate limiting
- Load Balancing
- Planning
- SLO
- Scalability
- Understand could costs
Containers #
- [-] Containers
- The podman manning (Book)
- [-] https://github.com/containers/podman/blob/main/docs/tutorials/performance.md
- Using ARG in a Dockerfile β beware the gotcha | Hacker News
- [-] Go, Containers, and the Linux Scheduler | Hacker News
- Troubleshooting containers - iko’s logs
- Containers are chroot with a Marketing Budget - Earthly Blog
- Containers from first principles
- Ramblings from Jessie: Setting the Record Straight: containers vs. Zones
- How to Escape a Container | Hacker News
- Building healthier containers - kintoandar
- What even is a container: namespaces and cgroups
- Learning Containers From The Bottom Up
- [-] Deep dives
- Liz
- [-] Docker
- [-] Production-ready Docker packaging for Python developers
- BuildKit in depth: Docker's build engine explained | Hacker News
- Computers Are Bad: Docker
- Docker and the OCI container ecosystem
- Rails on Docker | Hacker News
- Crafting container images without Dockerfiles | Adolfo OchagavΓa
- Linux post-installation steps for Docker Engine | Docker Documentation
- Run the Docker daemon as a non-root user (Rootless mode) | Docker Documentation
- Docker security | Docker Documentation
- Securing Docker Containers
Kubernetes #
- jamiehannaford/what-happens-when-k8s
- Kubernetes and back - Why I don’t run distributed systems - davd.io
- Bare-Metal Kubernetes, Part I: Talos on Hetzner | Hacker News
- Why Kubernetes needs an LTS | Lobsters
- Running Databases on Kubernetes | QuestDB
- Kubernetes is Not a Hosting Platform β Dan Palmer
- Upgrading Kubernetes - Methodology | Lobsters
- everything-useful-i-know-about-kubectl
Oops! Observability #
- [-] General
- SRE School: Health Checking
- Six ways to shoot yourself in the foot with healthchecks
- SRE School: Instrumentation
- SRE School: No Haunted Forests
- Techniques and numbers for estimating system’s performance from first-principles
- Observability replacing monitoring?
- Ice and Fire: How to read icicle and flame graphs
- Monitoring tiny web services | Hacker News
- [-] Tactical
- “How NOT to Measure Latency” by Gil Tene - YouTube
- Building for Failure: Hidden dangers in Event-Driven Systems β Encore Blog
- librariesio/metrics: What to measure, how to measure it. (this is not really about telemetry)
- Correlating Signals Efficiently in Modern Observability
- [-] Metrics For Your Web Application’s Dashboards
- Monitoring is a Pain | Lobsters
- the two drivers of cardinality.
- Current problems in the alerting space
- Advanced stuff
- [-] Prometheus
- A deep dive into logging ecosystem | Parseable
Oh CI/CD #
Network must be up! #
- General Networking
- Computer Networks: A Systems Approach (Book)
- Computer Networking : Principles, Protocols and Practice
- vlan - Relation between Ethernet and 802.11 headers
- The Internet explained from first principles
- Networks all the way down, part 2. | The ryg blog
- Bridging Networks Across VPS With Wireguard and VXLAN on FreeBSD - IT Notes
- Better IX network quality monitoring
- IP
- What happens when
- Tailscale
What’s up DNS? #
- [-] Why is DNS still hard to learn?
- [-] (All) DNS Resource Records
- Using dig
- Section 2 - Domain Naming (Chapter)
- What happens when you update your DNS?
- DNS “propagation” is actually caches expiring
- Learning Center β NsLookup.io (Nice Series, Read all of it)
- DNS for Rocket Scientists (Book)
- Implementing
- Case studies
- Logs Told Us It Was DNS, It Looked like DNS, It Had to Be DNS, It Wasn’t DNS
- Intercepting t.co links using DNS rewrites | Lobsters
- Journeying into XDP: Fully-fledged DNS service augmentation | APNIC Blog
- DNS0: The European public DNS that makes your internet safer
- Replit - Why We Built Our Own DNS Infrastructure
- What I learned from making a DNS client in Rust
- Chromiumβs impact on root DNS traffic | APNIC Blog
- How does GeoDNS work?
- Hardening unused (sub)domains | Hacker News
- .io domains considered harmful | Lobsters
- The death of a TLD
- The Sisyphean Task Of DNS Client Config on Linux Β· Tailscale
- Deeper fax
- mDNS
π HB09: Remove database fear #
DB general knowledge #
- [-] Stanford intro to DB course (HDD/Course)
- [-] CMU 15-445/645 - Intro to Database Systems (Fall 2019) (Course, Updated 2022!)
- Home - CS 186 (Course)
- Database Design for Google Calendar: a tutorial | Database Design Book π
- Database design of Timelinize
- On-site search design patterns for e-commerce: schema structure, data driven ranking & more
- Database Fundamentals
- Things I Wished More Developers Knew About Databases
- How Modern SQL Databases Are Changing Web Development
- Relational Databases Explained
- Why databases use ordered indexes but programming uses hash tables
- [-] Demystifying Database Transcations | Dinesh Gowda
- [-] Sketch of a Post-ORM
- What is the correct way to model
- [-] Normalization
- [-] Primary Keys
SQL Basics #
- [-] Do you really need foreign keys? | Hacker News
- SQLBolt - Learn SQL - Introduction to SQL
- [-] Learn SQL with Datasette - Tutorial
- SQL Injection Prevention - OWASP Cheat Sheet Series
- https://github.com/remysucre/blog/blob/main/posts/sql-eq.md
- The Case of a Curious SQL Query β’ Buttondown
- Upsert in SQL | Hacker News
- What are some good resources to practice SQL? (Practice through exercises)
- Python: Just Write SQL | Hacker News
- How To Generate SQL Statements with ChatGPT β Ben Forta
- Grouping digits in SQL | Peter Eisentraut
- Ask HN: How do you test SQL? | Hacker News
- Learn SQL with Real Data using Dolt | DoltHub Blog
Context on DBs #
- Architecture of a Database System (Book)
- Readings in Database Systems (Book)
- Wide Column Store NoSQL vs SQL Data Modeling - YouTube
- Scalable OLTP in the Cloud: Whatβs the BIG DEAL?
- Database Migrations
- A primer on Roaring bitmaps: what they are and how they work
- Mini-LSM Overview - LSM in a Week
- What is a Query Optimizer for?
- The growing pains of database architecture
- How Query Engines Work | Hacker News
- Database Performance at Scale: A Practical Guide | SpringerLink (book)
- Things every developer absolutely, positively needs to know about database indexing
- How RocksDB works - Artem Krylysov
- [-] B-tree
- Representing Columns in Query Optimizers β’ Buttondown
- [-] Consistency Models
- Reading lists
Joins #
SQLite #
- SQLite for beginners - YouTube
- Tracking SQLite Database Changes in Git | Lobsters
- Why SQLite? Why Now? π - Tantamanlands
- SQLite the only database you will ever need in most cases
- SQLite: Past, Present, and Future
- Why you should probably be using SQLite | Hacker News
- SQLite’s Automatic Indexes | Hacker News
- SQLite Functions for Working with JSON | Hacker News
- [-] New trends in sqlite
- Deeper dives
- [-] Experiments
- Advanced usage
Postgres #
- The Art of PostgreSQL (Book)
- pg is enough
- My notes on Gitlab’s Postgres schema design (2022) | Hacker News
- Identifying slow PostgreSQL queries | Sophia Willows
- The business information server
- How Postgres Triggers Can Simplify Your Backend Development | The Mythical Engineer
- Inside logical replication in PostgreSQL: How it works
- PostgreSQL Internals: 3 Things to Know About UPDATE Statements | Patrick’s Engineering Blog
- Explaining The Postgres Meme
- An overview of distributed Postgres architectures | Hacker News
- Exploring a Postgres query plan | notes.eatonphil.com
- PostgreSQL Indexes Can Hurt You: Negative Effects and the Costs Involved
- [-] PgBouncer is useful, important, and fraught with peril - JP Camara
- Why people care about PostGIS and Postgres | Hacker News
- Brane Dump: PostgreSQL Encryption: The Available Options
- Building a Streaming Platform in Go for Postgres | Hacker News
- PG advisory locks in Go with built-in hashes | Lobsters
- “UPDATE Considered Harmful” by Jeremy Taylor - YouTube
- Optimizing Postgres’s Autovacuum for High-Churn Tables | Tembo
- Scaling Postgres to 1 Million Connections | Lobsters
- Getting Postgres logs in a GitHub Action
- Understanding partitioning and sharding in Postgres and Citus
- Ways to shoot yourself in the foot with Postgres | Hacker News
- Indexing a column of a large postgres table | Lobsters
- Creating a search engine with PostgreSQL | Hacker News
- PostgreSQL at low level: stay curious! Β· Erthalion’s blog
- The part of Postgres we hate the most: MMVC
- HTTP vs. WebSockets: Which protocol for your Postgres queries at the Edge - Neon
- Postgres as queue | Hacker News
- Postgres operations (wiki has more stuff) / Backup etc.
- I’ve to make sections in notes about replication, migration, backup, recovery, other things that are more specific to handling the data in prostgres and moving it around when needed
- Introducing pgroll: zero-downtime, reversible, schema migrations for Postgres | Lobsters
- Postgres Incremental Backup | Hacker News
- Migrating from Supabase
- Supabase Local Dev: migrations, branching, and observability
Too long Redis #
- Learn Redis the hard way (in production)
- Redis Explained
- Caching patterns - Database Caching Strategies Using Redis
- What are write-through and write-behind caching? | Redisson
- Four ways to shoot yourself in the foot with Redis
- Do You Need Redis? PostgreSQL Does Queuing, Locking, & Pub/Sub
- Build Your Own Redis with C/C++ | Build Your Own Redis with C/C++
- How to Boost Mastodon Server Performance with Redis - The New Stack
π HB10: Become pragmatic #
Gain old wisdom #
- The Pragmatic Programmer (Book)
- How to Design Programs, Second Edition (Book)
- Cognitive Load In Software Development | Lobsters
- Software Engineering’s Greatest Hits - YouTube
- Practices of Reliable Software Design | Lobsters
- paoramen - Fear of over-engineering has killed engineering altogether
- A Sketch of the Biggest Idea in Software Architecture
- HugoMatilla/Refactoring-Summary
- Things software developers should learn about learning | Hacker News
- Software Engineering at Google (Book)
- Wisdom from computing
- Coding theory by Venkatesan Guruswami (Book)
- A guide on how to be a Programmer
- A Philosophy of Software Design | John Ousterhout
- Can Great Programmers Be Taught? - John Ousterhout - Agile LnL - YouTube
- Clever vs Insightful Code β’ Hillel Wayne
Advice by other people #
- My Approach to Building Large Technical Projects β Mitchell Hashimoto
- Code review
- TigerStyle!
- My Heroku values Β· GitHub
- Systems design 2: What we hope we know - apenwarr
- Good performance is not just big O - Julio Merino (jmmv.dev)
- Why Domain-Driven Design?
- In defense of simple architectures
- Always Measure One Level Deeper
- DDD
- Crash course on Domain-Driven Design
- A Daily Practice of Empirical Software Design - Kent Beck - DDD Europe 2023 - YouTube
- Practical DOD β’ 2021 β’ Conference Guide β’ Handmade Seattle (Data Oriented Design) (different from the other DOD)
- The Definition of Senior: A Look at the expectations for Software Engineers
- My Principles for Building Software
- Nat Friedman
- Learnings from 5 years of tech startup code audits
- Things I Learnt from a Senior Software Engineer | Neil Kakkar
- Synchronization is bad for scale
- Stop your (business rules) engines! - Ad Hoc
- My guiding principles after 20 years of programming
- Mike Actonβs Expectations of Professional Software Engineers
- The Hardest thing about Engineering is Requirements
- How to Debug β Embedded in Academia
- Write code that is easy to delete
- Code Doesn’t Happen to You
Testing shit #
Learn more about API design #
General API #
- API Design Patterns (Book)
- Nibble Stew: Plain C API design, the real world Kobayashi Maru test
- No Abstractions: our API design principle | Hacker News
- The importance of verifying webhook signatures | Snyk
- Guidelines for writing useful libraries | Kislay Verma
- Finding and fixing eventual consistency with Stripe events | Lobsters
- What If I Don’t Actually Like My Users?
- The Design of Everyday APIs β roguelynn
- How Do I Make This Hard to Misuse?
- How To Design A Good API and Why it Matters - YouTube
- API Improvement Proposals
Web API design #
- GraphQL vs. REST - Speaker Deck
- Advice for Operating a Public-Facing API - joshua stein
- The Elements of APIs (2021) | Hacker News
- How to (and how not to) design REST APIs | Lobsters
- How to (and how not to) design REST APIs | Lobsters 2
- API Versioning Has No “Right Way”
- How to design better APIs
- Secrets to Great API Design | Nylas
- RFC7807 - Problem Details for HTTP APIs | Paul’s page π
- API Best Practices for crafting superior APIs | Atakan Serbes | Medium
- Webhooks
- Feature Flags
- Pagination
- Extraction
πΊ HB11: Languages and how they are made #
Experiment with Rust #
Experiment with Elixr #
Remove fear of compilers #
- Demitry Udemy Courses (Course)
- Why Split Lexing and Parsing Into Two Separate Phases? | Lobsters
- Distinguishing an Interpreter from a Compiler | Lobsters
- Writing a Compiler is Surprisingly Easy (part 1) | Hacker News
- On Learning Compilers and Creating Programming Languages | Lobsters
- Anders Hejlsberg on Modern Compiler Construction - YouTube
- Lexical Scanning in Go - Rob Pike - YouTube
- Why Take a Compiler Course? β Embedded in Academia
- Why Learn Compilers
- Write a compiler with David Beazley | Cracking The Code
- Why we need to know LR and recursive descent parsing techniques
- How to Compile Your Language
- Mapping High Level Constructs to LLVM IR β Mapping High Level Constructs to LLVM IR documentation
No really, PLT fr #
- A Gentle Intro to PLT
- CAS 761: Generative Programming
- Cuis Smalltalk and the History of Computingβs Future (with Juan Vuletich) - YouTube
- A Tour of the Lisps | Hacker News
- 2017 ACM PPoPP Keynote: It’s Time for a New Old Language - YouTube
- BNF and EBNF: What are they and how do they work?
- The Mathematician’s Weapon | An Introduction to Category Theory, Abstraction and Algebra | #SoME3 - YouTube
- How should I read type system notation? - Programming Language Design and Implementation Stack Exchange
- [1409.2378] Design Guidelines for Domain Specific Languages
- Programming Languages, Part A,B,C (Course)
- CIS352 by Kristopher Micinski
No time for Functional programming #
DIY projects #
- Learn C β’ Build Your Own Lisp (Book)
- An Introduction to Parser Combinators - Varun Ramesh’s Blog
- Tiark’s Notebook - Just write the fucking parser
- Crafting Interpreters (Book) See malavbhavsar/rlox for section 1
- Building a high performance JSON parser | Hacker News
- Writing An Interpreter In Go | Thorsten Ball (Book)
- Writing A Compiler In Go | Thorsten Ball (Book)
- Writing a simple JSON parser | notes.eatonphil.com
- Evaluating Algebraic Expressions using Parser Combinators - Varun Ramesh’s Blog
π¦ HB12: Comfortable w Distributed Systems #
General Dist Sys #
- [-] Courses
- [-] 6.824: Distributed Systems(2020) (Course)
- [-] Distributed Systems lecture series - YouTube (Course, MK)
- https://www.scs.stanford.edu/22sp-cs244b/labs/project.html (good project ideas in dist sys)
- [-] Distributed Systems 3rd edition (Book, 2017)
- Distributed systems for fun and profit (Book, Good for casual reading, might print)
- Hints for Distributed Systems Design π
- “Hopelessness and Confidence in Distributed Systems Design”
- Putting Our Thinking CAP On: Taking a Look at the CAP Theorem | Bo Ingram
- CAP Theorem β FoundationDB 7.1
- Consistent hashing
- Clocks
- Lamport clocks | Lobsters
- Lamport Clocks | Hacker News
- Clocks and Causality - Ordering Events in Distributed Systems
- On Time, clock and ordering paper - ciju
- It’s About Time! - Marc’s Blog
- Who invented vector clocks? - decomposition β al
- Living without atomic clocks: Where CockroachDB and Spanner diverge
- It’s About Time! - Marc’s Blog
- Lamport
- Consensus
- Paxos Algorithm (2 lectures & materials by LL the great) π
- Garage, our self-hosted distributed object storage solution | Hacker News (Read the discussion around raft)
- Raft Viz presentation
- Raft is (Equivalent to) Paxos, VR
- The Raft Consensus Algorithm (2015) | Hacker News
- Implementing a distributed key-value store on top of implementing Raft in Go
- Students' Guide to Raft - Jon Gjengset
- Raft does not Guarantee Liveness in the face of Network Faults (2020) | Lobsters
- How OmniPaxos handles partial connectivity
- Implementing Raft: Part 0 - Introduction - Eli Bendersky’s website
Designing better systems #
- Globally Distributed Postgres Β· Fly
- Software Architecture Design for Busy Developers
- [-] 50 years later, is two-phase locking the best we can do? | Hacker News
- GUIDs Are Not The Only Answer - by Utsav Shah
- Breaking Changes in Distributed Systems | Azeem Bande-Ali | azeemba.com
- Designing Distributed SQL Engine
- A Foolish Consistency: Consul at Fly.io Β· The Fly Blog
- Avoiding fallback in distributed systems (2020) | Lobsters
- Systems design for advanced beginners | Robert Heaton
- AOSA(Volume 2): Scalable Web Arch
- The Log: What every software engineer should know about real-time data
- Message Queues
- Let’s Talk About Queues β’ Talks β’ Conference Guide β’ Handmade Seattle
- Investigating an Event Queue Hang: The Code Works Correctly Β· GitHub
- To Message Bus or Not: Distributed Systems Design
- IPC - Message Queues | Goodnessβs blog
- The Big Little Guide to Message Queues (2020) | Hacker News
- No sleep until we build the ideal pub/sub library in Go | Lobsters
- Simple event broker tries Tiger Style | Lobsters
- Modern Message Queue Services and Cloud Storage - Alibaba Cloud Community
π HB13: Really wanna Systems #
A word of warning for self here, I am interested in this stuff but it seems like there are not too many directly applicable jobs or projects I can work on, so study these accordingly.
But this info in-directly will always be helpful for me in other areas.
Basics #
- spencertipping/shell-tutorial
- Getting Better at Linux With 10 Mini-Projects (Make these with rust)
- Intercepting and modifying Linux system calls with ptrace | notes.eatonphil.com
- Adventures of Linux Userspace at Meta - media.ccc.de
- Greybeard Qualification - Linux Internals - YouTube
- What Is Systems Programming, Really? (2018) | Hacker News
- A simple, arena-backed, generic dynamic array for C
- Getting up in another processes memory - YouTube
- Two kinds of threads pools, and why you need both | Lobsters
- Signals. I spent 2 years to understand this part. - YouTube
- Linux Page Cache for SRE | Viacheslav Biriukov
- FD
Virtualization #
- vijay03/cs378-f19: Repo for CS 378 (Course)
- Sandboxing and Workload Isolation Β· Fly
- Emulator 101
- Firecracker internals: Inside the technology powering AWS Lambda (2021)
- How VT-x, KVM and QEMU Work Together β Binary Debt
- Clocks, Timers and Virtualization silly onions β Opinionated articles
- KVM host in a few lines of code
- Hypervisor Development in Rust Part 1 - memN0ps
- dpw/kvm-hello-world: A minimal kvm example
- Write your Own Virtual Machine
Finally File-systems and Storage #
- http://www.nobius.org/dbg/practical-file-system-design.pdf (Book)
- Building and operating a pretty big storage system called S3 | All Things Distributed
- GitHub - gotoco/dummyfs: Simple Linux Filesystem designed for learning purposes
- Writing a file system from scratch in Rust Β· carlosgaldino
- ext4 Data Structures and Algorithms β The Linux Kernel documentation
- A minimum complete tutorial of Linux ext4 file system (2017) | Hacker News
- Evan Jones
- Basics
- ZFS
Performance #
BPF & eBPF #
- XDP for Game Programmers
- bpfman
- Videos
- lizrice/ebpf-beginners
- eBPF - Introduction, Tutorials & Community Resources
- X-Ray vision for Linux systems | 0x.tools
- BPF, eBPF, XDP and Bpfilter
- tcpdump only uses BPF, not eBPF. BPF is a simpler language that, among other … (Good comment compares BPF and eBPF)
- Notes on BPF & eBPF
- Linux runtime security agent powered by eBPF | Hacker News
- A thorough introduction to eBPF {LWN.net}
- BPF: what’s good, what’s coming, and what’s needed {LWN.net}
- eBPF and systems performance β OβReilly
- Why is the kernel community replacing iptables with BPF?
Strace #
- The Definitive Guide to Linux System Calls | Packagecloud Blog
- Strace little book
- strace Wow Much Syscall strace Wow Much Syscall
- How does strace work? | Packagecloud Blog
- Introduction to strace | The Road to Elysium
- Debugging Software Deployments with strace β The Art of Machinery
- Why strace doesn’t work in Docker
πΈ HB14: Scraping and Archival #
Become spiderman #
- [-] Web Scraping: Data for Everyone | Hacker News
- [-] Youtubeβs Anti-adblock and uBlock Origin - And a Dinosaur
- [-] The business of extracting knowledge from academic publications | Hacker News
- [-] webscraping-open-project (solid outline)
- [-] lorien/awesome-web-scraping (good pointers)
- [-] Learn Playwright & Puppeteer | Checkly
Become spiderman at scale #
- How to crawl a quarter billion webpages in 40 hours | DDI , also HN Thread
- Show HN: how I built the largest open database of Australian law | Hacker News
- Ask HN: Have you ever used anti detect browsers for web scraping?
- Analysis of Bot Protection systems
- How to choose the right proxy service for your bots and scraping
- A Raspberry Pi as a decent residential proxy | wiringbits
Archiving for the greater good #
- Getting Started - Digital Archiving
- WARC
- Web Pages Must Live Forever
- Archiving URLs Β· Gwern.net
- How to archive your work digitally β The Creative Independent
- The business of extracting knowledge from academic publications | Hacker News
- Introduction | Archives, Ethics and the Law in India
- iipc/awesome-web-archiving
Maintaining archives #
γ HB15: Working with data #
Probability and Statistics #
- [-] STATISTICS 101 Playlists β Brandon Foltz
- [-] Statistical Rethinking | Richard McElreath (Book + Course), Follow PyMC implementation
- [-] Stats Without Tears (Book)
- Probably Overthinking It: There is still only one test
- Common statistical tests are linear models (or: how to teach stats)
- Seeing Theory (Book)
- the_statistics_handbook
- Programmers Need To Learn Statistics Or I Will Kill Them All
- StatQuest with Josh Starmer - YouTube
- research!rsc: The Magic of Sampling, and its Limitations
- Percentiles
Do the work with Data science #
- Data Science from Scratch, 2nd Edition (Book)
- Everyday Data Science (Book)
- Data Analysis for Business, Economics, and Policy - Gabors Data Analysis (Book)
- Effective Pandas (Book)
- The Polars vs pandas difference nobody is talking about | Labs
- SQL for data scientists in 100 queries | Hacker News
- Efficient Python Tricks and Tools for Data Scientists (Book)
- Histograms for Probability Density Estimation: A Primer | Hacker News
- Goodbye, Data Science β r y x, r
- Exploratory data analysis for humanities data | Hacker News
- Most data work seems fundamentally worthless | Hacker News
- Why Business Data Science Irritates Me - by shako
- How you average numbers matters
- Exploratory data analysis for humanities data | Hacker News
- SQL for Analysis
- Pandas and Numpy
- Data Analysis with Python (Course)
- Articles: Speed up your data science and scientific computing code
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- pandas 2.0 and the Arrow revolution (part I)
- Pandas Tutorials - YouTube
- 101 NumPy Exercises for Data Analysis (Python) - ML+
- Brandon Rhodes - Pandas From The Ground Up
- Pandas and Polars
- ML and Stats
- Machine Learning/Deep learning π
- Practical Deep Learning for Coders π
- MLC Compulation - Real MLOPS | Home π
- 6.5940
- DeepL Sys Lectures
- Deep Learning @ VU | DLVU
- [2206.13446] Pen and Paper Exercises in Machine Learning
- Introduction β Spinning Up documentation
- [2106.10165] The Principles of Deep Learning Theory
- Machine Learning in C (Episode 1) - YouTube
- Neural Networks: Zero To Hero
- GPT in 60 Lines of NumPy | Jay Mody
- Neural Networks from Scratch in Python - YouTube
- 3Blue1Brown
- Introduction - Hugging Face NLP Course
- Embeddings
- What are embeddings?
- Text embeddings reveal almost as much as text | Hacker News
- Tools to explore
- https://fasttext.cc/
- https://github.com/explosion/floret (fork of fasttext)
- Here comes the Muybridge camera moment but for text. Photoshop too (Interconnected)
- Embeddings: What they are and why they matter
- 40 million embeddings to find who knows what on Hacker News | Wilson Lin
- Embeddings are a good starting point for the AI curious app developer | Hacker News
- SAE what?
- PCA
Data processing #
- Data Engineering
- Data Team | The GitLab Handbook
- Learning Resources - Data Engineering Wiki (Wiki)
- Lessons Learned from Scaling to Multi-Terabyte Datasets β Build Great Things
- Designing Data-Intensive Applications (Book)
- How we improved push processing on GitHub - The GitHub Blog
- The uses and abuses of Cloud Data Warehouses
- Building a weather data warehouse part I: Loading a trillion rows of weather data into TimescaleDB
- Demystifying Text Data with the Unstructured Python Library | Hacker News
- cohost! - “how (not) to write a pipeline”
- Batch processing
- Stream Processing
- Streaming joins are hard | Hacker News
- ATProto for distributed systems engineers - AT Protocol
- Using Clickhouse to scale an events engine Β· getlago/lago Wiki Β· GitHub
- Streaming 101: The world beyond batch β OβReilly
- How do streaming APIs work
- Apache Flink: Batch as a Special Case of Streaming
- A Dash of Technology: The Essentials Behind Building a Streaming API
- Why local state is a fundamental primitive in stream processing β OβReilly
- Case studies
- Parquet: more than just “Turbo CSV”
- Analyzing multi-gigabyte JSON files locally | Lobsters
- Data diffs: Algorithms for explaining what changed in a dataset
- Stream Processing vs Real-time OLAP vs Streaming Database
- Notes on streaming large API responses | Hacker News
- A comparison of data processing frameworks β Kapernikov
- Comparison
- Others
Deploying stuff #
- L1
- L2
- Patterns for Building LLM-based Systems & Products
- Ask HN: Fastest way to turn a Jupyter notebook into a website these days?
- Building LLM applications for production
- Creating a Cost-Effective and Chatbot with OpenAI, AWS, and Discord
- Infrastructure set-up & open-source scripts to train a 70B model from bare metal | Hacker News
- MLOps guide
- https://github.com/featurestoreorg/featurestore-benchmarks
- Chapter 10 Tools for Developing Pipelines | The Pragmatic Programmer for Machine Learning
- https://github.com/stas00/ml-engineering
- Free MLOps course from DataTalks.Club
- MLOps is Mostly Data Engineering. β’ Kostas Heaven on Net
- Designing Machine Learning Products - Made With ML
- MLOps Basics {Week 10}: Summary
LLMs in production #
- Your AI Product Needs Evals β Hamel’s Blog
- Takeaways from Mastering LLMs Course β Swaroop, The Dreamer
- What Weβve Learned From A Year of Building with LLMs β Applied LLMs
- Building A Generative AI Platform
- An Open Course on LLMs, Led by Practitioners β Hamelβs Blog
- Generating structured data with LLMs - Beyond Basics β’ rwilinski.ai
HB17: Analyze, Visualize and Plot! #
Learn to plot #
- Opening Files β An Introduction to VisiData
- The Data Visualisation Catalogue: find the right method for your data | Hacker News
- GitHub - rougier/scientific-visualization-book: An open access book on scientific visualization using python and matplotlib
- Google Sheets - Full Course - YouTube
- Communicating with Interactive Articles
- Applied Plotting, Charting & Data Representation in Python (Course)
- Friends don’t let friends make bad graphs | Hacker News
- The definitive Python data visualization site
- Observable 2.0 | Observable
- Using Gnuplot for ascii charts inside notebooks Β· GitHub
- Visualizing MBTA Data
- Zoomable Circles, a Svelte component for hierarchical data | Hacker News
- Communicating with Interactive Articles
Simulations #
Example case studies #
Random examples to reverse engineer from.
- A baffling scale transform on a chart of university course selection trends
- About Timelines / Di | Observable
- Analysis of compensation, level, and experience details of 19k tech workers
- BuzzFeedNews/everything: An index of all our open-source data
- A Random Sampling of Internet Service Prices around the World
HB18: Get creative w programming #
“It often feels like ‘hacking’ to get result.”
Get started w it #
HB19: Hello Beep Boop HCI #
Get familiar #
- Ink & Switch β’ 2022 β’ Conference Guide β’ Handmade Seattle
- The future of programming: Research at CHI 2023 - Austin Z. Henley π
- Tools, Computing and Research Labs π
- 7GUIs
- Implementing interactive languages
- Hacker News folk wisdom on visual programming β drossbucket
- HCI-2022 Human Computer Interaction (2022-2023) - YouTube
- mathisonian/awesome-visualization-research
HB20: Understand P2P #
General P2P #
- Brown Uni Course (Backup Drive)
- Peer-to-Peer Protocols and Local Area Networks (Course)
- Show HN: This page exists only if someone is looking at it | Hacker News
- p2p papers
- Some designs for modern peer-to-peer networking | Lobsters
- How we achieved NAT traversal with vanilla WireGuard
- Show HN: TeaTime β distributed book library powered by SQLite, IPFS and GitHub | Hacker News (gud p2p application)
Torrent #
- A crappy course on torrents β fiatjaf
- Whitepapers With Friends: How BitTorrent Really Works
- WebTorrent Workshop
- How do BitTorrent magnet links work? - Stack Overflow
- Building a BitTorrent client from the ground up in Go
- BTFS: BitTorrent Filesystem | Hacker News
- Distributed bittorrent-like social network? | Lobsters
Alternative internet #
Protocols&Encoding #
- Binary Protocols - The Current State of Affairs
- ElixirConf 2016 - Implementing Binary Protocols with Elixir
- A Practical Postgres Protocol Primer - YouTube
- Whatβs In A Bit β Designing, Using And Reverse-engineering Binary File Format
- Cap’n Proto: Introduction
- Cap’n Proto 0.8: Streaming flow control, HTTP-over-RPC, fibers, etc | Lobsters
- Ange Albertini: Funky File Formats - YouTube
Time for WebRTC #
- earlier it was browser based now available outside HN comment
- WebRTC For The Curious (Book)
- Overlay networks based on WebRTC | Hacker News
- WebRTC, GStreamer and HTML5 - Part 1
- Show HN: Bring phone calls into the browser (SIP-to-WebRTC) | Hacker News
- Replacing WebRTC: real-time latency with WebTransport and WebCodecs | Hacker News
- See https://www.youtube.com/@CommCon/streams (Live Section for ‘24 talks)
HB21: Geo and Maps #
Basics #
- Jay Foreman - YouTube
- So You Want To Make A Map?
- Misconceptions
- Should web maps be centralized services?
- State of the Map EU 2023 | Hacker News
- The Overture Maps Foundation: Marc Prioleau - MBM#43 - YouTube
- Engineering Icons Tube Map | Hacker News
- Browsetech Digest: Felt is making browsers make maps [interview]β
Get mapping #
GPS #
HB22: Local First Stuff #
Basics #
- Architectures for Central Server Collaboration - Matthew Weidner π
- A Map of Sync π
- A Local-First Case Study | Hacker News
- Data synchronization - Wikiwand
- The Web After Tomorrow @ tonsky.me
- Local, first, forever - CRDT filesync | Lobsters
- Local-first software: InkandSwitch
- Local-First Software is a Big Deal, Especially for the Web
- @adlrocha - What if we had Local-First Software?
- Lo.Fi (Local First) Meetups - YouTube
- Local-first software - Peter Van Hardenberg - YouTube
- Introduction to local-first applications - YouTube
- βJohannes Schickling: Why Local-First? (Local-First Meetup Berlin #1) - YouTube
- Software possession for personal use | Hacker News
- Johannes Schickling β Local-first app development | App.js Conf 2023 - YouTube
- Developing local-first software - ElectricSQL
- Holistic Local-First Software - Mauve Signweaver - YouTube
- How to almost build an E2EE local-first app | zaynetro
Sync Server/Engine #
- Why is everybody talking about sync engines? | Lobsters
- Are Sync Engines The Future of Web Applications? - DEV Community (Has notes about using w sveltekit as-well)
- An Object Sync Engine for Local-first Apps
- “Building a Sync Engine in Clojure” by Stepan Parunashvili - YouTube
- A Graph-Based Firebase π
- SQLSync - Stop building databases
- Architectures for Central Server Collaboration - Matthew Weidner π
- Building an offline realtime sync engine Β· GitHub π
- Accidental database programming | Hacker News
- Rewriting the heart of our sync engine - Dropbox
- ElectricSQL - Local first SQL with Elixir by James Arthur | Lambda Days 2023 - YouTube
- Browsertech Digest: Figma is a File Editor
- SQLite as a Collaborative & Multiplayer Application File Format - YouTube (tantaman also has other nice videos related to this)
- Tuomas Artman: Real-time sync for web apps and Scaling the Linear Sync Engine
- Building data-centric apps with a reactive relational database
- AWS re:Invent 2019: Build data-driven mobile and web apps with AWS AppSync (MOB402) - YouTube
- Closing The Gap Between Your Users And Their Data
- In Search of a Local-First Database | Jared Forsyth.com
- Local-first sync for Postgres from the inventors of CRDTs - ElectricSQL
- Reverse engineering Linear’s sync magic
Game network engines #
- GDC Vault - I Shot You First: Networking the Gameplay of HALO: REACH
- Game Networking | Gaffer On Games π
- Fast-Paced Multiplayer: Sample Code and Live Demo - Gabriel Gambetta π
- Game Physics | Gaffer On Games
- Networked Physics | Gaffer On Games
- Fixing the Internet for Games | Gaffer On Games
- Why can’t I send UDP packets from a browser? | Gaffer On Games
- Showdown: High vs. Low Ping Player - YouTube
- https://mas-bandwidth.com/what-is-lag/
- https://mas-bandwidth.com/writing-highly-scalable-backends-in-udp/
- https://mas-bandwidth.com/writing-scalable-backends-in-udp-the-solution/
- https://mas-bandwidth.com/creating-a-first-person-shooter-that-scales-to-millions-of-players/
- https://mas-bandwidth.com/choosing-the-right-network-model-for-your-multiplayer-game/
- https://mas-bandwidth.com/the-case-for-network-acceleration-for-multiplayer-games/
- https://mas-bandwidth.com/creating-a-matchmaker-for-your-multiplayer-game/
- Netcode
- Souce code review
CRDTs #
- Signals and Threads | State Machine Replication, and Why You Should Care
- A simple way to understand CRDTs
- GitHub - ergl/crdt-ml: CRDTs - Conflict-Free Replicated Data Types for OCaml π
- GitHub - siliconjungle/crdt-tutorials: A repository to teach the fundamentals of CRDTs.
- Ditto stuff
- CRDTs Turned Inside Out
- Algorithm List - Made by Evan
- Causal Trees | Hacker News
- A Framework for Convergence: Creating CRDTs Without Specialized Knowledge
- Trade-offs between Different CRDTs
- Introduction to CRDTs | Zxch3n
- John Mumm - A CRDT Primer: Defanging Order Theory - YouTube
- Keep CALM and CRDT on {pdf} | Hacker News
- CRDTs are basically broken: the minute you look at them you sacrifice any guarantees. This paper proposes a principled “fix”, but what you need is more than a CRDT.
- Paper explores a richer API than that of CRDTs, which guarantees both update and query are meaningful
- CRDTs are a buzzname for lattices storing state. Whats needed is to think latticewise (monotonically) about how you use state, not just store it.
- An interactive intro to CRDTs | Hacker News π
- You might not need a CRDT | Hacker News
- Building a collaborative text editor in Go
- A Gentle Introduction to CRDTs - vlcn.io
- dotJS 2019 - James Long - CRDTs for Mortals - YouTube
- Designing Data Structures for Collaborative Apps - Matthew Weidner
- CRDT: Fractional Indexing | Hacker News
- cola: a text CRDT for real-time collaborative editing
- An introduction to state-based CRDTs
- CRDT Benchmarks | Hacker News
- CRDTs: The Hard Parts - YouTube
- Text CRDTs - PLunch 22/02/24 - Google Slides
- The Art of the Fugue
- Peritext: A CRDT for Rich-Text Collaboration
- Faster CRDTs (2021) | Hacker News
- from seph
HB24: Network Programming #
Network Programming wen #
- Basics
- Unix Network Programming V1 (Book)
- Beej’s Guide to Network Concepts
- So you think you understand IP fragmentation? [LWN.net]β
- OSI and TCP IP Models - Best Explanation - YouTube
- Network Programming Self-Study π
- Endianness, and why I don’t like htons(3) and friends | Lobsters
- Two File Descriptors for Sockets | Hacker News
- epoll: The API that powers the modern internet (2022) | Hacker News
- Modern communication: sockets
- IPC - Unix Signals | Goodnessβs blog
- Sockets
- IP
- TCP
- Why you should understand (a little) about TCP
- Networking 101: Building Blocks of TCP - High Performance Browser Networking (O’Reilly)
- Why TCP needs 3 handshakes | Hacker News
- The quantum state of a TCP port
- Connect() β a new API for creating TCP sockets from Cloudflare Workers
- slow TCP connect on Windows | daniel.haxx.se
- 40 Milliseconds of latency that just would not go away | Hacker News
- Linux Networking: How The Kernel Handles A TCP Connection - YouTube
- Unix Domain Sockets vs Loopback TCP Sockets (2014) | Hacker News
- Network Instrumentation and TCP File Descriptor Hijacking
- Bind before connect β Idea of the day
- It’s always TCP_NODELAY. Every damn time. - Marc’s Blog
- Why TCP Over TCP Is A Bad Idea
- TCP is harder than it looks
- What developers should know about TCP | Hacker News
- Optimizing global message transit latency: a journey through TCP configuration | Hacker News
- The infamous falsehood article
- Falsehoods programmers believe about TCP | Hacker News
- Falsehoods programmers believe about TCP | Lobsters
- Answers the TCP packet or no question
- UDP
- Userspace/Custom stack
- Go & Networking
- Introduction | ΓMQ - The Guide
- Virtual networking 101: Bridging the gap to understanding TAP π
- I sent an Ethernet packet | Hacker News
π HB16: Some Art & Craft is nice #
- Learn MagicaVoxel
- Pixel Art resources
- Paper Engineering
- Making Pop-Up Cards for Beginners (A course by Julia Yus , Graphic Designer)
- Share β Julia Yus (Resources)
- Draw
- Guitar & Music
- Woodwork get tools and find a mentor
HB:23: Electronics & Hardware #
Electronics basics #
Micro-controller #
Radio & Wireless #
- Bluetooth
- Radio
Robotics #
Prototyping/Fab #
- Make It Yourself | Hacker News π
- Hacker Fab | Hacker News
- Building Prototypes Dan Gelbart part 1 of 18 Introduction - YouTube
- HTMAA 2023 (How To Make (almost) Anything MIT) π