HNHacker News
TopNewBestAskShowJobs

cue_the_strings

346 karma · joined September 19, 2019

andrejradovic.com

hackernews@andrejradovic.com

Consultant in the finance industry (hedge funds). C++ / Python / C# / DevOps.

Used to do embedded development professionally, now only as a hobby. I also self-host stuff as a hobby and have a k8s cluster at home.

Amateur musician, music lover, audio effect enthusiast, cyclist (just for fun, no racing).

submissionscomments
cue_the_strings··on How the music industry learned to love piracy
I'm afraid you'd be dissapointed if you got what you wanted, because it'd likely be AI-generated money-laundering-core.
cue_the_strings··on Robin Warren, pathologist who rewrote the science on ulcers, has died
Yeah, and I didn't drink too much of it either; like 1 or 2 glasses a day, often 0, probably 1 on average.
cue_the_strings··on Robin Warren, pathologist who rewrote the science on ulcers, has died
I had gastritis (duodenitis, in fact) a couple of years back, and the first thing they did was test me for H. pylori. I didn't have it. Doctor told me a vast majority of people with such issues do.

After a gastroscopy, they concluded that it was just stress and nothing else, but inflamation wouldn't heal on its own, so I got pantoprazole (PPI) and stopped ingesting potentially irritating food (caffeine, alcohol, spicy food). I also shortly changed jobs, which alleviated the stress. Mind you, I never had heartburn, just pain. My condition didn't improve for a while after that, until I stopped drinking carbonated water (the only carbonated beverage I consumed), that fixed it in less than a month. After that, I gradually weaned myself off of pantoprazol in 6 months.

There literally was no other probable cause except for stress (I was stressed, wholly self-induced), and after I switched industries and no longer felt that I'm wasting my time working for peanuts, the PPIs helped cure the symptoms.

cue_the_strings··on "Authentic" is dead. And so is "is dead."
How else is he going to feel superior?

Establishment politicians in Europe, on the other hand, pretend to be nuanced, tolerant, resolute... But it's all a charade for midwits. It's as disgusting and dishonest as as American politicians' partizanship.

Dark times when "authoritarian" Chinese sound reasonable in comparison.

cue_the_strings··on My daughter (7 years old) used HTML to make a website
Cool! I made my first HTML website in 2001, when I was 10. The ISP allowed you FTP some HTML and image files into a folder, and you got a little website.

Figuring out HTML was not too hard for me as a kid. Things enclosing other things is not a hard to grasp concept. I didn't use CSS and back then you had <center> and stuff; nowadays it's frowned upon as mixing up semantics and presentation, but back then it made sense to me.

But doing any sort of programming (like at least writing batch files that had ifs and loops) was way harder and it took me several years to figure out.

cue_the_strings··on Instagram Recommends Sexual Videos to Accounts for 13-Year-Olds, Tests Show
I'm genuinely curious, how old were you when you were first exposed to sexual content? I think I was like 7 or 8.

Like, we had a channel (https://en.wikipedia.org/wiki/RTV_Palma) publicly broadcasting porn after midnight (I don't remember watching that) and all the older (~15YO) kids around the neighborhood were collecting porn magazines from who knows where and hiding them around in "caches".

I remember all the older kids being really excited about it, and us younglings being curious but grossed out. There was some pressure to pretend you were interested, kids love pretending they're more grown up than they are. Funnily enough, I remember having the same feeling about football world cup, like not getting the whole fuss about it, but being expected to be interested.

Couple years later, I naturally found out what they were excited about... For football I never did, though.

cue_the_strings··on Japan's birth rate falls to a record low as the number of marriages also drops
Exactly. Either you opt for a timely, balanced, thought-out solution, or you have the traumatic over-correction forced upon you.

I wish we could have real conversations about how to solve this issue, and not bury our heads in the sand. I'm not proposing any particular solution, just for our collective attention to the problem and liberty to discuss solutions.

cue_the_strings··on Japan's birth rate falls to a record low as the number of marriages also drops
Not really forced, but nudged towards. The trivial approach would be something like significantly higher taxes and social contributions for each subsequent adult year of childlessness. Wouldn't be unwarranted since you're a greater burden overall to society over your lifetime and you're not contributing to the next generation. Countries could then use that money to either subsidize other people having kids (optimistic solution) or compete on attracting young people from other countries (more realistic solution).

People seem to think "oh, I'm paying my social contributions, that should be enough for my retirement", but the whole formula really doesn't factor in a sharp drop in workforce we're about to experience. We're papering over the monetary deficit with credit all over the world, but that's not feasible long-term, and the "who's actually gonna do it" aspect will become much more important. Writing a check doesn't change the senior's diaper, nor anything else.

As for practical solutions, first you have to make it possible for young people to obtain real estate again somehow (crucial), then to subsidize kindergartens / child care of all kinds heavily, and only then go more radical.

Another radical angle could be some sort of education reform where people are somehow incentivized to do all the post-BSc education in their 30s instead of 20s. How to achieve that without horrible side effects is up to debate. Subsidies for parents on every corner and every aspect of life (including education) would probably work, but how much is the optimum and how to implement it is a serious question.

cue_the_strings··on Japan's birth rate falls to a record low as the number of marriages also drops
We're in a situation where even discussing or proposing any realistic solution to this is considered too radical (how dare you propose controlling other peoples' lives). Yet societies will collapse because of it, or come close to collapse.

