HN user

pradocchia

1,040 karma

username[1:] at gmail

Posts1
Comments335
View on HN

I will grant that the first form is clearly [0, 1, 2], while the second form could be construed as [0, [1, 2]].

HOWEVER, given that there is no "and" between 0 & 1, and that 1 & 2 are not like things, I believe most readers will naturally interpret the list as [0, 1, 2] and not [0, [1, 2]]. There are enough other cues that risk of misinterpretation is very low. Anyone who does interpret as [0, [1, 2]] is probably being willfully obtuse.

I'm glad I experienced the old internet back in its heyday, when high quality sites linked to other high quality sites, and Google exposed this natural topology for all to explore. Google's success eventually led to the end of the old internet: AdSense captured its value and then SEO perverted it with noise.

I expect within 5 years some crotchety old programmer will have build a search engine that penalizes sites for anything more than basic markup. No JS, no CSS, no hints of a CMS. Maybe it's already been done. "Old Skool Search"

And it will still be a poor imitation, because if there is one thing you can't recreate and experience for yourself, it is an internet gone by.

And with nobody having to worry about surviving without a job, it also frees up many people to explore ideas they otherwise would never have had time for.

Well, even universal healthcare would have this same effect in America. There would be a veritable Cambrian explosion as hundreds of thousands of people quit their jobs and started doing something interesting, something they cared about. A lot of these interests would turn into businesses and we would all be far the richer for it, never mind the 50% taxes.

It still provides some of the same ergonomics. You can put away the mental cheat-sheet ("1: gold, 2: silver...."). Your IDE can find all uses of BookTypeId.Gold(), rather than textual occurrences of "1". Etc.

The static quality of enums is only one of their features, and sometimes a hindrance, and it good to have other options.

Not sure what the point of the implicit operator overloads was.

I assume he didn't want to change the signature of the constructor for whatever reason, but still provide a small measure of discoverability (and tractability). Such things do happen.

In that case, I might have used an enum plus a second constructor to wrap the explicit conversation. Maybe that didn't occur to him, or maybe he had other constraints.

Moreover, if a researcher shows up in a village offering cash, on the condition that player two doesn't refuse the split:

a) the villagers know each other.

b) the researcher is the stranger.

those are the teams, researcher vs players, not player one vs player two. when would it make sense to refuse the split, punish a neighbor, and let the stranger keep his money? never.

Inflammation is rooted in acidity and promotes infection.

Do you have any more on this? I have stumbled across the notion before. Someone typically counters with "but the body maintains a constant pH" and the conversation dissolves.

Stay well.

That's an interesting piece. You can see how some lines of thought have become verboten in respectable society. This era might be considered the Rise of Fear and the Return of Authority.

Having to switch to the other side of the street or having to circumvent a dangerous block is a loss of freedom, a kind of coercion born of inequality, normalized by the very inconsiderate and self-serving illusion that everybody starts life with a similarly equivalent set of cards.

Yes, I think so too.

It also seems to me as if having to switch to the other side of the street or by having to circumvent a dangerous block as some form of coercion resulting from a very inconsiderate and self-serving illusion that everybody starts life with a similarly equivalent set of cards.

Can you elaborate on the first part? I'm not sure I understand what you mean.

if more US citizens would travel their view on how much they're getting ripped off would change drastically.

For many Americans, especially the richer ones that can afford a trip to northern Europe, it would be a case of cognitive dissonance: "gosh everything is so nice here / here is not America / America is the best / I can drive my SUV in America / these Europeans are crammed into tiny cars / thank god I'm an American!" or whatever the chain of reasoning is that gets you back to "thank god I'm an American!" from the world-crushing "gosh everything is so nice here".

I love the camera on my 920, it takes great pictures (for a phone), and I have been wholly satisfied with WP as an OS. I have missed the integration with Gmail etc on Android. That's been the worst of it, and it has been manageable.

Well, I love leaving tips. Leaving a five dollar tip for a five dollar sub is the highlight of my day. I love that my tip goes directly to people at the bottom of the totem pole, and that more often than not, not even Uncle Sam gets a cut.

If I am feeling poor, I pack a lunch, I have dinner at home. If I eat out, I do my part to improve income distribution in America, while routing around rent-seeking intermediaries. You can too.

