Like the bubble analogy, new Everettian universes are local, small, and the total amount of probability density (water in this analogy) is conserved.
5,360 karma · joined March 9, 2008
@kmx
Previously @twittereng, websolr.com, bonsai.io, Houseparty, etc
kyle@kylemaxwell.com
Like the bubble analogy, new Everettian universes are local, small, and the total amount of probability density (water in this analogy) is conserved.
Now that we've slowed inflation to a manageable level, we need to grow wages to catch up. I never heard a good plan on that from either side.
Over in analog mountain bikes, we have the new UDH standard, and basically everything else was standardized except some bearings. All mountain bikes are pretty modular. The main manufacturers make the frame, and then bolt on parts from different brake, shock, etc suppliers. There's at least two of each, which keeps things competitive.
However, if you're giving redis access to different tenants, Lua is too dangerous.
I'd love to see a "real" transaction API for Redis.
Tuning the older options wasn't really all that beneficial. We tried tuning, then running a custom build of OpenJDK to mess with the survivor space (which isn't that tunable via config), then ultimately settled on more aggressive (i.e. weekly) rolling restarts of servers.
To make generational GC efficient, you want to have very short lived objects, or objects that live forever. Lots of moderately long-lived objects is the worst case scenario, as it causes permanent fragmentation of the old GC generation.
Lucene generally churns through a lot of strings while indexing, but it also builds a lot of caches that live on-heap for a few minutes. Because the minor GCs come fast and furious due to indexing, that means you have caches that last just long enough to get evicted into the old generation, only to become useless shortly thereafter.
The end result looks like a slow burning memory leak. I've seen the worst cases take down servers every hour or two, but this can accumulate over time on a slower fuse as well.
The replication protocols and leader election were IMO not battle-hardened or likely to pass Aphyr-style testing. It was pretty easy to get into a state where the source of truth was unclear.
Source: Ran an Elasticsearch hosting company in the 2010's. A little out of the loop, but not sure much has changed.
If you're in a profit center, you might get rewarded for your risk.
Also, this reads like they might not have seen the newer proto3 optional keyword, or know about the well-known wrapper types.
The advice of "commoditize your complements" is working out great for amazon. Ironically, AWS is almost a commodity itself, and the OSS community could flip the table, but we haven't figured out how to do it.
To make progress, you have to keep the optimism of a neophyte.
When going about the unreasonable, I tend to ask myself 3 questions:
1. Has this area recently been unlocked by progress elsewhere? e.g. ML with cheap GPUs
2. Have I built skills that make me uniquely suited to tackle this?
3. Is this problem relatively unsexy? Everyone wants to build a better javascript framework, no one wants to wear the pager.
I find the most promising areas to be unlocked when I can answer yes to all three things.
We never had scala thrift bindings, and the Java ones were awkward from Scala, so I wrote a thrift plugin in JRuby that used the Ruby thrift parser and ERb web templates to output some Scala code. Integrated with our build pipeline, worked great for the company.
I also wrote one era of twitter's service deploy system on a hacked up Capistrano.
These projects took a few days because they were dirty hacks, but I still got a below perf review for getting easily distracted, because I didn't yet know how to sell those company-wide projects.
Anyhow, about a month before that team kicked off Parquet, I showed them a columnar format I made for a hackweek based on Lucene's codec packages, and was using to power a mixpanel-alike analytics system.
I'm not sure whether they were inspired or terrified that my hack would reach production, but I like to think I had a small hand in getting Parquet kickstarted.
Also, contrary to popular opinion, we didn't go down when Justin Bieber tweeted, but we did have elevated error rates when large quantities of Justin Bieber followings put pressure on the MySQL row lock of his following count. In retrospect, lock striping would have helped, but the migration would have been horrific.
If this isn't working out, I hire experts to improve the quality of decision-making, with me making decisions as a last resort.
Maybe some VCs want you to dig to the bedrock, but not all, and everything in life is a negotiation.
I look at YC as grad school for entrepeneurs. You'll learn a ton, build a network, and have a good time for a while. Unlike grad school, there's direct upside, and you won't have to take out loans or live off the lab stipend.
Now would I go to grad school at 40? Maybe, but the calculus is certainly different than at 20.
YC is clearly good for something. You really have to figure out how to make it work for you.
Use ElasticSearch. It will scale more than Postgres. Three hosted options are AWS, Elastic, Bonsai. I founded Bonsai and retired (so am partial), but they will provide the best human support for you, and you won't have to worry about java Xmx.
Your goal with ES is to use the Regex PatternAnalyzer to split the code into reasonable exact code-shaped tokens (not english words).
Here's a rough GPT4 explanation with sample config that I'd head towards: https://chat.openai.com/share/e4d08586-b7ef-48f2-9de1-7f82ea...
The next step is to compile your server to WebAssembly and ship it to your clients. You can then use it to optimistically render responses while waiting for the real server to return.
Sounds a little crazy, but we've actually pulled it off for a project, and its magic.
I'm pretty confident adding LC_ALL=C to the awk solution would get it easily under a minute.
The level of competition between companies--the level of talent needed to win--is what drives the salaries.