The only "allowed" solution is importing people from poor countries into richer ones, but disguised as something humanitarian, taking in refugees of war or whatnot.

cue_the_strings··on I Miss BSD/Linux
I set up my Arch install on my machine in 2015 and it took me a couple of days. That OS install has seen 5 SSDs so far, and 4 machines.

My secret? I only buy hardware that's known to work well with Linux, mostly thinkpads, and I really don't do anything on the machine beyond coding and web browsing + some light CAD, so I never get anything with GPUs.

cue_the_strings··on BenQ RD280UA: a 3:2 aspect ratio "programming monitor"
It's the same panel as a Huawei Mateview? I have two, it's one of the best monitors of all time. The only downside is the lack of a VESA mount (and the steep price, but slightly cheaper than this).

The extra strip of pixels below really makes all the difference, 3:2 is so much better than 16:9 for actual work, be it programming or general office work.

Couldn't care less about the 60Hz refresh rate, really makes zero difference for development and web browsing.

cue_the_strings··on LDAPjs decomissioned by maintainer over hateful email
Of course they can leave. Not just that, everybody can leave for any reason whatsoever, including being bored of the project.

But if you're leaving because of abuse, you're both letting the troll win and potentialy opening yourself to more abuse.

If you're sufficiently enraged by trolls, you may overreact, and start supporting policies that are more damaging than the trolling itself, like supporting surveillance or forcing KYC on everything.

Let me qualify this by saying that I support reporting people for abuse to the authorities if that's a thing where you live, but I don't support asking for more surveillance just to catch trolls.

I see this pattern every day, on every level: "I'm being victimized and something needs to be done about it". I hope that people will think about what "something" is and make sure it's not making things even worse.

cue_the_strings··on LDAPjs decomissioned by maintainer over hateful email
Of course it is valid to leave, especially if it's prolonged abuse, but it's a two-edged sword.

If you have some bored idiot on the other side, you leaving might encourage them to abuse you even more. If you yield further, then you've allowed yourself to be shut out from the public Internet, depriving yourself of the satisfaction of contributing to projects.

My point is that you need to try to be rational in these (emotional) situations, and think about the consequences of your decisions. Sometimes the best solution will affect you more than the abuser, which feels really unfair, but the alternatives are simply worse.

cue_the_strings··on LDAPjs decomissioned by maintainer over hateful email
It's the internet, strange that the author didn't face abuse like this before. He doesn't seem too young to have experienced such abuse online growing up.

I wish I could say that everyone should be exposed to some aimless and unfair adversity while growing up, it helped me grow some thicker skin.

But I've met people who really can't handle it, and exposing them to even a bit of it would be unethical, it wouldn't help them in any way. Some people are really sensitive, on the edge of mental stability, with crumbling self respect, or whatever other issues. Abuse like this does affect them significantly. Such people are the perfect victims for these immature trolls, and I really don't see a way to help them.

