HN user

vrnvu

1,711 karma
Posts23
Comments139
View on HN
mrmarket.lol 1mo ago

What happened to nerds?

vrnvu
755pts512
mmapped.blog 4mo ago

The Third Hard Problem

vrnvu
2pts0
smallcultfollowing.com 4mo ago

How Dada enables internal references

vrnvu
24pts5
www.gingerbill.org 5mo ago

Does Syntax Matter?

vrnvu
3pts0
ferd.ca 6mo ago

Software Acceleration and Desynchronization

vrnvu
5pts0
rakhim.exotext.com 6mo ago

Programming vs. Coding vs. Software Engineering (2019)

vrnvu
2pts0
hintjens.gitbooks.io 7mo ago

Social Architecture – The Toolbox

vrnvu
2pts0
www.thonking.ai 7mo ago

Why PyTorch is an amazing place to work and Why I'm Joining Thinking Machines

vrnvu
1pts0
mitchellh.com 7mo ago

Ghostty is now non-profit

vrnvu
1343pts289
cultureandcommunication.org 7mo ago

Artificial Computation

vrnvu
11pts2
www.youtube.com 8mo ago

George Hotz: Outwit, Outplay, Outlast [video]

vrnvu
5pts0
www.raphkoster.com 8mo ago

Game design is simple

vrnvu
560pts173
purplesyringa.moe 8mo ago

JVM exceptions are weird: a decompiler perspective

vrnvu
166pts69
prog21.dadgum.com 8mo ago

Programming Modern Systems Like It Was 1984 (2014)

vrnvu
6pts0
marketunpack.com 9mo ago

J.P. Morgan's OpenAI loan is strange

vrnvu
260pts156
anukari.com 1y ago

Had a super productive conversation with an Apple Metal engineer

vrnvu
4pts0
www.cerebras.ai 1y ago

Meta Collaborates with Cerebras in New Llama API

vrnvu
1pts0
transactional.blog 1y ago

Enough with All the Raft

vrnvu
4pts0
geohot.github.io 1y ago

Death of the Visceral

vrnvu
2pts0
guzey.substack.com 1y ago

You shouldn't build your career around existential risk

vrnvu
3pts2
arun.is 1y ago

The tale of two Shanghais

vrnvu
81pts18
pushtoprod.substack.com 1y ago

Best Questions and Answers to the "Terrifying Netflix Concurrency Bug" Post

vrnvu
1pts0
ec.europa.eu 5y ago

European enterprise survey on the use of artificial intelligence

vrnvu
1pts0
Make.ts 6 months ago

I really liked the example in OP. I will give Deno and Dax a shot.

It's a cycle, design patterns, TDD, the latest framework or language. We keep chasing the next silver bullet, but there isn't one. There's no easy road.

Make.ts 6 months ago

Made me think. Every time I see a “Postman collection” or similar artifacts, my heart skips a bit. Use curl. Run it interactively in the terminal. When it works, move it into a shell script where you can simply check the status code. Voilà, magic! you’ve got yourself a simple but valuable integration test.

Instead of juggling dashboards and collections of requests, or relying on your shell history as Matklad mentions, you have it in a file that you can commit and plug into CI. Win-win.

At some point, that testing shell script can be integrated into your codebase using your working language and build tooling.

First. Love that more tools like Honeycomb (amazing) are popping up in the space. I agree with the post.

But. IMO, statistics and probability can’t be replaced with tooling. As software engineering can’t be replaced with no-code services to build applications…

If you need to profile some bug or troubleshoot complex systems (distributed, dbs). You must do your math homework consistently as part of the job.

If you don’t comprehend the distribution of your data, the seasonality, noise vs signal; how can you measure anything valuable? How can you ask the right questions?

On the one hand, at lower-levels you want to exhaustively enumerate errors...

On the other hand, at higher-levels, you want to string together widely different functionality from many separate subsystems without worrying about specific errors...

