惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
J
Java Code Geeks
I
InfoQ
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
V
Visual Studio Blog
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
有赞技术团队
有赞技术团队
月光博客
月光博客
Martin Fowler
Martin Fowler
量子位
L
LangChain Blog
B
Blog
Last Week in AI
Last Week in AI
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans

blag

SQLite prefixes its temp files with `etilqs_` - blag Setsum - order agnostic, additive, subtractive checksum - blag Oldest recorded transaction - blag Replacing a cache service with a database - blag SQLite commits are not durable under default settings - blag PSA: SQLite WAL checksums fail silently and may lose data - blag Rickrolling Turso DB (SQLite rewrite in Rust) - blag Collection of insane and fun facts about SQLite - blag How bloom filters made SQLite 10x faster - blag In search of a faster SQLite - blag Galloping Search - blag Building a distributed log using S3 (under 150 lines of Go) - blag Zero Disk Architecture - blag PSA: Most databases do not do checksums by default - blag PSA: SQLite does not do checksums - blag Disaggregated Storage - a brief introduction - blag Why does SQLite (in production) have such a bad rep? - blag SQLite Slaps - blag Now - blag Learning C - blag Snapshot Testing - blag Win: contribution to libSQL (SQLite) codebase - blag Errata in Hekaton MVCC paper - blag Internet is wholesome: MVCC edition - blag It is becoming difficult for me to be productive in Python - blag MongoDB secondary only index - blag Introducing CaskDB – a project to teach you writing a key-value store - blag Recurse Center: Winter Break - blag Recurse Center Day 24: Hacking Go compiler to add a new keyword - blag Recurse Center Day 20: Django v4 upgrade (from v1) - blag
What I want to do at Recurse Center - blag
2021-10-24 · via blag

I will be joining the Recurse Center for their Winter 1 ‘21 batch (Nov 2021 – Feb 2022). I want to use this time learning about systems programming: storage, compilers, networking. I dream of becoming a systems programmer, hacking on databases or message queues, one day 🧑‍💻.

RC is a self-directed programme, so everyone is free to work on things that interest them. They recommend working on things that are challenging to do. This aligns with Andrew NG’s advice on taking on projects you are only 70% qualified for.

I don’t think I will be able to work on all of the following, but I am keeping my options open. Keeping an exhaustive list would also help me to switch to something else if I am stuck on or bored.

A simple KV Store

I want to understand how exactly databases store the data on disk. I would like to explore the different ways it is being done in different databases and implement a simple KV store backed by a B Tree. I find the implementation of a B Tree quite daunting, especially the doubly linked list at the leaf nodes. I am hoping this will also give me an opportunity to learn more about zero-copy.

Implementing a B Tree would also help me with my side project with SQLite. Perhaps, I could exploit the SQLite B Tree API to insert a billion rows if I understand the file format and storage layout.

Hack Go Compiler

I would like to study the Go compiler internals, maybe add a new keyword for fun (e.g. Python style for/else).

A multiplayer game

I want to learn more about sockets, firewalls, NATs etc and make two computers talk, without a central server. Topics to explore: P2P protocols, WebRTC.

Few more ideas

  • Learn about async programming, multi-threading and write a toy green threads implementation
  • Build a toy code search engine, learn about Kythe and Zoekt etc.

Some general aspects I would like to improve upon

  • My low-level design (LLD) skills aren’t good, I’d like to get better at it. I want to learn about how to modularise the code properly, make interfaces, abstractions, and learn about OOPs
  • I would like to get better at communicating my ideas succinctly
  • Writing. Write faster, better and clear
  • Give talks and share ideas

I have never pair programmed with anyone, so looking to pair and collaborate as much as possible. I am planning to allocate 30% of my time for collaboration.