Enabling static analysis of SQL queries at Meta
UPM is our internal standalone library to perform static analysis of SQL code and enhance SQL authoring.
This is pretty cool. I’ve been doing a lot of SQL lately and developer efficiency is a mess (I have a lot to learn).
“In the query on the right, the author is trying to combine timestamps in milliseconds from the table user_login_events_mobile with timestamps in nanoseconds from the table user_login_events_desktop — an understandable mistake, as the two columns have the same name. But because the tables’ schema have been annotated with user-defined types, UPM’s typechecker catches the error before the query reaches the query engine; it then notifies the author in their code editor. Without this check, the query would have completed successfully, and the author might not have noticed the mistake until much later.”Posted on 2022-11-30T19:22:49+0000
Most popular libraries can be sped up by avoiding unnecessary type conversions or by avoiding creating functions inside functions.
Some great wins here. When I saw people complain about JS build times and how they moved things to Rust or Go; I was (perhaps naively) assuming the tools had been optimized as much as can be in JS. Being proven wrong here.
“At this point I stopped looking, but I'd assume that you'll find more of these minor performance issues in popular libraries. Today we mainly looked at some build tools, but UI components or other libraries usually have the same low hanging performance issues.
Tales of the M1 GPU - Asahi Linux
marcan asked me to write an article about the M1 GPU, so here we are~! It’s been a long road over the past few months and there’s a lot to cover, so I hope you enjoy it!
Really cool technical story of how they built a kernel + user space driver for the M1 GPU so it could run Linux. And some great hackery in between. I promise I didn’t share this just for the Rust fanboyism.
“Normally, when you write a brand new kernel driver as complicated as this one, trying to go from simple demo apps to a full desktop with multiple apps using the GPU concurrently ends up triggering all sorts of race conditions, memory leaks, use-after-free issues, and all kinds of badness.
But all that just… didn’t happen! I only had to fix a few logic bugs and one issue in the core of the memory management code, and then everything else just worked stably! Rust is truly magical! Its safety features mean that the design of the driver is guaranteed to be thread-safe and memory-safe as long as there are no issues in the few unsafe sections. It really guides you towards not just safe but good design.”Posted on 2022-11-30T04:30:36+0000
Pointer compression in Oilpan · V8
Pointer compression in Oilpan allows for compressing C++ pointers and reducing the heap size by up to 33%.
This continues to increase my motivation to learn more about garbage collectors.
“The numbers reported represent the 50th and 99th percentile for Blink memory allocated with Oilpan across the fleet. The reported data shows the delta between Chrome 105 and 106 stable versions. The absolute numbers in MB give an indication on the lower bound that users can expect to see. The real improvements are generally a bit higher due to indirect effects on Chrome’s overall memory consumption. The larger relative improvement suggests that packing of data is better in such cases which is an indicator that more memory is used in collections (e.g. vectors) that have good packing. The improved padding of structures landed in Chrome 108 and showed another 4% improvement on Blink memory on average.
Because Oilpan is ubiquitous in Blink, the performance cost can be estimated on Speedometer2. The initial prototype based on a thread-local version showed a regression of 15%. With all the aforementioned optimizations we did not observe a notable regression.”Posted on 2022-11-29T16:53:26+0000
Goodbye, Data Science
This is more of a personal post than something intended to be profound. If you are looking for a point, you will not find one here. Frankly I am not even sure who the target audience is for this (p…
“But there’s also a part of me that’s just like, how can you not be curious? How can you write Python for 5 years of your life and never look at a bit of source code and try to understand how it works, why it was designed a certain way, and why a particular file in the repo is there? How can you fit a dozen regressions and not try to understand where those coefficients come from and the linear algebra behind it? I dunno, man.
Ultimately nobody really knows what they are doing, and that’s OK. But between companies not building around this observation, and individuals not self-directing their educations around this observation, it is just a bit maddening to feel stuck in stupid hell.”Posted on 2022-11-29T16:44:25+0000
Retrofitting null-safety onto Java at Meta
Nullsafe is a new static analysis tool that is used at Meta to detect NullPointerException (NPE) errors in Java code.
Great read. Beyond the details of the static analysis itself, I enjoyed the insights into how they rolled out this program at scale and the lessons learned throughout.
"The problems outlined above are hardly specific to Meta. Unexpected null-dereferences have caused countless problems in different companies. Languages like C# evolved into having explicit nullness in their type system, while others, like Kotlin, had it from the very beginning.
When it comes to Java, there were multiple attempts to add nullness, starting with JSR-305, but none was widely successful. Currently, there are many great static analysis tools for Java that can check nullness, including CheckerFramework, SpotBugs, ErrorProne, and NullAway, to name a few. In particular, Uber walked the same path by making their Android codebase null-safe using NullAway checker. But in the end, all the checkers perform nullness analysis in different and subtly incompatible ways. The lack of standard annotations with precise semantics has constrained the use of static analysis for Java throughout the industry."Posted on 2022-11-29T06:07:41+0000
Please Restore Our Registers When You’re Done With Them
“Hey, you. Yes you, that function over there. When you’re cleaning up please remember to restore all of my registers. Yes, that one too – what do you think this is, Linux?”That’s the problem I was …
Assembly is so hard to get right. More so in a cross-platform manner.
"I decided to write this up because I thought that the journey was interesting, but also because the journey is not over. There could be other registers that are not being properly saved and restored in Chromium. There could be other projects that are making this mistake, perhaps not aware of the differences between the Linux and Windows ABI. Any software rules that are not tested and enforced are inevitably broken and I am not aware of any consistent testing to detect ABI violations. More bugs of this type seem inevitable."Posted on 2022-11-29T06:01:04+0000
Coping strategies for the serial project hoarder
I gave a talk at DjangoCon US 2022 in San Diego last month about productivity on personal projects, titled “Massively increase your productivity on personal projects with comprehensive documentation and …
Bookmarking this for later rereading. some of this is stuff that's worked well for me, and a lot of it was novel stuff. I'm a huge fan of issue driven development and documenting via commits, for what it's worth.
The quote though, uhhhhh....
"This is the most important tip: avoid side projects with user accounts.
If you build something that people can sign into, that’s not a side-project, it’s an unpaid job. It’s a very big responsibility, avoid at all costs!
Almost all of my projects right now are open source things that people can run on their own machines, because that’s about as far away from user accounts as I can get.
I still have a responsibility for shipping security updates and things like that, but at least I’m not holding onto other people’s data for them."Posted on 2022-11-28T06:09:50+0000
Index Merges vs Composite Indexes in Postgres and MySQL
Index Merges vs Composite Indexes in Postgres and MySQLNov 2022Composite indexes are about 10x faster than index merges. In Postgres, the gap is larger than in MySQL because Postgres doesn't support index-only scans for queries that involve index merges.Napkin MathComposite Index: ~1msIndex Merge: ~...
“If you’re wondering if you need to add a composite index, or can get away with creating to single indexes and rely on the database to use both indexes — then the rule of thumb we establish is that an index merge will be ~10x slower than the composite index. However, we’re still talking less than 100ms in most cases, as long as you’re operating on 100s of rows (which in a relational, operational database, hopefully you mostly are).”Posted on 2022-11-28T00:53:15+0000
Recognizing patterns in memory
Something I find frustrating is how hard it is to teach debugging skills. I think the biggest reason is because there are many things that can only be learned through experience. This is true for anything that requires pattern recognition. Our brains are great at recognizing patterns, but it often t...
Parents of Ex-Stanford Goalie Suing School for Wrongful Death
Katie Meyer’s family claims Stanford’s handling of a disciplinary process involving their late daughter led to her death.
““Katie Meyer’s tragic death resulted from Stanford’s egregious and reckless mishandling of its disciplinary process,” attorney Kim Dougherty said in a statement. “Stanford has known for years that its disciplinary process, in its own Committee 10’s words, is ‘overly punitive’ and harmful to its students, yet the school and its administrators have done nothing to correct its procedures. Through this litigation we will not only obtain justice for Katie, but also ensure necessary change is put into place to help protect Stanford students and provide safeguards when students are in need of support.””Posted on 2022-11-25T18:01:58+0000
Twitter king Dril on Musk’s chaotic reign
The ‘patron saint of the internet’ tells The Post he’ll never pay for verification but will learn to code if Musk offers him a job.
When twitter dies, I’ll pour one out for Dril.
“So far, Dril said, he’s enjoying the spectacle of Musk’s takeover. “Elon seems like one of the classic comedic showmen,” he said. “Everything he does is a comedic bit. He’s always trying to get a laugh, that’s why he makes all his cars suicidal. Just watching everything burn, it’s entertaining, that’s for sure.””Posted on 2022-11-24T05:48:13+0000
Safely writing code that isn't thread-safe - Cliffle
One of the nice things about the Rust programming language is that it makes it easier to write correct concurrent (e.g. threaded) programs – to the degree that Rust’s slogan has been, at times, “fearless concurrency.”
“Rust is the only language where I regularly write non-thread-safe data structures without caveats or fear. In cases where they apply, such data structures can be simpler and often faster than concurrent thread-safe data structures – with the drawback, of course, that you can’t use threads to speed up operations on them.
If you’re coming to Rust from another language that emphasizes concurrency, such as Java or Go or (increasingly) C, keep this in mind:
You don’t necessarily need to make every data structure thread-safe, and
If you get it wrong, you’ll get a compiler error, not a weird runtime bug.”Posted on 2022-11-24T04:18:17+0000
I am Once Again Asking the White House Press Corps to Stop Being a Gigantic Embarrassment.
Sorry you didn't get invited to a wedding, I guess?
“This is the story of some DC reporters who got upset that they didn’t get invited to a wedding. Nothing more. And naturally, when faced with pushback (such as asking why Cook didn’t bother to read the photo caption), these journalists got even more defensive, arguing that people just don’t understand how journalism works.”Posted on 2022-11-24T02:10:18+0000
The U.S. Needs More Housing Than Almost Anyone Can Imagine
For Americans to live a productive, prosperous, happy life, homes need to be truly abundant.
“But that displacement happens only because building dense housing is illegal in many rich neighborhoods, and because cities build so little of it overall. “If you want to build enough to really help low-income people, you’re talking about doing a lot of building,” Rick Jacobus, an expert on inclusionary housing and the principal of Street Level Urban Impact Advisors, told me.
As it turns out, two economists had, in a way, answered my question. Enrico Moretti of UC Berkeley and Chang-Tai Hsieh of the University of Chicago wanted to know how much GDP and productivity the United States gives up by throttling the housing supply in its biggest cities. In a blockbuster 2019 paper, they found that if New York, San Jose, and San Francisco—just those three cities—had the permitting standards of Atlanta or Chicago over the previous several decades, the U.S. economy would have been roughly $2 trillion bigger in 2009. American households would have earned an average of $3,685 more a year.”Posted on 2022-11-23T14:58:25+0000
Building the fastest Lua interpreter.. automatically!
This was a really interesting technical read.
“In this post, we demonstrated how we built the fastest interpreter for Lua (to date) through a novel meta-compiler framework.
However, automatically generating the fastest Lua interpreter is only the beginning of our story. LuaJIT Remake is designed to be a multi-tier method-based JIT compiler generated by the Deegen framework, and we will generate the baseline JIT, the optimizing JIT, the tiering-up/OSR-exit logic, and even a fourth-tier heavyweight optimizing JIT in the future.”Posted on 2022-11-22T23:26:36+0000
Improving Firefox stability with this one weird trick – Mozilla Hacks - the Web developer blog
Poorly behaving web pages and apps are no longer capable of crashing the browser by exhausting memory, thanks to a simple trick.
“This little trick shipped in Firefox 105 and had an enormous impact on Firefox stability on Windows. The chart below shows how many out-of-memory browser crashes were experienced by users per active usage hours
You’re looking at a >70% reduction in crashes, far more than our rosiest predictions.”Posted on 2022-11-22T17:13:24+0000
A Foolish Consistency: Consul at Fly.io
News, tips, and tricks from the team at Fly.
This was a great technical read that goes into a lot of distributed systems stuff.
“We mostly like Consul and would use it again in new designs. It’s easy to stand up. It’s incredibly useful to deploy infrastructure configurations. For example: we write blog posts like this and people invariably comment about how cool it is that we have a WireGuard mesh network between all of our machines. But, not to diminish Steve’s work on flywire, that system falls straight out of us using Consul. It’s great!
But we probably wouldn’t use Consul as the backing store for a global app platform again, in part because a global app platform might not even want a single globally consistent backing store. Our trajectory is away from it.”Posted on 2022-11-21T05:29:34+0000
The Mystery Blips
A young operations engineer learns a lesson about creative debugging
SRO/SRE stories are always legendary
“Chasing down the Blips can teach you a lot about how a complex system functions. Sometimes it can help you find real problems before they happen. And a lot of the time, they'll teach you only one thing: That complex systems are chaotic, and sometimes things just harmlessly Blip and you'll never know why.
Our general policy was that if a Blip was big enough to set off an alert, we'd give it at least a cursory look.”Posted on 2022-11-21T01:19:52+0000
Police: Gunman kills 5 at gay nightclub, subdued by patrons
COLORADO SPRINGS, Colo. (AP) — A 22-year-old gunman opened fire in a gay nightclub in Colorado Springs, killing five people and injuring 18 before he was subdued by “heroic” patrons and arrested by police who arrived on the scene within about five minutes, police said Sunday.
Sigh. Tucker Carlson, Fox News, Libs of TikTok and all the media commenters “just asking questions” have even more blood on their hands here. The quote below is a little misleading as the article and other reporting clarifies: the club was going to host a drag show and there has been a lot of nonsensical hatred against those recently.
“Although a motive in the shooting wasn’t yet clear, nor were the gender identities of the victims, the incident came as anti-gay rhetoric has intensified by extremists. In a statement, Club Q termed the shooting a hate attack.”Posted on 2022-11-20T15:52:33+0000
Remote development with Rust on fly.io
Disclosure : At the time of this writing, I benefit from the fly.io "Employee Free Tier". I don't pay for side projects hosted there "within reasonable limits". The project ...
always learn something new with Amos’ posts.
“This is boring. Everything just works.
Right?? And yet I'm thrilled about it. I'm thrilled to know that, with Rust, I can do any of:
blocking I/O with threads
non-blocking I/O with tokio
io-uring with tokio-uring
eBPF with aya
just read procfs
And they all, boringly enough, work just fine. And I feel good about leaving them in production and never touching them again.
To me, that is the dream.”Posted on 2022-11-20T05:57:23+0000
Introduction The case for open addressing SIMD-accelerated lookup boost::unordered_flat_map data structure Rehashing Hash post-mixing Sta...
Gotta love deep technical reads on fast data structures.
“Conclusions and next steps
boost::unordered_flat_map and boost::unordered_flat_set are the new open-addressing containers in Boost.Unordered providing top speed in exchange for some interface and behavioral deviations from the standards-compliant boost::unordered_map and boost::unordered_set. We have analyzed their internal data structure and provided some theoretical and practical evidence for their excellent performance. As of this writing, we claim boost::unordered_flat_map/boost::unordered_flat_set to rank among the fastest hash containers available to C++ programmers.”
Improving the Performance of our Rust app
A writeup of our journey to improve the performance of Zellij
Great read on how to profile, benchmark, and improve the performance of software.
“The test we used to measure performance, cating a big file, only measures performance in a very specific circumstance. There are other scenarios in which the performance of Zellij lacks or shines. It’s also important to note that because we are measuring the performance of full apps in a relatively complex and not 100% sterile environment, the measurements in this post should be regarded as loose signposts rather than exact measurements.
Zellij does not claim to be faster or more performant than any other software. Performance-wise, it only uses other software as an inspiration and something to aspire to.”Posted on 2022-11-20T03:57:51+0000
Why Meta’s latest large language model survived only three days online
Galactica was supposed to help scientists. Instead, it mindlessly spat out biased and incorrect nonsense.
“And it wasn’t just the fault of Meta’s marketing team. Yann LeCun, a Turing Award winner and Meta’s chief scientist, defended Galactica to the end. On the day the model was released, LeCun tweeted: “Type a text and Galactica will generate a paper with relevant references, formulas, and everything.” Three days later, he tweeted: “Galactica demo is off line for now. It’s no longer possible to have some fun by casually misusing it. Happy?”
It's not quite Meta's Tay moment. Recall that in 2016, Microsoft launched a chatbot called Tay on Twitter—then shut it down 16 hours later when Twitter users turned it into a racist, homophobic sexbot. But Meta’s handling of Galactica smacks of the same naivete.
“Big tech companies keep doing this—and mark my words, they will not stop—because they can,” says Shah. “And they feel like they must—otherwise someone else might. They think that this is the future of information access, even if nobody asked for that future.””Posted on 2022-11-19T22:39:03+0000
Former Anti-Abortion Leader Alleges Another Supreme Court Breach
Years before the leaked draft opinion overturning Roe v. Wade, a landmark contraception ruling was disclosed, according to a minister who led a secretive effort to influence justices.
So. Much. Corruption. Alito likes to complain when people call the court illegitimate, but he’s one of the main people that made it so!
“The ruling this year thrilled anti-abortion supporters, though it has proved deeply unpopular among the majority of Americans. After the draft was leaked, Mr. Schenck said, he felt compelled to come forward about his attempts to influence the court.
“You can position yourself in a special category with regard to the Justices,” he said. “You can gain access, have conversations, share prayer.”
Even when his group was most active at the court, he said, “I would look up at that phrase that’s chiseled into the building itself, ‘Equal Justice Under Law,’” he recalled. “I would think, ‘Not really.’””Posted on 2022-11-19T15:38:01+0000
Hundreds of employees say no to being part of Elon Musk’s ‘extremely hardcore’ Twitter
“It will be extremely hard for Twitter to recover from here”
“Multiple “critical” teams inside Twitter have now either completely or near-completely resigned, said other employees who requested anonymity to speak without Musk’s permission. That includes Twitter’s traffic and front end teams that route engineering requests to the correct backend services. The team that maintains Twitter’s core system libraries that every engineer at the company uses is also gone. “You cannot run Twitter without this team,” a departing employee said.
Several members of Twitter’s “Command Center” team, a group of engineers that is on call 24/7 and acts as the clearing house for problems internally, also tweeted about their departures. “If they go down, there is no one to call when shit breaks,” said a person familiar with how the team operates. The team that manages Twitter API for developers has also been severely gutted.
In a tweet Thursday evening, Musk said: “The best people are staying, so I’m not super worried.””Posted on 2022-11-18T05:43:59+0000
Alex Heath on Twitter
“Word inside Twitter is that A LOT of employees are not saying “yes” to staying at Musk’s “extremely hardcore Twitter 2.0.” He has been meeting today with engineers to convince them to stay. His deadline to decide to stay or leave expired 6 min ago. https://t.co/IErjQTMRE6”
I hate sharing a twitter link but this is too funny to not share: most people called Elon’s bluff and are now quitting - and he’s begging people to stay: https://twitter.com/alexeheath/status/1593365103331577856?s=46&t=wrqExQQ5qhV_VfOsEVeM-g
And future update (will link in comments) - they’ve closed offices and locked people out, presumably fearing sabotagePosted on 2022-11-18T00:10:59+0000
Pakistan's lost city of 40,000 people
In the dusty plains of present-day Sindh in southern Pakistan lie the remains of one of the world's most impressive ancient cities that most people have never heard of.
"Archaeologists first came across the ancient city in 1911 after hearing reports of some brickwork in the area. However, the Archaeological Survey of India (ASI) dismissed the bricks as not having any kind of antiquity and the site remained undisturbed for several more years. It wasn't until 1922 that R D Banerji, an ASI officer, believed he saw a buried stupa, a mound-like structure where Buddhists typically meditate. This led to large-scale excavations – most notably by British archaeologist Sir John Marshall – and the eventual naming of Mohenjo-daro as a Unesco World Heritage Site in 1980. The remains they uncovered revealed a level of urbanisation not previously seen in history, with Unesco lauding Mohenjo-daro as the "best preserved" ruin of the Indus Valley.
Perhaps the city's most surprising feature was a sanitation system that was far beyond its contemporaries. While drainage and private toilets were seen in Egypt and Mesopotamia, they were luxuries of the rich. In Mohenjo-daro, concealed toilets and covered drains were everywhere. Since excavations began, more than 700 wells have been recovered, in addition to a system of private baths, including a 12m x 7m "Great Bath" for communal use. Incredibly, toilets were found in many private residences, and waste was covertly disposed of through a sophisticated, city-wide sewage system."Posted on 2022-11-16T05:27:13+0000
Sapling: Source control that’s user-friendly and scalable
Meta has open sourced Sapling, a new, Git-compatible source control client that scales to the largest repositories in the world.
I am so so excited by this that words are failing me (yes, this is not a common statement).
Using git for side projects has honestly sucked after the great experiences I've had with sapling and I'm glad to see I can use it again. Can't wait to set it up now for my private repos; and ... my mind is blown that there's an accompanying review UI too that's optimized for stacks.
stacked diffs, `hg ssl`, `hg commit`, `hg absorb`, and `hg histedit`, how I missed thee.
"I hope you find Sapling as pleasant to use as we do, and that Sapling might start a conversation about the current state of source control and how we can all hold the bar higher for the source control of tomorrow.See the Getting Started page to try Sapling today."Posted on 2022-11-15T21:46:36+0000
This flu season is looking really scary, in one chart
This season’s flu numbers are 12 times higher than before the pandemic.
"Additionally, more than five times as many people have been hospitalized for the flu so far this season than at the same point in any of the last 10 years. And unlike RSV, which poses the biggest threat to the youngest and oldest, the severe disease flu causes is more evenly spread across age groups. About one-third of the people who’ve been hospitalized for flu this year were 65 or older, while another quarter were ages 18 to 49."Posted on 2022-11-15T05:07:44+0000
Performance Optimizations Can Have Unexpectedly Large Effects When Combined With Caches
Performance Optimizations Can Have Unexpectedly Large Effects When Combined With Caches This post is about a non-obvious interaction between performance optimizations and LRU/time limited caching. In 2017, I was working a major performance issue. We were onboarding a large customer, and a batch proc...
"It's common wisdom that systems with caches can fail badly when the caches are cold. When every request misses the cache, the system is overloaded, and never recovers. What I observed was the mirror image."Posted on 2022-11-15T04:47:16+0000
Musk Publicly Punishes Twitter Engineers Who Call Him Out Online
Twitter Inc. owner Elon Musk, who has called himself a “free speech absolutist,” has resorted to firing company engineers who publicly criticize him on the social-media service.
My list of funny Elon related drama stories is so long it’s hard to pick what to share. This one takes the cake though - so much for free speech.
Currently tied with how he’s turning off 80% of micro services soon. 2FA already broke, locking people out.Posted on 2022-11-15T01:41:34+0000
Elixir, OpenTelemetry, and the Infamous N+1
Using OpenTelemetry with Grafana to debug performance issues in Phoenix LiveView and Elixir.
“To recap, we learned about the various pillars of observability and took a deep dive into the tracing pillar. We learned about setting up an Elixir application with the OpenTelemetry tooling and even deployed our application along with some supporting monitoring tools to Fly.io. We then compared trace results between two different LiveView pages and were able to see the effects that an N+1 query would have on our application's performance.”Posted on 2022-11-15T01:12:26+0000
Iran votes to execute protesters, says rebels need "hard lesson"
Nearly 15,000 Iranians have been arrested in connection with the protests, which were spurred by the death of Mahsa Amini in September.
This (along with all the news coming out of Iran the last few months) is horrifying.
“In response to the parliament vote, activist and journalist Masih Alinejad tweeted: "227 members of the 290-seat Parliament in Iran have called on the Judiciary to issue death sentences for people arrested during the ongoing uprising. They want to execute innocent protesters who chanted Woman Life Freedom. The world must stop this act of terror."”Posted on 2022-11-14T19:23:53+0000
Making a Go program 70% faster with a one character change • Harry Marr
Programmer and engineering manager working at GitHub. Co-founded Dependabot, and helped build Monzo and GoCardless.
"As that allocation was happening for every single path that was being matched against, removing it made the whole program 1.7x faster in this instance. Not bad for a one character change."Posted on 2022-11-14T16:12:20+0000
London's forgotten river and the barrister who saved it
When Paul Powlesland moored his boat on the Roding in 2017, the river was choked with slime and garbage. Now the community that sprung up around is keeping its waters clear - and Powlesland is turning to the next challenge: securing rivers their human rights. Jon Moses reports.
“The fact there isn’t stems, for Paul, from a deeper problem. Despite underpinning the viability of life itself, nature’s contributions are absent from most economic modelling. And unlike corporations, nature has no legal standing: a river can neither sue its polluters, nor charge for the many services it provides. This has allowed it to become a “free” externality: something neither capitalism or the state has to account for, or take seriously.
“It’s effectively stealing from nature”, Paul says. “Thames Water don’t have to pay when they do an overspill into the river. The Highways authorities don’t have to pay when they discharge stormwater into the river. They don’t pay when they extract from the river.” If the full actual cost of what companies like Thames Water take from, and put back into, the Roding were actually accounted for, Paul believes “we could easily pay for dozens of people to look after the river.”
While the idea of a river being paid for its services might seem radical, it is gaining ground. Natural capital - the idea that nature provides intrinsic economic value, either through services it provides (e.g. the pollination of crops by bees) or the preservation of life (e.g. through the carbon dioxide it absorbs) is slowly becoming more normalised in policy circles.”Posted on 2022-11-14T04:58:03+0000
Seeing through hardware counters: a journey to threefold performance increase
By Vadim Filanovsky and Harshad Sane
Great technical analysis and write up.
“Disabling writes to the secondary superclass cache worked well in our case, and even though this might not be a desirable solution in all cases, we wanted to share our methodology, toolset and the fix in the hope that it would help others encountering similar symptoms. While working through this problem, we came across JDK-8180450 — a bug that’s been dormant for more than five years that describes exactly the problem we were facing. It seems ironic that we could not find this bug until we actually figured out the answer. We believe our findings complement the great work that has been done in diagnosing and remediating it.”Posted on 2022-11-11T06:11:36+0000
Elon Musk is putting Twitter at risk of billions in fines, warns company lawyer
“Elon puts rockets into space, he’s not afraid of the FTC.”
The fact that a company lawyer is writing this is pretty huge.
“All of this is extremely dangerous for our users. Also, given that the FTC can (and will!) fine Twitter BILLIONS of dollars pursuant to the FTC Consent Order, extremely detrimental to Twitter’s longevity as a platform. Our users deserve so much better than this.
If you feel uncomfortable about anything you’re being asked to do, you can call Twitter’s Ethics Hotline at (800) 275-4843 or submit a report at ethicshelpline.twitter.com. Please also note the FTC’s number is: 1-877-FTC-HELP. You may also remember that Mudge reached out to httos://whistlebloweraid.org”Posted on 2022-11-10T20:48:05+0000
Meta announces huge job cuts affecting 11,000 employees
Meta’s stock has tumbled, now its workforce faces broad cuts
To all my friends and coworkers still at Meta: sorry you’re going through this. I’m here to talk or provide help/guidance for searching for your next job (based on my current experience).
“In the blog post announcing Meta’s cuts, Zuckeberg said laid off employees in the US would receive 16 weeks of base pay plus two additional weeks for each year of service, health insurance coverage for six months, and support for finding a new career and navigating immigration issues. Zuckerberg said the company would be instituting a hiring freeze through the first quarter of 2023 “with a small number of exceptions.””Posted on 2022-11-09T15:13:49+0000
The Completely Bonkers History of the Bathroom Scale
A century ago, few Americans had any idea how much they weighed. Here’s why that changed so dramatically.
“White America has always denigrated corpulence as a sign of immorality and sin. Historians, including Stearns, have long argued that modern Western dieting and beauty standards are direct descendants of puritanical Protestantism: fasting, self-discipline, and self-denial of earthly pleasures. More recently, sociologist Sabrina Strings, PhD, delved deeper into this connection, citing the confluence of Protestantism and the trans-Atlantic slave trade. In her 2019 book, Fearing the Black Body, Strings notes that the overtly racist concept of African gluttony, sloth, and ignorance, invented by European colonists and race scientists, met its perfect match in early American Protestantism. Thus, slimness was established as a mark of righteousness and superiority, while fatness symbolized unintelligence, immorality, and “blackness.””Posted on 2022-11-06T22:25:54+0000
Twitter Now Asks Some Fired Workers to Please Come Back
Twitter Inc., after laying off roughly half the company on Friday following Elon Musk’s $44 billion acquisition, is now reaching out to dozens of employees who lost their jobs and asking them to return.
“Twitter Inc., after laying off roughly half the company on Friday following Elon Musk’s $44 billion acquisition, is now reaching out to dozens of employees who lost their jobs and asking them to return.
Some of those who are being asked to return were laid off by mistake, according to two people familiar with the moves. Others were let go before management realized that their work and experience may be necessary to build the new features Musk envisions, the people said, asking not to be identified discussing private information.”Posted on 2022-11-06T21:49:43+0000
The Log | Where exactly does Python 3.11 get its ~25% Speedup? Part 1: General Optimizations
Python 3.11 was released a few days ago and as usual, it comes with more than a few new features that make it ever more interesting, from exception groups and fine-grained error locations and tracebacks to TOML parsing support in the standard library and of course the much awaited speedup as part of...
Time to upgrade!
“CPython 3.11 is 25% faster than CPython 3.10 on average according to benchmarks with pyperformance. The changes that are being done are part of something that Guido called: The "Shannon Plan". For the 3.11 release, the plan was about making a lot of optimizations in two main areas: startup and runtime. The release also includes additional optimizations that are not part of the faster CPython project.”Posted on 2022-11-04T05:09:40+0000
From Fuzzing to Proof: Using Kani with the Bolero Property-Testing Framework
Today we’re going to talk about how you can use fuzzing and verification in a unified framework, which is enabled by the integration of the Kani Rust Verifier in Bolero. Bolero is a property-testing framework that makes it easy for users to test a piece of Rust code with multiple fuzzing engines, ...
Will definitely need to try this in the future.
“One question that might arise is: is there any point in using fuzzing alongside Kani? In other words, if we can prove a harness for all inputs with Kani, would we still want to use fuzzing? The answer is yes, because fuzzing and Kani provide complementary benefits.
Kani verifies a Rust program by symbolically analyzing its code. This allows Kani to make mathematical statements about the expected semantics of the Rust code being verified. Kani allows you to prove that, for all possible inputs, the code under verification follows its specification, assuming everything else functions correctly (e.g. the underlying hardware, the OS, etc.).
Fuzzing concretely executes the program under test. This gives you end-to-end confidence that for the set of inputs generated by the fuzzer, the code under verification follows its specification, under real-world conditions. Fuzzing and Kani fit together to give more assurance than either provides on its own.”Posted on 2022-11-04T04:03:29+0000
Elon Musk is humiliating himself and all we can do is watch in horror
Twitter's new owner is making it clear he has no idea what he's doing
“Unlike his splashy announcement videos, however, when Elon Musk fails to deliver on the wild and absurd promises he regularly makes, no one in the mainstream media is there to cover it. Things are different this time, however. Now, instead of a handful of technology writers being the only witnesses to his hype collapsing, nearly 290 million Twitter users are looking on in horror while the vast majority of people who will never join the platform are laughing from afar.”Posted on 2022-11-03T00:48:24+0000