HN user

ebikelaw

1,205 karma
Posts1
Comments428
View on HN

Part of the German economic success story has been keeping housing cheap, so they can keep pay down, so they can export. As soon as housing prices rise, pay rises, and the story falls apart.

The old eastern span of the SF-Oakland bridge was a series of double-decked trusses between towers. Essentially it was several loosely-coupled, independent failure domains. In failure analysis that's not really the same thing as redundancy.

We still have a lot of prestressed concrete structures that predate good understanding of creep in such structures. Box-beam highway bridges, for example, were universally built from prestressed concrete after WW2, but creep wasn't well characterized until the late 1960s.

Indeed, it's not the data but the code to support it. There's a bazillion features in there designed to avoid the user having to do additional page loads. For example in my Gmail memory profile there's 20+ MB of code to support the real-time chat feature in the sidebar. You can argue about whether there should be a middle ground implementation that has the email preloading but not the real-time chat. Developer and project manager time is unfortunately finite.

The very lightweight HTML Gmail lacks all of "normal" Gmail's latency-hiding features, which is one reason it uses so little memory. Gmail preloads all of the messages in the thread list so when you click them they are displayed instantly. HTML Gmail doesn't, and when you click a message it fetches the body from the origin. The tradeoff is yours to make. I find the HTML version infuriating when I'm tethered on mobile because every mouse click takes 10 seconds. On the same tether I can leave normal Gmail open all the time and it's fast. Ironically the lightweight Gmail is more usable on a fast, reliable wired connection.

Debug symbols don’t inhibit identical code folding. What you get is one copy of the function and one arbitrary file/line entry which makes it look like your program makes impossible function calls, if you happen to walk the stack. This can easily be seen in a C++ program with lots of Protocol Buffers because protobuf generated code has lots of identical small functions.

It is very rare that I have seen a use of std::set that seemed justified, although it does happen. People just use it because it's easier to type than unordered_set!

One way to speed up set's usually appalling performance is to give it a custom allocator so that instead of N calls to allocate tiny tree nodes all over the heap, you get all your tree nodes on an arena. This can dramatically speed up short-lived sets (for example you are trying to build the unique set of some non-unique input).

That graph does deserve some explanation, but perhaps it is sales by year rather than production? Tesla is currently running off orders they booked years ago, so production rate is running well ahead of sales rate.

The guy sitting right next to me has been increasingly angry about not being able to get a new headlight for his Model S, at a price well over $2000, for over a year. I don't think the lack of a dealer service network is a big plus for Tesla. It's just another aspect of their "disruption" circus.

The F-14 didn't have any purpose during the Cold War either. It was an idiotic fantasy toy, just like the carriers on which it sailed. All of that hardware would have been on the bottom of the ocean in the first half hour of a war with the USSR.

They're absolutely brilliant against barbarians, though.

Author doesn't put enough blame on the built environment. If you have urban planning codes that require 2 parking spaces per dwelling and detached single-family homes, the area will not be economically serviceable by transit (nor will it be walkable). In much of America, car transportation is legally mandatory.