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.
I’m surprised how many places in the world measure rain in percentage chance. Must be a metropolitan concept. Here in Denmark, weather reports estimate mm/hr - the amount of rain. Maybe it’s our agricultural inheritance?
“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
Interesting. When you give a third-party access to your GitHub repositories, you also have to trust that the third-party implements all of GitHub’s security policies. This must be very hard to actually assume.
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.
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.
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.
It’s easier when you write your application in Elixir or Erlang. Those are practically DSLs for state machines that also double as general purpose programming languages.
Even in Denmark where the political system is much more cooperative than in the US, politics is still a “dirty job” full of spin and personal sacrifice, exposure etc. As a result many good people would never put it on themselves to enter politics.
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.