Abhinav ๐ŸŒ's Avatar

Abhinav ๐ŸŒ

@abnv.me.bsky.social

Programming languages aficionado, occasional runner, quantified-self enthusiast, and fervent napper. Works as senior software engineer at Google. If you want to follow [โ€ฆ] ๐ŸŒ‰ bridged from โ‚ https://fantastic.earth/@abnv, follow @ap.brid.gy to interact

37 Followers  |  4 Following  |  115 Posts  |  Joined: 14.05.2024  |  1.8716

Latest posts by abnv.me on Bluesky

Video thumbnail

Always nice to have options

10.11.2025 00:09 โ€” ๐Ÿ‘ 9    ๐Ÿ” 52    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 2

RE: https://bots.robots.rodeo/@scream/115523526520806858

This is your sysadmin tooting. https://fantastic.earth is now on #Mastodon 4.5! Please enjoy quote posts responsibly.

10.11.2025 04:44 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Notes for the Week #45 This week note covers the week of 3rdโ€“9th Nov. Perspective * This week has been a downer. Both my child (_A_) and I have been sick with some stomach bug. While we are doing better now, full recovery is yet to be made. * We bought a new bed for _A_! But the paint on the bed smelled so much, we had to move to the guestroom to sleep. And itโ€™s always a pain for me to sleep in a new room. Therefore, Iโ€™ve not slept well in days now ๐Ÿ˜ข. * I wrote a new note about compiler targets. It unexpectedly reached and stayed at the top of lobste.rs for hours! No likes at Hacker News though. * I added dynamic OpenGraph preview images for my posts, such as this one, but learned later that SVG previews are not supported by most platforms. So now I need to rewrite it to produce PNGs. * I started reading the Writing a C compiler book, and Iโ€™m already through 8/20 chapters. Iโ€™ve been looking for a modern compiler book, and I think this one comes quite close. It works with a real-world language (C), compiles all the way to assembly, and deals with optimizations and register allocations. It is a bit light on theory and code, but it complements the older compiler books well. * Iโ€™ve been researching the AST typing problem, specifically its solutions in Haskell. Send me pointers if you know any. * Iโ€™m excited about the Advent of Code this year, more that usual because now it will run for only 12 days. I always found myself running out of steam around the 15th day. I want to do this year in Zig, but I may fall back to Haskell if itโ€™s too difficult. * Some interesting things I read on internet this week: * Writing a C Compiler, in Zig * Longford Marathon If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new #weeknote: https://abhinavsarkar.net/notes/2025-weeknotes-11-09/
#weeknotes #blogging

