HNHacker News
TopNewBestAskShowJobs

xKingfisher

181 karma · joined July 19, 2014

submissionscomments
xKingfisher··on Has AI already killed self-help nonfiction books?
Even worse he changed his name from Carnagey, presumably to deliberately cause confusion.
xKingfisher··on Garry Tan, the CEO of YC, accused me of unethical reporting
How does it seem that Radley is talking past Gary?

All discussion of the 'Misrepresentations' article is responsive to Gary's mention of it in the original article. And at no point does Radley appear to endorse its contents.

xKingfisher··on Tinkering is a way to acquire good taste
> Coding for others is not art.

It absolutely is, and I think it's what separates good from bad and junior from senior devs.

Most devs can produce an artifact that more or less works. But one that has an internal consistency others can understand and extend, one which accurately captures the problem as it exists and ways it will likely change, is much more of an art form.

A big part of that is knowing which situations are worth making a stand. Every you write code or leave feedback, your doing it for your team current and future.

xKingfisher··on Tinkering is a way to acquire good taste
I think a distinction can be made between bad taste and different tastes.

One of the greatest developers I've worked with, who I learned a lot from and respect immensely, has extremely different tastes in software from me. To the point where I wouldn't say I think he has good taste.

But, his work still has a distinct style and intention. I can tell anytime I come across libraries he had a hand in. I understand what the code is doing and why is is correct, even when I disagree with it.

And I think that is what is important. When working with more junior people, I'll ask them why they did things a certain way and will generally me be with a "well, idk" of some variant of path dependence.

I think developing that intentionality as a developer is important. Which does come with some amount of aesthetic, and I think taste is a defensible metaphor.

xKingfisher··on Kilauea volcano errupts, lava more than 1k feet high [video]
It's a "rain shadow"[0]

The predominant wind is from the east, and the air cools aid forms rainclouds as it tries to rise over the mountains in the center of the island. Then warms again as it descends down the eastern slopes.

So the eastern (Hilo) side is pretty lush jungle, and the west(Kona) is desert. With snowy mountains in between.

[0]https://www.climate.gov/news-features/featured-images/rain-s...

xKingfisher··on Waymo rides cost more than Uber or Lyft and people are paying anyway
I've had the opposite experience recently.

Going from downtown Los Angeles to Santa Monica is $30s for a Waymo and runs up to $50s for Uber/Lyft (sometimes). Otherwise, they tend to be within a few dollars.

I figured it was a combination of Google subsidizing rides and a lack of a "traffic tax".

They're a significantly better experience for 45+ minute rides.

xKingfisher··on We Can't Have Serious Discussions About Section 230 If People Misrepresent It
We have common carrier laws to cover cases like Comcast. Which Section 230 explicitly says social media platforms are not.

And the problem with Comcast is not necessarily that they will make speech decisions we don't like (an inherent part of free speech). The problem is that they're a monopoly and people don't have other options. So we should fix that problem instead of further limiting 1A rights.

xKingfisher··on America lost the chestnut, its "perfect tree"
The issues with the Darling 58 project had some good discussion here two weeks ago[0].

Tangentially: A distillery in Los Angeles, The Obscure, is making a rye whisky aged in American Chestnut barrels, with some of the proceeds going to the American Chestnut Foundation. It's quite good.

[0]https://news.ycombinator.com/item?id=38573765

xKingfisher··on A study of Google's code review tooling (Critique)
I try to avoid nits totally unrelated to the changes at hand, since on a subconscious level they may discourage people from even wanting to touch older/less loved files at all.

The critical exception being avoiding issues due to path dependence.

E.g while a change is "correct" is doing X poorly because of surrounding issue Y. So we should fix Y now instead of building atop it.

xKingfisher··on A Proposal Fix for C/C++ Relaxed Atomics in Practice
I think it's just a very confusing, hard to use correctly behavior. And according to the article, very bug prone in implementations.

In the example given, the result is that both writes happened before both reads, which directly contradicts the source. There's a valid explanation for why it happens, but it's still paradoxical.

I remember at work a C++ standards committee member was giving examples of atomic and how to use them safely with different memory models, when someone pointed out his toy example for relaxed order was wrong. It took 5 people debating for a week to figure out what a safe/correct behavior would be. For a 10 line sample class.

As times your second question, the article recommends Hans Boehm's proposal to add a no-op conditional branch after the read. I guess it forces the load to be resolved and enforces a sequenced-before behavior on the individual threads. So at least one read must resolve before one write in the example.

xKingfisher··on Ken Thompson on the bug that exposed his compiler trojan (2021)
There is more than just hope to rely on.

Diverse Double-Compiling[0] can provably detect this class of attack.

[0]https://dwheeler.com/trusting-trust/

xKingfisher··on Sacrifice the first 13 years of your life to Google for 2M
But you can do almost all that while working at Google. And imo, the stability makes it even easier to do so.

It's been my experience that Google is a super chill place to work, especially when you take advantage of the fact that you're just one cog among many.

You get 5 weeks pto plus 4 weeks work from anywhere. This year alone I'm going to the Arctic, Antarctica, and the Carribean. Including a 40 day stretch without internet. I couldn't imagine doing the latter in a startup.

And all the while getting paid and having the comfort to make plans knowing that I'll (probably) continue to do so in the future.

xKingfisher··on Do not taunt happy fun branch predictor
It's mentioned in passing at the end of the "the trouble with interpreter loops" section.