I remember hanging out on forums as a teen, and there was this script kiddie who would hound users on some local forums and IRC servers, both plainly insulting and/or threathning them, and trying to 'hack' them. He was annoying, but I was so used to these edgy insults and such that I never took them seriously (just a bit of roughhousing among teens)... Yet he was really successful in pissing people off and made a significant number of them leave. He was banned many times, but would just re-join with new account(s) (the joys of dynamic IPs every time you dial in). Took him years to quit.

If you're offended by things like this to be affected significantly (we're all affected a bit), don't be fooled, you're worse off than people who aren't. It's not your fault by any means. But finding a way to care less about things like this, if possible, will improve your wellbeing. You can ignore and / or react (which might make it worse), but there's not much you can do against assholes without ushering in censorship, surveillance, or making everythign worse otherwise. You can't fix other people, but you can at least try fixing yourself.

cue_the_strings··on Nix is a better Docker image builder than Docker's image builder
Nix falls into a category where it's incompatible enough with upstream that it requires significant packaging effort, for most libraries. This is especially so when you have complex C or C++ libs with imperfect Cmake and Autotools build scripts or janky Makefiles. Wrapping everything for Nix becomes a significant portion of the work.

Frequently it's not packaged or some version was but the upstream build system changed an you have to do it yourself.

If you don't either benefit significantly from Nix's upsides (which most projects really don't), or you don't enjoy this and do it for fun, it's not a productive use for your time. If you can convince your employer to pay you to shave that yak, it's a net waste.

cue_the_strings··on Is Emacs dying?
I never knew how popular Emacs is before going into finance (which definitely tends to attract older programmers on average). I'd say it's more popular than Vim in my environment, which is surprising. It definitely has the air of the ultimate "erudite" text editor.

I'll stick with (neo)vim, though, I don't see the time investment to learn Emacs and build up a config as worth it + neovim with Lua and LSP works just fine and is rather easy to configure.

cue_the_strings··on Tektronix oscilloscope screen capture with Bash
Updated the article to clarify that you pick the format in the menu on the scope itself.
cue_the_strings··on Tektronix oscilloscope screen capture with Bash
Exactly. You pick the format in the menu on the oscilloscope itself (the menu can be seen in the screencap).
cue_the_strings··on Framework Laptop 16
I know that the Intel one does, I'm just looking for definite confirmation that the AMD one does. I'll shoot them an e-mail.
cue_the_strings··on Framework Laptop 16
WOW! I think I'm going to pre-order one, trackpoint be damned! My wife is a bit suspicious of these laptops, let's see how this one fares.

I just need to check if it'll work with my Thinkpad Thunderbolt 3 dock (or something similar, I can buy another dock) to output to 2x 4K (actually 3840x2560, so bigger than 4K) monitors. I can currently both power my Thinkpad, and connect all the peripherals, with 1 USB-C cable. It's not something I'm willing to forgo.

cue_the_strings··on Framework Laptop 16
If only they would make a laptop with an AMD processor, no discrete graphics + someone makes a decent keyboard with a trackpoint for it, I'd immediately buy 2, I don't care about the price. It's also likely that I'd be able to convince my employer to switch from thinkpads to this. Btw, it's ironic that the much cheaper T series Thinkpads work much better with Linux and are much more reliable than the X1 series.

Intel processors of this generation are just not energy effiecient and run too hot.

cue_the_strings··on The Only Three Classes That Mattered from My College Degree
Your (non-technical) clients want to query the company's data, which is stored in who-knows-what way (Redis + Mongo + Postgres + Kafka + hdf5 + network filesystems with Apache Parquet files, whatever wakes you up at night). They just want to write filters in a trivial `some_field > 3 and otherField * 5 < thirdField` way. You implement this, but they keep asking for more functionality and syntax to this little DSL. The obvious answer is writing a parser, what the parser generates is dependent on the backend. Maybe you generate a lambda filter for the collection, maybe you generate an intermediary AST which you then traverse to generate a query for some DB or multiple of them. I've had similar requests in both medical and finance fields.

Your predecessors had zero regard for C programming best practices, leaving you with a pile of supremely brittle code that just barely works, but you have to tiptoe around it in silk gloves whenever you want to modify it in any way, because of unreasonable standards on ownership, calling conventions, concurrency, whatever. They might have had a reason in the beginning, but now it took over creating a monster that no regular programmer can work on. They didn't think that the code will ever need to be multithreaded. This is no environment for a sane person. A young, inexperienced fool would suggest to rewrite it from scratch. You know better. The whole business logic of a working, profitable business is imprisoned in this pile of shit, and yet it's too far gone to continue forward with it. Nobody understands all the silly rules of engagement with the codebase. You decide to: 1) break everything into chunks, 2) write extensive unit tests, 3) use automated tools to fix the whole codebase yourself to some sane standard. Some of the automation can be just grep + xargs + sed, some is much more complex. Regex replacements are unreasonably efficient, but not omnipotent. The only sane way to fix 40k LOC at a time is to write tools that operate on the AST, find toxic patterns and smartly replace them. This takes dozens of iterations, but you can always roll back with git. You're not transforming the code incrementally, you're writing a transformer. Eventually, your fixers are good enough that they fix 95% of the issues, you fix the rest manually. Your company can now hire any old mediocre C dev off the street, and this dev can productively contribute to the rejuvinated codebase. The company no longer needs psychics, regular C devs will do. If they stray from the path, the newly set up CI with dozens of custom clang-tidy plugins swiftly puts them back in their place.

