HN user

dhconnelly

713 karma

dhconnelly.com

Posts13
Comments124
View on HN
[dead] 2 years ago

Interesting. It’s definitely more abstract and philosophical than books like “Effective C++/Java/etc,” but I personally got a lot out of it and find it to be a really useful resource in code reviews. Particularly when commenting on the big picture and structural aspects, rather than just language-specific idioms or correctness.

While it’s true that difficult decisions need to be made, it seems that the point of democracy is that such decisions should have popular mandates. This reform doesn’t seem to have anything close to a popular mandate

I dealt with a lot of the same issues around meaninglessness vs. golden handcuffs (at Google incidentally) and recently took a job at a smaller company, albeit without a pay cut. I specifically resisted switching jobs for several years for the same reason: having to grind Leetcode only to end up with the same alienation and cynicism. Turns out all that salary isn't just for hard work. Anyway, honestly, having now finally taken that step, I'll say that Leetcode isn't really a huge cost (you do it and then you're done for a while) and that simply working on new stuff does get you over one hump, namely the boredom. Not sure how long the new-stuff momentum will carry me past the possible onset of meaninglessness, but I'm trying to just adopt the "one must imagine sisyphus happy" mindset. Not a strategy but maybe at least a tactic? Happy to discuss further

Edit: I'm aware this is a very privileged situation to be in, honestly that doesn't help much with coping though and everyone wants to be happy. I seriously had just decided I never would be. Even that (temporary?) feeling is mind-blowing

Yeah, no argument there. And I definitely like the Go community’s tendency towards straightforward code. But even there (among less Go philosophy-minded engineers, possibly) I’ve seen crazy abstractions built using interface{} that didn’t need that kind of generic code for the use case. Another one in Go is the nil/interface type interaction, for example. And this kind of thing can be hard to reason about, and that’s what I’m trying to say. All the languages have these complex and tricky bits and it’s best to stay away from them unless truly necessary.

Oh man, I read this article a few months back and it immediately resonated with me. I've never used Scala, but this advice has been applicable in every language, project, and team I've ever worked with, and I very much regret that I didn't already have this resource to cite in past code reviews.

A lot of the worst tendencies that developers complain about in complex programming languages (i.e. all of them, they're all complex) could be addressed by this advice.

OCaml is 25 5 years ago

Okay, so there is consensus. I guess I was confused. Seems like quite a few people here are confused, though. Seems worth considering!

OCaml is 25 5 years ago

The commenter I'm replying to uses an entirely different toolchain, and the frequently-recommended Cornell book (https://www.cs.cornell.edu/courses/cs3110/2021sp/textbook/) uses ocamlbuild and utop and makes no mention of Dune. If you (understandably) happen to land in the official OCaml manual at https://ocaml.org/manual/index.html instead of the page you linked to (which I can't find from ocaml.org, by the way, but you're right that the ocaml.org tutorials do mention Dune and opam), then you don't see Dune or opam mentioned at all. I get what you're saying, but I don't think you could disagree with the premise that there are parts of the OCaml ecosystem that a newbie would land in and be confused or misled by here.

OCaml is 25 5 years ago

The Cornell textbook is great. I worked through most of it last year and learned a ton.

OCaml is 25 5 years ago

I've done a few small projects in OCaml. It's a brilliant language that I deeply enjoy using. But the situation for newcomers and those who don't have established patterns is bad. It's hard to do anything nontrivial from scratch, and the community doesn't seem to have any consensus around dependency management, builds, project structure, and so on. Make and autotools may work for you, but it's not like your setup is on the ocaml.org homepage, reproducible by an application developer in five lines of shell commands.

It's common now in some language ecosystems for the default tooling to just generate all this stuff for you, and you move on to writing code. So if you're e.g. a JavaScript developer who is interested in functional programming, and you're used to npm or whatever, it's a difficult start.

I suspect the downvotes are due to a lack of critical engagement. Even the Holodomor link offers a litany of reasons that aren't just "socialism," and we've been interfering in Venezuela for decades, not limited to: harsh sanctions, coup attempts, cutting off access to foreign markets, blocking access to its own funds stored outside the country, and so on. In addition to all the hoarding of food and medicine inside the country. There's a lot going on, and "third world oil country with US-unfriendly foreign and domestic policy in a region dominated by US interference" certainly also hurts countries that don't have "socialism" to blame. https://en.wikipedia.org/wiki/Shortages_in_Venezuela

Regarding US government incompetence in benefits: Not everywhere has distributing benefits been so inefficient (see: Denmark or Germany, among others). It's almost like a decades-long program of cutting funding and introducing tons of red tape undermines public confidence in social spending. I'm sure that's unintentional!

I've been working on Google Maps for close to five years now. I somehow missed the previous postings of this thread, but a little hyperbole never hurt anyone :) Your larger point about the inability in our profession to take a step back and consider the overall situation is spot-on. The mindset I most commonly encounter among other engineers when discussing any kind of systemic problems in our practices is a kind of "it's $CURRENT_YEAR, of course things are the best they've ever been and we've solved all known problems. Also what is $KNOWN_SINCE_DECADES_TRIVIAL_SOLUTION_TO_MAJOR_PROBLEM?"

My father is also an alcoholic, went to AA for a while, has had two divorces since because of drinking. My sister is an alcoholic, my mother is a prescription drug addict. The way this manifests in me is that I'm obsessed with Not Being An Alcoholic. So I drink. Because it's Not A Problem! Sometimes I drink too much, sometimes it lasts for months. And then I Prove To Myself that I'm not an alcoholic, and I stop for a bit. And start again, but like a Well-Adjusted Person! And sometimes not, and everything is coming apart, and then I do it again, stop drinking for a bit, and I think to myself, "Well, at least I'm not an alcoholic!"

Edit: Let me mention that the guardrails on this have narrowed since my daughter was born.

Re: alcohol - in my experience, it depends. For the first year or two of learning German, a beer or glass of wine helped me relax and speak more effortlessly, as suggested. But now, as a fluent speaker -- I've passed a C2 exam, i.e. "mastery" on the CEFR scale, with a good score -- I definitely notice that any amount of alcohol hurts more than it helps. In the same way that any amount of alcohol makes my English worse: I have trouble with recall of even basic words.

From the article, without comment: 'He’s a big proponent of his own ignorance, saying he doesn’t choose to learn more than a smattering of Japanese because he needs mystery and “a sense of open space in life, something to offset the sense of the familiar.”'

Awesome stuff, but please let's not pretend that tmux is an important piece of the applied deep learning puzzle that needs to have anything to do with the intensiveness of the course.

if people will pay for a service, doesn't that fact give the service value over 'bullshit'?

That's not necessarily true. There are a lot of reasons why people or companies pay for things, and those reasons aren't necessarily related to the value of the things themselves. Consider:

- The effect of advertising (in grocery stores, for example: http://www.buffalo.edu/news/releases/2009/11/10635.html).

- Corporate environments where bribery -- or its fancy equivalent, paying for nice dinners and ski trips for customers -- determines sales.

- Conflict-of-interest: guy responsible for purchasing works out a big contract between his firm and the vendor his wife owns.

- Vendor lock-in.

- Fear. This explains pretty well the bidding wars between Google and Facebook -- each of which fears losing an advantage over the other -- over startups whose value can very rarely reasonably amount to N times the value of companies who actually Build Things.

Money is at most a loose approximation for value. It can represent other things as well.