I feel like the Rust ecosystem of crates has naturally grown to handle these two ideas pretty well. `anyhow` for applications, `thiserror` for libraries.

Metrics are simple, extremely cheap

You clearly haven’t seen our Datadog invoice :)

Jokes aside, I liked the idea of listing things by level of detail.

One related issue I run into all the time is how context gets lost when moving between layers. You start with host metrics, then Kubernetes wraps the host and overrides the tags, and suddenly you can’t filter host metrics by node anymore. Watch out.

Stop talking 8 months ago

Everyone can talk and give opinions. The real question is if you can actually make a difference. I tell people there's a gap between knowing how to do something and actually doing it. And that gap is a big part of our engineering skills.

If I'm not going to change something, I'd rather not talk or give opinions.

Related: https://strangestloop.io/essays/things-that-arent-doing-the-...

> Why is it not more popular?

Property, fuzzy, snapshot testing. Great tools that make software more correct and reliable.

The challenge for most developers is that they need to change how they design code and think about testing.

I’ve always said the hardest part of programming isn’t learning, it’s unlearning what you already know…

Any time you are making decisions based on information that you know at compile time, you could apply this technique

I’d go further. Most business requirements are known at compile time.

Take the simplest example, dispatching a function based on a condition. If A then do_X, if B then do_Y.

People often reach for elaborate design patterns, dependency injection, or polymorphism here. But why? If the decision logic is static, don’t turn it into a runtime problem.

Inline the code. Move the ifs up. Write clear, specific functions that match your domain knowledge instead of abstracting too early…

Don’t make compile time problems runtime ones.

I’ve been using a "no syntax highlight" theme for years. I recommend it. After a while, your brain basically turns into an AST parser and code becomes easier to read.

I've been applying a lot of principles and suggestions from TigerBeetle style lately, mainly in Rust and Go and I can’t recommend it enough.

- single entry point, near-zero deps

- ci locally and tested, one command to runs tests, coverage, lint etc

- property/snapshot/swarm testing, I love writing simulations now and letting the assertions crash

- fast/slow split + everything is deterministic with a seed

- explicit upper bounds + pool of resources. I still dynamically allocate but it makes code simpler to reason about

Thanks to the TB team for the videos and docs they been putting out lately.

1 Great documentation.

2 Makes you realize how complex async rust is. I can’t believe how many subtle bugs are reported in this report, and how many more are potentially related…

3 I think DST can help spot these cancellation bugs

Some thoughts:

Linkedin just deprecated Kafka in favor of Northguard [1]. Curious how this actually compares in practice. Is it worth the effort of building yet another distributed log? Is it worth the effort to mantain Kafka if new alternatives are popping? Jepsen found plenty of issues last year [2], so maybe Linkedin is in the right direction by building from scratch...

Distributed systems are tough to get right, and while it's exciting to see new approaches, the space is definitely getting harder to follow.

[1] https://www.linkedin.com/blog/engineering/infrastructure/int...

[2] https://jepsen.io/analyses/bufstream-0.1.0

I use Apple Notes and Reminders for work.

- Reminders: I just have a few simple lists: TODO, WIP, and BLOCKED (for stuff I'm waiting on others for).

- Notes: I keep daily, weekly, and monthly notes. At the end of each day, I clean up my daily note and move anything important to the weekly one, and then do the same into monthly.

>This organization corresponds nicely to a idealized human organization of bosses and workers - bosses say what is to be done, workers do stuff. Bosses do quality control and check that things get done, if not they fire people re-organize and tell other people to do the stuff. If they fail (the bosses) they get sacked etc. <<note I said, idealized organization, usually if projects fail the bosses get promoted and given more workers for their next project>>

We miss you Joe :)

Zig Error Patterns 12 months ago

It's amazing how coherent Zig's fundamental building blocks are as a programming language, everything fits together like a puzzle.

This post reminds me of one of Andrew's early talks about the type system and the comptime... With the core building blocks, we can achieve elegant solutions without adding unnecessary syntax complexity.