HN user

spenuke

274 karma
Posts4
Comments87
View on HN

It's the same story with Express as a web server framework for Node.

I've always felt that the biggest problem with the Javascript ecosystem is that it's entirely too preoccupied with syntax. Remember CoffeeScript!? Some of the most influential forces in the community can waste entire years bikeshedding some syntactic thing that is mostly a matter of personal aesthetics. And this trickles down to the grunts trying to ship a product.

It's a fundamental drawback to Javascripts other strengths. And that's the reason it's so easy to find Express apps that are hot garbage. It's one of the most enduring myths that If you know Javascript, you can write a Node app.

It only works because software has been such an economically productive force, that having thousands of professionals spending weeks deciding whether semicolons are good or bad, or fighting their webpack configs, or migrating for loops to array methods... whatever... it still makes money at the end of the day.

For a very informal tour, The Three Body Problem by Cixin Liu is a science fiction novel where the history of mathematics, physics, and computation play a large role. So much so that I think it puts many people off the book and its entire trilogy.

I work on a similar team, with a mix of people who want to use functional styles and those who want something more imperative.

I lean toward the pro-functional style, but I also put a few strong constraints on when to use reduce. Namely, I would almost never use it in cases where I either want to (a) mutate something other than the accumulator or (b) include more than two branches of control flow in the reducer function.

This kind of goes for all the functional array methods. Many people are tempted to use them simply as alternate syntax for iterating through the array (i.e., a simple loop), where the loop body could contain several statements -- i.e., data mutation side effects, taking different execution paths based on certain conditions, etc. The functional style is way less clear in this sort of code.

The benefit of the functional style in the context of javascript array methods is when you can see at a glance what the shape of the resulting value is with respect to that of the source array. This is usually best done when the body of the reducer/mapper/filterer is a single expression.

Thanks. Ok, so is he creating strawmen everywhere, then? I know people working in government, biotech, climate research, and none of them seem to think that the normal distribution is the only model out there, or that the mean is a very meaningful (no pun intended) statistic.

Can somebody please ELI5 his whole phenomenon? I don't really understand who are the targets (other than Nate Silver) of all his polemic. From my limited exposure, he's basically making age-old conservative points, arguing that the Enlightenment ideal of human knowledge has strong (but unidentified) limits.

Why is he so popular? And how did he get so rich on Wall Street if he just thinks randomness blows all the statistical experts out of the water? I know I'm missing something.

100% agree with this here.

I have had to push for leveraging postgres for data validation (including typing columns with enums where applicable), and sometimes it's hard to convince people, but all you have to do is (a) poke around your existing data and find cases where you have junk because of some out-of-band process that created data without using your main app's validation, and (b) do a couple out-of-band things like an ETL or two and see how it saves you from creating junk.

I don't know where I picked this adage up, but it's also something I constantly think about:

Your data will outlive your application code.

IME, if you value the data's integrity, it's not really a question whether you should be pushing validations down to the db layer.

Totally fine, so long as you know that makes you an "advanced user".

I can't imagine you'll find a sane place to work where senior people are only capable of learning something after consuming a tutorial or a manual. The nature of the work is to drill down one layer below what you're working on. Do you need to know how to smelt steel in order to be a good car mechanic? No, of course not, but it sure helps to have taken an engine apart. And if you're trying to build the next, better engine, it's really great to see the internals (and the commented motivations!) of previous implementations.

I'm always surprised that reading source code is such a rare occurrence or suggestion in this world. If you consider yourself even in the vicinity of "advanced", I think you're capable of learning great stuff by looking at anything on github. Something big, but well organized. Lo-dash, Node, Mocha, etc.

Of course you won't understand everything on first read. But you will learn really good things if you know how to look at something confusing and identify what it is you don't understand; then you can go find didactic materials to fill in the gaps.

This is an amazing way to learn. You get to see how some of the most used, or cutting-edge tools are implemented (for free!). You learn about the tools themselves and thus gain expertise in them. And, you gain the meta-skill of working in unfamiliar territory, which I think is a fundamental key to being considered "advanced".

Very similar story here. We got married a month ago. We did everything ourselves (plus friends & family), and we started too late.

We started using Asana so that we could stop having nervous breakdowns every week. It worked. Now we use it for stuff like coordinating anything that doesn't fit on a notecard. Shopping lists generally are just on a kitchen whiteboard and you take a pic before you leave.

Hey there — AT is a well-known brand (surprised to hear you support it well with such a small team!) so I imagine HR will get a lot of applications. Would you be open to me sending you a couple questions directly via email?