A traditional switch/goto loop can thrash the branch predictor. Separating into different tail calling functions gives you more slots and allows the branch predictor to learn relationships between ops.

Not to discount the many other benefits of tail calls.

*Edit: I misspoke slightly, computed gotos can also split the patch jump, but less reliably[0].

[0]https://gcc.gnu.org/pipermail/gcc/2021-April/235891.html

xKingfisher··on Do not taunt happy fun branch predictor
An interesting application of this is massaging the branch predictor using tail calls to speed up a parser/interpreter:

https://blog.reverberate.org/2021/04/21/musttail-efficient-i...

xKingfisher··on Elizabeth Holmes is sentenced to more than 11 years for fraud
Federal prison doesn't have parole, it is a fixed 'good conduct' credit of up to 54 days per year. So she's serving a little more than 9 years minimum.
xKingfisher··on What can mRNA treat next?
They still have a number of issues.

* They're expensive (~4-8 dollars per follicle) with a single transplant being 1000-5000 follicles. Severely bald men may need multiple

* There is a finite number of follicles that can be transplanted.

* Permanent scarring in the donor zone.

The ultimate treatment would be either hair cloning (still a ways out, very expensive) or a way to reactivate the dormant follicles. Presumably if you could solve the latter you would become very rich very quickly.

xKingfisher··on Don’t blindly prefer emplace_back to push_back
It's definitely a lot to process.

I found these two articles really helpful when trying to understand moves:

https://abseil.io/tips/55 https://abseil.io/tips/77

Though I'd also say don't worry about it too much, especially at first. If you're copying a lot of temporary objects moving can get you some performance wins, but that's something profiling should be telling you m

xKingfisher··on Don’t blindly prefer emplace_back to push_back
The article did touch on a possible reason for the misunderstanding.

If you already know from previous versions that push_back makes a copy and that C++11 added move semantics and emplace_back, it's not a huge leap to connect the two. Especially if you don't notice push_back's rvalue overload (or understand rvalues).

And if you're new to C++ and are having all of this thrown at you at once it'd definitely be easy to get some crossed wires.

xKingfisher··on Don’t blindly prefer emplace_back to push_back
And explicit constructors won't save you from this one.
xKingfisher··on Don’t blindly prefer emplace_back to push_back
Given the whole scanf/strlen thing going on, more blog posts about API pitfalls wouldn't necessarily be a bad thing.

And that is basically the premise of the Abseil Tip of the week series, which are an incredible resource for learning how to work with modern C++.

xKingfisher··on Don’t blindly prefer emplace_back to push_back
Maybe they're fans of why's guide to Ruby :)

Though place_back still has the connotation of 'take this thing and put it over there' that emplace_back is actually the opposite of.

Naming things really is hard.

xKingfisher··on Don’t blindly prefer emplace_back to push_back
It's not bad advice. I see many code reviews that use emplace_back because it's 'faster'.

Though I think the abseil article does a better job of explaining why: https://abseil.io/tips/112

[Googler; unaffiliated with Abseil(sadly)]

xKingfisher··on Don’t blindly prefer emplace_back to push_back
Something like construct_back would've maybe been a little clearer. I imagine that would have it's own issues as well though.
xKingfisher··on Don’t blindly prefer emplace_back to push_back
Not to mention the very real risk of accidently invoking the wrong constructor. If you change the type of a vector, push_back is a good deal safer than emplace_back.

Especially since many of the standard containers have many more constructors that you'd think - hello std::vector(size_type count).

xKingfisher··on Serverless SQLite
You are correct. Literally is commonly used as an intensifier and has been for ages.

Complaining that modern people are literally ruining the word literally is a popular internet gripe.

xKingfisher··on Serverless SQLite
The 'misuse' of literally has been part of the English language for almost 300 years at this point [1]. It is older than the USA.

[1] https://www.merriam-webster.com/words-at-play/misuse-of-lite...

xKingfisher··on Chemistry of Cast-Iron Seasoning (2010)
A lodge cast iron pan will last forever and isn't that expensive. And maintenance isn't terribly hard. Just rub down with oil after using (I use plain canola) and keep it dry. Serious eats has a lot of information on this. Modern soaps make the whole thing much easier.

For some people Teflon isn't an option. Bird owners for example can't use pans with PTFE coatings, cooking with them releases a compound that is toxic to parrots.

xKingfisher··on Chemistry of Cast-Iron Seasoning (2010)
Butterpat Industries is another.

I have one of their pans and it's excellent.

xKingfisher··on A68 iceberg on collision path with South Georgia
I was on the Ocean Diamond. Not the newest or nicest but still more than comfortable. And barely over 100 passengers, which is the max that can be on shore at one.

I can't say enough good things about Quark, they were incredibly professional and the expedition staff were all top tier. I still keep in touch with quite a few of them.

xKingfisher··on A68 iceberg on collision path with South Georgia
I went on a cruise through Quark Expeditions. We saw the Falklands, South Georgia, and Antarctica.

Going in Antarctica was what I was most excited about but South Georgia proved to be the surprise favorite of the trip.

If you have the time and the means I would highly recommend it. Especially because due to increased tour volumes the tour companies are starting to limit their activities to limit environmental damage. Starting this year they are limiting daily landings from 2 to 1 (or that was the plan at least).

Page 1 of 2Next →