you can have your cake and eat it too. aluung.com, ngala.dev, thought-chronicles.com

Joined November 2022
16 Photos and videos
Hi @convex team. Any plans to provide platform -level ip filtering? I love the ratelimiter component and it works but sometimes, you do not even want the requests to reach your convex deployment
37
Finally got around to completing the mini-WAL in @golang that I thought of building this week as get even deeper in @golang. I'll say that has been the most challenging one so far but was quite fun. Learnt a ton about working with the file system. There's definitely lots that can be improved but just seeing it in action feels good.
1
40
However, this was a project in preparation for the next one which is a single-node, persistent message broker that appends messages to on-disk logs and serves them over a framed TCP protocol, with Kafka-style topics, partitions, and consumer offsets. The goal for this one is to understand storage and networking even better...
1
27
From the L7 Load balancer I built a few weeks ago, to this mini-Write Ahead Log(WAL) and now the message broker, the amount of knowledge acquired cannot be understated. After this one though, I'll spend some time to clean things up, write tests and get them all on github
22
Yimnai Nerus retweeted
RLS != a shared schema across users People are conflating the two over the past few days. RLS is a first-class feature of Postgres (and other databases) for defining DB-enforced restrictions around row access. You can have a shared schema without such a feature (and many do). For example, OSS MySQL doesn't even have this! Reminds me of the distinction between foreign keys (FK) vs FK constraints, which some mix up. FKs are good! They're a core part of how relational databases work, making connections between rows in your many tables. FK constraints is a first-class feature of the database, enforcing referential integrity between tables. In this case, it's not "wrong" to use, but it adds overhead that may not be worth it (especially at scale or when sharding).
10
5
155
37,935
Working on this WAL has been the toughest so far as I've gotten deep into @golang these past weeks. The tricky part has been reading from it with user determined offsets. Right now you can move the pointer forward or backward by any number of records. What's left now is figuring out how to check to move between index files if the delta passed by the user is so large that the expected start point is either in an index file ahead of the current one or in one behind the current one. Fun so far
1
20
Maybe I'm thinking about this wrong and should probably track the number of records in each segment file and the record number for the current checkpoint. This way when a user passes a delta, I can immediately calculate and know what index file to look instead of essentially traversing from the current checkpoint?
10
Yimnai Nerus retweeted
@Uber @UberFR @UberFR_Support this doesn’t make sense. My wife left her bag in an Uber in Paris on Thursday at 9:55pm while taking our baby out of the car. The driver drove off while the bag was still inside. We reported it immediately at 9:57pm so he didn’t have the time to pick somebody else in his car. The next day, your support told us the driver confirmed he had found the bag (see screenshot). Yesterday, we’re first told the opposite, that the driver “checked and did not find it.” Finally, after arguing, we’re told that they couldn’t reach the driver and that nothing can be don anymore since they contacted him “too many times”. So which is true? Did the driver lie the first time? Was the bag lost after he confirmed having it? Or is your support giving inconsistent information? We’ve asked for the driver’s contact to resolve this directly, no help. This isn’t just a lost item anymore, it’s a lack of accountability. We need a clear explanation and help recovering the bag.
14
65
85
13,133
Yimnai Nerus retweeted
Stop taking advice from people who've never built anything. If they haven't put something on the line, their opinion on your risk isn't worth hearing. The people who judge the attempt are never the ones making one.
146
342
2,463
181,248
One of the constant themes as I go deep in @golang is how much there is to learn that lol. Been building a small WAL just to understand certain things and let's just say it has been intriguing so far
26
Yimnai Nerus retweeted
Some of us need to bury our egos today, before we end up burying the people we love. A few years ago, a woman shared a heartbreaking story that still lingers with me. It was a regular Monday morning. She had prepared breakfast as usual, but her husband wasn’t pleased with the way she sliced the bread. What should have been a minor comment quickly turned into an argument. Both of them, stubborn and full of pride, refused to back down. The small disagreement escalated into a cold war that lasted for days. The husband, who knew his wife’s love language, tried to reach out to her subtly, a gentle touch, a soft word, small gestures meant to soften her heart. But she had made up her mind: she would not give in until he apologized first. She knew about his heart condition. Three days after the argument began, in the middle of the night, her husband suddenly suffered a cardiac arrest. In pain and struggling to breathe, he reached out and touched her, desperately trying to wake her for help. Still angry and half-asleep, she assumed he was trying to seek affection. In her pride, she pushed his hand away and turned her back on him. He passed away that same night during the struggle. By morning, she woke up, still upset, got dressed, and left for work without saying a word to him. She didn’t even glance at his side of the bed. It was only after she returned from work that evening that she realized something was wrong. Her husband was still lying in the same position, cold and unresponsive. What began as a silly argument over sliced bread ended in a lifetime of regret. The husband left without a word from her and up till today she lived in regret because her husband was her best friend. This is a true story. And the painful truth is, it could happen to any of us. In marriage, in families, and in our closest relationships, we must learn to choose peace over being right. We must learn to swallow our pride before pride swallows the people we cherish most. Because sometimes, the last argument you have with someone… truly becomes the last. Bury the ego. Choose love while there is still time.
5
13
37
1,506
Yimnai Nerus retweeted
Don't mind these Twitter people Families are living well and even sending kids abroad with less than half of this amount.
800k is more than enough even for a family man. If you choose an apartment of 130k your 2 months salary covers that, you got 2 kids your two months salary covers their school expenses, half a year’s salary can keep you going for a year and a third for savings & miscellaneous.
4
2
16
1,189
Continued with my @golang deep dive today. Today’s focus was building a simple TCP server with TLV (length-prefixed) framing. It’s amazing how many things adjacent to what you intend to learn you pick up if you stay focused and go just one step further. After experiencing this with Go over the last few weeks, staying shallow is no longer an option for me...
1
46
Started with a simple market-ticker ingestion pipeline over the Binance WebSocket API, then a full-blown L7 load balancer with circuit breaking and rate limiting, and now a TCP server with framed messages. It could only get better.
49
Currently struggling with some Information hierarchy vis-a-vis simplicity in this app I'm working on. How do you even simplify something, make it accessible and easy to understand when it's inherently complex?
1
1
25
How do you even approach something like this? Have a top level Payments, Loans and Receivables, the first having a wallet, savings, contributions, fines and insurance tabs which then have their own individual top level tabs? At what point does it become too much for the user?
1
20
Sticking to tabs in the interim but even for me, it's way too much. Got to figure out how to simplify this without having all these things in different places because usually, users want to perform all these operations in one place ugh
9