What Would You Do When You Retire?

We’ve all heard the classic question: “What would you do if you won a million dollars?” It’s a fun daydream, but let’s be honest, most of us know that’s a pretty unlikely scenario, so we don’t really think deeply and give very surface level answers. Instead, let’s talk about something that’s actually going to happen to most of us: retirement. Thinking about retirement is a lot more grounded than fantasizing about sudden riches. Pretty much everyone retires at some point, and many of us are saving (or at least planning) for that phase of life. Even if it’s not something you’ve thought about in detail, it’s a realistic scenario. And the beauty of asking yourself what you’d like to do in retirement is that it can help you figure out what you truly want to do with your life right now. ...

September 22, 2025 · 2 min · Amer Khalid

LLMs and an old dev

A lot of developers seem to be afraid of generative AI and LLMs because it may replace their jobs. But as an older developer who sometimes have a hard time keeping up with new frameworks and technologies, LLMs have been life saving. Not only my productivity is high but I am able to keep up new languages and codebases and be productive almost immediately. I used to think about moving to management because it seemed I could not keep up with tech but now I have new confidence that I can keep doing my hobby as a profession for another few years. ...

June 10, 2025 · 1 min · Amer Khalid

The things you own end up owning you

“The things you own end up owning you.” - Chuck Palahniuk. I was minimalist. It was very easy and stress-free life. I did own many things but but only after careful planning and I was quick to sell things that didn’t meet my expectations or once I stopped using them. I also used to live well below my means. I felt free because loss of job or any other financial crisis would not affect me much. ...

February 6, 2024 · 2 min · Amer Khalid

A quick script to build and deploy hugo site on VPS

I had been using GitHub and Netlify for this site but lack of some features such as access to server logs finally got too much. So I decided to move this blog to my VPS. One thing I really love about using Github is CI/CD and Github Actions. But I wanted something even simpler with less dependencies. So I decided to use a simple bash script to build and deploy the site. ...

September 6, 2023 · 1 min · Amer Khalid

Past Performance Does Not Guarantee Future Results: A Reflection on Human Nature and Trading Strategies

It’s both intriguing and somewhat disheartening to observe how trading concepts often mirror human behavior. Here’s how: Follow the Trend In the investment world, the saying “past performance does not guarantee future results” is well-known. Despite this warning, many successful trend followers have found that stocks moving up generally continue to do so, and vice versa. Interestingly, this concept applies to humans as well. Those who are happy and kind often continue in the same manner or even improve, while those who are miserable tend to spiral downward. ...

August 7, 2023 · 2 min · Amer Khalid

Zygo: Finally listen to everything while swimming

I love swimming but it is hard to swim for more than 30 mins, not because I get tired but because it gets boring. I had been looking for headphones for swimming but almost of all them are essentially mp3 players. That is because Bluetooth doesn’t pass through water very well. You need to pre-load songs or mp3s. Which would be fine if you only care for music. But I am mostly listening to news or audiobooks. It seems like too much work to use those headphone for anything but music. ...

July 10, 2023 · 3 min · Amer Khalid

undefined method xxxxx' for #< Hash:0x00000 >

This error in our Rails application drove me crazy. The error was like this: undefined method xxxxxx' for #<Hash:0x000000001234> The problem was that i was calling a method like this: a_method(var: var) And the method definition was like def a_method(var: var) which resulted in something called variable shadowing and caused clash between variable passed in the method and local variable being defined. The fix was to change method definition to def a_method(var:) ...

June 14, 2023 · 1 min · Amer Khalid

How to find the other end of deck drains?

In our backyard lay a series of deck drains that perennially harbored standing water. Despite my best efforts, tracing the end of these drains proved to be an elusive task, seemingly due to the fact that it was compacted and buried beneath layers of earth. I even ventured to employ a drain snake to address the issue, but the screws securing the drain covers were victims of rust, rendering them immovable. ...

May 15, 2023 · 1 min · Amer Khalid

Script inherits from native type 'RigidBody2D', so it can't be assigned to an object of type: 'Node2D'

Getting this error while following this tutorial in Godot v4.0.1. In my case, I had added Node2D. The fix was to right click on the problem node under scene and click Make Scene Root. And then delete Node2D. Here is what diff looked like: diff --git a/2d-game-tutorial/Mob.tscn b/2d-game-tutorial/Mob.tscn index 9eb1630..e720d7f 100644 --- a/2d-game-tutorial/Mob.tscn +++ b/2d-game-tutorial/Mob.tscn @@ -48,20 +48,18 @@ animations = { radius = 36.0 height = 100.0 -node name="Mob" type="Node2D"] -script = ExtResource("1_73gb4") - -node name="RigidBody2D" type="RigidBody2D" parent="."] +node name="RigidBody2D" type="RigidBody2D"] collision_mask = 0 gravity_scale = 2.66454e-15 +script = ExtResource("1_73gb4") -node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="RigidBody2D"] +node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] scale = Vector2(0.75, 0.75) sprite_frames = SubResource("SpriteFrames_c1yjy") animation = &"walk" -node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"] +node name="CollisionShape2D" type="CollisionShape2D" parent="."] rotation = 1.5708 shape = SubResource("CapsuleShape2D_h1pjc") -node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="RigidBody2D"] +node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]

April 28, 2023 · 1 min · Amer Khalid

Everyday is a vacation

I think a lot of people would love to live their life as if they are on a permanent vacation. Before I was married, I didn’t make a lot of money but felt like that everyday was a vacation. For me, vacation means: Eating out/not cooking Not cleaning Spending time outside Not working Ready to travel Eating out is cheaper than cooking, if you are not picky. I ate mostly fast food. Of course, it is not healthy but it is vacation. Also it is still better than overeating home-cooked meals. ...

November 23, 2022 · 2 min · Amer Khalid