(This is a now page, an idea I stole from sive.rs).
Last updated 23 Jul 2024
Ummm
I haven’t written in a very long time. I see it as I see the dates. I have so much to write about. There have been moments when I have thought to myself - “yes, this happened. i should put it on the blog , yes. my internet nerds will like this.”
okay - i won’t try to remember everything. I have to be recent.
Homeserver!
I think I would consider this the most fun thing I’ve done this year. I am off away from the capitalist cloud compute machines that plague this planet with their unholy subscriptions and have instead moved to supporting capitalist machine companies that I only need to pay once. That is only partially true because I still have subscriptions for other things but not for cloud.
I now host this blog and all of my private software services on a 5 year old laptop that is, in a utilitarian sense, stripped of all its components but those that make it a computer. It’s like ship of thesseus but with the components never put back in place except for those that barely make it a ship.
And yet - it is a mighty beefy machine for a cheap server. It has 20 GB of RAM now (I upgraded) and a 500GB SSD (also, upgraded by me). This, by cloud machine standards, would have cost me maybe a $100 each month? To me, zero-ing the sunk cost of this old laptop, was about a $100 in one-time upgrade costs + Rs 300 each month for a static IP. That’s all you need.
It also feels wonderful. I feel like a bit of a sysadmin now. One of those real ones. I have a private network where I can host whatever software I want and put exactly the authorizations and restrictions I need.
Any description of this magnificence other than a dedicated blog would not be doing it justice.
Tailscale
This was an accidental revelation for me as part of the homeserver setup. It’s wonderfully simple to setup. I had an overly complicated perception of it. And while it is probably extremely complicated and something that only a subset of 4chan veterans and seasoned network engineers (or a venn diagram intersection of the two) can fully comprehend, the user experience for it is so simple a 5 year old kid could do it.
Some setups are painfully difficiult. Tailscale was painfully easy because it made me curse myself for not doing it before.
Anyways, with this VPN setup, I can enforce access restriction to only allow this private access to myself. Not only that, all of my devices - not only this homeserver - can act like servers with a domain name and IP address. This means I can setup a private notes server, setup Obsidian + Syncthing, and SSH from any device into any other without shedding any sweat.
It’s so good. I can also always choose to move to a self-hosted headscale server and get the same benefits. I chose to not do it, at least right now, because I like the folks at Tailscale. I trust them more with my private network’s security than I do my (still very good) sysadmin skills.
Health
I need to take care of my health. More than I had to earlier. I realise I’m getting unfit. I used to go to the gym and I hadn’t fully internalised that it has been a very long time since then. It’s time I need to start from zero. Lose weight. Walk more. Eat better.
Content below was written on 13 Feb 2024
Hi Again!
I’m coming back to writing on this blog after… 4 months now. A lot has happened. I am very excited. I thought this might be the right place to start because this has been my favorite part about my website, in all honesty.
I am happy to have the people I have in my life right now. That set of people has changed slightly over the last 4 months. My lifestyle, too, has changed now.
It has been almost 5 months now working at Gooey.AI - and I like it. I am working on hard problems and I like that I’m good at it. I’m learning new shit. LLMs, AI deployments, Kubernetes challenges, GPUs, costs, and more.
I have also been working on ocaml-joy
-
which is rather fun. I, Sudha, and our Outreachy intern Fay, are building
a creative coding library for OCaml - inspired from joy,
the Python original that Anand built at FOSS United.
There’s books and blogs on my reading list that I am so eager to get to. There are some new ideas I learnt that I can’t wait to write about. I guess micros section would be the right place to put it.
I also went on a trip to Banaras recently - that was so many new India things that I had not seen earlier. It is so rich with politics and culture and I couldn’t help but notice the social difference that is present there. It feels unlike any place I have visited earlier - though I have to admit that I haven’t travelled North India enough. I loved their food and I’m glad I had a friend who was brought up there who showed me around. That was a beautiful and a rather striking trip for me.
Content below was written on 12 Oct 2023.
nix and nixOS
I made a friend at PyCon who was into nixOS, and then few days later – actually today – I again met a couple of weirdos who were into nix. I take it as a sign that I should also try it out. One sentence I remember from the conversation I had today was “functional is fruity”. I don’t know if I have it in me to be able to forget it anytime soon.
Gooey.AI
Kinda big update – I have joined gooey.ai as an engineer. I think my first day was 18 September. It’s been almost a month, and I like it here. I had to choose between Gooey and a couple of other offers, and I was very confused when I made the decision to join Gooey. It’s interesting that this is another job that I got through my network. In fact, all of the offers I had this time were through my network.
I was thinking about this – along with this very interesting book I had been reading (called Chance by New Scientist) – that serendipity is weird like that. You keep making friends here and there and then some day you bump into them when they are hiring and you’re looking for a job. I had met Dev from Gooey at IndiaFOSS last year and then bumped into him at a meetup recently.
There’s a lot more about this book called Chance that I would like to talk about – and maybe also talk about why that was even relevant in this context – but first let me talk about this new job.
I like it. It’s challenging in a couple of ways. First, it is in a fast domain where I have some context but there’s always a lot more to learn. Second, it is a different kind of company than any I’ve been in before. It is further in terms of product-market fit than companies I’ve worked with before and it also has different processes. There are things to learn here.
My priority this time, my personal KPI here, is to just get (important) things done. Something I learnt over the break is that good (senior-ish?) engineers don’t yap about it when they get stuck – due to let’s say, ambiguity, or some tool not having X feature, or some vendor not offering exactly what was expected – no they take that into account and find a reasonable path ahead. That often takes a lot of domain understanding and communication with stakeholders. Sometimes, you might be the best person available to take a call on something. In that case, it might be good to suggest a solution based on your understanding and talking about it with your stakeholders. Sometimes it could be a compromise on the scope or UX, or it could just be that you simply need more time. Communicating all of that with stakeholders boldly is important. That’s what I want to get better at. Getting things done. The rest of it is only a means.
Taking rest
A hard truth is that focus is a limited currency. The last time I tried doing too much of focused activities, I couldn’t ship quality stuff on time because I was left with so little energy. Often this went into a cycle of procrastination and guilt and terrible routines. I am more cautious about it these days. I do set aside some extra time besides work to do other interesting things, but I’m taking it super slow these days. If anything, I would spend maybe another hour or two on a weekday on it. No more than that. Most other time is spent hanging out with friends or just doing something fun.
I immediately feel it when I’m out of energy. I once spent more time than I intended on an open source project I’m working on and I had no energy the next day to do any meaningful work. So far, this has worked very well for me.
OCaml
I’ve been doing a bit of OCaml again. It’s a wonderful language. I, Sudha, and Aryan are mentoring an Outreachy project in the OCaml org to port joy from Python to OCaml. I’m excited by the idea and I feel that I’m learning more about open source as I do this. It is the contribution period right now – when all applicants accepted into Outreachy contribute to different projects. The intern is chosen based on how they did in the contribution period. For a new project without a lot having been decided on, it is sometimes a bit overwhelming to need to create new issues on demand, help everyone trouble shoot different development issues, and keeping up with code reviews. I’ve been setting aside a limited amount of time each day for this.
It reminds me of the time I participated in Google Code-in. It must’ve been similar or worse for my mentors then. Who had their own things to do and were volunteering for this – and then kids like me would keep pushing code, incessantly ping them for reviews, and ask for new tasks to work on.
PyCon India
I attended PyCon India recently in Hyderabad. It was fun. The highlight for me to be honest was just catching up with old friends, making new friends, and the discussions I had outside the auditoriums. Lots of interesting chats. No name dropping here but if I met you at PyCon India, I loved hanging out with you. The other highlight was that I also caught up with another friend of mine in Hyderabad. We went around the good cafes, did some gokarting, talked shit, and just had so much fun.
I namedropped Gooey to folks, showed them awesome QR codes, and tried to hire folks (it’s hard!).
Content below was written on 11 Sep 2023.
SolapurFOSS and creative coding
I spoke at SolapurFOSS on 27th August about creative coding in Python. This was by far my most OK talk. I was relaxed, I knew what to say, and I slowed down to read the room throughout the talk, repeatedly. The slides were also not all filled with boring text and I feel like brought out some emotion and connected with the audience. I felt validated when multiple people in the audience then asked me about some details that I had mentioned at some point in the talk. They were listening to me.
I filled the slides with a lot of visuals and very litle text, and that seemed to work well. These are the slides, in case you want to have a look.
This also encouraged me to try and make some sketches in preparation for the conf. I made this one sketch for a waving Indian flag on the moon. It took me some time to figure out the wavy part but it felt satisfying to do it. That however got too complicated to explain in an Introduction to Programming kind of talk, so I made another one! This one I was proud of because it actually looked pretty.
I also went back home during this time and looked at a randomly generated rectangle/line-pattern that Rasagy was exhibiting at JSConf as bookmarks and which I had bought from him. That reminded me of how beautiful this can be and that once in a while I can do that if I’m feeling artsy..
I also watched this talk by an engineer at Brilliant.org about a tool called Diagrammar. As I was running into the limits of an SVG backend that mon.school was using (won’t render if too many transformations), I really wanted to use this but it wasn’t open source :(
As context, the prior inspiration for me to explore all this were 3blue1brown’s videos. Such as those on the Mandelbrot set with its beautiful fractals! I can’t have that on mon.school (I tried). But I did learn that the library with Grant himself created the animation videos with was actually open source and it is called manim.
I haven’t started learning manim yet (that’s a lie, i have watched one youtube explaining its API), but I am very excited to try that out.
IndiaFOSS
I’m volunteering on the website team for IndiaFOSS. We had some problems with the designs and I couldn’t give enough time early on in the volunteering season so we lagged a bit, but my team mates have done a great job and I added the finishing touches to whatever we had built. It’s still lacking some info, but when that happens we will go live immediately and I (like everyone) will be happy.
Summer of Code
My Google Summer of Code season has come to an end. I liked it. I got some learning and got to contribute to something that will be used by a lot of DBAs around the world on a large volume of data (scary!?).
I don’t feel too good about doing it though, because I didn’t need it. GSOC is a great way for folks new to FOSS to get involved with open source projects, and make those first commits easy because you have a mentor with you. I can manage without this help, and could’ve even mentored some participants had I gotten involved with one of the orgs earlier. Moreover, the project turned out to be too easy for me. I probably only spent about 40-50 hours or much less during the actual coding period to finish off the entire scope of the project, over 3 months. Of course, this was also because I had done good research about what to do before I started and I stuck to the initial plan, but still that’s too little effort to run away with it.
Why did I participate in GSOC then? To be very frank, I got scared about my career and the future opportunities I would have open to me if I didn’t have either a college or something prestigious such as GSOC on my resume. I did have Google Code-in, but I guess people hardly know about it. It’s fair because even those who know about it might not be able to guess the difficulty or significance of it.
I don’t have that fear anymore that I have started applying and interviewing with companies, but perhaps that’s already because of gsoc? I don’t know what the alternate timeline would’ve looked like, or it was better or worse.
Content below was written on 31 July 2023.
Bangalore flat
I have finally moved into this new flat. I’m the new person in a sharing flat and I like my company. The room is small I think I’ve put in enough effort to make it feel homely and I like it. It’s actually just about sufficient for me. I did a small celebration with a couple of friends and kept a momento for it. I don’t know how long it will be with me and then thrown out. It’s a special feeling this, though, having my own space for the first time. It’s not a PG, not a hostel. My own flat room. I was not expecting it to feel this special but it does. The beauty of simple things :)
Reading
I went to a popular bookstore here today, called Blossoms', and got a couple of books. I wasn’t intending to get any at first and I only went because of a friend, but then I started reading something with interest and after reading a few pages I thought that I should after all buy something. Let’s hope it’s not one of those times that I buy something and then never read it again.
I got a different book from the one I had started reading, and I understand that it sounds like a stupid thing to do, but I had my reasons. I am too lazy to explain, but I did get a new scientist book and then I saw one at the counter titled “The Beauty of Everyday Things” and it attracted me. I want to find beauty in everyday things. It’s my kind of philosophy. That there is beauty in everyday things. There are things to feel excited about which aren’t out of the ordinary. I want that, so that I don’t trivialize the ordinary.
I wanted to hear out the author’s take and explore my own beliefs more deeply. I read a couple of pages and so far I’ve not been disappointed. I am so excited that I’ll read a few more this night.
I’m done filing my ITR after all ehehe.
Life’s good. I need a job or a convincing reason to startup is all. I’m in some talks and experimentation. Might have an update on this at some point.
Content below was written on 14 July 2023.
Bangalore
I’m in Bangalore again and I like it here. It feels homely. I found a place finally in a good location and in good rent. I took a few days to think about whether or not to take it but I think I should take it. Having my own place would let me do more. Like setup a self-hosting server, have a better home-office setup and more. It’s a small room only and perhaps it won’t be everything I want yet but it is good enough to get me started.
Rust
I’ve been liking Rust. It’s very different from other programming langauges in terms of its memory ownership model and I’m probably doing a few things wrong but I’m getting by with documentation and ChatGPT. I’m learning to write more and more idiomatic Rust.
I started with the Cryptopals challenge after building an OS in Rust.
Cryptopals
Cryptopals challenge: https://cryptopals.com.
I had a look at this after seeing it on some chat group and then thought that doing it in Rust would be good to learn Rust and also to do something hard (a blog I found on HN about proving you can do hard things).
Content below was written on 7 July 2023.
Too many ORs
I was reading the below things I wrote. I use way too ORs, and always get sidetracked by some possibility. Too many maybes. It shows that I’m okay with not resolving them into something certain. Agnosticism, when I don’t care enough to resolve that confusion. It makes sense to be honest. If I didn’t know myself better I would have even said that it’s smart.
Solo trip
I’m on a solo trip to do a retreat of sorts and complete this series about building an operating system in Rust. I wanted to learn both about operating systems and to write Rust and this has worked out really well. I’ll consolidate my notes into this blog tomorrow (actually today, it’s midnight right now).
I’ve learnt a whole lot and I can’t really complain about it. It does feel sort of lonely and I do get bored very often but I came to some important realisations in the time that I had to ponder about myself and the world.
I saw this page once again after some time. This is one of my more honest pages. I feel like this is way more honest than the about-me page I have written. Of course everything is factually correct but I always don’t know what to say when asked to tell about myself (like in the about-me page). It’s more of the kind of page where I try to sell myself to readers by throwing at them every interesting thing I have done. I should refine it some day haha. Last thing I want to do is say haha in a written post.
Let’s talk about the philosophical realisations though, because I’m more interested in that than the technical stuff right now. Not philosophical, but let’s say, one of peace and calm.
I felt like I wasn’t able to contribute as much as I had wanted during my time at Pipal Academy. I feel that a bit. In hindsight, I think I was over-spending my focus and leaving little room for it to be spent on thinking creatively. What I mean is that on the same day, I would work on something challenging at work, then spend a few hours studying something as intensive as theorem provers or lockfree data structures where I had to put in a lot of effort to understanding it. I felt like I was setting out focused time, taking fewer leaves than I was supposed to, and doing what I had to do to get things done but things were still going slowly. I wasn’t able to have a good opinion on the product because I didn’t leave myself enough focus to spend on creative thinking like that. I don’t know if that’s what is called burnout, but I had normalised something like that. Now, after taking some break and feeling much more creative about things, I’m starting to notice it. On days that I do something focused in the evenings (such as building a snake game) (in a new language with a strange runtime in which I didn’t even have heap allocation), I have a hard time doing focused things the next day. I felt like this was the norm for people my age, who study at college, do more things in evenings, and sleep late. Maybe it’s a bit different or maybe it just doesn’t work for me, but I need my breaks. I have decided to take note of it in the future as well, and say no when asked to work on something and I don’t want to spend any more focus on that day.
I feel like work could’ve gone better if I had learnt it earlier. Even Anand told me that if I am excited about something I should take a day or two off and just get done with it. It makes a lot of sense now and I can understand why. Or at least why I should do that.
An adjacent thought was that I should also think about what it takes for me to be satisfied, in the long run, and take interest in it. I feel like I’ve tried too hard to do things to prove my worth, maybe even to myself. I don’t have to do it, or I think I have done enough. I must stay true to myself and think of things that genuinely make me happy. This website for example, shouldn’t be about me flashing my tech skills (like I do in the about page), but about things that get me excited. Of course, at certain times, it doesn’t have to be told and I’ll only write about things that do get me excited. That still doesn’t mean that it was my intention when I came across it. Or maybe whatever I do has already been what gets me excited and what I genuinely do like. In any case, what I do in the future, or write about, should come from a good place. As in, it shouldn’t be because I’m trying to establish something about myself. That happens naturally and it’s not up to me. It is like in writing, when the focus should be on clarity and strength and style follows.
I’ve been thinking about life too, and what philosophical idea of it I feel home with. I don’t know what’s the right way to approach this. Maybe you catalogue through many philosophies and then pick one or something, but it doesn’t matter. I have long believed that life is meaningless and whatever anyone does has no extra meaning other than to us. But then in that meaninglessness, one should make up meaning and be true to it. As an example, all relationships end some day, ultimately because of the the transientness of life itself. They are also void of any profound meaning because there will come a day when no one will be around to appreciate it. But that doesn’t mean they aren’t to be experienced. Life too is meaningless and transient, but it can be beautiful. That is because it is subjective. The things that make a life beautiful too are often transient. If they aren’t experienced then all we are left with is dullness. I don’t care much for dullness. I know I sound too philosophical and dreamy, like a drunk poet, but in that moment of thought, it all just felt right. Like I had figured out life. Of course, 30 year olds will be quick to jump at me to point out my naiveness, but then what can you do. You think, you write, you get critiqued and judged.
It’s a good principle. It makes me live to stand up to my opinions and take chances. Because if I don’t know what it’s like to live the way I feel I should live, then what else is there to live for?
I think I might be becoming way too honest on this now section. It’s like a journal entry, quite literally. To be very honest, I had tried to maintain a journal in the past and I have never been as good writing there as I am here. Maybe there’s a certain refined quality that comes out due to something here.
Rust OS
I really don’t feel like going much into detail about this. I will consolidate my notes tomorrow anyway and write a bit about what this was like. Let me say a few things though. When I look back at my notes at the end of a day, I realise that I learnt a heck of a lot. The knowledge gap between the start of my day and the end is so noticeable. I had never observed this before. It’s a principle I should keep in mind that you can learn a lot in a single day if you do it right.
I recently looked at Partick Collison’s blog titled “Fast”. Things that were built very fast. I was amazed that the v1 of Unix was built in 3 weeks by Ken Thompson. That Linus only took a few days to write Git and was already hosting it by day 4 or something. I’m quite amazed.
CFP for PyCon India
I thought a bit about the CFP for PyCon India. I had a
conversation with an experienced community member about
topics for a talk proposal and he had suggested the topic
of things like best practices that are actually useful
to a large audience. I thought about it, broke it down,
and came up with a rough outline
(https://memos.kaustubh.page/m/190). I titled it “Writing
idiomatic Python in 2023 and ahead”. When I thought about
it, I actually felt that it could help a lot of people.
match-case will catch on, but then there are things like
asyncio and typing which are often not used in the best
way. asyncio because the API isn’t that intuitive, and
it’s easy to not take full benefit of it. For example,
people will await
coroutines in a loop instead of
creating background tasks where they can be executed
concurrently. I myself have fallen for it when I started
and it should be more widely known. typing
because
it is moving so fast and we have new patterns that are
lesser known. Even things such as not needing to import
annotations for List
and Dict
are not as widely known.
Now we are getting template types too.
Content below was updated on 27 June 2023.
Reflecting
These past few days I’ve mostly not been doing anything work related, except for one consulting gig that I had taken up that kept getting stretched. Finally, I was able to work around some problems I faced and come to something that was acceptable for the client. I’m happy about it because it started out as something that was very technically challenging and a lot of parts that were new to me. I kept running into different problems, and limitations of tools, but finally I worked around things and got it done. Now my deep knowledge of how the internet works or how pip install works came to good use.
For example, we were using an open source tool for a use case that we didn’t want to spend engineering effort on (too niche and complex) and it was giving us some problems with its limitations. It was running as a reverse proxy and we wanted to run some script on its page without modifying its content. It wasn’t very extensible by default. We needed to run some javascript on that page, and there was no reasonable way to change the output of its HTML without changing its inner code. What I did was added an Nginx rule for one of its javascript assets, and made that also include the script that we wanted to run.
The other was about knowing how pip install works and how the
modules are stored. Then I got what --target
option was and
was able to fix a few issues properly because of that.
Of course, linux and bash scripting as always helps a lot. When working with other people, it helps that you can write scripts for them to run rather than explain something step-by-step.
That was on my mind on some of the days, but besides that I am reflecting. I want to make a new section for the next part.
Ownership and usership
I’ve been thinking about what I had been working on at Pipal Academy. It’s a neat tool to build courses. When I was working on it full-time, I would try to think about a user and how they would like it to be but I think that my standards then fell short. Now that I think about the same software as FOSS software that I would use for something myself, I am much much more opinionated and I want it to be at a much higher standard and I would in fact be ready to contribute that to the project.
It’s strange how a simple change of perspective like this changes how effective I can be at building something. I think this distance from the product, this lack of a feeling of ownership, brought out more effective ownership from me. It reminds me of one of the chefs from the anime “Food Wars”. I can’t remember the Japanese name of it now, but it’s one of the few animes that I’ve watched and liked. There is one character in it, one of the seniors of the protagonist, and one of the elite 10. Maybe the first seat of the 10 elite chefs at this super elite culinary school. He treats his ingredients with finesse and builds his dishes with elegance, and yet all the emphasis is on perfection as if it is something objective.
I feel that distance brings out more objectivity and is important to build a good project.
Content below was updated on 19 June 2023.
Applying again
I started applying to companies and looking at ones that do interest me. I got a quick callback from X big tech consulting company and I got rejected because I don’t have a degree and background check or travelling outside India would be a problem. I don’t really buy that line of reasoning. I mean, larger companies than them have people from India working without a degree, and they don’t have a problem. But it is what it is.
Now I am looking at a few other companies and starting up as my options. I don’t want to be in a purely consulting role because I want to be in a team and learn from others, hopefully not in a remote setting.
I know that I can get away with it, and that I have a bottom line of consulting or working at a startup that will sustain me, but I can’t say the same for everyone in tech who would skip college. Moreover, I don’t want “sustenance” to be what people who skip college (or me) aim or settle for. Maybe there is actually scope for career services for talented techies without a degree. I don’t know how much business sense it makes, but it surely would change lives for the better. And like I had mentioned on the now page before (i hope so?), more people would feel comfortable not going for a traditional degree if options like this existed. I feel a certain conviction about it but I’m not sure of its business potential.
Maybe it’s actually worth building a startup around it. I am taking a break as well. This might be a good thing to do. At least it will do something about my curiosity to know whether something like this has business potential. No, I don’t want to do it like bootcamps and suck out of salaries from my own people. I’m not even sure if a direct hiring model is the best way to go about it. If I am to take money from companies instead of people, what can I provide them that will make them want to pay for it?
I’ll think more about it from different perspectives and with different assumptions. I like what I’m thinking and I want to do this.
Content below was updated on 16 June.
Thinking about what to do next
I am back at home in Latur, from Bangalore. I’ve been relaxing since my exams last week. Winding down and letting go of all the stress from work and exams. Now I’m thinking about what to do next. One thing I know for sure is that I want to work at the edge of my abilities. I want to do something challenging. Ideally, I want it to be something that is technically challenging, but I am also okay with starting up because I know that I’ll get the challenges anyway. Moreover, I think there’s a lot to be learnt there in terms of interpersonal skills and the potential upside is huge.
Google Summer of Code
Back to GSOC after a break last week. Writing this parser is tricky at times. We didn’t have a catchup call this week yet. I’m trying to complete this one thing but I feel stuck. I should communicate yes.
Content below was updated on 9 June 2023.
Leaving Pipal Academy
Today is technically my last day at Pipal Academy. I’m slightly emotional about it because I had a great time working here and I loved learning from Anand.
Technically it’s midnight and 9 June is behind me. But okay.
Lambda Retreat was one of the best things that I have attended and it got me into programming languages.
JSConf
JSConf was okay. I enjoyed Rasagy’s session on making art with code, and even made my own version of it on mon.school with python. I liked that, and meeting friends, enjoying Naren’s coffee, and talking about FOSS United there. But besides that, I did not particularly like it. It felt a bit weird that speakers were treated very different. All were put up at five star hotels (not me) with special dinners and arrangements made. Someone I randomly met asked me “What qualifies you to be a speaker?”. Maybe I didn’t understand their question correctly, but it pissed me off. Of course, I was polite and decided to answer the better question “What qualifies you to speak about the FOSS United community?”, but then I was thinking about it for some time after that. You don’t have to be high gods to speak about something, or get validated by working for one of the big tech companies. It made me sick to think that it might be the baseline to have a voice. If something is interesting (and being presented nicely, which comes with practice), I don’t care who is delivering it. Grr.
I don’t know, maybe it was that I didn’t gel that well with the community or that I was too tired or something, but I felt like I had been to better conferences.
Feeling like an impostor
I was feeling like an impostor. Just now. About an hour ago. Then I started writing this, and I remembered while writing about JSConf that I had made a sketch for a name generator inspired by Rasagy’s talk, then I felt like wanting to tweet about it so I made a few changes and I started feeling confident again. There is something wonderful about being able to do this. I like it. My routine has changed so much I stopped doing things like this and then feel bad for myself.
In any case, I do remember what I was thinking when I was feeling like an impostor, so I’ll go ahead and write about it anyway. I build a lot of cool projects, but then they either have very little scope or they don’t do much. At Pipal Academy, I wasn’t able to contribute as much as I would’ve liked to in the span that I was there. I also wasn’t living up to my expectations in terms of productivity and speed. This was a bit of a surprise to me but I couldn’t fix it even though I tried. It felt weird because a lot of people I meet tell me that I’m smart. I know that I take time to understand things deeply and ask questions when I am interested and there’s more to take from a conversation. I build a good model of things in my head, but then what if my problem is that I can’t deliver on it? In my head, I think of it as the immature guru problem, when you have knowledge that you never put into use, but tell that to others. Spineless gyaan. I’ve been this immature guru when I was a child and was just good enough to make my school cricket team but not good enough to be an important player. I still had opinions and lots of useless trivia that I would just tell other people. Sometimes it worked, sometimes it didn’t. But I don’t want to be that person. Programming is the one place I feel confident enough to be an elite player and I want to do that.
I feel like I have a bias towards action when I get excited about something, which is not that infrequent. I made the sketch thing right after I saw Rasagy’s talk in half an hour or so.
Content below was updated on 21 May 2023
Reflecting on the “Now” Page
This experiment of adding a Now page is actually going quite well. It’s a place for me to put things that aren’t significant enough to blog about, or what I’m just thinking about and haven’t done anything about yet. I think the main point of this is that it makes me think about What I’m doing Now, and that often leads from one point to another to another, which I wouldn’t have thought or written about otherwise.
An RC alum, who happened to hang around in the same communities as me, also saw my tweet and reached out on Telegram. I had seen this person on the FOSS United Telegram group before but because I hadn’t met them in person, I didn’t know much about them. That was definitely interesting and I’m happy that they reached out after seeing this.
One more person I met at the FOSS United meetup (yesterday - 20 May 2023), very randomly, mentioned that I appeared on their timeline and they knew me from my posts after I told what my name was. That was new and felt really nice. We got talking and this person also knew someone I’ve been good friends with. Small world?
I think I should thank Tushar because probably both of them saw my tweets because of him (for one person, I know for sure, the other one I suspect). The serendipity of the internet, twitter, and communities. Even when twitter is not in a great state.
Travelling to Bangalore
I travelled to Bangalore the day after my last update, checked in at a hostel where I’ve previously stayed. I want to find a place but I haven’t been satisfied with anything yet, and the one that I was eager to take I didn’t get because the dude didn’t vacate on agreed-upon date. We had a handshake deal and the owner was okay with me moving in to his room, but I should have made it a bit more formal and make him commit the same to the owner as well. It might also just have been a good thing because to be fair, I’ve been more productive back at my home away from the city, and this gives me a bit more time to decide how I want to live. I can also come visit hostels when I feel like I need to get out.
Bangalore has been fun though. Fun, yes. Not productive enough yet. I’m doing some GSOC thing that I have been putting ahead for about a week. The coding period starts on the 29th and I want to stick to my commitments. But I want to catch up with people and go to meetups now that I’m here, that’s part of why I come to Bangalore. I met some of the hostel regulars with whom I’ve become friends from my previous visits, caught up with Megh and Param, attended the FOSS Meetup, and then had a farewell night for a friend who was leaving Bangalore.
I could go on in more detail about each, because each one of these interactions lasted a while and was interesting. Maybe that’ll go to my microblog.
Running into self-hosting problems
This was the first time I can remember that I have ever run into some self-hosting
problem that came as a surprise to me. Miniflux,
which usually runs without problems, suddenly stopped working when I tried to add
someone’s RSS feed to it. I was doing some experiments to setup a working two-way
email on my droplet and ran some scripts directly for that, and then uninstalled
it with some pre-made scripts. I suspected that this must’ve broken the database.
The authentication was working and I made sure that the database was there too.
The problem was that one of the scripts had changed the authentication method from
peer (the one I used) to password for all users except the default “postgres” user.
My experience with pg_hba.conf
came in handy and all was good within an hour.
Setting up self-hosted email
I tried to setup self-hosted email. Setting up incoming mail was straightforward. I had done it before too. This time I looked at Sivers' post on tech independence and decided to try out Mutt. Mutt looks good. I like that you can use shortcuts to do things quickly, but getting used to the shortcuts will take some time. The other thing is that actions immediately happen when I hit keys in Mutt. I prefer Vim in that sense because if I accidentally press some keys it either doesn’t do anything significant in the default normal mode, or it is undoable. I’ll give it some time though. Setting up outgiong mail was not at all straightforward though and I realised that there’s really no way around Google’s restrictions intended to avoid spam.
As I was writing this, I realised that I hadn’t dived deep enough into self-hosting email and that I should try a little more. I’m doing that now, I learnt about PTR records and DKIM until now and it’s interesting.
It’s the next day now. Actually it’s 2:30 AM on the 23rd, the original thing was written on the 21st. I was doing DKIM but did not complete it yet. I’m waiting for the CI tests to run on capstone. I can do this in the meanwhile.
Content below was updated on 17 May 2023.
Working on Capstone
Capstone is moving ahead. We have a demo planned. My sleep routine is still bad, but I feel more relaxed doing work now.
Applying to Recurse Center
I applied to Recurse Center last week. I’ve been anxiously checking my email since then. I’m very excited about it. Since I read their about page, I feel like it’s the place for me to be at. Recently I’ve also been thinking about my career choice to not go for a college. I wonder if there would be more poeple not going through college if there were career services and strong communities with smart people who were as ambitious and willing to learn as me. Something that will make sure you don’t miss out on opportunities by not going to an MIT or a Stanford or an IIT. I have a strong intuition that the answer is yes. Lots of kids must have thought about it but then not gone for it because of the uncertainty. Lots of kids wouldn’t even think about it because they’ve worked to get into a good college for years and they won’t consider another option. If there were good career support for kids like that, who are smart but still don’t go to college, we would see a lot more people not going for the traditional route. There are good reasons to not go for the traditional route. I’m proud of what I’ve done. I don’t think I would’ve thrived as much had I been in a college, even a top tier 1 college.
I think I might present about this at Barcamp this weekend. I’m not sure. In any case, I think a good first step is to curate resources and make it known that my contact is open for anyone interested in not doing the traditional route. I’m not much of a big shot myself, but I’m sure I can help younger people like me in some way.
Learning Rust
I finally picked up Rust. I like it. Borrowing is clever. I like the guarantees I get from it. It’s neat. I love the pattern matching, range, and mutability being separated from referencing. It feels like a better version of C and OCaml, with some sugarings of Python. I don’t take it lightly when I say that it’s better than OCaml. I still see some of the same patterns. One cool thing that not many people might notice is that a Rust function with multiple lines must have semicolons on all lines but the last one to indicate that the function goes on. This is like OCaml. Straight out of it.
Writing a tutorial on Interactive Theorem Prover
I got the idea today morning, to write a detailed post on interactive theorem provers (with Coq), such that it is much more approachable to normal programmers. I call it “Interactive Thereom Prover for Normies” for now, and I have some content for a draft. I like the informal lingo I’ve put in there. I think it might help programmers, or at least it will help me better my writing or my Coq skills.
Raytracer in a weekend?
I saw this in a post by Julia Evans, in her DNS server in a weekend post. I had already built my own DNS server from scratch a while ago, but I liked the other posts that she mentioned to, and one of them was this Raytracer in a weekend. I ignored this then but then I came across this again while looking at Carol’s blog on projects beyond webdev. Carol is a Google Code-in Winner like me, and while I haven’t been in touch with her that much, I have read some of her blogs and admire what she does. I also learnt that she, like me, skipped college. I did not know this. I also came across her one other post on skipping college, and I love it. I relate so much to this. I don’t think I would’ve thrived as much in a college, even a top tier one. I suspect that being able to build things with programming whenever I learn something is actually what keeps me from getting bored of it. It is so relatable that I think we could be friends (👉👈). I should tell her that I liked her blog and that I too skipped college.
I wonder if she has been to recurse center.
Meeting old friends
I’m in my hometown and many of my school buddies are home too. We are meeting today and I am quite excited. I feel like I haven’t seen some of these people in years. Maybe we had met less than a year ago. I want to know what they’ve been up to and how they’re doing.