1<!doctype html><html lang=en-us><head><meta charset=utf-8><meta name=generator content="Hugo 0.139.4"><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><meta name=author content><meta property="og:url" content="https://avi.im/blag/"><title>blag</title> 2<meta property="og:title" content="blag"><meta property="og:type" content="website"><meta name=description content><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Source+Code+Pro|Arvo:400,700"><link rel=stylesheet href=/blag/css/highlight.css><link rel=stylesheet href=/blag/css/journal.css><link href=/blag/index.xml rel=alternate type=application/rss+xml title=blag></head><body><div class=container><div class=site-header-nav><header class=site-header><h1>blag</h1><p></p></header><div><span><a href=/blag/about>About</a></span> 3<span><a href=/blag/now>Now</a></span></div></div><article class=posts><section><h2>2026</h2><ol><li><time datetime="2026-04-18 19:40:33 +0530">Apr 18</time> 4<a href=/blag/2026/etilqs/>SQLite prefixes its temp files with `etilqs_`</a></li></ol></section><section><h2>2025</h2><ol><li><time datetime="2025-09-13 19:49:24 +0530">Sep 13</time> 5<a href=/blag/2025/setsum/>Setsum - order agnostic, additive, subtractive checksum</a></li><li><time datetime="2025-09-06 19:53:34 +0530">Sep 06</time> 6<a href=/blag/2025/oldest-txn/>Oldest recorded transaction</a></li><li><time datetime="2025-08-31 19:30:10 +0530">Aug 31</time> 7<a href=/blag/2025/db-cache/>Replacing a cache service with a database</a></li><li><time datetime="2025-08-24 20:46:20 +0530">Aug 24</time> 8<a href=/blag/2025/sqlite-fsync/>SQLite commits are not durable under default settings</a></li><li><time datetime="2025-07-22 18:54:26 +0530">Jul 22</time> 9<a href=/blag/2025/sqlite-wal-checksum/>PSA: SQLite WAL checksums fail silently and may lose data</a></li><li><time datetime="2025-07-20 23:06:59 +0530">Jul 20</time> 10<a href=/blag/2025/rickrolling-turso/>Rickrolling Turso DB (SQLite rewrite in Rust)</a></li></ol></section><section><h2>2024</h2><ol><li><time datetime="2024-12-30 15:23:57 +0530">Dec 30</time> 11<a href=/blag/2024/sqlite-facts/>Collection of insane and fun facts about SQLite</a></li><li><time datetime="2024-12-22 18:03:15 +0530">Dec 22</time> 12<a href=/blag/2024/sqlite-past-present-future/>How bloom filters made SQLite 10x faster</a></li><li><time datetime="2024-12-14 19:48:30 +0530">Dec 14</time> 13<a href=/blag/2024/faster-sqlite/>In search of a faster SQLite</a></li><li><time datetime="2024-12-07 16:41:34 +0530">Dec 07</time> 14<a href=/blag/2024/galloping-search/>Galloping Search</a></li><li><time datetime="2024-11-30 23:16:21 +0530">Nov 30</time> 15<a href=/blag/2024/s3-log/>Building a distributed log using S3 (under 150 lines of Go)</a></li><li><time datetime="2024-11-24 17:20:31 +0530">Nov 24</time> 16<a href=/blag/2024/zero-disk-architecture/>Zero Disk Architecture</a></li><li><time datetime="2024-11-09 21:11:18 +0530">Nov 09</time> 17<a href=/blag/2024/databases-checksum/>PSA: Most databases do not do checksums by default</a></li><li><time datetime="2024-11-09 12:56:46 +0530">Nov 09</time> 18<a href=/blag/2024/sqlite-bit-flip/>PSA: SQLite does not do checksums</a></li><li><time datetime="2024-11-02 18:51:55 +0530">Nov 02</time> 19<a href=/blag/2024/disaggregated-storage/>Disaggregated Storage - a brief introduction</a></li><li><time datetime="2024-06-19 20:00:09 +0530">Jun 19</time> 20<a href=/blag/2024/sqlite-bad-rep/>Why does SQLite (in production) have such a bad rep?</a></li><li><time datetime="2024-06-18 14:50:02 +0530">Jun 18</time> 21<a href=/blag/2024/sqlite-slaps/>SQLite Slaps</a></li><li><time datetime="2024-03-02 15:08:39 +0530">Mar 02</time> 22<a href=/blag/2024/learning-c/>Learning C</a></li><li><time datetime="2024-03-01 18:52:48 +0530">Mar 01</time> 23<a href=/blag/2024/snapshot-testing/>Snapshot Testing</a></li><li><time datetime="2024-02-16 08:45:29 +0530">Feb 16</time> 24<a href=/blag/2024/win-sqlite-contribution/>Win: contribution to libSQL (SQLite) codebase</a></li></ol></section><section><h2>2023</h2><ol><li><time datetime="2023-04-20 22:59:15 +0530">Apr 20</time> 25<a href=/blag/2023/hekaton-paper-typo/>Errata in Hekaton MVCC paper</a></li><li><time datetime="2023-04-20 22:19:15 +0530">Apr 20</time> 26<a href=/blag/2023/internet-mvcc/>Internet is wholesome: MVCC edition</a></li><li><time datetime="2023-02-05 17:56:57 +0530">Feb 05</time> 27<a href=/blag/2023/refactoring-python/>It is becoming difficult for me to be productive in Python</a></li></ol></section><section><h2>2022</h2><ol><li><time datetime="2022-05-22 18:35:44 +0530">May 22</time> 28<a href=/blag/2022/mongo-secondary-index/>MongoDB secondary only index</a></li><li><time datetime="2022-05-10 21:46:11 +0530">May 10</time> 29<a href=/blag/2022/py-caskdb/>Introducing CaskDB â a project to teach you writing a key-value store</a></li><li><time datetime="2022-01-01 19:26:30 +0530">Jan 01</time> 30<a href=/blag/2022/rc-winter-break/>Recurse Center: Winter Break</a></li></ol></section><section><h2>2021</h2><ol><li><time datetime="2021-12-08 13:03:55 +0530">Dec 08</time> 31<a href=/blag/2021/rc-day-24/>Recurse Center Day 24: Hacking Go compiler to add a new keyword</a></li><li><time datetime="2021-12-02 17:18:07 +0530">Dec 02</time> 32<a href=/blag/2021/rc-day-20/>Recurse Center Day 20: Django v4 upgrade (from v1)</a></li><li><time datetime="2021-12-01 13:22:37 +0530">Dec 01</time> 33<a href=/blag/2021/rc-day-19/>Recurse Center Day 19</a></li><li><time datetime="2021-11-30 20:20:58 +0530">Nov 30</time> 34<a href=/blag/2021/rc-day-18/>Recurse Center Day 18</a></li><li><time datetime="2021-11-24 16:13:29 +0530">Nov 24</time> 35<a href=/blag/2021/rc-day-17/>Recurse Center Day 17</a></li><li><time datetime="2021-11-23 16:13:29 +0530">Nov 23</time> 36<a href=/blag/2021/rc-day-16/>Recurse Center Day 16: Open Source</a></li><li><time datetime="2021-11-20 20:15:47 +0530">Nov 20</time> 37<a href=/blag/2021/rc-day-15/>Recurse Center Day 15: B Tree Algorithms</a></li><li><time datetime="2021-11-19 20:15:44 +0530">Nov 19</time> 38<a href=/blag/2021/rc-day-14/>Recurse Center Day 14: NoSQL Transactions</a></li><li><time datetime="2021-11-18 17:39:30 +0530">Nov 18</time> 39<a href=/blag/2021/rc-day-13/>Recurse Center Day 13: Why 'Raft'?</a></li><li><time datetime="2021-11-17 17:39:27 +0530">Nov 17</time> 40<a href=/blag/2021/rc-day-12/>Recurse Center Day 12: Isolation Anomalies</a></li><li><time datetime="2021-11-16 16:07:59 +0530">Nov 16</time> 41<a href=/blag/2021/rc-day-11/>Recurse Center Day 11: B Tree Insertions</a></li><li><time datetime="2021-11-13 23:22:10 +0530">Nov 13</time> 42<a href=/blag/2021/rc-day-10/>Recurse Center Day 10: Learning Distributed Systems</a></li><li><time datetime="2021-11-12 16:35:35 +0530">Nov 12</time> 43<a href=/blag/2021/rc-day-9/>Recurse Center Day 9: Papers We Love</a></li><li><time datetime="2021-11-11 16:00:32 +0530">Nov 11</time> 44<a href=/blag/2021/rc-day-8/>Recurse Center Day 8: B Tree Fill Factor (Part 2)</a></li><li><time datetime="2021-11-10 16:08:08 +0530">Nov 10</time> 45<a href=/blag/2021/rc-day-7/>Recurse Center Day 7: Basics of ncurses</a></li><li><time datetime="2021-11-09 16:20:15 +0530">Nov 09</time> 46<a href=/blag/2021/rc-day-6/>Recurse Center Day 6: B Tree Root</a></li><li><time datetime="2021-11-07 21:08:49 +0530">Nov 07</time> 47<a href=/blag/2021/rc-week-1/>Recurse Center First Week</a></li><li><time datetime="2021-11-06 16:59:29 +0530">Nov 06</time> 48<a href=/blag/2021/rc-day-5/>Recurse Center Day 5: Garbage Collection Algorithms</a></li><li><time datetime="2021-11-05 16:59:22 +0530">Nov 05</time> 49<a href=/blag/2021/rc-day-4/>
49Recurse Center Day 4: B Tree fill factor</a></li><li><time datetime="2021-11-04 01:36:42 +0530">Nov 04</time> 50<a href=/blag/2021/rc-day-3/>Recurse Center Day 3: Hammock Driven Development</a></li><li><time datetime="2021-11-03 00:14:57 +0530">Nov 03</time> 51<a href=/blag/2021/rc-day-2/>Recurse Center Day 2: BTree Node</a></li><li><time datetime="2021-11-02 04:10:59 +0530">Nov 02</time> 52<a href=/blag/2021/rc-day-1/>Recurse Center Day 1: init</a></li><li><time datetime="2021-10-24 19:46:15 +0530">Oct 24</time> 53<a href=/blag/2021/rc-plans/>What I want to do at Recurse Center</a></li><li><time datetime="2021-09-17 19:46:04 +0530">Sep 17</time> 54<a href=/blag/2021/rc-accepted-woooooooo/>Accepted to the Recurse Center!</a></li><li><time datetime="2021-07-17 22:10:44 +0530">Jul 17</time> 55<a href=/blag/2021/fast-sqlite-inserts/>Towards Inserting One Billion Rows in SQLite Under A Minute</a></li><li><time datetime="2021-05-01 14:35:53 +0530">May 01</time> 56<a href=/blag/2021/golang-marshaling-special-fields/>Marshaling Struct with Special Fields to JSON in Golang</a></li><li><time datetime="2021-03-31 19:51:35 +0530">Mar 31</time> 57<a href=/blag/2021/mongo-dupes-in-unique-index/>I ended up adding duplicate records on a unique index in MongoDB</a></li></ol></section><section><h2>2020</h2><ol><li><time datetime="2020-11-29 14:15:53 +0530">Nov 29</time> 58<a href=/blag/2020/gh-actions-hugo/>Setting up Github Actions for Hugo</a></li><li><time datetime="2020-11-29 10:58:48 +0530">Nov 29</time> 59<a href=/blag/2020/moving-to-hugo/>Moving to Hugo</a></li></ol></section><section><h2>2016</h2><ol><li><time datetime="2016-02-20 17:03:00 +0530">Feb 20</time> 60<a href=/blag/2016/sigterm-in-python/>Catching SIGTERM in Python</a></li><li><time datetime="2016-02-19 23:03:00 +0530">Feb 19</time> 61<a href=/blag/2016/git-fork-cycle-github/>Git/Github fork-pull request-update cycle</a></li></ol></section><section><h2>2015</h2><ol><li><time datetime="2015-12-18 14:03:00 +0530">Dec 18</time> 62<a href=/blag/2015/uwsgi-python3/>Using uWSGI with Python 3</a></li><li><time datetime="2015-11-20 22:20:00 +0530">Nov 20</time> 63<a href=/blag/2015/kekday/>When is my Cake Day?</a></li><li><time datetime="2015-10-31 22:20:00 +0530">Oct 31</time> 64<a href=/blag/2015/amazon-treasure-hunt/>Staying Ahead of Amazon, in Amazon Treasure Hunt Contest</a></li><li><time datetime="2015-08-01 22:20:00 +0530">Aug 01</time> 65<a href=/blag/2015/multiple-git-emails/>How I Am Maintaining Multiple Emails For Git On A Same Machine</a></li><li><time datetime="2015-05-31 19:20:00 +0530">May 31</time> 66<a href=/blag/2015/hacking-gaana/>An exploit on Gaana.com gave me access to their entire User Database</a></li><li><time datetime="2015-05-10 22:20:00 +0530">May 10</time> 67<a href=/blag/2015/asus-wrt-merlin-on-netgear-r7000/>Flashing Asus-WRT Merlin by XVortex on NetGear NightHawk R7000</a></li></ol></section><section><h2>2014</h2><ol><li><time datetime="2014-12-28 16:20:00 +0530">Dec 28</time> 68<a href=/blag/2014/install-uefi-windows-yosemite-dualboot/>Install Windows 8 UEFI on Legacy BIOS with Clover (and Dual boot with Yosemite)</a></li><li><time datetime="2014-10-18 14:03:00 +0530">Oct 18</time> 69<a href=/blag/2014/scraping-javascript-website-python/>Scraping Javascript page using Python</a></li></ol></section><section><h2>2013</h2><ol><li><time datetime="2013-12-05 10:20:00 +0530">Dec 05</time> 70<a href=/blag/2013/installing-transmission-raspberry-pi/>Installing Transmission (remote and CLI) client on Raspberry Pi</a></li></ol></section></article><footer class=site-footer><div class=rc-scout style=margin-right:auto;margin-top:auto;font-size:.6rem></div>
70<script async defer src="https://www.recurse-scout.com/loader.js?t=a4aabd5087bb19daf083302de1b46650"></script>
70<span class=person-schema itemscope itemtype=http://schema.org/Person><link itemprop=url href=https://avi.im/blag/><span itemprop=name></span><br><a itemprop=sameAs href=https://github.com/avinassh title=GitHub><img src=/blag/svg/gh.svg alt="icon name"></a> 71<a itemprop=sameAs href=/blag/index.xml title=GitHub><img src=/blag/svg/rss.svg alt="icon name"></a></span></footer></div>
71<script src=/blag/js/highlight.pack.js></script>
71<script>hljs.initHighlightingOnLoad()</script>
71<script data-goatcounter=https://avi.goatcounter.com/count async src=//gc.zgo.at/count.js></script>
71<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"95f18aa5be3f400a9ac94a600d98feec","r":1,"spa":2}' crossorigin="anonymous"></script>
71 72</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.