Your company is in a highly regulated space that has insane coding standards. There are (shitty) compliance tools that cost >$100k a year for your team. You're able to replicate 80% of the functionality of the tools, fix some issues and generate compliance reports from the code on this in ~8 months. Slap on some CI, and the bean counters don't even have to do anything but download the latest PDF report.

cue_the_strings··on The Only Three Classes That Mattered from My College Degree
Well, I (and also my current employer and the whole team) think that C++ is the best proxy for general programming ability and understanding of CS. A person that understands the intricacies of C++ and all of its aspects, including the STL, template metaprogramming, design patterns, policy based design, concepts, concurrency, etc. is a person demonstrably capable of reasoning about complex systems, rulesets, different intersecting approaches and such, not to mention an intuitive understanding of the meat and potatoes of resource management and code generation. Even if you're hiring for something else and adjacent, like systems C or C# for finance, you'll be hard pressed to find a better measure of general programming ability and understanding of CS concepts. If you're really familiar with C++, you're at peace with best practice deprecation, handling legacy code, compromises of language design, etc. You're a grownup.

Another great measure is knowledge of (Linux) systems programming, this also tends to weed out people with inferior understanding of, you know, programming and deploying software on actual computers. The interfaces here are obviously in C.

There are many things that aren't congruent with C++ ability, such as general functional programming ability, or hiring for JS frontend or Erlang roles and such, but for most industry jobs, it's a useful determinator.

I don't know any good C++ programmers that aren't great and all-rounded overall developers. I can't say the same for any other language or technology.

cue_the_strings··on The Only Three Classes That Mattered from My College Degree
If you don't learn about grammars, lexers, parsers, ASTs,... you're at a huge disadvantage in many situations. 'Compilers' was my favorite course in university, and I've used most of that knowledge many times. I was also often the only person on the team who had enough experience to immediately start doing it (say, writing a parser for something, or writing a clang-tidy plugin to detect and fix some issue in the codebase).

You're equally likely to need this sort of knowledge when writing software for non-technical users (say in finance), and when you write dev tools, linters, checkers, fixers, etc.

If you're doing anything web-related or even vaguely server-client, you're at a huge disadvantage if you didn't have a good networks course. You'll likely be stuck in a loop of half-knowledge and cargo culting. I had a terrible network course, skipped on deep diving into networking for years (I worked in embedded; SPI, I2C, RS-232/422 and CAN were all I needed), and only relatively recently figured out how much I had missed.

I see the author mentioned operating systems as a second-tier course. I find it to be the differentiator (that, and C++ knowledge) when it comes to any serious project, especially understanding of processes, threads, IPC, and such.

Databases are very easy to learn on your own, and are generally easy to learn, even the theoretical aspect (relational algebra, b-trees,...).