my own charisma is inversely proportional to the hours I spend each day coding. more coding -> less charisma. so I don't think it is just a stereotype at all, but rather an emergent phenomenon of how we spend our time, and where our interests lead us.

Right, so if the women's liberation movement hadn't made flat orgs so fashionable, then maybe Github would still be a nice place for all kinds to work, and we wouldn't have this whole class of pseudo-sexist problems.

Am I reading this right?

Is there any reason to assume that LEGO is really evil? I for one am thankful for it's existence, because my kid is having a lot of fun with it.

LEGO is not alone in this regard, but they do create wants out of nothing.

So, you have a child, and this child is happy. Then the child sees a LEGO set, the child wants it, and now the child has an unsatisfied want. Child gets LEGO set, set satisfies synthetic want, child is happy again, and welfare returns to its original state.

Now, you might argue that there is a net increase in welfare from start to finish, since the child may have learned something new or acquired new experiences. Ok, sure, but after the 4th or 5th set, you are going to see some diminishing returns. And in this regard, LEGO's interests and your interests are opposed.

Is it?

At least on MSSQL, I would expect a query plan like so:

  1. Index seek WHERE a = 123, yielding ~100 rows. [1]
  2. Bookmark lookup with results from (1), yielding ~100 rows.
  3. Filter (2) WHERE b = 42 and project date_column, yielding ~10 rows.
  4. Aggregate (3) by date_column, yielding ~10 rows or less.
And the optimizer will choose this over a full table scan so long as the 1+2+3 < full table scan. I don't know the threshold for that, but is is certainly more than 100 rows out 1M+, and the planner will have an estimate of selectivity that will inform plan selection.

[1] Important caveat. I interpret this line,

Current situation, selecting about hundred rows out of a million:

....to mean selection of 100 rows from the base table, rather than projection of 100 rows in the result, post-aggregation.

But if he really means a SELECT statement that returns 100 rows, then we have no idea how selective the WHERE clause is, and my answer changes to "The query will be much slower (impact >10%)".

I also answered "about the same", and no I didn't notice the bookmark lookup (so-called on MSSQL), but even if I had I'm not sure I would have changed my answer--well maybe I would have because I would have noticed the "trick", but putting my test-taking adaptations aside....

It is already a highly selective query. Adding a 100 bookmark lookups will not cause a material change in performance, unless this query is being executed 1000s of times per second, in which case maybe your real problem lies elsewhere.

Well, by that token regulation is also the free market, by virtue of regulatory capture, and words cease to mean anything at all.

Fact is, as his high holiness Milton Friedman himself argued, business is not a friend of the free market:

Almost every businessman is in favor of free enterprise for everybody else, but special privilege and special government protection for himself. As a result, they have been a major force in undermining the free enterprise system. Stop kidding yourself into thinking you can use the business community as a way to promote free enterprise. Unfortunately, most of them are not our friends in that respect.

http://www.aei-ideas.org/2013/06/milton-friedman-on-the-diff...

Birthday cakes, Halloween candy, Christmas candy....this is a tremendous amount of sugar, and is kind of shocking to one who grew up without it.

The ubiquity of sugar today discourages moderation by normalizing consumption. It would be like having ash trays in every public space and cigarette ads on tv, with "enjoy responsibly" as the tag line.

I agree with everything you've said, however I want to add that the general technique of compressing your data through pre-aggregation is a sound one, whether it is performed auto-magically by the optimizer, or manually through whatever hooks your DMBS provides.

I think this was more an exposition on the general technique than specific recommendation.

The general theme should be, "how do I make my database do less work?" followed by a list of techniques, including "pre-aggregate to reduce volume". In this case, the pre-aggregates are in-line. Whether in-line pre-aggregates are appropriate will depend on context, just as you say.

but CTEs in SQL Server are not an optimization boundary like they are in Postgres. This makes a big difference in their proper use.

In SQL Server, aside from recursion, CTEs are purely syntactic sugar and thus a tool for organizing code. Whereas in Postgres, due to the optimization boundary, they are a tool for query tuning. If you rewrite a query in Postgres using CTEs just to clean it up, you are doing it wrong, since the CTEs will also affect the planner.