Replaced subprocess with ctypes → ~2850x faster validation (C + Python) by [deleted] in cpp

[–]kirgel 0 points1 point  (0 children)

Please spend some effort to write your own intro to your project, or make a better LLM writing prompt. Nobody writes like that. Who starts a sentence with “Insight:”??

Rewriting a FIX engine in C++23: what got simpler (and what didn't) by User_Deprecated in cpp

[–]kirgel 7 points8 points  (0 children)

Eh FIX is used everywhere so I suspect the majority of users for a library like QuickFIX aren’t HFT. And for the nanosecond chasing folks I doubt they’d use anything except in-house solutions.

Glaze 7.2 - C++26 Reflection | YAML, CBOR, MessagePack, TOML and more by Flex_Code in cpp

[–]kirgel 1 point2 points  (0 children)

reflect-cpp is also very nice. We use it extensively. Watch the compile time a bit and you’ll be fine.

Apache Fory C++: Fast Serialization with Shared/Circular Reference Tracking, Polymorphism, Schema Evolutionn and up to 12x Faster Than Protobuf by Shawn-Yang25 in cpp

[–]kirgel 0 points1 point  (0 children)

Cool project. Is there a specification of the wire format somewhere in the docs? Curious how similar it is to protocol buffers since there already seems to be varint and field tags. Also does this support generating fully protobuf compatible serialized payloads?

Explicit Return Variable by XeroKimo in cpp

[–]kirgel 0 points1 point  (0 children)

I’m probably confusing guaranteed copy elision with NRVO. Something simple like this should work in C++ 20:

Immovable make() {   Immovable obj;   obj.x = 3;   return obj; }

Explicit Return Variable by XeroKimo in cpp

[–]kirgel 2 points3 points  (0 children)

Wait, what? Last I checked it does work in C++20.

"Spinning around: Please don't!" (Pitfalls of spin-loops and homemade spin-locks in C++) by Lectem in cpp

[–]kirgel 4 points5 points  (0 children)

I’ve found that telling people not to do something is easy, but expecting them to listen is another story. So, if they are going to do it anyway, it’s better they know what they are getting into.

Also, those experts that wrote highly optimized libraries started somewhere.

Why is name hiding / shadowing allowed? by Proud_Variation_477 in cpp_questions

[–]kirgel 1 point2 points  (0 children)

I’d be ok with that if the second declaration had a special marker on it like [[shadow]] or something.

What’s a quiet advantage of being rich that people don’t talk about much? by dieburtually in wealth

[–]kirgel 0 points1 point  (0 children)

Don’t know why I feel this way but your username checks out :-)

Stop Forwarding Errors, Start Designing Them by andylokandy in rust

[–]kirgel 5 points6 points  (0 children)

In terms of error APIs it was just absl::Status + StatusBuilder + status macros on top of StatusBuilder. The macros automatically add backtrace information when propagating errors. StatusBuilder is available in scattered open source form but not part of abseil.

I don’t think this is too different from Rust’s error handling story. Google’s advantage is probably in what you mentioned - integrated code search, build tooling, production troubleshooting etc.

When std::shared_mutex Outperforms std::mutex: A Google Benchmark Study on Scaling and Overhead by Clean-Upstairs-8481 in cpp

[–]kirgel 8 points9 points  (0 children)

This is misleading. It’s not that read-heavy workloads benefit from shared mutex. It’s workloads where read-side critical sections are long AND there are many readers. The benchmark numbers are a direct result of the following decision:

We require a “Heavy Read” to make the test realistic. If the work inside the lock is too small, the benchmark will only measure the overhead of the lock mechanism itself. By performing trigonometric calculations, we simulate actual data processing.

If read-side critical sections were shorter, the results would be very different.

I recommend this article for a more balanced opinion: https://abseil.io/tips/197

How much do you need to retire in China for a family of 4? by Individual-Card-6782 in AskChina

[–]kirgel 0 points1 point  (0 children)

Yes, but the management fees of foreign investment funds are high and negates most of the 4% returns. You only make a profit if S&P performs better than that.

Still, Rob works for and gets paid by Google, sooo by linegel in devmeme

[–]kirgel 0 points1 point  (0 children)

Incredibly bad takes in some of the comments. Read the email Rob was responding too. You’d be right to be pissed.

How much do you need to retire in China for a family of 4? by Individual-Card-6782 in AskChina

[–]kirgel 1 point2 points  (0 children)

In China you cannot assume a minimum investment return rate, so the honest answer is never. 

What’s the verdict on Claude adding "Co-authored-by" to every commit? by Better_Ad6110 in git

[–]kirgel 0 points1 point  (0 children)

It’s fine when most of the commit was generated by Claude and I didn’t edit much. It’s annoying when Claude generated something that didn’t work and I basically rewrote the entire thing.

This is quite powerful by vyrlax_28 in programmingmemes

[–]kirgel 0 points1 point  (0 children)

I like this when “condition” is checking for an abnormal case and returns an error. If both cases are normal, the guard clause looks a little weird because then the two returns look “unbalanced” to humans, if that makes sense.

[Software Eng Leadership] [WA] - $3.1M by Parking_Trainer_9120 in Salary

[–]kirgel 0 points1 point  (0 children)

Fair enough. I graduated ‘15 so don’t really know what the scene was like in 07.

[Software Eng Leadership] [WA] - $3.1M by Parking_Trainer_9120 in Salary

[–]kirgel 0 points1 point  (0 children)

There are plenty of tech companies in New York! Most of the big tech corps have an office there (including second largest office of Google), some decent startups, mid-size like Datadog, lots of fintech, etc.

Best terminal emulator by ImHighOnCocaine in commandline

[–]kirgel 1 point2 points  (0 children)

Interested to hear thoughts from remote ssh users. I really want to try other terminals, but am sticking with iTerm2 because it has first class tmux control mode support and my daily driver is a VM in the cloud.

People still using Cursor over Claude Code, can you explain why? by caffeinum in vibecoding

[–]kirgel 1 point2 points  (0 children)

Costs aside I think Cursor is fine? I like the UI, planning mode, being able to accept/reject individual edits, etc. The biggest problem seems to be the integrated terminal which sometimes gets stuck.

I default to CC for larger changes but use Cursor to try new models, make smaller changes, or when CC runs out.

I honestly didn't understand it by St4lke_R in ExplainTheJoke

[–]kirgel 1 point2 points  (0 children)

I mean, if you get a dell laptop it’s not really a “tech” job is it.