Most of the time, and in most shitty universities (the majority of universities everywhere if we're honest with ourselves), for most courses, you're better off picking a couple of good books on whatever subject (classics are classics for a reason) and just learning. That + OCW from MIT, Stanford, Harvard for assignments for practice. The best courses in my university blatantly stole materials from MIT and Stanford.

cue_the_strings··on Hack Is Wack! (2010)
https://www.youtube.com/watch?v=C_N0pDqfsX4
cue_the_strings··on The pool of talented C++ developers is running dry
For reasons I can only speculate on, EE programs enlist way more people.

It may be because EE is older and more entrenched, or because of ties with the industry. Engineering of any kind has centuries of prestige, historic industrial support, historic large buildings and grants, etc. I would bet on the comparative ease of hiring staff for EE, though. It does make some kind of sense for some academy-prone people to go the academia route in EE. Especially if you sprinkle in some industry side-jobs, because the industry side is not that cushy by itself. This likely makes it easier to staff EE faculties. For CS, academia only makes sense if you have direct industry support (like doing machine learning w/ direct support from a FAANG), and you can expect something like that in very few places in Europe (Zurich, London, maybe Amsterdam?). Otherwise, you really have to hate making money and being respected to get into CS academia. There's a distinct lack of staff for CS, and they let anyone be assistants (at least they did half a decade ago). I remember there being some competition for math positions, and a free for all in CS. Some smart CS people do get fooled into joining, and last around a year until they see it's a waste of time. No amount of academic benefits in later life can offset the accumulated difference in pay.

As an actual failed EE student (moved to CS after 1 year of EE an eternity ago), I definitely agree that it's way harder. I even think that it's not just my affinities, but it objectively requires more effort and is more dense with difficult stuff. What's ironic is that the (officialy!) best EE student of that generation is now a Rust dev for some crypto company (last time I saw him on LinkedIn).

cue_the_strings··on The pool of talented C++ developers is running dry
I do, in fact. The reason is that most embedded people are recruited from the ranks of EEs. At least around here (Europe), 1.5-2x more EEs graduate each year compared to CS people, and EEs doing EE stuff are paid even worse than embedded, it's a step up for them. They don't and likely can't ask for more. Surely, some EEs learn CS stuff on their own and start working dev jobs, but they're the exception. I've worked with a lot of EEs, and their general programming knowledge (especially knowledge of best practices, tooling, software architecture) is way worse than CS people, in general, across companies and countries. Every time, the best devs were CS, even when it was 100% embedded or even FPGAs (which are not taught to any CS students, yet are taught to every EE student). I personally know maybe a couple of EEs that are great devs (through their own effort and interest), compared to at least a dozen of CS people. However, CS people generally know almost nothing about analog design and at hundreds of MHz (table stakes for serious stuff since 2010) things start getting pretty analog whether you like it or not, so you have to hire EEs anyway.

I interviewed for Amazon for an embedded/mixed role because that was my forte at the time, and the compensation offered was nothing special, worse than even a mediocre finance sector offer, much better than automotive or general embedded (medical, industry / robots). Could never get an Apple interview (they passed on me twice), though, and I never even thought about the rest (that would require relocation to to places I don't care about).

But since I never actually worked for those companies or have any concrete data I could be completely mistaken. I only have friends working in FANGs in non-embedded roles and embedded friends only working for shit-paying companies, plus some of them are not willing to discuss salaries (suckers). Also, I get the feeling that AMD / Intel / Nvidia operate a bit different than the rest.

cue_the_strings··on The pool of talented C++ developers is running dry
It's not the C++, it's the embedded. Embedded is paid miserably, everywhere, no matter how complex or interesting. Simply put, having to manufacture things, with its supply chain, warehousing, manufacturing, ... is never gonna have the margins of a purely software or financial product. Since the employees' salaries depend on the profit from that physical thing, it can never compete w/ software / finance.

The only well paid embedded jobs involve producing weapons ('defence') or gambling ('gaming'), and I'd rather sell crack to kindergartners while also prostituting myself than do that. I did get a bunch of those offers and still do get them every now and again, even though I'm happily employed.

Moved to finance, never looked back. People should plain refuse to work in embedded, maybe then thing will get better.

Also, C++ is the differentiator. People hire for other languages (C# and Rust, in my experience) based on your deep C++ knowledge. And this does make sense, this is a great proxy for your development skills and potential.

cue_the_strings··on Zetk: CLI utilities, fzf-based scripts, C++ lib for managing your Zettelkasten
Nope. They just need to be Markdown files.
cue_the_strings··on Ask HN: Who is hiring? (July 2022)
You can fix your post's formatting by adding two newlines whenever you want one to be displayed.
← PreviousPage 3 of 4Next →