L. Pereira
Bootstrapping a Forth for Art
Toying with a toy Garbage Collector
Macro to lazily initialize globals
Macro to loop over executable sections
Dancing with light
Blurhash-like without JS
Photo: burlington-total-eclipse-lake.jpg
Photo: burlington-total-eclipse-trees.jpg
Photo: tallest-filing-cabinet-in-the-world.jpg
Photo: montreal1.jpg
Photo: montreal2.jpg
Photo: montreal3.jpg
Photo: montreal4.jpg
Photo: montreal5.jpg
Photo: montreal-makbet-poster.jpg
Photo: montreal-poutine-shirt.jpg
Photo: green-montains.jpg
Photo: montreal-rooster-mural.jpg
How async/await works in Lwan
Using emojis to identify threads in log messages
Self-testing C programs on startup
Photo: neon-museum-1.jpg
Photo: neon-museum-2.jpg
Photo: neon-museum-3.jpg
Photo: neon-museum-4.jpg
Photo: death-valley.jpg
Photo: neon.jpg
Photo: freeside.jpg
Photo: red-rock.jpg
Locale-neutral case-insensitve string equality comparison
Using MAP_FIXED_NOREPLACE for JITs
Photo: trusses.jpg
Photo: red-maple.jpg
Photo: sculpture-slc-airport.jpg
Huffman decoder for HPACK
Implementing TLS in Lwan
Implementing a playlist shuffler
Photo: hallway.jpg
Photo: vase-mode-test.jpg
Encoding tables in constants
Choosing your first programming language
Photo: snowtrees.jpg
Photo: fungi.jpg
Converting GW-BASIC to the Z80
Photo: fallout-3d-prints.jpg
Optimizing a JSON serializer (part 1)
Photo: snowy-tree.jpg
Photo: unfurling-bark.jpg
Photo: cray-zy-wires.jpg
Photo: cafe-window.jpg
Photo: sisters-street.jpg
Photo: seattle-on-a-friday.jpg
Photo: sunset-from-microsoft-rooftop.jpg
Lwan: 5 years in snippets
Photo: tetris-on-desk.jpg
Photo: yash.jpg
Photo: penguin-in-bag.jpg
include_next and portability
Photo: toorcamp-homemade-boat.jpg
Photo: toorcamp-orcas-island.jpg
More on string switch in C
Photo: silent-hill-sboro.jpg
Coreboot & LUKS
Parsing JSON
Infect to Protect
Initializing a heap-allocated structure in C
Hybrid C/Pascal Strings
Life of a HTTP request, as seen by my toy web server
Integer to string conversion
Reducing Lwan memory usage by 94%
Implementing sequences in lwan template engine
Partially Applied Functions in C
Mustache templates in C
Programming on an Arduino without a PC
Vectored I/O with mmap() to serve files
Asynchronous I/O in C with Coroutines
Presenting EasyUI
File serving with few system calls
Deferred statements in C
Hash trie
String switch in C
Photo: 4267c3d1a90a3203.jpg
Photo: 452b7ad525999e11.jpg
Photo: 8b5c876dcfbf3f94.jpg
Photo: a1af1e29dcc8db11.jpg
Photo: c31cc122bf500eeb.jpg
Photo: 84ac5582aa56cca1.jpg
Photo: b2029ba270da0007.jpg
Photo: 1a011d95986989d6.jpg
Photo: e02e5072af475e41.jpg
Photo: 4cf8d9bf3d2db577.jpg
Photo: 67187047853a0e26.jpg
Photo: b4bc78654192a759.jpg
Photo: cc858a29e315db0d.jpg
Photo: 622bc6db1206f395.jpg
Photo: 7157f6b806e268aa.jpg
Photo: 9190a57963f7014e.jpg
Photo: 2193d42f007ddda0.jpg
Photo: 87b6ab4aaa0efbf8.jpg
Photo: 388333c7bc7a1744.jpg
Photo: 4a20ca11f8cddc48.jpg
Photo: 590451f0ffdf03aa.jpg
Photo: 830010739211e58a.jpg
Photo: 016a7e7e2c8427f7.jpg
Photo: abc4df638ba59d3e.jpg
Photo: ca60464307d031ea.jpg
Photo: 9c979a9d11ffe3f0.jpg
Photo: cc81c4728a4b8a45.jpg
Photo: 1eb7e52c3d8e6ea5.jpg
Photo: c831b8e265dc4973.jpg
Photo: c97372f2383c890f.jpg
Photo: 1fc34d33f2e51bcc.jpg
Photo: 2a1b6d36bf286018.jpg
Photo: 3355b8142a4bb0d8.jpg
Photo: 15860c33f41a83b9.jpg
Photo: 1867b61164174a16.jpg
Photo: 196e33d82da99510.jpg
Photo: 34f45c75de064ff9.jpg
Photo: 38ed9080d36bd375.jpg
Photo: 755f9aade627bded.jpg
Photo: 9d7405790b96dd9b.jpg
Photo: dcd8916fa4a368ed.jpg
Photo: 1dd5687d60760a23.jpg
Photo: 2b0f15fde466451e.jpg
Photo: b3ec0cbbf11fd26d.jpg
Photo: f57e1eea0433cdef.jpg
Photo: a24e9df02dbdacfc.jpg
Photo: 3149a12aa9e5fbd9.jpg
Photo: 120bf04616adc87e.jpg
Photo: 160331301188901f.jpg
Photo: 166e6873dc3ae6cc.jpg
Photo: 8e2643024ab9a4e9.jpg
Photo: 9a9c4789475e845e.jpg
Photo: d35613c42f59400b.jpg
Photo: 0bdb664a0d567a08.jpg
Photo: 0eb64a41a3dfb986.jpg
Photo: 194def8120123fe8.jpg
Photo: 223e863c8484e9f1.jpg
Photo: 2eb566c511e9da86.jpg
Photo: 33172ee10717ec06.jpg
Photo: 84e66080daea8f5f.jpg
Photo: 89c5b57df5b2913e.jpg
Photo: 9746ea1b2410f91d.jpg
Photo: ae92878da39b1edb.jpg
Photo: bdc8bc35c76ecac1.jpg
Photo: c168f4108ab8c698.jpg
Photo: db0034495db1b403.jpg
Photo: 14d416296a0f3cf8.jpg
Photo: 200192808ca19889.jpg
Photo: 5bed192c0a0a880b.jpg
Photo: 8c3580ed89a61953.jpg
Photo: 902b8519aab27b7e.jpg
Photo: e24d65930aa18c90.jpg
Photo: f5558267fd4c66d5.jpg
Photo: 42df575bbcddc8f6.jpg
Photo: 966a756e68b03873.jpg
Photo: 9b72f9cf171dd005.jpg
Photo: ad7f6dc64c314e46.jpg
Photo: bc9767d109efa1e7.jpg
Photo: db2be2f2557fa4cf.jpg
Photo: 52b4857dd67e8c4a.jpg
Photo: 4657569c12794704.jpg
Photo: 69ac2a2b394fb35f.jpg
Photo: a702e0933ff4cb74.jpg
Photo: aad91b2b728a8041.jpg
Photo: 1db90f836e4ed4c5.jpg
Photo: 1e470084540abf86.jpg
Photo: 249a4be8c7c91092.jpg
Photo: 25b6999d3094b0a9.jpg
Photo: 2a77d4caaae01317.jpg
Photo: 3be8d925b7178135.jpg
Photo: 4a5f454bd7c05fc0.jpg
Photo: 61a7ca89a3b7d7c9.jpg
Photo: 65899ad50872144f.jpg
Photo: 6a1f3ed4c04f2713.jpg
Photo: 6ba11ca35b6391f9.jpg
Photo: 74a4a909c199996f.jpg
Photo: 81cb21ad4d914dfc.jpg
Photo: 8a023b431ffd4d67.jpg
Photo: 9a23e03600eb5a11.jpg
Photo: 9fa94726f284db9d.jpg
Photo: aa9d21e10f7eb9ee.jpg
Photo: abcd7d10e1f6744d.jpg
Photo: b2c016e8cb81095a.jpg
Photo: bd0bdd596eab47f3.jpg
Photo: c854c145320aa534.jpg
Photo: f4444588e11374d5.jpg
Photo: fd283cc3b9845207.jpg
Photo: 256bed6ea28ddf4f.jpg
Photo: 42023dcd314efb66.jpg
Photo: 5a73364aae3dc681.jpg
Photo: 6646877f0ee2955e.jpg
Photo: 8b8ba716434a95ea.jpg
Photo: 8ff6ab4cc85bf0ad.jpg
Photo: af8de67c14ace345.jpg
Photo: fbbf24ebcc448acf.jpg
Photo: 14eb840578e77fd3.jpg
Photo: cce7fc14eafa0e9f.jpg
Photo: f68d00f6ecf770d1.jpg
Photo: 257c4e46dce861c7.jpg
Photo: 45bb34a79261e746.jpg
Photo: 82a6f204a2bbe803.jpg
Photo: 65190aceebe828e1.jpg
Photo: 02beb32a27a894fd.jpg
Photo: e2c7bacf074534cc.jpg
Photo: f6149a1ba36686a3.jpg
Photo: 101d28ab8db9d7e3.jpg
Photo: 7d169dcb3f12e8ba.jpg
Photo: 5f9dec5faef3ff3d.jpg
Photo: 61b3f55c9c484bab.jpg
Photo: 7737eefb9a82ac8b.jpg
Photo: 905fd409baf10e43.jpg
Photo: 48ae5b8dd222c330.jpg
Photo: 927b4d2db3750a62.jpg
Photo: 585f97ba3d9545d4.jpg
Photo: 6072b97dcd3a4126.jpg
Photo: d4bdd93da87ce6d3.jpg
Photo: 117ca8094904f09a.jpg
Photo: 3fd608828c1ffad0.jpg
Photo: 72677aa32aa4161e.jpg
Photo: 9bffcb1b515b351d.jpg
Photo: 18ab6dfcacbe5dfd.jpg
Photo: 571b7cbc758e70e1.jpg
Photo: 78effefcb4d5c3fa.jpg
Photo: 7a57ac9b5bc03d64.jpg
Photo: b47c10d2287c4f58.jpg
Photo: df709cbe7bfb67a8.jpg
Photo: 310e4bdc4b707e2d.jpg
Photo: 5e08e4135855c0ea.jpg
Photo: b0a9a429deecfb50.jpg
Photo: 156906c1367a3563.jpg
Photo: 76e6ac1009ab0055.jpg
Photo: 21e3de669a3f614f.jpg
Photo: dc56404ae950811e.jpg
Photo: 1f91575ee9070129.jpg
Photo: 8269f945a710942e.jpg
Photo: bad3d3d020c9aa7b.jpg
Photo: cd1d9133ef86cbbe.jpg
Photo: d28feaba6744e602.jpg
Photo: 382afa86173d4599.jpg
Photo: 695ed59f1b21ef50.jpg
Photo: 23bb63126c3d814f.jpg
Photo: 459a9c5cf84b413d.jpg
Photo: 7b76886f19f318f6.jpg
Photo: 95a1bb6b6aa56ecb.jpg
Photo: a0cf2f1d84c6b945.jpg
Photo: 7aeaffd3aa95ca38.jpg
Photo: 537b0eeab7691fb6.jpg
Photo: cc6e5858c26a2dd0.jpg
Photo: dafa5931569dc320.jpg
Photo: 00862137cc191382.jpg
Photo: 431ebf46b48e2f13.jpg
Photo: 445b7c87c5ae8a83.jpg
Photo: b43ef0d13e4ab125.jpg
Photo: bd18d79099f43c80.jpg
Photo: 943fd7e3e58271dc.jpg
Photo: 2601299fd51c8d70.jpg
Photo: cb9b901e8193f99c.jpg
Photo: dc403ccc5f5d550c.jpg
Photo: 3e64cc12c43b71c2.jpg
Photo: 82975e4fcddc9895.jpg
Photo: d16cf67b87ed2f15.jpg
Photo: ad8f5ec16c79b9db.jpg
Photo: 0bdb4412af688d73.jpg
Photo: 39b022df0820a879.jpg
Photo: 3f9944e1689fc2fe.jpg
Photo: 4f0305691e03cd0a.jpg
Photo: 93272e230c092315.jpg
Photo: b37c41a5a7fc4188.jpg
Photo: d2e1e3c4d28400a3.jpg
Photo: e12928c63f275785.jpg
Photo: e7ca21184d626ff1.jpg
Photo: f77215f0d3bed221.jpg
Photo: 34e7b1576703b512.jpg
Photo: 457b39a357f1983e.jpg
Photo: e1affc0b92963b06.jpg
Photo: bcf8ebb6353216d8.jpg
Photo: 308a5906365cf2a5.jpg
Photo: 9865f46c216ec3ee.jpg
Photo: 11d1428618d33c9d.jpg
Photo: 3af7f21e91306bbe.jpg
Photo: 4d82540f0a7e566f.jpg
Photo: 8b2bfdc00fad249d.jpg
Photo: fb13b1f92acea5a6.jpg