Earlier this year I shared a hypothetical example of how a wealth tax on unrealized gains would destroy startups.
Soooooo many people said that was unrealistic or misunderstood.
Now that exact thing is happening in Norway, forcing the founder to move to Switzerland.
Reportage fascinant de @leogabo sur l'Argentine et le phénomène Milei. Pour Le Point, il raconte comment de mauvaises politiques ont dévasté un pays autrefois riche. Extraits :
"[...] Les dépenses gargantuesques des gouvernements kirchneristes ont généré un déficit annuel supérieur à 6% du PIB, financé par une émission monétaire massive. Conséquence : une explosion des prix à la consommation. Et si la recette économique de la gauche mit le feu au pays, ses mesures pour combattre l'inflation allaient pour ainsi dire le carboniser. Du trucage des statistiques au blocage des prix en passant par les restrictions financières et le maintien artificiel du taux de change, l'Argentine a sombré dans un enfer de pauvreté.
[...]
Outre la misère économique, les politiques de gauche ont engendré l'enfer de l'insécurité. L'ère Kirchner vit une explosion des homicides, avec une augmentation de 45% pendant leurs années au pouvoir. Un fléau aggravé par un laxisme judiciaire et une politique sécuritaire défaillante. Le kirchnerisme s'est revendiqué de la « doctrine Zaffaroni », prônant des peines de prison minimes lorsque le criminel est perçu comme une victime de la société.
Eugenio Zaffaroni, juge à la Cour suprême argentine, s'est distingué par sa capacité à minimiser les infractions et à absoudre leurs auteurs – allant jusqu'à atténuer la gravité d'un viol sur mineur si celui-ci était commis dans l'obscurité. En parallèle, la gauche allait sceller l'impunité des délinquants avec une mesure complémentaire : l'interdiction pour les forces de l'ordre de faire usage de leurs armes à feu, même face à un danger imminent. Les policiers qui osaient protéger des vies avec leur arme de service étaient poursuivis en justice et radiés.
Le laxisme a transformé le pays en paradis pour les cartels de la drogue qui ont fait du pays le troisième exportateur mondial de cocaïne. Avec eux, une vague de violence s'est abattue sur l'Argentine. Rosario, la ville natale de Lionel Messi, est devenue l'épicentre de cette barbarie, avec plus de 1 200 meurtres liés au narcotrafic entre 2019 et 2023.
[...]
Sauf qu'à l'époque, en Argentine, critiquer la corruption kirchneriste revenait à « faire le jeu de la droite ». La gauche détenait l'hégémonie culturelle, décidant ce qui pouvait être dit ou tu, ce qui constituait un « vrai » problème ou un « fantasme de la droite », ce qui était digne d'éloge ou ce qui était « nauséabond ».
[...]
C'est dans ce contexte que le phénomène Milei a émergé. [...] Dans sa vision politique, deux camps s'affrontent. D'un côté, les classes moyennes soutiennent l'économie tout en s'appauvrissant de plus en plus, étouffées par un État tentaculaire et une pression fiscale parmi les plus élevées au monde. De l'autre, les élites politiques, bureaucratiques et médiatiques incluent les politiciens, les syndicats, les fonctionnaires, ainsi que les journalistes, intellectuels et artistes subventionnés par les impôts.
[...]
Milei a réduit de moitié le nombre de ministères, passé de 18 à 9, et celui de secrétariats d'État, passé de 106 à 54. Plus de 28 000 fonctionnaires ont été licenciés, avec un objectif de 75 000 suppressions d'emplois publics et l'élimination de 60 agences étatiques d'ici la fin de l'année. Les organismes considérés comme des vecteurs de gaspillage de fonds publics à des fins idéologiques ont été éliminés. Parmi eux, l'agence de presse nationale, Telam, et l'Institut national contre la discrimination, la xénophobie et le racisme (Inasi). Parallèlement, des licenciements massifs et des réductions budgétaires sont en cours dans l'audiovisuel public ainsi que dans le Centre national du cinéma.
À peine deux mois après sa prise de fonctions, le pays a enregistré son premier excédent budgétaire mensuel en 12 ans, qui s'est maintenu les mois suivants. L'inflation qui atteignait 25 % par mois lors de son élection est tombée à 2,7 % le mois dernier. [...]"
To celebrate Neon Deploy, we're giving away our favorite tools for shipping faster
This week: Pro access to https://t.co/TSuHq7wvKf - a course from @mattpocockuk to level up your TypeScript.
To enter:
1. Retweet this
2. RSVP for Deploy https://t.co/JQsR2PBLfC and reply here with your ticket URL.
We'll pick 4 winners on Friday Oct 11. LETS GO!!
What happens if your CPU gets something wrong? If it wakes up one day and decides 2+2=5?
Well, most of us will never have to worry about that. But if you work at a company the size of Google, you do, which is why this paper on "mercurial cores" is so fascinating.
What the authors report--and supposedly this is common knowledge at the hyperscalers--is that a couple cores per several thousand machines are "mercurial." Due to subtle manufacturing defects or old age, they give wrong answers for certain instructions. These can cause all sorts of impossible-to-diagnose issues. Some rare problems at Google that were traced back to bad CPUs include:
- Mutexes not working, causing application crashes
- Silent data corruption
- Garbage collectors targeting live memory, causing application crashes
- Kernel state corruption causing kernel panics
What makes CPUs go bad? It's very hard to tell. The authors posit that issues are becoming more frequent as CPUs get more complex, but there aren't solid numbers behind that. There are certainly strong relationships between frequency, temperature, voltage, and bad CPU behavior--most mercurial CPUs only cause problems under very specific conditions, but those conditions vary from CPU to CPU. Age is another source of problems, as older CPUs are more likely to exhibit problems.
Bad CPUs are an especially serious problem because they're very hard to detect. If cosmic rays flip bits in storage or on the network, that can be detected through error coding. But there's no analogy for a CPU that allows cheap online verification of its correctness. Instead, the best detection techniques involve monitoring for symptoms. If a core exhibits exceptionally high rates of process crashes or kernel panics relative to its fellows, that's a strong indication something is wrong with it. For the most critical applications, the authors propose triple modular redundancy--redoing each of its computations on three cores and majority-voting a reliable result.
More than anything, this paper is a call to action--letting everyone know that CPUs can fail. So now, if you ever find a bug you can't diagnose, you can blame the CPU! 🙂
Want to learn how to serve requests in microseconds? 🚀
I really like this paper because it identifies a narrow but critical problem in ultra-low-latency systems, proposes a solution, then exhuastively benchmarks it.
The key observation of this paper is that efficiently serving requests with ultra-low latencies is hard because the operating system allocates cores at a granularity of several milliseconds. Therefore, even with an ultra-fast networking stack that can serve requests in microseconds, when a new request comes in you still need to wait milliseconds to get CPU time. Prior systems got around that problem through static allocation: they had many cores busy-spin waiting for requests so that if a new request came in, it could be handled immediately. However, that's inefficient, because those cores are doing nothing most of the time.
The main idea in Shenango is to have a single busy-spinning thread, the IOKernel, which both makes core allocation decisions and handles network I/O for a number of application runtimes. The applications all run on user threads on top of kernel threads allocated to Shenango. This setup allows Shenango to efficiently allocate cores between the applications, letting them all serve requests with single-digit microsecond latency even as their relative loads change.
The IOKernel polls the NIC receive queue directly to find packets to forward to applications and polls application egress queues to forward their packets to the NIC. While doing this, it keeps track of how many packets are queued for processing at each application, allocating cores to applications that have queues (and removing cores from applications that don't). Because all applications run in user threads, these core allocation decisions execute in microseconds. There are also a ton of optimizations under the hood, particularly around ensuring application cache locality.
The extensive evaluation section shows incredible performance--serving cache requests for memcached on a single 12-core machine, it could handle 5M requests/second with a median response time of 37 microseconds and a p99.9 of 93 microseconds. Try comparing that to your own stack! 🚀
Main takeaway? Modern computers can be unbelievably, incredibly fast if we really want them to. We often don't take advantage of this performance because we like having high-level abstractions like OS thread scheduling or an OS network stack, but it's good to know what's possible for when it's really needed.
Burnout happens when there is no progress. Burnout also happens when you have no visibility into how dots will connect in the future. Burnout is about not being able to close the loop after putting a ton of effort and not seeing enough results.