Hey there — the careers page doesn't have any indications which (or any) positions are remote friendly. Do you know which of the engineering positions could be filled by US-based remote people?

Thank you for illustrating my point by conflating the political spectrum with the epistemological spectrum. :)

As for "self-congratulatory", I was responding to the old chestnut that mainstream media is too far to the left. Next time we talk about GMOs and anti-vaxxers, I'll have a chance to chastise the people who are more likely to be on my side of the political spectrum.

I think the main problem is that we conflate the political spectrum (what are the responsibilities of the State?) and the epistemological spectrum (how do we determine what is true and not?). The "Western World", for better and worse, is a product of the Enlightenment, and as a result is irreducibly leftist in its epistemology: modern democracy depends on a belief that a citizenry armed with the scientific method and rational discourse can rule themselves without resorting to the authority of a king or a holy book.

The Right Wing (in the US, our Republican Party) is less identifiable by its right-wing policies as it is by its right-wing epistemology: they reject all scientific evidence for climate change, biological and geological history, medicine, etc. For the religious, this manifests itself in the old epistemology that says the Bible is the sole source of all Truth. For the non-religious, this tends to manifest itself as total nihilism, which is expressed in the more heartless strains of Libertarian Objectivism; for these people, might equals right and society is a zero-sum game where the only truth is winning and losing.

And this epistemological divide is the one that is tearing us apart. When you say there's no serious right-leaning counter-weight to (the NYT et al.), what you mean is that there is no serious news outlet that doesn't hold the Enlightenment values. And when you put it in this light, it's an obvious statement, isn't it? Politically speaking, the WSJ and the Economist can very much be considered right of center (leaving aside that the median center has moved right over the last 40 years), but they are still rooted in Enlightenment science and rationalism.

Point is, although the political right wing is currently the main base of the epistemological right wing, it doesn't necessarily have to be that way. And the problem with saying we need more right-wing voices in mainstream media is that there are so few of them who meet the basic epistemological requirements; when they do, they are often rejected by the broader right wing for being too far left!

Usually, the "liberal" response I get from my more left-leaning friends is somewhere along the lines of "POC have been mistreated, they can't be racist...

You should have asked your friends why a black person can't be racist, because to most white people it's an absurd proposition. So allow me to explain a bit here.

Racism, unlike what we mostly think, is not a state of mind or an emotion. Racism is a sociological system that transcends the intentions of any one individual. In case US history is not forefront in anyone's mind: 150 years ago, a black person had the same legal status as a pig; 100 years ago, it was illegal for a white person to marry a black person; 60 years ago, it was illegal for a black person to drink at a water fountain.

Today, the likelihood that you'll be shot by a cop if you're black is astronomically higher than if you're white. If you have a black sounding name, you're less likely to have a company respond to your job application.

These things are institutional. When we say a black person can't be racist -- we don't mean they can't be prejudiced. They can, just like all people. But the privileges and paved roads that a white person enjoys simply aren't there by default for a POC, so they can't benefit from institutional racism.

TL;DR - false equivalency. "Black X Thing" is in the context of a historically disenfranchised people overcoming an entire country hellbent on keeping them disenfranchised. "White X Thing" is ridiculous because it's redundant: "Thing" is already White by default.

It's hard to completely generalize for the clobbering reason you point out.

Assuming that you essentially want to keep your hooks coupled with your source code (or, at least, it's ok to do so), I've found that Make works pretty well here.

In the root of the project directory, you have a subdirectory containing all the hooks you need (or use a git submodule), and then you create a Make target to copy those hooks (and make them executable) to your .git/hooks directory. Make is nice because it won't clobber existing ones (unless they are older, in which case you probably want them overwritten).

Then, whenever someone first clones the repo (or whenever you make a change to the hooks), they just need to run make on that target again.

Obviously, not an ideal choice for everyone, but it's pretty simple and works well for me.

That's fine, but you have 3 years of experience with a CMS. SQL is the Structured Query Language used to make queries, so if you're not writing that, then you aren't working with SQL.

I've been driving cars for twenty years, but it doesn't mean I have two decades of experience with fuel injectors.

Regressive Web Apps 10 years ago

I think you might be misreading the parent statement as "I will never write JS > ES5".

I too find that the easiest to implement features are (not terribly surprisingly!) the least interesting; they are not worth the terrible friction that I'd see in my current organization. I have a hard enough time trying to get folks to write good test coverage and understand the gotchas of writing async code everywhere. So for me, there's way bigger fish to fry than (exaggerating a bit here) saving a few characters with arrow functions.

But that's still not to say I won't ever use it.