I tried for 5 years in a row to get into my country's service. It failed. Pivoted to information security, hey at least I am a millionaire now.
I tried for 5 years in a row to get into my country's service. It failed. Pivoted to information security, hey at least I am a millionaire now.
Not particularly surprising though, entertainment is the lowest common denominator so it's much easier for that kind of stuff to spread. High-signal information is the complete opposite: very few people can actually tell if it's valuable, and it's not particularly shareable.
To be fair, most people aren't really looking for super high-signal info anyway. Closer to the minimal amount of information I need, presented in an easily digestible way, or looking for infotainment around something they're interested in!
One of the simplest ways to think about scale is to think in terms of speed. This is a very very gross oversimplification and glosses over a lot of really important concepts, but at its core, you can say "if it's fast enough, it'll scale."
In a very simple mathematical sense, consider the idea that you have a single-instance, single-threaded application with no concurrency. If a request takes 1000ms to run, then you can do, at most, 1 request per second. If the request takes 100ms, you can do 10 requests per second. If it takes 10ms, you can do 100 request per second, and if it takes 1ms, you can do 1000 requests per second.
See? Speed is throughput is scale.
But that is, obviously, an oversimplification of the problem. Real applications are multi-threaded, multi-instance, and offer concurrency. So now the problem is identifying your bottlenecks and fixing them. But again, at its core, the main idea is speed. How can you make things as fast as possible?
(Note: There is a need to consider concurrency and parallelism, plus certain data stores have inherent speed limitations that may need to be overcome, and those things can offset poor speed, but the simplest path to scalability is speed and optimizing throughput.)
The analogy I like to use is the grocery store. Imagine you own a grocery store, and you want to make as much money as possible. Well, the best way to do that is to make sure your customers can get their food and check out as fast as possible. That means making sure the food is easy to find (i.e., read access is fast!), that they don't have to wait to check out (i.e., queue depth is low), and that checking out is fast (i.e., writes are fast). The faster your customers can walk in the door and back out again, the more customers you can sustain over a period of time.
On the other hand, if your customers take too long to find their groceries, or they spend too long waiting in line, or they have to write checks instead of swiping a smart phone, then you wind up with a backlog. And the larger the backlog, the longer it takes for money to hit your bank account.
So in this sense, time is literally money. The faster they can get through your system, the better.
I mentioned three different ways of thinking about speed: reads, writes, and queue depth.
Keeping with our grocery store analogy, consider how to improve each of those things. How do you make sure your customers can find what they're looking for as fast as possible? You "index" things. You put signs on the aisle, you organize your content in a way that is intuitive and puts related things near each other. If you want spaghetti, the pasta and the sauce and the parmesan cheese are all right next to each other. If you want breakfast, the eggs and milk and cinnamon rolls are right next to each other. In and out.
Similarly, your data needs to be organized smartly so that the user can get in and out as fast as possible. In a database, this means optimizing data structures, adding indices, and optimizing queries. Reduce expensive queries, keep cheap fast queries. Find ways to cache hot data. Make it easy to find what you need.
For writes, how do you speed up writes? One way is to make things asynchronous. Throw things that can be eventually consistent into queues and let an asynchronous job handle it outside the normal flow. The customer experiences minimal latency, and you've introduced concurrency to keep the data flowing while the customer is doing something else. This is, in part, why those little screens at the checkout counter ask you so many questions. They're distracting you while the cashier is scanning your groceries.
Queue depth optimization is important as well. If the queue gets really long at the grocery store, how do you improve that? You add more cashiers! The more cashiers you have, the more concurrent customers you can handle. But does it make sense to have 1 cashier per customer? Probably not. Now you've overscaled and you're spending too much money.
As you can see, this is a complex operation, and again, my analogy is overly simplified and very dumb, but I hope this gives you a decent idea of how to visualize a scalability problem.
I'm not familiar with Elixir, but frankly the concepts should translate to any language, although the details my vary.
My suggestion? Learn how to do profiling, identify bottlenecks, and target the biggest bang for your buck. The big risk here is micro-optimization, so fight for changes that give you order of magnitude improvements. Saving 50 microseconds isn't worth your time, but shaving off 1500 milliseconds almost certainly is.
Best of luck.
A real world manifestation of the thundering herd problem
https://waitbutwhy.com/2015/12/the-tail-end.html
My brother and I read this and were touched by it; we lived on opposite coasts and since we were kids always loved hanging out with one another. The idea that in our current arrangement we had already depleted MOST of our time together was a bitter pill to swallow.
For years we batted around the idea of living closer to each other. One day we just pulled the trigger and did it. It was enormously inconvenient, took a ton of logistical planning for our respective families, jobs and so on; but we ended up with houses within walking distance of one another and went from seeing each other and our immediate families maybe 10 days a year to 300+. We have accepted going forward it may limit our career options relative to when we lived in top tier American cities but the happiness we gained in the process is more than worth it.
I’m still not 100% sure the experiment will work out, but making the adjustment to live closer to family has substantially increased my mental health and emotional well-being. If you have close friendships and have ever talked about this seriously, I’d encourage you to consider what you might be gaining or losing in your current setup. It’s not for everyone but worth exploring!
It is a bit of skin that is used to protect and moisten sexual organs. I think it's obvious to anyone that they're crucial for keeping things clean and healthy.
It's serious enough that it's led to suicides[1] and suicidal ideation[2][3][4].
Fortunately, a research lab called Foregen is near to a solution to reverse male genital mutilation[5].
[0] https://www.foregen.org/the-human-foreskin
[1] https://www.bbc.com/news/uk-england-47292307
[2] https://youtu.be/vVuEST8RdL8
[3] http://reddit.com/r/circumcisiongrief
I've also read that it makes HIV transmission less likely.
Not sure why either would be true, but at least the first is.
This is a phenomenal thread on the subject by a senior research fellow at Oxford:
https://twitter.com/briandavidearp/status/107916411478471475...
Although this leads down a steep road easily to censor other content also, yet for a long time I have wondered why is it so easy to find porn, and why is nobody doing anything about it ?
Porn is probably one of the major addictive behavioural and thought changing things in this world currently. It takes under 3 seconds to find porn if you want it, probably from any device from anywhere around the world. Is this what humanity wants to optimize for ?
Porn causes distortions in how you think about women, how you sexualize over them and what kind of thoughts you have about women generally. It is very addictive, and leaves you with an empty feeling afterwards.
It can be violent, disturbing, abusive to the people involved and can cause mass scale feelings of not being enough, not being good enough to compared to the people showing you how "sex" should be had.
And yet almost everybody just silently accepts that porn is okay, and nothing should be done about it.
We give 5 year olds smartphones which can lead to the most disturbing porn scenes by just googling a couple of words, within a minute you could be watching somebody just abusing young women violently, and yet this is accepted.
I am all for free speech and that, but I think we have a blind spot here. Probably it is because we are addicted to this as a nation, as a species.
I wish the big players would decide to ban porn, or at least make it substantially harder to find it. It's just a freaking stupid idea that we give our children these devices at very young ages, and almost nobody is doing anything about filtering or limiting what kind of content is available to them in this manner.
Don't you agree ?
And I keep coming back to how important organising above the Dunbar number is and how bad economics etc is at this.
This resonates for me - and it’s still just grasping in the dark - but they seem to revolve around the idea that with software a company is no longer a lot of Dunbar number tribes working together through politics of their representatives (managers) but that action through the whole company can be co-ordinated through software (I even have the idea that the workers are CPUs so the coders are new managers).
Anyway the point is that founder mode might mean simply acknowledging that software runs / orgnaisies a company more than anything else - and building for that. What’s more important if your whole company is software controlled - relations between managers or the whole-org-test-rig?
Edit: apple famously has a run-book that is insanely detailed - basically instructions on how to run the org that builds the iPhone - this is software running a whole compmay. And if it’s software, it can be in one repo and that repo can be owned by Steve Jobs. Conceptually- that’s founder mode…. Maybe :-)