10.11.2025 02:50 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
A Short Survey of Compiler Backends As an amateur compiler developer, one of the decisions I struggle with is deciding choosing the compiler backends. Unlike the 80โ€™s when people had to target various machine architectures directly, now there are many mature options available. This is a short and very incomplete survey of some of the popular and interesting options. ### Contents 1. Machine Code / Assembly 2. Intermediate Representations 3. Other High-level Languages 4. Virtual Machines / Bytecode 5. WebAssembly 6. Meta-tracing Frameworks 7. Unconventional Backends 8. Conclusion ## Machine Code / Assembly A compiler can always directly output machine code or assembly targeted for one or more architectures. A well-known example is the Tiny C Compiler. Itโ€™s known for its speed and small size, and it can compile and run C code on the fly. Another such example is Turbo Pascal. You could do this with your compiler too, but youโ€™ll have to figure out the intricacies of the _Instruction set_ of each architecture (ISA) you want to target, as well as, concepts like register allocation. ## Intermediate Representations Most modern compilers actually donโ€™t emit machine code or assembly directly. They lower the source code down to a language-agnostic _Intermediate representation_ (IR) first, and then generate machine code for major architectures (x86-64, ARM64, etc.) from it. The most prominent tool in this space is LLVM. Itโ€™s a large, open-source compiler-as-a-library. Compilers for many languages such as Rust, Swift, C/C++ (via Clang), and Julia use LLVM as an IR to emit machine code. An alternative is the GNU C compiler (GCC), via its GIMPLE IR, though no compilers seem to use it directly. GCC can be used as a library to compile code, much like LLVM, via libgccjit. It is used in Emacs to _Just-in-time_ (JIT) compile Elisp. Cranelift is another new option in this space, though it supports only few ISAs. For those who find LLVM or GCC too large or slow to compile, minimalist alternatives exist. QBE is a small backend focused on simplicity, targeting โ€œ70% of the performance in 10% of the codeโ€. Itโ€™s used by the language Hare that prioritizes fast compile times. Another option is libFIRM, which uses a graph-based SSA representation instead of a linear IR. ## Other High-level Languages Sometimes you are okay with letting other compilers/runtimes take care of the heavy lifting. You can transpile your code to a another established high-level language and leverage that languageโ€™s existing compiler/runtime and toolchain. A common target in such cases is C. Since C compilers exist for nearly all platforms, generating C code makes your language highly portable. This is the strategy used by Chicken Scheme and Vala. Or you could compile to C++ instead, like Jank, if thatโ€™s your thing. Another ubiquitous target is JavaScript (JS), which is one of the two options (other being WebAssembly) for running code natively in a web browser or one of the JS runtimes (Node, Deno, Bun). Multiple languages such as TypeScript, PureScript, Reason, ClojureScript, Dart and Elm transpile to JS. Nim interestingly, can transpile to C, C++ or JS. A more niche approach is to target a Lisp dialect. Compiling to Chez Scheme, for example, allows you to leverage its macro system, runtime, and compiler. The Idris 2 and Racket use Chez Scheme as their primary backends. ## Virtual Machines / Bytecode This is a common choice for application languages. You compile to a portable bytecode for a _Virtual machine_ (VM). VMs generally come with features like _Garbage collection_ , _JIT compilation_ , and security sandboxing. The Java Virtual Machine (JVM) is probably the most popular one. Itโ€™s the target for many languages including Java, Kotlin, Scala, Groovy, and Clojure. Its main competitor is the Common Language Runtime, originally developed by Microsoft, which is targeted by languages such as C#, F#, and Visual Basic.NET. Another notable VM is the BEAM, originally built for Erlang. The BEAM VM isnโ€™t built for raw computation speed but for high concurrency, fault tolerance, and reliability. Recently, new languages such as Elixir and Gleam have been created to target it. Finally, this category also includes MoarVMโ€”the spiritual successor to the Parrot VMโ€”built for the Raku (formerly Perl 6) language, and the LuaJIT VM for Lua, and other languages that transpile to Lua, such as MoonScript and Fennel. ## WebAssembly WebAssembly (Wasm) is a relatively new target. Itโ€™s a portable binary instruction format focused on security and efficiency. Wasm is supported by all major browsers, but not limited to them. The _WebAssembly System Interface_ (WASI) standard provides APIs for running Wasm in non-browser and non-JS environments. Wasm is now targeted by many languages such as Rust, C/C++, Go, Kotlin, Scala, Zig, and Haskell. ## Meta-tracing Frameworks _Meta-tracing Frameworks_ are a more complex category. These are not the backend you target in your compiler, instead, you use them to build a custom JIT compiler for your language by specifying an interpreter for it. The most well-known example is PyPy, an implementation of Python, created using the RPython framework. Another such framework is GraalVM/Truffle, a polyglot VM and meta-tracing framework from Oracle. Its main feature is zero-cost interoperability: code from GraalJS, TruffleRuby, and GraalPy can all run on the same VM, and can call each other directly. ## Unconventional Backends Move past the mainstream, and youโ€™ll discover a world of unconventional and esoteric compiler backends. Developers pick them for academic curiosity, artistic expression, or to test the boundaries of viable compilation targets. * Brainfuck: An esoteric language with only eight commands, Brainfuck is _Turing-complete_ and has been a target for compilers as a challenge. People have written compilers for C, Haskell and Lambda calculus. * Lambda calculus: Lambda calculus is a minimal programming languages that expresses computation solely as functions and their applications. It is often used as the target of educational compilers because of its simplicity, and its link to the fundamental nature of computation. Hell, a subset of Haskell, compiles to Simply typed lambda calculus. * SKI combinators: The SKI combinator calculus is even more minimal than lambda calculus. All programs in SKI calculus can be composed of only three combinators: S, K and I. MicroHs compiles a subset of Haskell to SKI calculus. * JSFuck: Did you know that you can write all possible JavaScript programs using only six characters `[]()!+`? Well, now you know. * Postscript: Postscript is also a Turing-complete programming language. Your next compiler could target it! * Regular Expressions? Lego? Cellular automata? ## Conclusion Iโ€™m going to write a compiler from C++ to JSFuck. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I did a short survey of #compiler backends: https://abhinavsarkar.net/notes/2025-compiler-backend-survey/

