<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Posts on Bit Nebula</title>
		<link>https://blog.vghaisas.com/post/</link>
		<description>Recent content in Posts on Bit Nebula</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<lastBuildDate>Sun, 23 Aug 2026 19:00:00 +0100</lastBuildDate>
		
			<atom:link href="https://blog.vghaisas.com/post/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>It takes 5 cloud services to hear my doorbell</title>
				<link>https://blog.vghaisas.com/rube-goldberg-doorbell/</link>
				<pubDate>Sun, 23 Aug 2026 19:00:00 +0100</pubDate>
				<guid>https://blog.vghaisas.com/rube-goldberg-doorbell/</guid>
				<description>&lt;p&gt;It all started in the winter of 2024. There was a burglary in our apartment building and we decided we needed to invest in our home&amp;rsquo;s security. The obvious solution: a video doorbell!&lt;/p&gt;&#xA;&lt;p&gt;I looked around and ended up buying a cheap Blink doorbell. It worked: we got video clips and everything! However, there was an annoying regression to our &lt;em&gt;front door experience&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Before we had the doorbell, people just knocked on the front door. But now, people would notice the doorbell and ring it instead. This would send a notification to our phones, and then it would also helpfully play a sound on the doorbell itself&amp;hellip; outside the door&amp;hellip; which we could not hear. 😬&lt;/p&gt;</description>
			</item>
			<item>
				<title>TIL: If Overdue section is incorrectly empty in Todoist app, tap the &gt; arrow</title>
				<link>https://blog.vghaisas.com/til-todoist-overdue/</link>
				<pubDate>Sun, 19 Oct 2025 23:15:00 +0100</pubDate>
				<guid>https://blog.vghaisas.com/til-todoist-overdue/</guid>
				<description>&lt;p&gt;With yet another attempt at using a to-do list, I&amp;rsquo;m trying out Todoist. Overall, it&amp;rsquo;s a great app, and I really hope I keep using it (or really, anything at all).&lt;/p&gt;&#xA;&lt;p&gt;I recently encountered something that felt like a bug, but it turned out to be just a confusing UI.&lt;/p&gt;</description>
			</item>
			<item>
				<title>TIL: Set up your UniFi Cloud Gateway with a laptop if stuck in a setup loop</title>
				<link>https://blog.vghaisas.com/til-unifi-setup/</link>
				<pubDate>Sun, 19 Oct 2025 23:00:00 +0100</pubDate>
				<guid>https://blog.vghaisas.com/til-unifi-setup/</guid>
				<description>&lt;p&gt;The FOMO got to me recently, and I decided to finally buy some basic prosumer networking hardware from Ubiquiti. It&amp;rsquo;s been 2 days since it was set up, and it definitely &lt;em&gt;feels&lt;/em&gt; pretty cool. But during the setup of the Cloud Gateway, there was an annoying bug: every time I went through the setup steps and they completed, it would reset to the original stage and I would have to start setup again.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Niche Experiences: a new project</title>
				<link>https://blog.vghaisas.com/hello-nichexps/</link>
				<pubDate>Sat, 06 Jul 2024 10:10:00 +0100</pubDate>
				<guid>https://blog.vghaisas.com/hello-nichexps/</guid>
				<description>&lt;p&gt;For the past couple of weeks, I&amp;rsquo;ve been working on a side-project: &lt;a href=&#34;https://nichexps.com&#34;&gt;Niche Experiences (nichexps.com)&lt;/a&gt;. It has listings of &amp;ldquo;niche experiences&amp;rdquo; in UK cities. It all started when I read &lt;a href=&#34;https://marclou.beehiiv.com/p/how-to-grow-a-micro-startup-with-programmatic-seo&#34;&gt;Marc Lou&amp;rsquo;s blog post&lt;/a&gt; on how to get customers with programmatic SEO and thought I should try it out.&lt;/p&gt;</description>
			</item>
			<item>
				<title>&#39;Exercise is really great&#39; song</title>
				<link>https://blog.vghaisas.com/exercise-is-great-rhyme/</link>
				<pubDate>Fri, 11 Aug 2023 20:45:00 +0100</pubDate>
				<guid>https://blog.vghaisas.com/exercise-is-great-rhyme/</guid>
				<description>&lt;p&gt;My parents are visiting me this month, and somehow we were randomly chatting about nursery rhymes. There was a particular one that we vaguely remembered but couldn&amp;rsquo;t recall the lyrics of &amp;ndash; &amp;ldquo;Exercise is really great.&amp;rdquo; After struggling to remember it for a while, and then googling the name and failing to find anything, we remembered&amp;hellip; my childhood audio cassette! When I was a kid, my parents would ask me to recite the songs and nursery rhymes I had learned and recorded them. Well, we did have an MP3 version of the cassette. Alas, my mom said we hadn&amp;rsquo;t actually recorded this particular song. A few minutes later, while I was annoying my wife with the MP3 of my childhood cassette, my mom jumped up out of her chair &amp;ndash; the song &lt;em&gt;was&lt;/em&gt; on it!&lt;/p&gt;</description>
			</item>
			<item>
				<title>What Matt Levine writes about (or, The Rise and Fall of WeWork and GameStop)</title>
				<link>https://blog.vghaisas.com/matt-levine-topics/</link>
				<pubDate>Fri, 06 Aug 2021 15:51:37 +0100</pubDate>
				<guid>https://blog.vghaisas.com/matt-levine-topics/</guid>
				<description>&lt;p&gt;There exists a fantastic newsletter called &lt;a href=&#34;https://www.bloomberg.com/opinion/authors/ARbTQlRLRjE/matthew-s-levine&#34;&gt;Money Stuff&lt;/a&gt; by this brilliant writer called &lt;a href=&#34;https://twitter.com/matt_levine&#34;&gt;Matt Levine&lt;/a&gt;. I seriously cannot overstate how much I love reading it &amp;ndash; it&amp;rsquo;s truly amazing. It&amp;rsquo;s not just me, lots of &lt;span class=&#34;underlined-a&#34;&gt;&lt;a href=&#34;https://twitter.com/patio11/status/1346621695776284672&#34;&gt;other&lt;/a&gt; &lt;a href=&#34;https://twitter.com/eastdakota/status/1390380464918118403?s=09&#34;&gt;people&lt;/a&gt; &lt;a href=&#34;https://twitter.com/ShiraOvide/status/1187041805243695107&#34;&gt;like&lt;/a&gt; &lt;a href=&#34;https://twitter.com/mdc/status/1314229979631308800&#34;&gt;it&lt;/a&gt; &lt;a href=&#34;https://twitter.com/hels/status/1347234677220921351&#34;&gt;too&lt;/a&gt;&lt;/span&gt;. You should read it!&lt;/p&gt;&#xA;&lt;p&gt;Recently, I was idly wondering about the topics Matt Levine writes about in Money Stuff. I thought it would be interesting to see because of how they sort of reflect trends in Finance news. I had some free time on my hands &lt;a href=&#34;https://twitter.com/vghaisas/status/1418284686149779456&#34;&gt;in between jobs&lt;/a&gt; and I decided to find out!&lt;/p&gt;</description>
			</item>
			<item>
				<title>Circular Dependencies in Software (and Lockdowns)</title>
				<link>https://blog.vghaisas.com/circular-dependencies/</link>
				<pubDate>Fri, 08 May 2020 15:33:43 +0100</pubDate>
				<guid>https://blog.vghaisas.com/circular-dependencies/</guid>
				<description>&lt;p&gt;A few weeks ago, I was watching some informative system design talks at work. One of the topics discussed was circular dependencies in distributed systems. In particular, I learnt something I found fascinating: if your system has a hard circular dependency, &lt;em&gt;you can never reboot it!&lt;/em&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to turn off the beep/bell sound in zsh</title>
				<link>https://blog.vghaisas.com/zsh-beep-sound/</link>
				<pubDate>Sat, 21 Jul 2018 09:30:45 +0100</pubDate>
				<guid>https://blog.vghaisas.com/zsh-beep-sound/</guid>
				<description>&lt;p&gt;A few weeks ago, I upgraded my Linux OS to &lt;a href=&#34;https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes&#34;&gt;Ubuntu 18.04&lt;/a&gt; (from 16.04). I did a clean install and overall it&amp;rsquo;s been nice - &lt;a href=&#34;https://askubuntu.com/questions/830948/lenovo-ideapad-brightness-keys-not-generating-any-events-in-ubuntu-16-04-1/&#34;&gt;some function keys that didn&amp;rsquo;t work before&lt;/a&gt; now work great out of the box! However, one thing that&amp;rsquo;s annoyed me is the *beep* sounds that the shell makes (both Bash and zsh).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hoisting and Locality</title>
				<link>https://blog.vghaisas.com/hoisting-and-locality/</link>
				<pubDate>Sun, 11 Jun 2017 18:20:35 +0300</pubDate>
				<guid>https://blog.vghaisas.com/hoisting-and-locality/</guid>
				<description>&lt;p&gt;Here&amp;rsquo;s a puzzle. What do you think this Javascript code does?&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-js&#34; data-lang=&#34;js&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;f&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nx&#34;&gt;console&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;log&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello!&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>Longer Thoughts About Balloon</title>
				<link>https://blog.vghaisas.com/thoughts-about-balloon/</link>
				<pubDate>Fri, 09 Jun 2017 18:23:26 +0300</pubDate>
				<guid>https://blog.vghaisas.com/thoughts-about-balloon/</guid>
				<description>&lt;p&gt;I recently wrote a &lt;a href=&#34;https://blog.vghaisas.com/introducing-balloon/&#34;&gt;post about Balloon&lt;/a&gt;, a new programming language I&amp;rsquo;ve been working on. In this post, I&amp;rsquo;ll try to put down some more of my thoughts on what I want to see Balloon become.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Introducing Balloon: A New Programming Language</title>
				<link>https://blog.vghaisas.com/introducing-balloon/</link>
				<pubDate>Thu, 08 Jun 2017 15:03:06 +0300</pubDate>
				<guid>https://blog.vghaisas.com/introducing-balloon/</guid>
				<description>&lt;p&gt;Since February this year, I&amp;rsquo;ve been working on a project that I&amp;rsquo;ve wanted to work on for quite some time now - a new programming language. After about 200 commits, things are now in working condition!&lt;/p&gt;</description>
			</item>
			<item>
				<title>Context-aware Autoescaping in Go</title>
				<link>https://blog.vghaisas.com/go-autoescaping/</link>
				<pubDate>Sun, 04 Jun 2017 16:23:36 +0300</pubDate>
				<guid>https://blog.vghaisas.com/go-autoescaping/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve been working with server-side generated HTML for several years now, and the problem of code injection into HTML pages has been pervasive. A couple of days back, I discovered something fantastic that Go has built right into the standard library to help with this: context-aware autoescaping in HTML templates.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hello World</title>
				<link>https://blog.vghaisas.com/hello-world/</link>
				<pubDate>Thu, 01 Jun 2017 16:39:49 +0300</pubDate>
				<guid>https://blog.vghaisas.com/hello-world/</guid>
				<description>&lt;p&gt;&amp;ldquo;Hello, world.&amp;rdquo; Words that every programmer first learns how to &lt;code&gt;print&lt;/code&gt; (or &lt;code&gt;printf&lt;/code&gt;).&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
