Corporations and otherwise enterprise companies may even purchase and issue hardware tokens to their employees. This hardware token can be USB, or WiFi, or Bluetooth, or even NFC. So that the people can use their own devices, since this token has limited throughput by design. And your "corporate Slack" is super secure, since your users can not physically extract the decryption key from this hardware token. Traveling through unsafe countries? Leave this token at home; we'll issue you a duplicate one on the premises of this company in your ultimate country of destination.
Such a trivial problem. Such a trivial solution. And Telegram is so well-positioned to build it.
In fact, Telegram may even offer this as a premium / enterprise option. Everything, including supporting those hardware tokens. Give people the open to buy those tokens from other vendors, since the protocol is open. And charge some $10 per user per month, far less than what Slack wants. And have these users remain loyal Telegram users, while the company that is paying Telegram has 100% confidence that the messages sent through Telegram are safe and secure.
Everyone I speak with about this in depth agrees with the above train of thought within single-digit minutes. OpenSSL is, well, open. But there is no product that connects the above dots. Even though the "custom device" cryptographic boundary is an extremely trivial idea that also plays well with the concept of open source encryption protocol plus 100% vendor lock-in with Telegram as the app of choice.
The only reason I used to believe can explain why Telegram is not doing the above is App Store regulations. The big players (Apple & Google & Samsung) may well decide to not allow such an app, for whatever BS reason such as "we can not ensure our users do not view adult content there". But since I've learned Telegram has special versions of its own app that are not distributed via the stores, this argument no longer holds.
So: Either my first-principle predicion will begin happening soon, hopefully with Telegram, or I'd be willing to buy into various conspiracy theories about the rules and the means to support "privacy" on the Internet.
Such a trivial problem. Such a trivial solution. And Telegram is so well-positioned to build it.
In fact, Telegram may even offer this as a premium / enterprise option. Everything, including supporting those hardware tokens. Give people the open to buy those tokens from other vendors, since the protocol is open. And charge some $10 per user per month, far less than what Slack wants. And have these users remain loyal Telegram users, while the company that is paying Telegram has 100% confidence that the messages sent through Telegram are safe and secure.
Everyone I speak with about this in depth agrees with the above train of thought within single-digit minutes. OpenSSL is, well, open. But there is no product that connects the above dots. Even though the "custom device" cryptographic boundary is an extremely trivial idea that also plays well with the concept of open source encryption protocol plus 100% vendor lock-in with Telegram as the app of choice.
The only reason I used to believe can explain why Telegram is not doing the above is App Store regulations. The big players (Apple & Google & Samsung) may well decide to not allow such an app, for whatever BS reason such as "we can not ensure our users do not view adult content there". But since I've learned Telegram has special versions of its own app that are not distributed via the stores, this argument no longer holds.
So: Either my first-principle predicion will begin happening soon, hopefully with Telegram, or I'd be willing to buy into various conspiracy theories about the rules and the means to support "privacy" on the Internet.
๐2
What I'm about to say might sound completely absurd, but I believe it has a chance of touching upon some deeper wisdom. I can't seem to get it out of my head, so here it is.
In English, when someone hears a word like "bakery", I think it tends to carry a personal, or at least to a certain degree personified connotation.
For example, the phrase "we went to the bakery the other day" is akin to saying "we went to the baker's place", implying that we visited the spot where the baker practices their craft. While it's likely we bought something at this bakery, it also suggests that we exchanged our money for the goods and services provided by the baker or by someone representing the baker.
Even though it's subtle, there's a sense in which the bakery is seen as something the baker owns or is closely tied to. The baker might run the business with their family, be involved in a partnership, or still be paying off a loan for the bakery. Perhaps the baker is working there to gain experience, save money, and build a customer base before opening their own bakery. The point is, "the bakery" is personified by "the baker". When you buy from the bakery, you're supporting this baker, who, in turn, contributes to your family, the neighborhood, and the community.
Looking at it another way, if two hundred years ago you were to learn, say, that your neighbor's teenage child was going to work at the bakery next door, you'd likely assume they'd be working directly with the baker. If this teenager is bright and/or comes from a family with a history of being business-minded, you might even assume they're considering a career in baking. In five to ten years, they might want to become a partner in the bakery, and in ten to twenty years, they could potentially open their own bakery, buy out the one they are working in now, or even be chosen by the current owner to continue running his or her family baking business.
Based on my understanding of the language and culture, I believe this is what goes through the mind of an English speaker when they hear the word "bakery". I would even go as far as to say that an American conservative, for example, might hear all the right things about supporting small businesses when they hear of "the bakery." To them, "the bakery" might be seen as the opposite of a large corporation, such as Walmart.
I also think that the German understanding of the term follows similar lines. The bakery is seen as the baker's craft, and one's craft is viewed as the business that they manage for themselves and their family.
Now, hear me out. In Russian, and I assume in other Eastern European languages, the personal connection between "the bakery" and "the baker" just doesn't exist. There's none. Zero. "The bakery" is just a term for a place where baked goods can be bought. That's it.
For an English speaker, there's a sharp difference between buying strawberries at a grocery store versus a farmer's market. There's a personal touch to a farmer's market; the strawberries you buy there have a certain quality. There's even a sense of individualityโfor example, you might know that Aunt Jane grows, picks, and stores her strawberries in a particular way. In contrast, when you buy strawberries at a grocery store, the personal touch is lost, and you're lucky if there's a recognizable brand name like Driscoll's.
For a Russian speaker, both linguistically and culturally, there's no person and no individual traits associated with "the bakery". The owner feels infinitely distant, and a Russian speaker might refer to them as "they". If there are two bakeries or two grocery stores to choose from, a Russian speaker might think along the lines of "they know how to select their suppliers better at A than at B". There wouldn't be any personal touch involved. If a teenager were to work at a bakery, learning from "the baker" would likely be the last thing on their mind. In fact, the concept of "the baker" as a figure has long disappeared.
In English, when someone hears a word like "bakery", I think it tends to carry a personal, or at least to a certain degree personified connotation.
For example, the phrase "we went to the bakery the other day" is akin to saying "we went to the baker's place", implying that we visited the spot where the baker practices their craft. While it's likely we bought something at this bakery, it also suggests that we exchanged our money for the goods and services provided by the baker or by someone representing the baker.
Even though it's subtle, there's a sense in which the bakery is seen as something the baker owns or is closely tied to. The baker might run the business with their family, be involved in a partnership, or still be paying off a loan for the bakery. Perhaps the baker is working there to gain experience, save money, and build a customer base before opening their own bakery. The point is, "the bakery" is personified by "the baker". When you buy from the bakery, you're supporting this baker, who, in turn, contributes to your family, the neighborhood, and the community.
Looking at it another way, if two hundred years ago you were to learn, say, that your neighbor's teenage child was going to work at the bakery next door, you'd likely assume they'd be working directly with the baker. If this teenager is bright and/or comes from a family with a history of being business-minded, you might even assume they're considering a career in baking. In five to ten years, they might want to become a partner in the bakery, and in ten to twenty years, they could potentially open their own bakery, buy out the one they are working in now, or even be chosen by the current owner to continue running his or her family baking business.
Based on my understanding of the language and culture, I believe this is what goes through the mind of an English speaker when they hear the word "bakery". I would even go as far as to say that an American conservative, for example, might hear all the right things about supporting small businesses when they hear of "the bakery." To them, "the bakery" might be seen as the opposite of a large corporation, such as Walmart.
I also think that the German understanding of the term follows similar lines. The bakery is seen as the baker's craft, and one's craft is viewed as the business that they manage for themselves and their family.
Now, hear me out. In Russian, and I assume in other Eastern European languages, the personal connection between "the bakery" and "the baker" just doesn't exist. There's none. Zero. "The bakery" is just a term for a place where baked goods can be bought. That's it.
For an English speaker, there's a sharp difference between buying strawberries at a grocery store versus a farmer's market. There's a personal touch to a farmer's market; the strawberries you buy there have a certain quality. There's even a sense of individualityโfor example, you might know that Aunt Jane grows, picks, and stores her strawberries in a particular way. In contrast, when you buy strawberries at a grocery store, the personal touch is lost, and you're lucky if there's a recognizable brand name like Driscoll's.
For a Russian speaker, both linguistically and culturally, there's no person and no individual traits associated with "the bakery". The owner feels infinitely distant, and a Russian speaker might refer to them as "they". If there are two bakeries or two grocery stores to choose from, a Russian speaker might think along the lines of "they know how to select their suppliers better at A than at B". There wouldn't be any personal touch involved. If a teenager were to work at a bakery, learning from "the baker" would likely be the last thing on their mind. In fact, the concept of "the baker" as a figure has long disappeared.
๐3
I'm not sure what to make of this argument, and I don't want to frame it in terms of "state-provided" or "state-supplied" bakeries. But, in a way, this is exactly what these places have become in the "collective consciousness", at least linguistically.
Such a situation is doubly unfortunate. First, it removes the spirit from the craft, depriving people of something to dedicate themselves to. Second, it eliminates any notion of voting with one's money. Instead, people's decision-making becomes solely about getting a good deal and enjoying the process and the results, with no thought about supporting the right kind of businesses or thinking about the community's future, which is shaped by the collective actions of those who vote with their feet and their wallets.
Please help me refine this thought. First, am I entirely off-base, or does this resonate with you? Second, how relevant do you think this idea is in today's world? Finally, does this perspective relate to the modern approach to high-tech software businesses?
Such a situation is doubly unfortunate. First, it removes the spirit from the craft, depriving people of something to dedicate themselves to. Second, it eliminates any notion of voting with one's money. Instead, people's decision-making becomes solely about getting a good deal and enjoying the process and the results, with no thought about supporting the right kind of businesses or thinking about the community's future, which is shaped by the collective actions of those who vote with their feet and their wallets.
Please help me refine this thought. First, am I entirely off-base, or does this resonate with you? Second, how relevant do you think this idea is in today's world? Finally, does this perspective relate to the modern approach to high-tech software businesses?
๐1
In a sad coincidence of my last three post one is about The Pirate Bay and one is about Telegram and its encryption.
And now Pavel Durov, the founder of Telegram, is arrested in France. Presumably, because France believe he's not cooperating with the authorities with respect to "allowing" "bad things" to happen on Telegram.
So, had end-to-end encryption, esp. with user-owned tokens, been enabled in Telegram by design since a long time ago, this very accusation could not have possibly emerged in the first place. Ah, and especially if the protocols are open source, with canonical implementations, reviewed, or perhaps even implemented, by third-party experts.
Sigh. Wish this situation resolves itself quickly enough in the most positive way possible.
And now Pavel Durov, the founder of Telegram, is arrested in France. Presumably, because France believe he's not cooperating with the authorities with respect to "allowing" "bad things" to happen on Telegram.
So, had end-to-end encryption, esp. with user-owned tokens, been enabled in Telegram by design since a long time ago, this very accusation could not have possibly emerged in the first place. Ah, and especially if the protocols are open source, with canonical implementations, reviewed, or perhaps even implemented, by third-party experts.
Sigh. Wish this situation resolves itself quickly enough in the most positive way possible.
๐3โค1
Encryption is not a human right. Encryption is something far bigger.
I can explain this with an absurd analogy. Imagine a country making it illegal for a human being to be strong enough to lift more than a hundred pounds.
Depending on how much sci-fi you read and how vivid your imagination is, Orwellian scenarios of various depths and shapes are likely emerging in your mind right now. You might envision licensed lifting equipment with weight caps, raids on illegal gyms, and various traps to expose people ("suspects") who are physically capable of lifting. There might even be mandatory medical testing to forcibly drug those whose muscles are strong enough.
Undoubtedly, significant pressure can be applied top-down, and the percentage of people capable of lifting over a hundred pounds can be substantially reduced.
However, it's absurd to believe this percentage can be reduced to zero. Many people would still want to be strong, if only to maintain their health or to attract better partners. Furthermore, I'd argue that if a country were to pursue this route, its days would be numbered. Within two generations, three max, it would turn into a failed state. Neighboring countries would likely welcome free-thinking individuals who realize their desire to control their bodies trumps their desire to conform to some "civic conduct" they don't agree with.
The term "human right" is a social construct. We, the humans, decide what human rights are and how we protect them. Human rights are not static, and it's up to us to allow the term to evolve as our civilization grows and matures.
There will always be disagreements about what exactly constitutes a human right, what the acceptable means to defend these rights are, and what liberties we should collectively consent to give up, and to what extent, to protect our human rights.
But much like the absurd analogy of capping the weight one can lift, it's foolish to try to cap one's right to private communication.
Totalitarian governments can make their citizens believe certain historical events never happened. We have evidence that this can be done quite effectively โ hundreds of millions of people can be made to act in a way that provides them with sufficient plausible deniability about not knowing that certain events occurred.
But encryption is different.
The Diffie-Hellman key exchange handshake was discovered, not invented. Number theory works regardless of whether one believes in it. Strong algorithms exist that can literally be evaluated on a napkin, which can then be burned. People from all age groups and demographics are increasingly aware of asymmetric encryption these days โ some from SSH-ing into servers, and an ever-growing number from interacting with crypto wallets.
This is why encryption is not a human right. It is far more significant than a human right. It's akin to gravity: a concept that exists in the universe, which no sane ruler's normative act can turn off at will.
I can explain this with an absurd analogy. Imagine a country making it illegal for a human being to be strong enough to lift more than a hundred pounds.
Depending on how much sci-fi you read and how vivid your imagination is, Orwellian scenarios of various depths and shapes are likely emerging in your mind right now. You might envision licensed lifting equipment with weight caps, raids on illegal gyms, and various traps to expose people ("suspects") who are physically capable of lifting. There might even be mandatory medical testing to forcibly drug those whose muscles are strong enough.
Undoubtedly, significant pressure can be applied top-down, and the percentage of people capable of lifting over a hundred pounds can be substantially reduced.
However, it's absurd to believe this percentage can be reduced to zero. Many people would still want to be strong, if only to maintain their health or to attract better partners. Furthermore, I'd argue that if a country were to pursue this route, its days would be numbered. Within two generations, three max, it would turn into a failed state. Neighboring countries would likely welcome free-thinking individuals who realize their desire to control their bodies trumps their desire to conform to some "civic conduct" they don't agree with.
The term "human right" is a social construct. We, the humans, decide what human rights are and how we protect them. Human rights are not static, and it's up to us to allow the term to evolve as our civilization grows and matures.
There will always be disagreements about what exactly constitutes a human right, what the acceptable means to defend these rights are, and what liberties we should collectively consent to give up, and to what extent, to protect our human rights.
But much like the absurd analogy of capping the weight one can lift, it's foolish to try to cap one's right to private communication.
Totalitarian governments can make their citizens believe certain historical events never happened. We have evidence that this can be done quite effectively โ hundreds of millions of people can be made to act in a way that provides them with sufficient plausible deniability about not knowing that certain events occurred.
But encryption is different.
The Diffie-Hellman key exchange handshake was discovered, not invented. Number theory works regardless of whether one believes in it. Strong algorithms exist that can literally be evaluated on a napkin, which can then be burned. People from all age groups and demographics are increasingly aware of asymmetric encryption these days โ some from SSH-ing into servers, and an ever-growing number from interacting with crypto wallets.
This is why encryption is not a human right. It is far more significant than a human right. It's akin to gravity: a concept that exists in the universe, which no sane ruler's normative act can turn off at will.
๐ฅ1
I repeat: do not ask ChatGPT for illustrations where the concept of correctness exists.
This is just ... a student should be expelled from a university if they present this picture.
What's confusing is that the explanation ChatGPT gave first, to which I answered "yes" as it suggested to generate the picture, was quite decent.
This is just ... a student should be expelled from a university if they present this picture.
What's confusing is that the explanation ChatGPT gave first, to which I answered "yes" as it suggested to generate the picture, was quite decent.
๐2๐ฅ1
My experiments-turned-tutorial post on C++20 coroutines: https://dimakorolev.substack.com/p/c20-coroutines.
Could not resist running this experiment, and then could not resist turning it into a post: "futuristic" posters generated by ChatGPT 4o.
I'd say we are indeed losing the capacity to dream big.
Prove me wrong. Please.
I'd say we are indeed losing the capacity to dream big.
Prove me wrong. Please.
Dima Korolev
The Future as Envisioned by the AI
"We interrupt our scheduled programming for this important message."
โค1๐1
Lazy Web, I could use some advice.
For context, my thoughts keep circling around three interconnected ideas: OLTP for ACID-level data consistency guarantees, OLAP tied to this OLTP for batch-mode analytics, and "enterprise-friendly decentralization" where one can either leverage a swarm of publicly available nodes for a nominal fee or dedicate several instances in their own data center to these tasks.
OLTP: ๐ฃ๐ถ๐ฐ๐๐๐ฟ๐ฒ ๐๐ถ๐ฟ๐ฒ๐ฏ๐ฎ๐๐ฒ, ๐๐๐ป๐ฎ๐บ๐ผ๐๐, ๐ผ๐ฟ ๐ฒ๐๐ฒ๐ป ๐ฆ๐ฝ๐ฎ๐ป๐ป๐ฒ๐ฟ ๐ฟ๐๐ป๐ป๐ถ๐ป๐ด ๐ถ๐ป ๐ฎ ๐ฑ๐ฒ๐ฐ๐ฒ๐ป๐๐ฟ๐ฎ๐น๐ถ๐๐ฒ๐ฑ ๐ฒ๐ป๐๐ถ๐ฟ๐ผ๐ป๐บ๐ฒ๐ป๐. Zero configuration, tight latency guarantees, and through-the-roof availability and consistency guarantees. The cost per request is in micro-cents. Additionally, the system is DDoS-resistant by design, as each request must be signed in a relatively costly way, making attacks prohibitively expensive.
OLAP: ๐ก๐ผ๐, ๐ถ๐บ๐ฎ๐ด๐ถ๐ป๐ฒ ๐ฎ๐ฑ๐ฑ๐ถ๐ป๐ด ๐๐ฎ๐๐ฎ๐ฏ๐ฟ๐ถ๐ฐ๐ธ๐, ๐๐ฎ๐๐ฎ๐ฑ๐ผ๐ด, ๐ฎ๐ป๐ฑ ๐ฆ๐ป๐ผ๐๐ณ๐น๐ฎ๐ธ๐ฒ ๐ผ๐ป ๐๐ผ๐ฝ. The same principles apply: zero configuration and pay-as-you-go. An added benefit is the built-in pub/sub bus between the OLTP and OLAP layers, that works out of the box.
Enterprise-friendly decentralization, or what I prefer to call semi-decentralization, applies this idea to small-to-medium businesses. Once you need to tighten access control to some of your data, you can spin up a local cluster and run everything on it. ๐๐น๐๐ต๐ผ๐๐ด๐ต ๐๐ต๐ฒ ๐๐๐๐๐ฒ๐บ ๐ถ๐ ๐ฑ๐ฒ๐๐ถ๐ด๐ป๐ฒ๐ฑ ๐ณ๐ผ๐ฟ ๐ฑ๐ฒ๐ฐ๐ฒ๐ป๐๐ฟ๐ฎ๐น๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ณ๐ถ๐ฟ๐๐, ๐ถ๐ ๐ฎ๐น๐๐ผ ๐ฎ๐ฑ๐ต๐ฒ๐ฟ๐ฒ๐ ๐๐ผ ๐ฑ๐ฎ๐๐ฎ ๐๐ฒ๐ด๐ฟ๐ฒ๐ด๐ฎ๐๐ถ๐ผ๐ป ๐ฎ๐ป๐ฑ ๐ฟ๐ฒ๐๐ถ๐ฑ๐ฒ๐ป๐ฐ๐ ๐ฟ๐ฒ๐ด๐๐น๐ฎ๐๐ถ๐ผ๐ป๐ ๐ผ๐๐ ๐ผ๐ณ ๐๐ต๐ฒ ๐ฏ๐ผ๐ , if and when needed. "Taking your data private" would also likely be more cost-effective as the business scales. You could even lend your unused storage, compute, and network resources to others during off-peak hours, to support a cause like cancer research or simply to improve your bottom line.
I'll be very vague for the sake of discretion, but there's a team we are considering joining forces with. While their product's long-term vision aligns with mine, their initial market entry point focuses more on data storage and serving rather than the OLTP+OLAP combo as I envision it. They also have over five years of market presence.
Simply put, while my vision revolves around Firebase + Databricks + Snowflake, they are starting with some S3 + Cloudflare, eyeing some Huggingface moving forward.
Lazy web, I'd appreciate your help in evaluating this opportunity. Specifically, I have three questions:
1) ๐๐จ ๐ฉ๐๐ "๐๐๐๐๐ฃ๐ฉ๐ง๐๐ก๐๐ฏ๐๐ ๐จ๐ฉ๐ค๐ง๐๐๐ + ๐พ๐ฟ๐" ๐ฅ๐ง๐ค๐๐ก๐๐ข ๐๐๐๐ก๐ก๐๐ฃ๐๐๐ฃ๐ ๐๐ฃ๐ค๐ช๐๐ ๐ฉ๐ค ๐๐ฉ๐ฉ๐๐๐ ?
2) ๐๐จ ๐ฉ๐๐ ๐ข๐๐ง๐ ๐๐ฉ ๐ก๐๐ง๐๐ ๐๐ค๐ง ๐จ๐ช๐๐ ๐ ๐๐๐๐๐ฃ๐ฉ๐ง๐๐ก๐๐ฏ๐๐ ๐พ๐ฟ๐ ๐ฅ๐ง๐ค๐๐ช๐๐ฉ?
3) ๐๐ค๐ฌ ๐๐ก๐ค๐จ๐๐ก๐ฎ ๐ง๐๐ก๐๐ฉ๐๐ ๐๐จ ๐ฉ๐๐ ๐3 + ๐พ๐ก๐ค๐ช๐๐๐ก๐๐ง๐ ๐ฅ๐ง๐ค๐๐ก๐๐ข ๐ฉ๐ค ๐ฉ๐๐ ๐๐๐ง๐๐๐๐จ๐ + ๐ฟ๐ฎ๐ฃ๐๐ข๐ค๐ฟ๐ฝ ๐ค๐ฃ๐, ๐ฌ๐๐๐ฃ ๐ฉ๐๐๐ฃ๐ ๐๐ฃ๐ ๐๐๐ค๐ช๐ฉ ๐๐ช๐ฉ๐ช๐ง๐ ๐๐ญ๐ฅ๐๐ฃ๐จ๐๐ค๐ฃ?
I have my own thoughts and answers to these questions but would prefer not to share them yet to avoid biasing your responses. (Feel free to DM me privately if you're curious.)
Thanks in advance!
For context, my thoughts keep circling around three interconnected ideas: OLTP for ACID-level data consistency guarantees, OLAP tied to this OLTP for batch-mode analytics, and "enterprise-friendly decentralization" where one can either leverage a swarm of publicly available nodes for a nominal fee or dedicate several instances in their own data center to these tasks.
OLTP: ๐ฃ๐ถ๐ฐ๐๐๐ฟ๐ฒ ๐๐ถ๐ฟ๐ฒ๐ฏ๐ฎ๐๐ฒ, ๐๐๐ป๐ฎ๐บ๐ผ๐๐, ๐ผ๐ฟ ๐ฒ๐๐ฒ๐ป ๐ฆ๐ฝ๐ฎ๐ป๐ป๐ฒ๐ฟ ๐ฟ๐๐ป๐ป๐ถ๐ป๐ด ๐ถ๐ป ๐ฎ ๐ฑ๐ฒ๐ฐ๐ฒ๐ป๐๐ฟ๐ฎ๐น๐ถ๐๐ฒ๐ฑ ๐ฒ๐ป๐๐ถ๐ฟ๐ผ๐ป๐บ๐ฒ๐ป๐. Zero configuration, tight latency guarantees, and through-the-roof availability and consistency guarantees. The cost per request is in micro-cents. Additionally, the system is DDoS-resistant by design, as each request must be signed in a relatively costly way, making attacks prohibitively expensive.
OLAP: ๐ก๐ผ๐, ๐ถ๐บ๐ฎ๐ด๐ถ๐ป๐ฒ ๐ฎ๐ฑ๐ฑ๐ถ๐ป๐ด ๐๐ฎ๐๐ฎ๐ฏ๐ฟ๐ถ๐ฐ๐ธ๐, ๐๐ฎ๐๐ฎ๐ฑ๐ผ๐ด, ๐ฎ๐ป๐ฑ ๐ฆ๐ป๐ผ๐๐ณ๐น๐ฎ๐ธ๐ฒ ๐ผ๐ป ๐๐ผ๐ฝ. The same principles apply: zero configuration and pay-as-you-go. An added benefit is the built-in pub/sub bus between the OLTP and OLAP layers, that works out of the box.
Enterprise-friendly decentralization, or what I prefer to call semi-decentralization, applies this idea to small-to-medium businesses. Once you need to tighten access control to some of your data, you can spin up a local cluster and run everything on it. ๐๐น๐๐ต๐ผ๐๐ด๐ต ๐๐ต๐ฒ ๐๐๐๐๐ฒ๐บ ๐ถ๐ ๐ฑ๐ฒ๐๐ถ๐ด๐ป๐ฒ๐ฑ ๐ณ๐ผ๐ฟ ๐ฑ๐ฒ๐ฐ๐ฒ๐ป๐๐ฟ๐ฎ๐น๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ณ๐ถ๐ฟ๐๐, ๐ถ๐ ๐ฎ๐น๐๐ผ ๐ฎ๐ฑ๐ต๐ฒ๐ฟ๐ฒ๐ ๐๐ผ ๐ฑ๐ฎ๐๐ฎ ๐๐ฒ๐ด๐ฟ๐ฒ๐ด๐ฎ๐๐ถ๐ผ๐ป ๐ฎ๐ป๐ฑ ๐ฟ๐ฒ๐๐ถ๐ฑ๐ฒ๐ป๐ฐ๐ ๐ฟ๐ฒ๐ด๐๐น๐ฎ๐๐ถ๐ผ๐ป๐ ๐ผ๐๐ ๐ผ๐ณ ๐๐ต๐ฒ ๐ฏ๐ผ๐ , if and when needed. "Taking your data private" would also likely be more cost-effective as the business scales. You could even lend your unused storage, compute, and network resources to others during off-peak hours, to support a cause like cancer research or simply to improve your bottom line.
I'll be very vague for the sake of discretion, but there's a team we are considering joining forces with. While their product's long-term vision aligns with mine, their initial market entry point focuses more on data storage and serving rather than the OLTP+OLAP combo as I envision it. They also have over five years of market presence.
Simply put, while my vision revolves around Firebase + Databricks + Snowflake, they are starting with some S3 + Cloudflare, eyeing some Huggingface moving forward.
Lazy web, I'd appreciate your help in evaluating this opportunity. Specifically, I have three questions:
1) ๐๐จ ๐ฉ๐๐ "๐๐๐๐๐ฃ๐ฉ๐ง๐๐ก๐๐ฏ๐๐ ๐จ๐ฉ๐ค๐ง๐๐๐ + ๐พ๐ฟ๐" ๐ฅ๐ง๐ค๐๐ก๐๐ข ๐๐๐๐ก๐ก๐๐ฃ๐๐๐ฃ๐ ๐๐ฃ๐ค๐ช๐๐ ๐ฉ๐ค ๐๐ฉ๐ฉ๐๐๐ ?
2) ๐๐จ ๐ฉ๐๐ ๐ข๐๐ง๐ ๐๐ฉ ๐ก๐๐ง๐๐ ๐๐ค๐ง ๐จ๐ช๐๐ ๐ ๐๐๐๐๐ฃ๐ฉ๐ง๐๐ก๐๐ฏ๐๐ ๐พ๐ฟ๐ ๐ฅ๐ง๐ค๐๐ช๐๐ฉ?
3) ๐๐ค๐ฌ ๐๐ก๐ค๐จ๐๐ก๐ฎ ๐ง๐๐ก๐๐ฉ๐๐ ๐๐จ ๐ฉ๐๐ ๐3 + ๐พ๐ก๐ค๐ช๐๐๐ก๐๐ง๐ ๐ฅ๐ง๐ค๐๐ก๐๐ข ๐ฉ๐ค ๐ฉ๐๐ ๐๐๐ง๐๐๐๐จ๐ + ๐ฟ๐ฎ๐ฃ๐๐ข๐ค๐ฟ๐ฝ ๐ค๐ฃ๐, ๐ฌ๐๐๐ฃ ๐ฉ๐๐๐ฃ๐ ๐๐ฃ๐ ๐๐๐ค๐ช๐ฉ ๐๐ช๐ฉ๐ช๐ง๐ ๐๐ญ๐ฅ๐๐ฃ๐จ๐๐ค๐ฃ?
I have my own thoughts and answers to these questions but would prefer not to share them yet to avoid biasing your responses. (Feel free to DM me privately if you're curious.)
Thanks in advance!
๐ฅ1
Next time you think The AI is good enough to replace programmers soon, don't forget this.
Google Docs
ChatGPT 4o drawing a star
ChatGPT 4o You said: Draw a seven-ended star ChatGPT said: ChatGPT It seems there was an issue generating the seven-pointed star. Let me try again. I'll create a seven-ended star with sharp, evenly spaced points and a clean, symmetrical design on a simpleโฆ
๐5๐ฅ3
Pieter Levels wrote a deep tweet. And I am seconding him, plus:
https://x.com/UniqueDima/status/1833584882871828540
This is extremely well put.
I'd add path to a European citizenship.
A "Blue EU Passport", that lets one live and work in any EU country, be subject to top-level EU taxes, but not access to EU states healthcare and pensions โ should be granted after a year of working in the EU.
https://x.com/UniqueDima/status/1833584882871828540
๐3๐2
In case it's news to you: electric cars in the US prior to 1920.
https://chatgpt.com/share/c3d0ab93-f0ed-498c-bce3-d147605f167a
* In 1912, there were approximately 30,000 electric cars on U.S. roads.
* Top Speed: Around 15-20 mph (24-32 km/h).
* Range: Typically 30-50 miles (48-80 km) per charge, depending on the model and battery.
I feel the urge to spread this data, since far too many people these days believe we've "just started trying out electric vehicles" a couple years ago. This story is 100+ years old, and, compared to gasoline vehicles during that era, electric cars were not really inferior in their characteristics.
https://chatgpt.com/share/c3d0ab93-f0ed-498c-bce3-d147605f167a
* In 1912, there were approximately 30,000 electric cars on U.S. roads.
* Top Speed: Around 15-20 mph (24-32 km/h).
* Range: Typically 30-50 miles (48-80 km) per charge, depending on the model and battery.
I feel the urge to spread this data, since far too many people these days believe we've "just started trying out electric vehicles" a couple years ago. This story is 100+ years old, and, compared to gasoline vehicles during that era, electric cars were not really inferior in their characteristics.
Chatgpt
A conversational AI system that listens, learns, and challenges
๐5
There's something I'm remarkably proud of, both seriously and as a joke. And last night I realized I am not proud of it enough ๐ so I need to write about it!
TL;DR: I take pride and responsibility for coining the term "it's just a hash map" in our (extended) team.
Not sure what the right verb is. I don't think I've trained or mentored/coached anyone in particular. Some people called my approach Socratic, and that's also music to my ears. Realistically though, we've just worked on something big together.
The trend is super clear though.
When I was joining the team, there was often the talk about cache, durable vs. non-durable cache, partitioning/sharding, TTL, various 3rd party services and/or libraries to implement these ideas, you name it.
The first year I was just gently explaining my thought process. Because stuff often fits one machine, especially when
After about nine months the tide started to turn a bit. Instead of solving everything with ElastiCache or DAX or what not, we began experimenting with Redis+Lua to prove certain points. People began to buy into this. Not necessarily Erlang/Rust-level buy into this, but the jokes about "Mongo is Web Scale" faded away.
And when I was leaving the team after 2+ years, during farewell chat, we all agreed "it's just a hash map!" is a signature phrase in the team that would outlive me.
Seriously. A lot of things are just hash maps. Most caches do not have to be durable. Don't worry about the cold start. Heck, don't even worry about consistency: you'll be paged for high replication lag regardless, and if things already went wrong it's the speed of recovery that matters most. Just design the system that does its job and recovers quickly. If this system is three ~96GB RAM boxes that store the full copy of the working set of data each โ that very often is the best solution.
I wish each and every senior++ engineers to have worked both in the teams where the above is the default mindset and in the teams where the above is worth evangelizing and fighting for.
TL;DR: I take pride and responsibility for coining the term "it's just a hash map" in our (extended) team.
Not sure what the right verb is. I don't think I've trained or mentored/coached anyone in particular. Some people called my approach Socratic, and that's also music to my ears. Realistically though, we've just worked on something big together.
The trend is super clear though.
When I was joining the team, there was often the talk about cache, durable vs. non-durable cache, partitioning/sharding, TTL, various 3rd party services and/or libraries to implement these ideas, you name it.
The first year I was just gently explaining my thought process. Because stuff often fits one machine, especially when
LONG_AND_USELESS_ENUM_VALUES are bitmasks. A pub-sub bus enables keeping the cache up to date as long as the contract with the publisher is carefully spec'ed out. A beefy machine with enough RAM is quite cheap these days. And implementing some LRU eviction logic is an exercise that should take not more than half a day from a senior++ developer; maybe 1.5 days with tests, of course, but not more than a week in total including fighting with Kuberenetes to stress-test it for real.After about nine months the tide started to turn a bit. Instead of solving everything with ElastiCache or DAX or what not, we began experimenting with Redis+Lua to prove certain points. People began to buy into this. Not necessarily Erlang/Rust-level buy into this, but the jokes about "Mongo is Web Scale" faded away.
And when I was leaving the team after 2+ years, during farewell chat, we all agreed "it's just a hash map!" is a signature phrase in the team that would outlive me.
Seriously. A lot of things are just hash maps. Most caches do not have to be durable. Don't worry about the cold start. Heck, don't even worry about consistency: you'll be paged for high replication lag regardless, and if things already went wrong it's the speed of recovery that matters most. Just design the system that does its job and recovers quickly. If this system is three ~96GB RAM boxes that store the full copy of the working set of data each โ that very often is the best solution.
I wish each and every senior++ engineers to have worked both in the teams where the above is the default mindset and in the teams where the above is worth evangelizing and fighting for.
โค6๐ฅ3
Just realized that the easiest way to explain what Event Sourcing is to ask people to design game notation in chess.
In the vast majority of cases some
Sometimes there is the need to clarify which, say, rook, is moving.
We all agree that as long as the "game log" reads unambiguously, this log alone is sufficient to describe the entire game. Granted, also, we agree now to number the moves, and we know the sides alternate, with white taking the first move.
Unless the circumstances are rather extraordinary, no one is interested in encoding the entire chess board when talking about the position. In most cases, if the message one is sending is "consider this position which emerged by move 25", what they would present you is the log of the moves in this game up until and including move 25.
Well, this exactly is what the Event Sourcing idea is about:
1) Agree that we are talking about the history of mutations as the source-of-truth, not the "position on the board",
2) Agree that whatever the set of "legal moves" is, we find a way to encode these moves unambiguously, and
3) Find the way to intertwine changes in the set of "legal moves" into the history of mutations to the data.
While (3) may be convoluted, it's just about allowing to insert metadata into data. If your, say, knights can now "fork" right on the board, you'd need to extend the notation a bit, and this is exactly what (3) is about.
Trivial, isn't it?
In the vast majority of cases some
e5 or Qa5+ is sufficient to describe a move. And the game is a sequence of moves.Sometimes there is the need to clarify which, say, rook, is moving.
We all agree that as long as the "game log" reads unambiguously, this log alone is sufficient to describe the entire game. Granted, also, we agree now to number the moves, and we know the sides alternate, with white taking the first move.
Unless the circumstances are rather extraordinary, no one is interested in encoding the entire chess board when talking about the position. In most cases, if the message one is sending is "consider this position which emerged by move 25", what they would present you is the log of the moves in this game up until and including move 25.
Well, this exactly is what the Event Sourcing idea is about:
1) Agree that we are talking about the history of mutations as the source-of-truth, not the "position on the board",
2) Agree that whatever the set of "legal moves" is, we find a way to encode these moves unambiguously, and
3) Find the way to intertwine changes in the set of "legal moves" into the history of mutations to the data.
While (3) may be convoluted, it's just about allowing to insert metadata into data. If your, say, knights can now "fork" right on the board, you'd need to extend the notation a bit, and this is exactly what (3) is about.
Trivial, isn't it?
๐4๐ฅ1๐ค1
The episode on Stateful Orchestration is out!
In reality this episode sets the table for proper introduction into the domain of stateful orchestration. I talk in detail about many SysDesign problems leading to formulating the problem, from the idea of serialization and vector clocks, through decoupling of producers and consumers, and all the way to Cadence and Temporal as generic mechanisms to enable SAGAs and more sophisticated patterns at scale.
In reality this episode sets the table for proper introduction into the domain of stateful orchestration. I talk in detail about many SysDesign problems leading to formulating the problem, from the idea of serialization and vector clocks, through decoupling of producers and consumers, and all the way to Cadence and Temporal as generic mechanisms to enable SAGAs and more sophisticated patterns at scale.
YouTube
Stateful Orchestration :: SysDesign Meetup :: 2024-Sep-21
Resuming after a long pause. The topic is Stateful Orchestration, although in reality I just talk through a lot of modern-day SysDesign concepts to set the table for the episodes to come!
Errata sheet: Temporal itself is open source, released under the MITโฆ
Errata sheet: Temporal itself is open source, released under the MITโฆ
๐3
How the hell is Apple TV supposed to work?
I signed up for a free trial for a week, to watch Am
I Racist. Itโs not to be found there, although some result from Googleโs top ten suggested it will be.
I tried Better Call Saul. $2.99 per episode, $14.99 for Season One. On a free trial. Does not look free to me at all.
Is everyone f*cked up and across in this way by Apple, or is it just me? I mean, happy to pay, but perhaps keep your word and offer that one week of a free trial to win me as a customer first? Zero of two success rate is rather suboptimal to my taste.
Can I write Apple to cancel my one week โfreeโ trial so that I can try it next time when I have some second-order proof that what I want to watch is available on Apple TV? If anything, Iโd want them to acknowledge this false start, and try to start over with me when the next opportune moment comes.
Because if thereโs no way to do so, it sure looks to me, as a customer, that Apple and Google are working together to extract money from me, while offering no service whatsoever, despite calling the trial โfreeโ.
I seriously hope some class action lawsuit is coming. While overall I am against regulating software, if Uncle Sam is not here to hold companies accountable for what is an obvious (and successful!) attempt to deceive me, I donโt know what we need Uncle Sam for on the Internet.
I signed up for a free trial for a week, to watch Am
I Racist. Itโs not to be found there, although some result from Googleโs top ten suggested it will be.
I tried Better Call Saul. $2.99 per episode, $14.99 for Season One. On a free trial. Does not look free to me at all.
Is everyone f*cked up and across in this way by Apple, or is it just me? I mean, happy to pay, but perhaps keep your word and offer that one week of a free trial to win me as a customer first? Zero of two success rate is rather suboptimal to my taste.
Can I write Apple to cancel my one week โfreeโ trial so that I can try it next time when I have some second-order proof that what I want to watch is available on Apple TV? If anything, Iโd want them to acknowledge this false start, and try to start over with me when the next opportune moment comes.
Because if thereโs no way to do so, it sure looks to me, as a customer, that Apple and Google are working together to extract money from me, while offering no service whatsoever, despite calling the trial โfreeโ.
I seriously hope some class action lawsuit is coming. While overall I am against regulating software, if Uncle Sam is not here to hold companies accountable for what is an obvious (and successful!) attempt to deceive me, I donโt know what we need Uncle Sam for on the Internet.
๐2๐ข2
Folks, could someone please help me articulate, in simple first-principles engineering terms, what the difference is between smart contracts and pallets?
Here's my best shot at it so far.
โฃ Integration with the blockchain: If some "business logic" operates at a higher level of abstraction than the blockchain itself, the end user cannot distinguish whether the code is run by a smart contract or by a pallet. However, when the logic is intertwined with the core functionality of the blockchain (e.g., the logic of proof of work or staking), it must be a pallet.
โฃ Ownership of running code: Smart contracts are associated with a particular user (or "wallet," or a private key) that has initiated its execution and is funding it (paying for its "CPU usage," or gas fees in Ethereum terms). Pallets, on the other hand, are run by the blockchain itself.
โฃ Origin of trust: Smart contracts are written "by users, for users." They can contain bugs or vulnerabilities, and it is up to the users of these contracts to take responsibility for using each individual smart contract. Pallets are part of the blockchain, so trusting the code in a pallet is nearly indistinguishable from trusting the blockchain itself.
โฃ Performance: Simply put, smart contracts are interpreted, while pallets are native code. Although the line is somewhat blurred (interpreted code can be JIT-compiled, and "native" code can be Web Assembly), the conceptual difference remains.
There have been instances when the blockchain community stood behind the idea that a particular smart contract was erroneous and should be reverted. The most famous "code is law" vs. "we the people who run the nodes is law" argument, which has resulted in the Ethereum Classic fork.
In laymanโs legal terms, pallets can be thought of as amendments to the constitution of a given blockchain, while smart contracts are like corporations formed within the jurisdiction of that blockchain.
Corporations must follow the law, which in turn follows the constitution. Various checks and balances are incorporated into the governance mechanisms of the blockchain. They apply to the "corporate law" of this blockchain as well, but to a far lesser degree.
For a particular blockchain, governance mechanisms are particularly explicit when it comes to the process of passing "constitutional amendments" โ pallets. However, when it comes to "corporate law" โ smart contracts โ the governance body is mainly concerned with the safety of the blockchain itself, while any particular "corporate contract" may well not deliver to the end users what it is advertising.
Personally, the more I dive into the Web3 space, the more sense it makes. Full disclosure: I still firmly believe the vast majority of ICO token sales and NFT "art" is outright scam.
But DAO-based governance and pallets viewed as constitutional amendments are real 21st century stuff to my taste. I keep my fingers crossed for them to play a major role in our future.
Here's my best shot at it so far.
โฃ Integration with the blockchain: If some "business logic" operates at a higher level of abstraction than the blockchain itself, the end user cannot distinguish whether the code is run by a smart contract or by a pallet. However, when the logic is intertwined with the core functionality of the blockchain (e.g., the logic of proof of work or staking), it must be a pallet.
โฃ Ownership of running code: Smart contracts are associated with a particular user (or "wallet," or a private key) that has initiated its execution and is funding it (paying for its "CPU usage," or gas fees in Ethereum terms). Pallets, on the other hand, are run by the blockchain itself.
โฃ Origin of trust: Smart contracts are written "by users, for users." They can contain bugs or vulnerabilities, and it is up to the users of these contracts to take responsibility for using each individual smart contract. Pallets are part of the blockchain, so trusting the code in a pallet is nearly indistinguishable from trusting the blockchain itself.
โฃ Performance: Simply put, smart contracts are interpreted, while pallets are native code. Although the line is somewhat blurred (interpreted code can be JIT-compiled, and "native" code can be Web Assembly), the conceptual difference remains.
There have been instances when the blockchain community stood behind the idea that a particular smart contract was erroneous and should be reverted. The most famous "code is law" vs. "we the people who run the nodes is law" argument, which has resulted in the Ethereum Classic fork.
In laymanโs legal terms, pallets can be thought of as amendments to the constitution of a given blockchain, while smart contracts are like corporations formed within the jurisdiction of that blockchain.
Corporations must follow the law, which in turn follows the constitution. Various checks and balances are incorporated into the governance mechanisms of the blockchain. They apply to the "corporate law" of this blockchain as well, but to a far lesser degree.
For a particular blockchain, governance mechanisms are particularly explicit when it comes to the process of passing "constitutional amendments" โ pallets. However, when it comes to "corporate law" โ smart contracts โ the governance body is mainly concerned with the safety of the blockchain itself, while any particular "corporate contract" may well not deliver to the end users what it is advertising.
Personally, the more I dive into the Web3 space, the more sense it makes. Full disclosure: I still firmly believe the vast majority of ICO token sales and NFT "art" is outright scam.
But DAO-based governance and pallets viewed as constitutional amendments are real 21st century stuff to my taste. I keep my fingers crossed for them to play a major role in our future.
๐1