#compilers #programming #pldev #langdev #blogging

05.11.2025 11:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Notes for the Week #44 This week note covers the week of 27th Oct-2nd Nov. Blue Heights * This week has been rather uneventful. I suppose that is a good thing. * Iโ€™ve been busy at work, something to do with parsing and analyzing SQL. * I wrote a new note in response to the latest blogging challenge. * I wrote first drafts of three blog posts (!), but itโ€™ll probably be a long time before they are ready to be published. * I am running a poll about compiler backends on Mastodon. The results as of the time of publishing this note: > If someone were to write a new compiler book today, what would you prefer the backend to emit? Learning about which backend would help the readers most these days? > > * LLVM (38) > * WASM (19) > * Arm assembly (14) > * X86 assembly (6) > * C (12) > * JavaScript (4) > * Lua (5) > * JVM bytecode (3) > * CIL (2) > * QBE (1) > * I watched a couple of episodes of the latest _Black Mirror_ and _Only Murders in the Building_ TV shows. It was fun. _One Punch Man_ continues to have bad animation, but I like where the plot is going. * IndieWebClub Bangalore session this week was driven by Itihas. We had a long talk and discussion about _Digital Gardens_, their history and purpose, tool and techniques to create and maintain them, and useful workflows. * This weekโ€™s work on the website was mostly fixing bugs and small performance improvements. * I made the rendering of sidenotes in posts faster by moving most functionalities from JavaScript to CSS, and by switching from JQuery to browser APIs. * I also improved the non-JavaScript experience of the website. Iโ€™m proud to say that most of this website is usable without any JavaScript. * Some interesting things I read this week: * The Abode of Salvation: Rohan writes about a favourite childhood boardgame of mine, _Snakes and Ladders_ , and analyzes the probabilities of the gameplay using Reinforcement Learning. * Writing lessons learned after writing a book: Some useful advice if you are planning to write a book. * The Expression Problem and Its Solutions: The expression problem lies at the center of programming language design. Eli Bendersky explores what it is and how to solve it in this popular post. Thatโ€™s all for this week. Reach out to me in the comments. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new #weeknote: https://abhinavsarkar.net/notes/2025-weeknotes-11-02/

#blogging #weeknotes

02.11.2025 05:25 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
photo of the blue sky above branches of a tree

photo of the blue sky above branches of a tree

Right time #photography #silentsunday

02.11.2025 07:47 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Notes for the Week #44 This week note covers the week of 27th Oct-2nd Nov. Blue Heights * This week has been rather uneventful. I suppose that is a good thing. * Iโ€™ve been busy at work, something to do with parsing and analyzing SQL. * I wrote a new note in response to the latest blogging challenge. * I wrote first drafts of three blog posts (!), but itโ€™ll probably be a long time before they are ready to be published. * I am running a poll about compiler backends on Mastodon. The results as of the time of publishing this note: > If someone were to write a new compiler book today, what would you prefer the backend to emit? Learning about which backend would help the readers most these days? > > * LLVM (38) > * WASM (19) > * Arm assembly (14) > * X86 assembly (6) > * C (12) > * JavaScript (4) > * Lua (5) > * JVM bytecode (3) > * CIL (2) > * QBE (1) > * I watched a couple of episodes of the latest _Black Mirror_ and _Only Murders in the Building_ TV shows. It was fun. _One Punch Man_ continues to have bad animation, but I like where the plot is going. * IndieWebClub Bangalore session this week was driven by Itihas. We had a long talk and discussion about _Digital Gardens_, their history and purpose, tool and techniques to create and maintain them, and useful workflows. * This weekโ€™s work on the website was mostly fixing bugs and small performance improvements. * I made the rendering of sidenotes in posts faster by moving most functionalities from JavaScript to CSS, and by switching from JQuery to browser APIs. * I also improved the non-JavaScript experience of the website. Iโ€™m proud to say that most of this website is usable without any JavaScript. * Some interesting things I read this week: * The Abode of Salvation: Rohan writes about a favourite childhood boardgame of mine, _Snakes and Ladders_ , and analyzes the probabilities of the gameplay using Reinforcement Learning. * Writing lessons learned after writing a book: Some useful advice if you are planning to write a book. * The Expression Problem and Its Solutions: The expression problem lies at the center of programming language design. Eli Bendersky explores what it is and how to solve it in this popular post. Thatโ€™s all for this week. Reach out to me in the comments. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new #weeknote: https://abhinavsarkar.net/notes/2025-weeknotes-11-02/

