HNHacker News
TopNewBestAskShowJobs

micvbang

81 karma · joined August 9, 2021

submissionscomments
micvbang··on Tools I love: mise(-en-place)
Thanks a lot for telling me!
micvbang··on Tools I love: mise(-en-place)
Yep! And direnv on top of that :)
micvbang··on Ask HN: What's your go-to message queue in 2025?
I got tired of the pricing and/or complexity of running message queues/event brokers, so decided to play around with implementing my own. It utilizes S3 as the source of truth, which makes it orders of magnitude easier to manage and cheaper to run. There's an ongoing blog series on the implementation: https://github.com/micvbang/simple-event-broker
micvbang··on Ask HN: What books have been worth your time?
Surely You're Joking, Mr. Feynman! by Richard Feynman
micvbang··on Ask HN: Is there any software you only made for your own use but nobody else?
I've had many use cases for using an event broker, but never found one that was simple enough that I would venture into hosting it myself, or cheap enough to rent/host that it was feasible. Once I realized that cloud object stores fit this problem perfectly (they provide durability and are cheap to use), I realized that it would be possible to write one myself. I wrote a post on it here, along with a tiny performance evaluation: https://blog.vbang.dk/2024/05/26/seb/

I spent the better part of a week working on it full time, but spread over months. I use it daily - it's serving the needs of multiple projects that I needed it for :)

micvbang··on How to test without mocking
I've been on teams where we've done this (very successfully in my opinion!) by creating helper code that automates creating a separate Postgres schema for each test, running all migrations, then running your test function before tearing it all down again. This all runs on CI/CD and developer machines, no credentials to any actual environments.

A major benefit of doing separate schemas for each test is that you can run them in parallel. In my experience, unless you have a metric ton of migrations to run for each test, the fact that your database tests can now run in parallel makes up (by a lot!) for the time you have to spend running the migrations for each test.

EDIT: usually we also make utilities to generate entities with random values, so that it's easy to make a test that e.g. tests that when you search for 5 entities among a set of 50, you only get the 5 that you know happen to match the search criteria.

micvbang··on Hello World, Simple Event Broker
Hadn't heard of this - it looks very interesting. Thanks for the reference!
micvbang··on Hello World, Simple Event Broker
Cool - thanks for explaining!
micvbang··on Hello World, Simple Event Broker
Yeah, it's currently a one-process-army so consensus isn't a problem :D

With the current implementation you /could/ run multiple readers at the same time; the only state there is, is files in S3. But it's a feature that just kinda happens to fall out of the current implementation, and not something it was designed for :)

micvbang··on Hello World, Simple Event Broker
Thanks, great question!

My strategy was to start out by implementing the underlying storage primitives first, and then look into which transport to implement later. The transport of course can have a large impact on the required storage primitives, but in my case I built it the other way around since I knew what primitives I would need in my applications.

I've been playing with the thought of implementing (parts of) the Kafka API, but I honestly haven't considered the transport that much yet :)

micvbang··on Hello World, Simple Event Broker
OP here. I hadn't seen this before, but I'll definitely give it a look. Thanks!
micvbang··on Hello World, Simple Event Broker
Hehe, I'm very sorry, but there must be some kind of cultural barrier here. My smiley was intended as a way to intentionally show OP that I wasn't trying to be mean or anything, but sincerely asking the question :)

Anyway, it's my post. I just pulled down a Jekyll theme that I thought looked nice and tried it on my laptop and phone (where it worked fine). But thanks, I'll try to look into how and why it's broken.

Thanks!

micvbang··on Hello World, Simple Event Broker
Thanks @eatonphil for posting this! OP here: I'd love to (try to) answer any questions you might have :)
micvbang··on Hello World, Simple Event Broker
What isn't working for you? :)
micvbang··on Intel announces Arm investment, talks up RISC-V
You're right!
micvbang··on Intel announces Arm investment, talks up RISC-V
Thank you. Yes, I agree that it's a good idea to look for companies that create divided systems based on RISC-V. It's primarily these I've had trouble to identify :)
micvbang··on Intel announces Arm investment, talks up RISC-V
Yeah. My thought is that RISC-V has the potential to be very competitive in terms of compute/watt and compute/$. At the very least versus x86, but hopefully also with arm
micvbang··on Intel announces Arm investment, talks up RISC-V
Somewhat related: I believe RISC-V is going to well in the coming decade. I've been trying to figure out what I can invest in to get exposed to it, but have been unable to find anything. If anybody had got any angles, I'd love to hear them!
micvbang··on Ask HN: Programs that saved you 100 hours? (2022 edition)
Oh my lord, I love DBeaver so much!

One thing that blew my mind the first time I saw it, was that when you look at geospatial data, they let you view your geometries on a map. It's so simple and so awesome!

micvbang··on Porting Doom to the 3D0 Console
If you want to get into assembly code in general, I can highly recommend getting into CTFs (capture the flag, "competetive" hacking.) It's a lot of fun and if you go for the reversing or pwning tasks, you'll be directed towards x86 assembly almost immediately. There's _loads_ of content (e.g. writeups) to get you started. I remember using the site pwnable.kr quite a bit :)
micvbang··on Ask HN: How do I start feeling secure financially as a tech worker?
For most people making high wages in tech, I would guess that it's much easier to spend less than it is to make more. Not spending 100$ has the benefit that you'll have an "extra" 100$. When you make 100$ you have to split it with the tax man :)
micvbang··on I'm an 18 year old developer. How do I become one of the best programmers ever?
Hard work, fun, and deliberate practice. Find projects that you think are interesting, which also push the limits of your knowledge. It's a lot easier to work hard when you're working on something you find worthwhile :)
micvbang··on Ask HN: Side projects that are making money, but you'd not talk about them?
After seeing this on HN at some point, I bought the software for a family member -- as far as I know, they're very happy with it! It's kind of a sore thing to talk about, so I haven't heard it said directly, but last I saw the software was still installed on the machine :)
micvbang··on Segmentors vs Integrators: Google’s work-life-balance research
Wow, that sounds absolutely brutal. Where is this? A startup in the US?
micvbang··on Making a game to memorize facts about every country
Keep up the awesome work, Carl!

I absolutely also loved your house building post. For people that didn't read it yet: https://carltheperson.com/posts/my-house/

Your world view is awesome and I especially admire it from a person your age.

micvbang··on PlsExplain: A small dynamic programming language where every value is explained
This reminds me of https://imgur.com/gallery/dZe8k :)