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.
HN user
dhconnelly
dhconnelly.com
Also interesting: https://go.dev/blog/ismmkeynote
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
from a previous HN submission (https://news.ycombinator.com/item?id=32607187): https://acoup.blog/2022/08/26/collections-why-no-roman-indus...
From the same link:
Please don't complain that a submission is inappropriate. If a story is spam or off-topic, flag it. Don't feed egregious comments by replying; flag them instead. If you flag, please don't also comment that you did.
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.
Okay, so there is consensus. I guess I was confused. Seems like quite a few people here are confused, though. Seems worth considering!
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.
The Cornell textbook is great. I worked through most of it last year and learned a ton.
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!
No, didn't know about it. Interesting!
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?"
It’s not consistent. It mostly varies with levels of stress and anxiety, but there’s also a strong feedback loop.
Yes :)
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.
Here it is in Python, if that's interesting: https://github.com/dhconnelly/paip-python
(Also responded directly to your comment above, but just in case this is helpful here as well :)
What a great book! I translated most of the Lisp code into Python a while back. You can find it on Github: https://github.com/dhconnelly/paip-python
The logic programming bits in particular (the core of the Prolog interpreter) can be read in a maybe-nicer way here: http://dhconnelly.com/paip-python/docs/paip/logic.html
https://www.usegolang.com from Jon Calhoun, who is well-known in the community, could be useful
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.
Right. This is comparative rather than historical - looking at a few fascist movements in recent times and distilling a common core.
Following the Charlie Hebdo attack, FOX was reporting that certain areas of Paris are "no-go" zones for non-Muslim French people.
http://www.theguardian.com/world/2015/feb/12/paris-lawsuit-f...
So the title "The real no-go zone of France" was already a reference to the controversy they mention.
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.
Shameless plug of my Go R-tree implementation, which cites the Guttman R-tree paper and the Roussopoulos/Kelley/Vincent nearest-neighbor search paper in its implementation, and is therefore perhaps a useful resource: https://github.com/dhconnelly/rtreego
For anyone who wants more background on Chrome's multi-process model:
- Architecture: http://dev.chromium.org/developers/design-documents/multi-pr...
- Models: http://dev.chromium.org/developers/design-documents/process-...
- IPC: http://dev.chromium.org/developers/design-documents/inter-pr...
- Sandbox: http://dev.chromium.org/developers/design-documents/sandbox