#blogging #weeknotes

02.11.2025 05:25 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on fantastic.earth

Next #Indieweb Club #Bangalore session is scheduled on this Saturday https://blr.indiewebclub.org/#upcoming-event. Get your tickets now!

This will be a writing focused session. This week weโ€™re talking about digital gardens! Our agenda for the discussions is:

- A rapid fire history of digital [โ€ฆ]

29.10.2025 02:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Ten Pointless Facts About Me I love participating in blogging challenges because they give me ready-made prompt to write about. So here is a new one that is doing the rounds: ## Do you floss your teeth? Yes, I do floss my teeth, about 80% of days, which is more than what most Indian can say. Flossing is not big in India, and I didnโ€™t do it most of my life either. But ever since I had a series of painful appointments with my dentist, Iโ€™ve been trying to do it as regularly as I can. ## Tea, coffee, or water? Uh, all of them? Why is water an option? Are there people who donโ€™t drink water? I religiously consume my three liters of water every day. I also have my morning cup of tea or coffee, and my evening cup of tea. I prefer coffee in mornings, though Iโ€™ve been abstaining from it for the last couple of months for health reasons. ## Footwear preference? Iโ€™ve been wearing my ASICS/Nike trainers as my daily footwear for almost a decade now. At home, I prefer slippers. ## Favourite dessert? This is a hard one because I have a massive sweet tooth, but to choose a few: Chomchom, Apple pie, Blueberry cheesecake and Thapthim krop. ## The first thing you do when you wake up? I hug my wife and child and greet them. Then I check my email (I donโ€™t get much mail) and notifications on my phone. ## Age youโ€™d like to stick at? I am actually fine with aging. But if I could stick to an age while being capable of gaining experience and wisdom, Iโ€™d choose 27. ## How many hats do you own? None! Indians donโ€™t wear hats. I do own two (nice) caps, and many beanies. ## Describe the last photo you took? Itโ€™s a selfie with my kid! I take so many of them these days. ## Worst TV show? I find most TV shows boring, and I donโ€™t watch many. There are so many popular ones that my friends talk about watching, and Iโ€™m almost always clueless about them. ## As a child, what was your aspiration for adulthood? To be honest, I just wanted to build things and have fun. Iโ€™m computer programmer now, so I guess I succeeded. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new note with some pointless facts about me: https://abhinavsarkar.net/notes/2025-ten-pointless-facts/ #Pointless10 @daj

#blogging

30.10.2025 14:25 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Chris is. (@offby1@wandering.shop) I have nothing but respect and sympathy for @ThePSF@fosstodon.org in their decision to withdraw from the NSF grant program in order not to compromise on their mission to keep #Python a diverse and welcoming open source community It's hard to turn down that kind of money So, here's my .02c for it, metaphorically. I'll personally make a $1000 donation to help fill in that gap. There are certainly 1500 of us who can spare that much, in the global python community. Who's with me? https://fosstodon.org/@ThePSF/115446659188615376

Itโ€™s worth noting that your employer may match these donations; mine does. So, in the end, this was $2,060 donated to the PSF.

https://wandering.shop/@offby1/115448024565488288

Itโ€™s what I can spare right now; you may not be able to spare as much, but there are tens of thousands of us.

27.10.2025 21:27 โ€” ๐Ÿ‘ 1    ๐Ÿ” 6    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on fantastic.earth

Next #Indieweb Club #Bangalore session is scheduled on this Saturday https://blr.indiewebclub.org/#upcoming-event. Get your tickets now!

This will be a writing focused session. This week weโ€™re talking about digital gardens! Our agenda for the discussions is:

- A rapid fire history of digital [โ€ฆ]

29.10.2025 02:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on fantastic.earth

I'm starting a series of blog posts, in which I write a #bytecode #compiler and a #virtualMachine for arithmetic in #Haskell. We explore the following topics in the series:

- Parsing arithmetic expressions to ASTs.
- Compiling ASTs to bytecode.
- Interpreting ASTs.
- Efficiently executing [โ€ฆ]

02.08.2025 12:38 โ€” ๐Ÿ‘ 0    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Notes for the Week #43 This week note covers the week of 20th-26th Oct. The Loovre * The week started with Diwali. We made a rangoli, lit lamps and decorated with lights. We had great food for breakfast and lunch. The sky was filled with fireworks. It was a lot of fun, especially for my little one. * I wrote a new blog post, concluding my โ€œA Fast Bytecode VM for Arithmeticโ€ series. Some friends have asked me how long it takes me to write these posts, so this time I paid attention. The idea came to me on 28th January 2025, and the series ended on 21st October 2025. So it took me about nine months from conception to end. I did about 70 revisions (commits) of the code, and about 50 revisions of the post text over the months. The end result was over 8300 words of text and 1700 lines of code. * I finally got the count of unread items in my feed reader below 1000. For a while, it peaked around 1800! * The traffic has been a dream this week. The stretch that took me three hours last week, took only 30 minutes this time. This amount of variation is crazy, to be honest. * Iโ€™ve been diving deeper into Jujutsu, and now Iโ€™m quite comfortable with it. I donโ€™t use most of its advanced features on my personal repos, but I still feel like it is much easier than Git. * I finished watching _City the Animation_ , and I absolutely loved it. Itโ€™s wonderful to see a wacky anime about nothing after a long period of remakes and rehashes. I greatly enjoyed the finale that unexpectedly turned into a musical. * Though my health has been improving consistently, this week I faced debilitating shoulder pain caused by my bad posture. I must constantly remind myself that Iโ€™m too old to work for hours in bad postures. Thankfully, the hot water bag and slow stretching helped, and now Iโ€™m feeling better again. * On to regular website updates: * Some friends gave me harsh feedback on the bad readability of the justified text of posts, so it is back to being left aligned. * I added popular posts and notes pages. * We visited some old friends this weekend and it was lovely to catch up after a long gap. We chatted for hours about all things in the world, including good breads, modern cars, investing for future, writing books, making personal software, and setting up routers. They gifted me some keycaps and now my old keyboard looks amazing again. Thatโ€™s all for this week. Write to me in the comments. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new #weeknote: https://abhinavsarkar.net/notes/2025-weeknotes-10-26/

#blogging #weeknotes

26.10.2025 15:59 โ€” ๐Ÿ‘ 1    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Which brings us to the age-old question:

Has nobody done this before because it's hard?
Or because it's really fucking stupid?

26.10.2025 17:22 โ€” ๐Ÿ‘ 15    ๐Ÿ” 28    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Notes for the Week #43 This week note covers the week of 20th-26th Oct. The Loovre * The week started with Diwali. We made a rangoli, lit lamps and decorated with lights. We had great food for breakfast and lunch. The sky was filled with fireworks. It was a lot of fun, especially for my little one. * I wrote a new blog post, concluding my โ€œA Fast Bytecode VM for Arithmeticโ€ series. Some friends have asked me how long it takes me to write these posts, so this time I paid attention. The idea came to me on 28th January 2025, and the series ended on 21st October 2025. So it took me about nine months from conception to end. I did about 70 revisions (commits) of the code, and about 50 revisions of the post text over the months. The end result was over 8300 words of text and 1700 lines of code. * I finally got the count of unread items in my feed reader below 1000. For a while, it peaked around 1800! * The traffic has been a dream this week. The stretch that took me three hours last week, took only 30 minutes this time. This amount of variation is crazy, to be honest. * Iโ€™ve been diving deeper into Jujutsu, and now Iโ€™m quite comfortable with it. I donโ€™t use most of its advanced features on my personal repos, but I still feel like it is much easier than Git. * I finished watching _City the Animation_ , and I absolutely loved it. Itโ€™s wonderful to see a wacky anime about nothing after a long period of remakes and rehashes. I greatly enjoyed the finale that unexpectedly turned into a musical. * Though my health has been improving consistently, this week I faced debilitating shoulder pain caused by my bad posture. I must constantly remind myself that Iโ€™m too old to work for hours in bad postures. Thankfully, the hot water bag and slow stretching helped, and now Iโ€™m feeling better again. * On to regular website updates: * Some friends gave me harsh feedback on the bad readability of the justified text of posts, so it is back to being left aligned. * I added popular posts and notes pages. * We visited some old friends this weekend and it was lovely to catch up after a long gap. We chatted for hours about all things in the world, including good breads, modern cars, investing for future, writing books, making personal software, and setting up routers. They gifted me some keycaps and now my old keyboard looks amazing again. Thatโ€™s all for this week. Write to me in the comments. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new #weeknote: https://abhinavsarkar.net/notes/2025-weeknotes-10-26/

