HNHacker News
TopNewBestAskShowJobs

wallstprog

163 karma · joined July 26, 2016

submissionscomments
wallstprog··on Why can't you tune your guitar? (2019)
Or in the middle of a song -- lots of songs modulate between different keys.
wallstprog··on Perfume reviews
A great book that has perfume as a major plot point is "Jitterbug Perfume" by Tom Robbins.
wallstprog··on Users advised to review Oracle Java use as Big Red's year end approaches
Having good results w/Azul so far
wallstprog··on Jellyfin as a Spotify alternative
On another note, Jellyfin can look inside .iso files, which afaict Plex is not able to. Very handy with my collection of ripped dvd's.
wallstprog··on Normal Boyhood Is ADHD
wonder what diagnosis Tom Sawyer or Huck Finn would have got
wallstprog··on Ask HN: How to learn marketing and sales as a solo entrepreneur?
Michael Porter's books on marketing (esp. "Competitive Strategy") are well-regarded.
wallstprog··on The Fastest Mutexes
" I also managed to make contended nsync mutexes go 30% faster than nsync upstream on AARCH64, by porting it to use C11 atomics."

Curious about this -- so what does C11 atomics use to implement? At least in Linux, C++11 atomics use pthreads (not the other way around).

wallstprog··on The perils of transition to 64-bit time_t
Briefly mentioned elsewhere in the comments, but C++11 had a similar issue around the transition from a copy-on-write (COW) to a small-string-optimization (SSO) implementation for std::string. If any type is more ubiquitous than std::string, I don't know what it could be, but the transition was reasonably painless, at least in my shop.

See https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_a... for more info.

wallstprog··on Picking Glibc Versions at Runtime
If you're using dynamic linking, the following two tools will come in very handy:

- pldd (https://man7.org/linux/man-pages/man1/pldd.1.html) shows the actual dynamic libs linked into a running process. (Contrast this with ldd, which shows what the dynamic libs would be based on the current shell environment).

- libtree (https://github.com/haampie/libtree) which shows dependencies similarly to ldd, but in tree format.

wallstprog··on How to run Valgrind on a CGI program in C
You might want to take a look at https://github.com/nyfix/memleaktest

We've open-sourced the tools we use to run valgrind (and ASAN) on large mixed C++/Java code bases. The JVM in particular triggers a slew of errors which can make filtering valgrind output impractical, but the scripts we developed can handle that. FWIW, we use these tools every day on the code that goes into NYFIX Marketplace (https://www.broadridge.com/financial-services/capital-market...).

wallstprog··on Ask HN: Weirdest Computer Architecture?
I thought it was a brilliant design, but it was dog-slow on hardware at the time. I keep hoping someone would revive the design for current silicon, would be a good impedance match for modern languages, and OS's.
wallstprog··on Rediscovering Transaction Processing from History and First Principles
So it seems that TB prioritizes throughput over latency, similar to VoltDB for instance -- is that correct?
wallstprog··on ZeroMQ – Relicense from LGPL3 and exceptions to MPL 2.0
At my day job we run > 50 million messages per day through ZeroMQ, and have been quite pleased with its performance and stability (https://github.com/nyfix/OZ/tree/master#who-uses-it).

But the truth is that ZeroMQ has a steep learning curve, and some rather sharp edges that can leave nasty cuts if one is not careful.

If you're interested in becoming familiar with ZeroMQ, you might want to check out our implementation: <https://github.com/nyfix/OZ/>.

wallstprog··on ZeroMQ – Relicense from LGPL3 and exceptions to MPL 2.0
Well, the original non-thread-safe sockets (e.g., ZMQ_SUB, etc.) were that way because they support multi-part messages. And yes, the fact that they are not thread-safe is a bit of a stumbling-block for ZeroMQ newbies (including me, back in the day).

However, it's not that hard to work around their non-thread-safe nature with a single dispatch thread (e.g., see <https://github.com/nyfix/OZ/blob/master/src/transport.c#L457>), and that approach has other potential benefits.

In any case, newer socket types (e.g., ZMQ_CLIENT) have since been defined that are thread-safe, but necessarily don't support multi-part messages. (They tend to be different in other ways as well -- e.g., ZMQ_RADIO/ZMQ_DISH are "sort of" replacements for the original ZMQ_PUB/ZMQ_SUB sockets, but have other constraints as well).

wallstprog··on BlazingMQ: High-performance open source message queuing system
Unlikely, but they seem to be different things altogether. BlazingMQ appears to be a traditional message queue (think ActiveMQ), with message peristence. ZeroMQ is more of a network middleware (think Tibco Rendezvous), and does not include persistence.

BlazingMQ also appears to be more of a "platform" or "service" that an app can use (sort of like Oracle, say) -- ZeroMQ includes libraries that one can use to build an app, service or platform, but none is provided "out of the box".

Which makes it harder to get started with ZeroMQ, since by definition every ZeroMQ app is essentially built "from scratch".

If you're interested in ZeroMQ, you may want to check out OZ (https://github.com/nyfix/OZ), which is a Rendezvous-like platform that uses the OpenMAMA API (https://github.com/finos/OpenMAMA) and ZeroMQ (https://github.com/zeromq/libzmq) transport to provide a full-featured network middleware implementation. OZ has been used in our shop since 2020 handling approx 50MM high-value messages per day on our global FIX network.

wallstprog··on What do you all think?
Sounds like a scam to me
wallstprog··on Microtiming in Metallica's “Master of Puppets” (2014)
King Crimson has several songs where different players are playing different time signatures -- check out https://youtu.be/GDFHtlbhqzA
wallstprog··on People Put Nearly $1B into Apple Savings Accounts in First 4 Days
Maybe, but the actual "bank" in this arrangement is Goldman Sachs, and they are one of the more established players in finance.
wallstprog··on Ask HN: Tools to learn music theory?
You might want to give Rick Beato a try: https://rickbeato.com/

He does interesting YouTube videos on music topics, but also sells theory and ear-training courses online.

wallstprog··on Ask HN: Science fiction movies that are appropriate for 12 year olds?
Close Encounters of the Third Kind
wallstprog··on NYSE Tuesday opening mayhem traced to a staffer who left a backup system running
Well, you do that to make sure it works. At one of my previous jobs, we'd switch the primary and secondary datacenters every six months just to make sure we could.
wallstprog··on NYC Slice
There's not much that Staten Island has to brag about, but pizza is one of those things, and SI is very much under-represented here.
wallstprog··on Coat makes wearers invisible to AI security cameras
See also "Zero History" by William Gibson (2010) (although the "invisible t-shirt" idea apparently came from Bruce Sterling).
wallstprog··on Memory leaks detection paper co-authored by Netflix CEO Reed Hastings in 1992 [pdf]
It's been a while, but IIRC ASAN catches most/all of the memory-related errors that Purify did.

Purify did have a debugger-like GUI that would break on errors, which could be handy.

valgrind can also do most of the same checks, but is much slower.

On my team we use both

wallstprog··on Memory leaks detection paper co-authored by Netflix CEO Reed Hastings in 1992 [pdf]
I used Purify back in the day, and while it worked well, getting it working was a royal PITA. IIRC it was necessary to recompile EVERYTHING with Purify.

Anyway, I would think the gold standard these days is clang's Address Sanitizer (https://github.com/google/sanitizers/wiki/AddressSanitizer). clang/ASAN also runs on Mac in addition to Linux.

wallstprog··on MacBook Air: new midnight color does scuff super easily
OTOH, I've got a bunch of MacBooks from 2012, 2014 and 2015 that are still running fine. Just bought a "scratch & dent" 2018 iPad for < $200 and it's just fine.

If that's "planned obsolescence", I'm just happy to be downstream of it ;-)

wallstprog··on Must be this tall to write multi-threaded code (2015)
valgrind is great, but be aware that valgrind runs single-threaded, which definitely changes the way multi-threaded apps behave: https://valgrind.org/docs/manual/manual-core.html#manual-cor...

In practice what this means is that cpu-bound threads can monopolize the single thread, and we've had thread starvation issues as a result in some tests. Setting the "-fair-sched" option resolved those issues, but made valgrind run even slower ...

wallstprog··on What were interviews for programming positions like in the 70s and 80s?
Back in the mid-70's Manufacturers Hanover Bank used to give candidates a "Programmer Aptitude Test", which was basically an IQ test. If you passed you were hired, and they paid to send you to a 12-week class that taught S/360 assembler & COBOL.

I took Comp Sci. in college, but my class also had math majors, actors, and all sorts of other people. IIRC it was about 50/50 men/women.

wallstprog··on Some people don't deserve access to the machine room
ACHTUNG! ALLES LOOKENSPEEPERS!

Das computermachine ist nicht fuer gefingerpoken und mitten grabben.

Ist easy schnappen der springen werk, blowenfusen und poppencorken mit spitzensparken.

Ist nicht fuer gewerken bei das dumpkopfen.

Das rubbernecken sichtseeren keepen das cotten-pickenen hans in das pockets muss; relaxen und watchen das blinkenlichten.

wallstprog··on Meld is a visual diff and merge tool targeted at developers
Another fan of Beyond Compare here, but I want to point out something everyone else has missed so far, which is that BC is great for comparing all sorts of files, not just code.

For example, I use its "Table Compare" feature to compare log files from different machines, sorted by timestamp. This lets me easily see the order of operations in a distributed system.

Page 1 of 3Next →