about:credits
page. This page lists the folks who have spent time of their life to make Firefox and Mozilla products better in some way. Many of them are volunteers and have contributed to Firefox’s success in their free time. There are perhaps as many motivations as there are contributors; some do it for fun, while others because they align with the Mozilla’s mission.
It won’t be an exaggeration to say I wanted to be on that page for a while. To be fair, desire doesn’t necessarily translate to regular contributions, which is why I didn’t make it to that page for the longest time. But getting employed by Mozilla helps, and after working on the Add-ons team for a little over a year, I applied to be on the page. And I was accepted!
If you’re using Firefox, type about:credits
in your URL page and you will find me there, forever. For the non-Firefox users, you can directly navigate to https://www.mozilla.org/credits/
That’s really it. It was a bit showoff-y but I thought this achievement deserved a blog post. Thank you for reading!
]]>For most of my life, the only “backup” I had was a 500gb hard disk that came preinstalled in the Fujitsu A514, my first laptop. I had also bought a 120gb solid-state disk at the time and immediately replaced the hard disk with it. The hard disk went into an enclosure and I used it to back up any important data as my laptop went through frequent cycles of OS reinstalls during my distro-hopping era.
Any time I’d want to back up my photos, it would become a folder on the hard disk and then cleared from phone storage as phones came with much smaller storage back then. I remember having 16gb internal storage on my Galaxy Note and thinking I’d never fill it up no matter how many pictures I take.
I used Gmail and the 15gb storage the free account comes with was enough for email and the occasional document sharing via Google Drive. Life was good.
At some point I hooked this 500gb drive to my Raspberry Pi running Nextcloud and even had my very first “NAS” setup.
In 2018, I had some INR 300 of Google Play credits that I used to get some of the apps that I wanted to support and use pro versions of, like Nova launcher, Tasker etc. Along with those, I got the 100gb Google storage plan (at INR 130 a month) and started backing up photos to Google Drive. It was an okay cost as I was already working by then and had some money to spare for subscriptions.
Since then, I had kept that subscription and even upgraded it to 200gb after moving to Berlin.
The problem I set out to solve was to get rid of some of the cloud storage subscription fees I’m paying each month. I was paying duplicate fees for cloud between two Google accounts (and an iCloud account), so the plan would help get rid of two of the three subscriptions resulting in some 50 euros saved each year while providing me to actually follow the 3-2-1 backup strategy for some important data that I wouldn’t want to lose.
Late last December I got a bit obsessed with watching computer build videos. It was fun to learn something new, and to be honest it also was entertaining. From the videos, I learned some important considerations that I’ll have to think for myself before spending my first Euro on this new project.
I also learned about what other people prioritize in their NAS, but it didn’t resonate with me. More specifically, I couldn’t justify the price overhead that acquiring those features needed. Namely,
The nerd in me wanted to really go down the route of buying all the parts and assembling everything myself. The videos I had watched made me confident enough that I could pull it off. Building a PC is fun, and truth be told, I’ve never actually built one for myself.
Having said that, I also recognized that I’m mixing two things together; my requirement for a secure and reliable NAS for my critical data and my desire to build a PC that I can experiment on. I’ve lost important data in the past and I didn’t want to risk it. Especially not after having just watched a bunch of videos and never actually having built a decent PC myself.
I decided to pick up a Synology 2 bay NAS DS223j with 1gb RAM and a relatively weak but does-the-job quad-core Realtek CPU. The cost of the NAS was 180 euros. To do with it, I got a couple of refurbished 16TB Seagate Exos drives, each of which was 180 euros, for a total cost of 540 euros.
My rationale behind going down this path was as follows:
I feel like I’ve given up on some of my preferences when going down the Synology NAS route. And while some of these are conscious, there are some that will only show up once enough time has passed. In any case, I’m still documenting some of them here.
I hope that was informative in some way. I am looking forward to seeing how my investment turns out and if the list of tradeoffs grows further. I’ll leave you with some pictures of the NAS.
Thank you for reading!
]]>The first super market trip was nerve wrecking, and not just because I only had 100 Euro bills with me and was worried I’ll get yelled at by the cashier. But I managed to have dinner that night (as depicted in my picture above), and sleep well. And then to my surprise I also managed to survive the rest of the week. And the rest of the month, and the year, and then some.
I did more than just survive, as one ought to aspire for. I made friends, traveled to pretty places and ate good food. I learned a new language and experienced a culture that was totally foreign just five years ago. I learned to play a musical instrument, play chess and cook tasty food. I did a lot of what I had only dreamed of, including landing my dream job at Mozilla.
Reminiscing on the time from my first day in Berlin till today, I have a lot to be grateful for, lot to smile about and a lot of notes on how to do better in the future.
I’m writing this eating delicious glutinous rice ball dessert, to celebrate the little milestone. The past few years brought us all a lot of changes, and it feels like the world is caught in turbulence. I wonder if I am only thinking so because I’m getting older and tend to pay more attention to what’s happening around me, or if everything is actually happening faster.
It was undoubtedly an interesting journey living through these last five years here in Berlin, and I’m looking forward to the next.
Thank you for reading!
]]>I knew that before buying, but I thought it was an okay tradeoff given the Wifi 6 capabilities at the price. So after an hour of Google Translating every item in the UI and setting everything up, I was very excited to run an internet speed test.
To my surprise, the Wifi connection just dropped as soon as the speed hit 100Mbps, crashing with a “socket broken” error. It was as if someone pulled the plug exactly when I ran the speed test. I tried again with the same result. I could surf the internet, watch youtube and do other things just fine. Just not run a speed test.
Connecting my laptop with the Ethernet cable gave me the full 1Gbps, what I was expecting. Interestingly, I could replicate the behavior of the router restarting via any device and exactly while speed testing.
I was a bit disappointed, but not a lot. After all, blindly buying cheap imported routers off kleinanzeigen ought to have its risks. I sat down to write the seller (who probably had never once tried to run the router, just passed it on from her tenants to me) that the product they sold was kaputt, simultaneously trying to come up with a search query that’d probably match someone else’s description of this problem.
As I was writing my seller a message (not exactly expecting a refund, as these things are sold with zero guarantees), it occurred to me that benchmarking an electronic device ought to push its power utilization. It would make sense why the device would operate normally otherwise. I immediately checked the output of the power supply and the required input from the router. TADAA!
The seller gave me a TP-Link power supply that supplied 9V at 0.6A but the Huawei router was expecting 12V at 1A. I fanatically searched my box of cables and adapters to find a power supply and found a variable power supply that could help with the case.
As expected, that was it. As soon as the router got the right juice, it started pushing 900mbps+. I find that very impressive, given I picked it up for just 20 euros! Welcome to your new home little guy.
Thank you for reading!
]]>
Of course, living in the fancy areas of downtown Mumbai is close to impossible if you don’t already live there or are extremely wealthy. Since I was neither, it always remained a wonder. Back in the day perhaps I’d have said that I’d love a home in the city center, but lately I’m over that thought. The steeply rising prices, the commodification of places of residence and prevailing view of buying a home as sort of a financial investment has been quite off-putting for me, to the point where I no longer desire to own my own place in the city.
But that doesn’t mean I’ve stopped being fascinated by the idea of living in downtown Mumbai.
Fortunately for me, a friend was visiting Mumbai and decided to book a room in one of the poshiest parts of the city; Marine Drive. The “fortunately” part is about him booking a room big enough to accommodate me during his three day stay in the city.
So how does it feel to living at Marine Drive? Amazing. With a sea view, the sunsets are a delight to see from a french style full height glass windows. I could see all the people sitting exactly where my friends, family and I have sat numerous times. I woke up early to go for a morning walk and grabed a coffee along the way, something I literally dreamed of doing for years.
Eating casually at some very good restaurants, or going to a evening musical at the Opera House just a short walk away or having problems like having to travel quite far up north to get to the “regular” part of the city were a delight and I felt extremely privileged and fortunately to be experiencing it.
Yet another of those silly bucket list items got ticked. Sure, living the permanently would be cooler, but this is probably a close second. Or perhaps living there permanently wouldn’t have made me appreciate it as much as I did now.
Even as I was living in that hotel room, I knew how much I’m going to miss the couple of days that I’ll spend there. Now, as I’m writing this, I can see how my past self very accurately predicted that. I’ll end with a picture of sunset over Arabian sea from the hotel room’s window.
Thank you for reading!
]]>Last Sunday I visited the Bergpark Wilhelmshöhe near Kassel, Germany. I was wow-ing the entire time at probably one of the most impressive pieces of architecture I’ve ever witnessed with my own eyes. If you do get a chance, I’d highly recommend paying it a visit.
So we started our hike from the Schloss Wilhelmshöhe and started climbing the hundreds of steps that lead all the way up to the Hercules monument. I read somewhere it is a 250 meter elevation. Whenever I paused to take a look at how high I had reached, it got more and more impressive.
I was eager to reach the top. I tried to rush my way through some of the points of interests along the way to reach ever so higher to get a better view. I had my little camera with me, and I wanted to get the best view. Finally, we reached the top of the hill, but there was a whole building up there, on top of which was the Hercules statue.
Of course, I wanted the best view, so I started going up the stairs of the building trying to get ever so higher. The stairs got narrower and narrower as I rushed to the top. But finally, I was there and tried to look outside through the small windows.
The view was underwhelming. It was more or less the same that we’d been seeing for some time during this hike up the tower but this time through tiny windows that had a lot of dust built upon them. I took a picture, and started walking down after not too long up there.
I was thinking about it in the car on the way back to Berlin, and I realized this is just how I sometimes go about my life; rushing towards a goal while not appreciating the views along the way, thinking something better awaits me at the end of it. I’d have slowed down, had I known how little joy the reaching the destination would bring.
Fortunately, I could appreciate everything a bit more on the way down the hill. Unfortunately the same cannot be done with passed time and experiences.
We live we learn, and such experiences are always a good reminder to slow down and appreciate the views around us; appreciate the present consciously and intentionally for it cannot be re-experienced.
Thank you for reading!
]]>Socha ek post Hinglish mai likh du. Whatapp aur baki saare apps pe dosto ke sath toh aise hi baatein hoti hai, toh phir iss blog pe kyu nahi.
Koi khaas aisa topic hai nahi mere pass. Saturday ko ek dost se baatein chal rahi thi, aur vo kisi baat pe mazak mai bola “Mai bada hone ke baad…” aur hass diya. Joke yeh tha ki bade toh already ho gaye hai, aur kitna bada hona baaki hai?
Usse milne ke baad jab ghar jaate jaate maine socha, akhir bade hue hi kab? Kab vo pal aaya zindagi mai jab hum sab bade ho gaye. Socha maine akhri baari “Bade hone ke baad…” kab kaha hoga.
Kuch khaas yaad nahi, par shayad college ke shuruvat ke saalon mai. Tabhi vo transition hota hai na, hum chahe jo vo kar sakte hai to humari placement hogi ya nahi. Shayad ussi wakt kaafi logo ke sapne chote ho jaate hai aur life ke boundaries thode jyada clear ho jate hai. Ussi ke sath responsibilities aa jati hai aur society ke set template pe zindagi aage badhti chali jaati hai.
Job, uske baad shadi, shayad bacche, agar naseeb hua toh ek acha ghar, gaadi. Bas yehi sab mai vo “bade hokar kya banana hai” wala savaal kahi dabb jata hai. Aur phir yuhi kabhi baaton baaton mai yaad aa jata hai vo saval, jo bachpan mai kitna aksar pucha jata tha.
Padhne ke liye shukriya!
]]>I admit that it almost feels like cheating boasting about performance figures of a website that has very few images, much less any other form of media. But that is what I have, so that is what I’ll try to optimize.
I came across Cloudflare’s Automatic Platform Optimization a couple of days ago while trying to move my website to a bigger EC2 instance on AWS. I was upgrading the EC2 instance mostly for the admin side of the website, which really struggled with image uploads, but this juicy piece of optimization was too good to not try and apply. At least temporarily.
I use Cloudflare for content delivery. Cloudflare, among the plethora of things they currently do (and do well), is a very good CDN. They have a more than adequate free plan for personal websites. For a website like mine, it means the CSS and JavaScript (and the occasional images) get served from a location closest to the visitor via Cloudflare’s edge network.
The initial request to the HTML file, however, is still served by my origin. There’s some caching in place so that not every request has to hit the database, but the content is still travelling to the visitor all the way from Frankfurt, Germany.
This is where Cloudflare’s APO comes in. It allows the entire WordPress website to be cached, including the HTML parts. What that means is that the initial request is served through Cloudflare’s edge cache and nothing touches my origin server.
Setup includes buying the appropriate plan on Cloudflare’s website. At the time of writing it is US$5 / month. The setup includes a WordPress plugin, which is fairly simple and minimal in customizability (not like there’s much to customize here). It does have an option to cache by device type and apparently it can purge caches upon site update, which is neat.
Here’s an example of what it is that you get for the price. Below is the default duration for the initial document load of my blog’s homepage.
Turning on APO through the included WordPress plugin, we immediately see a huge 10x improvement. I believe at this point my own internet connection might also be a bottleneck. The cf-cache-status: HIT
suggests that the HTML document was served through Cloudflare’s cache.
I am a bit unsure if this is possible to achieve using page rules within the free plan (it does look like it is to some extent), but APO also has the added advantages for WordPress.
I admit I don’t really need this optimization. My blog already scores full points on many website performance measurement tools (low-key proud writing this). I also admit that I find it extremely cool to do such things. In any case, hope the article was interesting. Thank you for reading.
]]>Have you ever walked at night on a street that’s lit with street lights? As you pass the lamp post, you start to see a small shadow in front of you. Slowly, as you walk further, the shadow grows, and it keeps growing until it fades to the point where you can’t see it, the next lamp post’s illumination overpowers it or both.
I had this question pop in my mind about the rate at which such a shadow grows, and if is a constant speed or somehow accelerating as the person goes further and further away from the pole. To find it for myself, I spent some time figuring it out today; a lazy rainy Sunday afternoon.
Assuming that
We’re asking,
Let’s draw some figures to better visualize the question.
To solve this problem, the first piece of information that we note is that the top of the pole, the bottom of the pole and the head of the shadow form a right angled triangle.
The top of the person’s head, their feet and the head of the shadow also form a right angled triangle.
Since we drew a line from the lamp to the person’s head extending all the way to the head of the shadow, the angles thus formed at the lamp and the person (θ) are the same. We conclude here that the smaller triangle is similar to the larger triangle.
Using the property of similar triangles, we get an equation of x in terms of y.
or x = 4y
Since we already know the rate of change of x
, which is just the walking speed of the person, we can take derivative on both sides to get the rate of change of y
.
So the shadow is growing at 0.5m/s relative to the walking person. Or, if we want to get rate at which the head of the shadow is moving away from the lamppost, we express z
in terms of y
and then apply derivative on both sides.
2.5m/s away from the lamppost or 0.5m/s faster than the person walking, which it why it seems to grow in length away from us the further we go from the lamppost.
Hope you enjoyed reading this silly thought, and perhaps even learned something. Thank you for reading!
]]>And a couple of thoughts hit me: What’s up with the piss stains? 🤷
And something I could actually answer: How long would I need to use this USB port to make up for the €3.20 that I paid for this ticket.
Now, a day later, I have a calm Sunday morning to ponder all of life’s most urgent questions so let’s get back to the thought from yesterday.
The best way to know exactly how much power I can draw from that port would have been to test it.
The next best thing is to try and guess based on some indicators. From the color of the port, it is safe to conclude it is a USB 2.0 port, and not a USB 3.0 port. From Wikipedia, we see that a USB 2.0 port intended for high power devices allows for a current draw of a minimum of 0.5 amps. The voltage is also standardized to 5 volts.
Amperes times Voltage gives us the power output of the port, which is 0.5 amps x 5 volts which is 2.5 watts (again, at a minimum).
2.5 watts is the power that can be drawn from the port. To calculate how much energy can be consumed over a given time period, we need to simply multiple the watt number by the time number. Typically, it is measured in watt-hours.
My electricity company bills me for the kilowatt-hours I consume. If I use my TV that’s rated at 100 watts for 10 hours, it will be billed as 1000Wh, or 1kWh of energy consumption.
Electricity does not cost the same everywhere, and not even in the same area. Even the same provider might use different prices depending on the time of consumption and a whole list of other factors.
Looking at Vattenfall’s website (an electricity provider here in Berlin), I can see prices range between 25.07 cents / kWh and 33.37 cents / kWh. To make it easy for calculations, I’m going to go with 30 cents / kWh (all € cents).
For €3.20, the price of a single BVG ticket at the time of writing, I can consume (3.20 / 0.30) kWh, which is 10.667 kWh (or 10,667 Wh) of energy with my current electricity provide.
To find the time duration in which our 2.5W port will output 10,667Wh of energy, we simply need to divide the target consumption number by our consumption rate:
10,667 (Wh) / 2.5 (W) = 4,266.8 hours (the Watt unit nicely cancels out giving us the number of hours)
Which is roughly 177.8 days, or just under 6 months.
This time can roughly be cut by half if BVG changes the USB ports to 3.0 guaranteeing a minimum current draw of 900mA but I’m not holding my breath.
Now of course being in a bus for 6 months is going to cost more money for season ticket and I might never recover my full ticket.
But what about the journey that I’ve already paid for? A BVG single ticket is valid for 2 hours. If I make 100% use of the time a ticket is valid for to charge my device, what’s the effective cost of my ticket?
At a minimum of 2.5W for 2 hours, I’ll consume at least 5Wh. At 30 cents / kWh, that’s 0.15 cents worth of electricity.
That’s 0.15 cents or €0.0015 that I can immediately recover from my ticket price, effectively making my single journey BVG ticket cost not €3.20, but a jaw dropping €3.1985 😎🫡
So there you have it. Go grab your 0.047% discount on BVG tickets! Subscribe for more financial tips. Thank you for reading!
]]>