#blogging #weeknotes

26.10.2025 15:59 โ€” ๐Ÿ‘ 1    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on fantastic.earth

Writing an #interpreter for #Brainfuck is almost a rite of passage for any programming language implementer, and itโ€™s my turn now. In this post, I write not one but four Brainfuck #interpreters in #Haskell: https://abhinavsarkar.net/posts/brainfuck-interpreter/

#ProgrammingLanguages #compilers [โ€ฆ]

19.01.2025 16:40 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on hachyderm.io

Introducing my state of the art Linux distro, Ebian. It's secure, performant, and awesome.

https://www.debian.org/ follow the instructions here to get an iso (we use this software project only to bootstrap ebian) and then install it.

Then, run `sudo apt update && sudo apt install emacs`

This [โ€ฆ]

22.10.2025 15:37 โ€” ๐Ÿ‘ 1    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on hachyderm.io

Good morning! I am looking for contract work. If you have 10-15 hours a week of work on a well defined technical project (โ€˜we need to move 6 websites by this dateโ€™, โ€˜we need to hire a team to do an infra migrationโ€™, โ€˜we need to complete an accessibility audit and figure out next stepsโ€™, โ€˜we need [โ€ฆ]

21.10.2025 15:39 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on fantastic.earth

I've written a series of blog posts, in which I write a #bytecode #compiler and a #virtualMachine for arithmetic in #Haskell. We explore the following topics in the series:

- Parsing arithmetic expressions to ASTs.
- Compiling ASTs to bytecode.
- Interpreting ASTs.
- Efficiently executing [โ€ฆ]

21.10.2025 15:12 โ€” ๐Ÿ‘ 1    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
A keyboard with a very long layout. There are only four rows of keys and it's about twice as long as a normal keyboard. It has a large physical volume knob on the left and a number pad on the right.

A keyboard with a very long layout. There are only four rows of keys and it's about twice as long as a normal keyboard. It has a large physical volume knob on the left and a number pad on the right.

This is the Machete Washboard V2 and it fills me with longing even though it makes no sense at all. #mechnicalKeyboard #keyboards

17.10.2025 23:47 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
Notes for the Week #42 This week note covers the week of 13th-19th Oct. A Desert Orchard * Bangaloreโ€”the city I live inโ€”is notorious for its bad traffic. I had a confirmation of it just this week, when I was stuck in a cab for **three entire hours**. The traffic jam made the news, like many such before it, but experiencing it first-hand was a crazy thing. As I sat there in the cab for three whole hours, hungry, thirsty, sleepy but unable to sleep, I became so distraught that it made me challenge my belief that Bangalore is a good city to live in. Something will have to change. * As they say, you are not stuck in traffic, you are traffic. So better learn how to drive in Bangalore by reading this great guide by my friend Kiran. Iโ€™ve been thinking of writing such a piece for years now, but Kiran did it better than I could ever do, so now I donโ€™t have to do it anymore. * I canโ€™t write about my work in details, but I can tell you that I hate shift-reduce conflicts now. * On health, Iโ€™m feeling better with every passing day. Strength, clarity and curiosity is returning to me in waves. * Ankur convinced me to try Jujutsu (JJ), the new VCS that everyone is talking about these days. I configured it on my websiteโ€™s repo, and it somehow deleted all the untracked files! After struggling for a bit, I fixed the repo by running multiple arcane Git commands (`reset/restore`, `for-each-ref`, `update-ref`). My strong suggestion is to deal with all the untracked files before you try JJ, by committing them to branches, or stashes, or adding them to `.gitignore`. JJ has no staging area unlike Git, and commits everything automatically. It also makes it easy to rewrite history, leading to lost commits. Together, they are a great recipe for losing untracked files. Iโ€™m starting to get a hang of JJ now after using it for few days. Iโ€™ve been working with Mercurial for the last six years at Google, so picking up JJ was quite easy for me, as JJ borrows a lot of concepts from Mercurial. The hardest part was abandoning the Git mindset of branches and rebases. * One Punch Man Season 3 is out! Iโ€™ve been waiting for it for six years! I canโ€™t believe it took such a long break, but then the last six years have been pretty terrible for the world so I can understand. * I attended another fun IndieWebClub Bangalore meeting on Saturday. This was a technical session and we had a lively discussion about: * The right domain name for the IndieWebClub Bangalore website. * Adding share buttons to websites. * Pros and cons of adding Open Graph tags to websites. * Rendering charts on server-side for blog posts. * Justifying text on internet. * Automation. We finally **launched** the IndieWebClub Bangalore website at blr.indiewebclub.org! I also wrote a note for the writing exercise. * Moving on to personal projects, I did some more polishing of this website this week: * I added Atom feeds for the Readings and Activities pages. * I added my latest photo to the homepage. * I fixed some styling to switch from using tables to CSS. * Perceptive readers may have noticed that the text in the posts and notes is aligned justified now. Let me know how you feel about it. * Some interesting things I read on the internet this week: * Modeling State Machines with Dependent Types in Haskell * How Rhyme Works (and Why) * All I want for Christmas is a negative leap second Thatโ€™s all for this week. Catch up with me in comments. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new #weeknote: https://abhinavsarkar.net/notes/2025-weeknotes-10-19/

#blogging

19.10.2025 07:13 โ€” ๐Ÿ‘ 0    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Notes for the Week #42 This week note covers the week of 13th-19th Oct. A Desert Orchard * Bangaloreโ€”the city I live inโ€”is notorious for its bad traffic. I had a confirmation of it just this week, when I was stuck in a cab for **three entire hours**. The traffic jam made the news, like many such before it, but experiencing it first-hand was a crazy thing. As I sat there in the cab for three whole hours, hungry, thirsty, sleepy but unable to sleep, I became so distraught that it made me challenge my belief that Bangalore is a good city to live in. Something will have to change. * As they say, you are not stuck in traffic, you are traffic. So better learn how to drive in Bangalore by reading this great guide by my friend Kiran. Iโ€™ve been thinking of writing such a piece for years now, but Kiran did it better than I could ever do, so now I donโ€™t have to do it anymore. * I canโ€™t write about my work in details, but I can tell you that I hate shift-reduce conflicts now. * On health, Iโ€™m feeling better with every passing day. Strength, clarity and curiosity is returning to me in waves. * Ankur convinced me to try Jujutsu (JJ), the new VCS that everyone is talking about these days. I configured it on my websiteโ€™s repo, and it somehow deleted all the untracked files! After struggling for a bit, I fixed the repo by running multiple arcane Git commands (`reset/restore`, `for-each-ref`, `update-ref`). My strong suggestion is to deal with all the untracked files before you try JJ, by committing them to branches, or stashes, or adding them to `.gitignore`. JJ has no staging area unlike Git, and commits everything automatically. It also makes it easy to rewrite history, leading to lost commits. Together, they are a great recipe for losing untracked files. Iโ€™m starting to get a hang of JJ now after using it for few days. Iโ€™ve been working with Mercurial for the last six years at Google, so picking up JJ was quite easy for me, as JJ borrows a lot of concepts from Mercurial. The hardest part was abandoning the Git mindset of branches and rebases. * One Punch Man Season 3 is out! Iโ€™ve been waiting for it for six years! I canโ€™t believe it took such a long break, but then the last six years have been pretty terrible for the world so I can understand. * I attended another fun IndieWebClub Bangalore meeting on Saturday. This was a technical session and we had a lively discussion about: * The right domain name for the IndieWebClub Bangalore website. * Adding share buttons to websites. * Pros and cons of adding Open Graph tags to websites. * Rendering charts on server-side for blog posts. * Justifying text on internet. * Automation. We finally **launched** the IndieWebClub Bangalore website at blr.indiewebclub.org! I also wrote a note for the writing exercise. * Moving on to personal projects, I did some more polishing of this website this week: * I added Atom feeds for the Readings and Activities pages. * I added my latest photo to the homepage. * I fixed some styling to switch from using tables to CSS. * Perceptive readers may have noticed that the text in the posts and notes is aligned justified now. Let me know how you feel about it. * Some interesting things I read on the internet this week: * Modeling State Machines with Dependent Types in Haskell * How Rhyme Works (and Why) * All I want for Christmas is a negative leap second Thatโ€™s all for this week. Catch up with me in comments. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new #weeknote: https://abhinavsarkar.net/notes/2025-weeknotes-10-19/

#blogging

19.10.2025 07:13 โ€” ๐Ÿ‘ 0    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
IndieWebClub Bangalore Website of the IndieWebClub Bangalore community

The website of #IndieWeb Club #Bangalore is finally up at https://blr.indiewebclub.org

19.10.2025 06:16 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Advice _I wrote this post for a prompt given during ourlocal Indieweb club meeting._ A brain-dump of advice I have for my present/future self: * Go for a walk at 8 PM. * Buy a bed. * Set more alarms. * Write down your daily plans on your palms. * Buy expensive shoes. * Put on shoes. * Get many online subscriptions. * Talk to your phone. * Fill your backpack with books. * Ask for advice and ideas. * Do what people tell you to do. * Go to paries uninvited. * Spend more money. * Learn Assembly. * Go for a walk at 6 AM. * Keep your water bottle in sight. * Make Lego towers. * Buy more domain names. * Jump on the bed (gently). * Donโ€™t get bitten by mosquitoes. * Eat greasy food. * Throw away your cloths. * Donโ€™t drive. * Use OverloadedRecordDot. * Stop talking. * Donโ€™t overdo any of the above. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!

I wrote a new #note: https://abhinavsarkar.net/notes/2025-self-advice/

#blogging

18.10.2025 12:20 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on fantastic.earth

Next session of #IndieWeb Club #Bangalore is in two days: https://indiewebclubblr.github.io/website/#upcoming-event.

This will be a tech and design focused session. During the session, weโ€™ll co-work on our personal websites, try new designs, squash bugs, or just do some long-neglected digital [โ€ฆ]

16.10.2025 05:01 โ€” ๐Ÿ‘ 0    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

While working on personal projects, I often do interactive rebase and force push to main with #Git. How do people do this workflow with #Jujutsu? #programming #askfedi

16.10.2025 16:20 โ€” ๐Ÿ‘ 0    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

While working on personal projects, I often do interactive rebase and force push to main with #Git. How do people do this workflow with #Jujutsu? #programming #askfedi

16.10.2025 16:20 โ€” ๐Ÿ‘ 0    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Screenshot of a list of repository entries with usernames and the message "Add karan/joe to list - thanks to @cheeaun" repeated for each notification entry.

Screenshot of a list of repository entries with usernames and the message "Add karan/joe to list - thanks to @cheeaun" repeated for each notification entry.

My GitHub notifications now look like this every few days ๐Ÿ˜…

Random bots keep creating repos (not forked) and one of the commits mention me.

Original repo and commit here [โ€ฆ]

[Original post on mastodon.social]

16.10.2025 10:10 โ€” ๐Ÿ‘ 0    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Original post on fantastic.earth

Next session of #IndieWeb Club #Bangalore is in two days: https://indiewebclubblr.github.io/website/#upcoming-event.

This will be a tech and design focused session. During the session, weโ€™ll co-work on our personal websites, try new designs, squash bugs, or just do some long-neglected digital [โ€ฆ]

16.10.2025 05:01 โ€” ๐Ÿ‘ 0    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

off to a 30-day vipassana course tomorrow. goodnight, internet. see you all on november 20th.

in the meantime, i am still looking for f/oss work โ€” preferably in or around the linux desktop. if you liked the changes i made to the @gnome foundation in the few months i was there, email me.

15.10.2025 01:08 โ€” ๐Ÿ‘ 0    ๐Ÿ” 6    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

@abnv.me is following 4 prominent accounts