HN user

drkrab

165 karma

[ my public key: https://keybase.io/drkrab; my proof: https://keybase.io/drkrab/sigs/A9-PvxNJpGgZbGq0KiIrOQZHDzudMEWn3mhZ8q9UUVw ]

Posts10
Comments31
View on HN

Since the cpu always accesses a full cache line (64 bytes) at a time, you might as well search the entire cache line (it’s practically free once the data is on-cpu). So I’d like to try a ‘binary’ search that tests all the values in the ‘middle cache line’ and then chooses to go left or right if none match. You can do the cache line search as a single 512bit simd instruction. A cache line is 64 bytes (or 32 16-bit integers); such a search might well be almost 32 times faster than simple binary search; at least it’ll do 32x less memory accesses, which will dominate in most realistic programs.

Payphone Go 5 months ago

In Denmark there are no payphones. Like none. The copper network is being decommissioned.

“Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang.” – Virding’s first rule of programming

Unfortunately that’s the case because large US-based companies can leverage their existing global sales / marketing / governance setup to rationalize very high exit valuations. In the EU we don’t have the large software shops that can do that. So for an EU based startup - it’s exit to a US-based company or go all the way to an IPO / profitability.

Swimmable Cities 2 years ago

Copenhagen’s sewage system was built in the 1850s and it was indeed considered to build a two-pronged solution. There was much resistance against this because it would eliminate a whole industry of “night men” (poop collectors), as well as people drying and trading it as fertilizer. So they build a single-pronged solution that was initially only allowed to be used for rain water.

https://ing.dk/artikel/ingenioerer-maatte-kaempe-haardt-faa-...

Coroutines are great in a single threaded environment. But if you mix them with threads - even behind the scenes - there will be dragons. Erlang solves that problem with proper light weight isolated processes.

In a modern JIT with dynamic decompilation you can do these things in place, because the compiler essentially has global knowledge. The only real issue is to define the semantics (and then implement it of course). Objective-C is AOT compiled so the runtime checks are needed all the time.

The Amazon Premium 7 years ago

Netflix only uses amazon for the “control plane” - ie the “web app” you’re navigating when using the Netflix app. The actual delivery of media happens via their own CDN (of bare-metal servers.)

How is elastic (the company) going to make a business going forward? I would expect that selling these enterprise add-ons (or similar ones) is a significant part of their revenue.

LLVM 4.0.0 9 years ago

LLVM IR is a generalized assembly language whereas JVM byte code is quite specific to the Java language, i.e., it deals with objects and classes. This causes all kinds of troubles for someone wanting to translate other languages to the JVM.

It seems to me that Dart would be a more obvious choice should Google choose to push a new application development language for the Android platform. It's closer to JavaScript and has more GUI/visually-oriented libraries. Plus, it's a no-brainer to box such apps in a HTML5 container for iOS/Windows.