
В октябре прошлого года на Хабре вышла статья «Как я писал свою звонилку для видеозвонков» — автор под ником CEOCTO за несколько вечеров написал P2P-видеозвонилку на WebRTC, потому что его достали обрывающиеся созвоны в мессенджерах. Я прочитал, улыбнулся, полез смотреть исходники на GitHub — и на этом всё. Как обычно бывает с чужими pet-проектами: оценил, закрыл вкладку, забыл
Читать далее
Объектное хранилище с типами, деревьями и настоящим SQL прямо в вашей PostgreSQL/MS SQL/SQLite. FK на объекты, EF и Dapper рядом. redb против Mongo и Raven.
Чтобы хранить объекты, графы и деревья с типами, индексами и полноценными запросами, вам не нужна ещё одна база данных. Нужна та, что у вас уже есть.
redb превращает PostgreSQL, MS SQL или SQLite в типизированное объектное хранилище, не отнимая ни SQL, ни EF Core, ни Dapper. Это принципиально другой разговор, чем «MongoDB против RavenDB»: там вы выбираете отдельный движок и живёте с ним отдельно; здесь объекты ложатся в базу, которая у вас уже крутится в проде. Ниже чем это выигрывает у документных баз, с кодом, и где у redb честные границы.
Чтобы не спорить с чучелами: MongoDB зрелая серверная документная база с горизонтальным масштабированием и огромной экосистемой, и мультидокументные ACID-транзакции у неё есть с версии 4.0 (2018). RavenDB .NET-native документная база, полностью ACID, с типизированным LINQ и автоиндексами. Обе хорошие продукты. redb просто играет на другом поле и на этом поле у него сильные карты.
И учить, по сути ...
Читать далееBerlin to seek suspect’s extradition for 2022 explosions that damaged gas pipelines to Russia
A Ukrainian man has been arrested in Croatia as part of an investigation into the 2022 bombing of the Nord Stream gas pipelines between Germany and Russia.
Undersea explosions in September 2022, just months after Russia’s full-scale invasion of Ukraine, damaged three of the four pipelines built to carry Russian fossil gas to Germany under the Baltic Sea.
Continue reading...
Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one out of four topics from a previous The Pulse issue. Full subscribers received the article below four weeks ago. If you’ve been forwarded this email, you can subscribe here.
Last week, xAI (Elon Musk’s AI company, now part of SpaceX) released the Grok 4.5 model, built by Cursor (an acquisition), trained on SpaceX GPUs, and branded “Grok.” It’s a pretty good model; benchmarking as close in coding capability to Opus 4.8 and GPT 5.5 – while being 60-70% lower cost.
Grok 4.5 can be used via API, but is easiest used via the Grok Build coding CLI. So, that’s what many devs did. Some of them have noticed something really weird: the CLI is uploading all their local files in their working directories! Here’s an independent AI safety researcher known as ‘Cerblab’ documenting what is happening (emphasis mine):
“xAI’s official Grok Build coding CLI (grok), on a normal consumer login, does three things worth documenting precisely:It transmits the contents of files it reads — including a .env secrets file — to xAI, verbatim and unredacted. The secret appears in two channels: the live model turn (POST /v1/responses) and a session_state archive uploaded and accepted (HTTP 200) via POST /v1/storage — the endpoint the binary routes to the grok-code-session-traces GCS bucket (see section 5).It uploads the whole repository — every tracked file’s content plus git history — independent of what the agent reads. Grok packages the workspace and uploads it via POST /v1/storage. Proven directly: on a real codebase, with the prompt “reply OK, do not read any files”, Grok uploaded the entire repo as a git bundle (POST /v1/storage → 200); git cloning the captured bundle recovers a file the agent was told not to open — src/_probe/never_read_canary.txt — with its unique marker verbatim, plus the full git history (appendix uploaded_repo.bundle). And it scales: on a 12 GB repo of never-read random files, /v1/storage moved 5.10 GiB, all HTTP 200 (truncated mid-stream), while the model-turn channel moved just 192 KB — a ~27,800× ratio that pins the upload to the codebase, not to what was read. No storage upload failed; the only non-200s were a model-usage quota (402/429) on /v1/responses and one unrelated 404 — not a storage size cap.The storage destination is a Google Cloud Storage bucket, grok-code-session-traces (not AWS S3) — named verbatim in the binary and in a captured metadata.json (gs://grok-code-session-traces/…). I did not find this mechanism surfaced in the CLI’s install/quickstart materials (not an exhaustive docs audit — §7), it is active by default, and disabling “Improve the model” does not turn it off (/v1/settings still returned trace_upload_enabled: true; §6).
None of this proves xAI trains on the data — that is a policy question addressed in [section] 6. What is proven is transmission, acceptance, and storage.”
There’s so much wrong with this approach! To name a few:
Caught red-handed, Grok CLI disabled file uploads with a remote feature flag. AWS engineer Wes Eklund started tracking upload functionality with the CLI, finding that the uploads suddenly stopped due to a feature flag being flipped by the Grok team, pausing data collection.
But the code functionality to stream all local files to the server, unencrypted, remained present in the CLI, even in later updates. Read an in-depth analysis by Wes.
SpaceX’s official response was pretty laughable, not explaining why .env files and .git history were uploaded, and adding that enterprise customers with zero data retention (ZDR) enabled were the only ones unaffected by underhanded, secret uploading of users’ local files:

My initial reaction is what a condescending response by SpaceX, swiftly followed by the question: does Grok CLI even have enterprise customers? It might be few, given how reckless the team evidently is by uploading unencrypted secrets! SpaceX CEO Elon Musk chimed in with a post that seemed to be almost trolling angry users. He wrote:
“SpaceX policy regarding data retention.
It is actually helpful for debugging issues if we can retain some amount of data, so allowing this would be appreciated, but your privacy settings are always respected.”
This makes it worse because SpaceX has been secretly uploading far more data than is “useful for debugging!” Uploading the git history and sensitive .env files is not, in any way, useful for debugging. Also, Grok/SpaceX did not upload “some amount of data”; it uploaded every last file it could find in your local folder.
The developer community is justifiably upset to read SpaceX and Musk pretending that Grok has only uploaded scraps of data purely for debugging purposes. This time, even fans of SpaceX and Grok are speaking out against Musk and his company’s behavior. AWS engineer Wes Eklund:
“Elon, firstly, huge fan of everything you work on. Completely understand the need for some trace data to improve customer experiences.
From what I’ve researched, it seems to be much more than just trace debugging issues. It seems to be entire code repos with sensitive information just collected entirely.
Your Google Cloud blob storage must have petabytes of code repos from us.
Not ideal.”
OpenAI CEO, Sam Altman, also posted, using a term Musk often employs when commenting on things he disapproves of in society, and hinting at the benefits of Codex which doesn’t upload your whole local filesystem, or mess with .env files and the git history. The Codex harness is open source, so secretive file-upload functionality would be visible in the source code:

Musk clearly read it and responded a few hours later:

A day later, (15 July), SpaceX did indeed open source Grok CLI. Altman’s comment seemingly hit home. Also, SpaceX has stated it is deleting data from its servers, writing:
“We disabled default retention for all Grok Build users starting on July 12th. Additionally, we are deleting all coding data that was previously retained, ensuring every user’s preferences are respected. With these steps, Grok Build goes beyond other major coding products to protect user privacy.”
The open sourced repo is rushed, unsurprisingly. Kernel engineer Elliot Arledge used the repo and reported what he found:
“Out of the box, `cargo test --workspace` doesn’t compile. 190+ errors, all one bug class: cross-crate test helpers hidden behind #[cfg(test)], which Bazel’s per-target test builds tolerate but Cargo doesn’t, because a dependency is never compiled in test mode. The default-bazel feature is declared in ~20 manifests and wired to nothing. Ungating the benign helpers and putting the signing-key test seam behind a dev-dependency-only feature gets the suite running for the first time on the published tree: 24,663 passed, 28 failed, and every one of the 28 is a pre-existing bug the broken build had been hiding (tests reading your real ~/.claude/settings.json, a tool missing from the registry, macOS /var symlink breakage, one Theme::current() race).
Questions for the team:
Did anyone try downloading this repo and running it before publishing?”
In fairness, it’s clear from the outside that the dev team was instructed to open source the repo ASAP, and did just that. I would expect improvements to allow the developer community to compile the repo and run tests will come later.
On a side note, I wonder what the mood within Grok is. A mandate to open source the product – that was not built to be open sourced! – and doing it in a couple of hours hints what it’s like to work there. Some folks doubtless would find it thrilling and a big challenge, while others likely find it pretty stressful having the “Eye of Sauron” (the CEO) upon them!
To hand it to Grok/SpaceX, the last 24 hours of this incident saw some impressive execution. In contrast, everything that took place beforehand screams “amateur hour”:
For sensible companies generating revenue with software, vendors who are allowed to access their codebase are limited to those that can be trusted. Grok has demonstrated it is unprepared to handle codebases with security fundamentals in mind.
There’s now frantic backpedaling and rapid open sourcing, but my impression is that this is simply because Grok/SpaceX was caught red-handed, and understands the risk of losing enterprise contracts caused by this flagrant breach of trust. This is why SpaceX’s communication mentioned that enterprise customers with zero data retention have not been impacted!
Trust is earned in drops and lost in buckets; SpaceX/Grok will likely learn this. By secretly uploading codebases and secrets, Grok CLI revealed itself as an untrustworthy coding agent that’s a risk to use. Meanwhile, all the major competitors – Claude Code, Codex, OpenCode, Gemini CLI – have never violated user trust this way.
Grok CLI can rebuild trust, but it’ll likely take years of no security-related incidents to prove they are an open source-first product (that they were not, just a day ago!), and also demonstrate that they care about “normal” developers, and not just enterprise clients with ZDR turned on.
This incident is a good reminder of why planning and process can slow shipping speed, but increase revenue generation. I would wager that the Grok team has shrunk SpaceX’s enterprise subscription prospects for the foreseeable, in the name of saving a few hours on security reviews, learning what other coding harnesses do with codebase uploads, or even just asking the Cursor team!
I predict Grok/SpaceX will have to offer very high usage limits inside the Grok CLI to convince devs to take a risk on running this software on their system. And they will have to undercut OpenAI and Anthropic API pricing massively for any security team to greenlight use of a CLI that just last week was sending .env secrets unencrypted to their GCP buckets.
Of course, SpaceX/Grok will be just fine as it has the capital to fix things. It will now just be a lot more expensive and time-consuming to fix something that was likely caused by a few engineers wanting to make debugging easier!
Read the full The Pulse issue, or check out this week’s The Pulse. The full issue additionally covers:

The Normandy beach town of Trouville-sur-Mer is a two-hour train ride from Paris, but feels a world away, with English Channel breezes and the sound of seagulls screeching through the cobbled streets.
Here’s what professionals have to say about good workout etiquette, from using equipment to being on your phone
I like to think of myself as a fairly laid-back person. Other people’s behavior is not my business. There is one notable exception: my gym nemesis.
He brings his computer to the gym and takes work conference calls at full volume. He has four to six pairs of dumbbells around him at all times – then doesn’t put them away. Intellectually I understand he is a fragile, flawed human like the rest of us, but in my gut I sometimes wonder if he arrived here from another galaxy.
Continue reading...Recycling system in Cambridgeshire that could save thousands of litres a day is deemed not in line with rules
The largest water reuse system in the UK, which could save thousands of litres of water a day for people living in one of the driest regions of the country, is not allowed to be switched on because of drinking water regulations.
As water supplies in England reach critical levels, the Guardian can reveal that a model water recycling system within an urban housing development in Cambridgeshire has not been switched on since it was made ready in 2021.
Continue reading...Firefighters describe being pushed to limit by a brutal wildfire season, with key leadership roles going unfilled
The US has faced a critical shortage of firefighters at the US Forest Service (USFS) this summer as thousands of fires erupted across the country.
Despite officials’ claims that the firefighting workforce was stronger than ever, the agency has failed to keep pace with escalating conditions and the catastrophic fires fueled by them, according to nine firefighters who spoke to the Guardian anonymously, because they are barred from disclosing the information to the public.
Continue reading...If elected, Guyanese politician Carolyn Rodrigues-Birkett wants to prioritise climate issues and ensure the United Nations remains a force for good
As the Guardian’s Caribbean correspondent, I sometimes encounter stories that everyone is talking about in the region, but are not on the radar of the international media. Today, I’m taking over the Long Wave to bring you one of those stories. This summer, Guyanese ambassador Carolyn Rodrigues-Birkett has made history as the first Caribbean candidate for the prestigious post of United Nations secretary general. If successful, she will be the first woman to hold the position too. I spoke to her about the value of the UN, and what a Caribbean leader could bring to the role.
Carolyn Rodrigues-Birkett started life in the remote Indigenous village of Santa Rosa, in the interior of the Caribbean and South American nation of Guyana.
Continue reading...As her supergroup with Neko Case and Laura Veirs celebrates the 10th anniversary of its sublime album, the Ingénue herself will answer your questions
A decade ago, three of the finest voices in Americana got together to make a sublime supergroup record. Case/Lang/Veirs, in case the title didn’t make it plain, brought together Neko Case of the New Pornographers, stalwart Portland songwriter Laura Veirs and kd lang, the Grammy-winning Canadian country icon. Sadly, that glorious album has remained a one-off – though a new anniversary release includes a gorgeous never-before-heard song, Accidental Tattoo – but happily, lang is joining the Guardian for a very rare interview to answer your questions.
Maybe you’d like to know secrets from behind the scenes of making this record in lang’s loft and Veirs’ dining room, or about lang’s relationship with the late, great Tony Bennett, her animal rights advocacy, what the Edmonton country-swing scene was like in the mid-80s before lang became a country star and later mainstream icon, or what she and Cindy Crawford talked about when they posed for quite possibly the greatest magazine photoshoot of all time. What was Roy Orbison like to work with, is new music on the horizon, or what her contemporary constant cravings are? Or anything else indeed.
Continue reading...
At one of their first dinners together, Lindsey Hall watched the man she was dating take enormous bites, talk with his mouth full, and—horror of horrors—burp loudly without seeming to register it. The evening was supposed to feel romantic. Instead, Hall remembers thinking: “Have I made a mistake?”
She tried to dismiss his behavior as a minor incompatibility. But it continued, meal after meal, and gradually soured her feelings and attraction toward him. Table manners had never seemed like a priority until then. “I didn’t realize how important it was to me until I dated someone who just … doesn’t have it,” Hall says.
Terrible table manners might sound like a trivial complaint. But eating is one of the most routine things we do with other people, and a habit that inspires disgust three times a day can quickly become difficult to shrug off. The challenge is figuring out whether—and how—to address bad dining habits without making the person feel humiliated.
Here’s what psychologists and etiquette experts suggest.
Table manners can feel like universal rules, but they’re shaped by culture, family, and upbringing. “We talk about them as though they’re laws of physics,” says Gwenhwyfar Dunne-Henry, a psychologist in Dubai and author of Unbind Me: How to Break the Rules That Keep You Small. “They’re not. They’re social agreements.”
Before correcting someone, think about whether they’re being inconsiderate or simply behaving differently from the way you were taught. Slurping noodles, eating with your hands, and keeping your elbows on the table, for example, can carry different meanings depending on where and how someone grew up.
That doesn’t mean you have to enjoy every habit you encounter. Talking while chewing, spraying food, or sharing utensils while sick can interfere with other people’s comfort or hygiene, says Virginia Chow, a clinical psychologist in Montreal. The point is to understand exactly what’s bothering you—and avoid turning a difference in upbringing into a judgment about someone’s character.
That’s especially important because people rarely react only to the offending behavior. “We argue about what we think it means,” Dunne-Henry says. Someone chews with their mouth open, and you might start thinking they’re selfish, oblivious, or disrespectful. “If they don’t notice this,” she says, “what else don’t they notice?”
Sometimes the habit also becomes a symbol of every other irritation in the relationship. Perhaps the person also interrupts you, leaves messes behind, and routinely takes the last helping without asking. Suddenly, as Dunne-Henry puts it, “the bread roll is carrying a lot of emotional responsibility.”
Hall experienced that escalation firsthand. Once her former partner’s table manners began bothering her, she started noticing every other habit that irritated her. “I think you just start becoming hypercritical,” she says—a reaction she disliked in herself.
Correcting another adult’s table manners is inherently awkward, so Stayce Wagner, a business-etiquette consultant in Jacksonville, Fla., recommends letting an isolated lapse go. Everyone occasionally speaks before swallowing or reaches all the way across the table for something. A repeated habit is different—but even then, your relationship with the person matters most.
A partner or child is one thing. A close relative or trusted friend might also appreciate knowing, particularly if you have the kind of relationship in which you would alert each other to spinach in your teeth. But correcting an acquaintance, coworker, or stranger is rarely worth the embarrassment it could cause.
“Correcting the terrible table manners of someone who isn’t your partner—or your child—is social and relationship dynamite,” Wagner says. Most people ultimately decide whether they can tolerate the habit, find a way around it, or stop sharing meals with the person.
Chow suggests asking yourself whether the behavior is truly affecting you or merely annoying you. “Not every annoyance requires a conversation,” she says. With a stranger, speaking up generally only makes sense when there’s a legitimate health or safety concern—someone who is visibly sick using a shared serving utensil, for example. In that case, focus on solving the immediate problem rather than critiquing their manners: “Would you mind using a clean serving spoon? I’d really appreciate it.”
If you do decide to say something, resist correcting the person in the moment—particularly if other people are present. “It’s a soul-crushing experience for most people to have their manners corrected in public,” Wagner says.
Instead, choose a private, neutral moment when neither of you is eating. Ask permission to broach an uncomfortable subject, and then describe one specific behavior. Avoid sweeping declarations like “Your table manners are disgusting” or “You eat like an animal.” Those statements turn a changeable habit into an indictment of the entire person.
Chow suggests phrasing it like this: “Can I mention something a little awkward? I don’t know if you’ve noticed, but sometimes when you’re talking while eating, a bit of food comes out. I figured you’d probably want to know because I’d want someone to tell me.”
That wording assumes the person isn’t doing it intentionally and gives them a face-saving reason to hear you out: You’re sharing information they might want to have, not delivering a verdict on their upbringing.
When the habit is directly affecting your ability to enjoy meals together, Wagner recommends being honest about it—without describing the person as repulsive. Try: “I know you don’t realize it, but sometimes you talk with food in your mouth, and I find it affects my ability to enjoy the meal. Would you be open to me pointing it out when it happens?”
The distinction is small but important: You’re explaining how the behavior affects you, rather than insisting that your standards are objectively correct.
Hall says she wishes she had been that straightforward. At first, she tried making jokes or telling her partner that she couldn’t understand him while his mouth was full—an approach she now suspects sounded passive-aggressive. “I wish I had been a little bit more direct about how much it was affecting my attraction,” she says.
Table manners are habits, which means one conversation probably won’t make a lifelong behavior disappear. If the person is receptive, ask how they’d like you to alert them if it happens again. You might agree on a word, gesture, or subtle signal that won’t embarrass them in front of other people.
In less intimate relationships, Wagner recommends finding subtle, polite ways to avoid encouraging the behavior. If someone begins answering a question immediately after taking a bite, for example, you could say: “Take your time and enjoy your food—I can wait.”
What’s unlikely to help, meanwhile, is glaring, recoiling, kicking someone under the table, or making snide remarks. “Jokes, sarcasm, public corrections, or visibly expressing disgust probably won’t change the behavior in the long run,” Wagner says. “But it will damage the relationship.”
Even the most tactful conversation might embarrass the person; there’s no magic phrase that makes criticism delightful to receive. “The goal is to not intentionally embarrass or insult them,” Wagner says.
Sometimes the kindest and easiest choice is to work around the behavior. Wagner has encountered friends and colleagues who double-dipped, for example, but she never corrected them. She simply ordered her own appetizer or transferred what she wanted to a separate plate before they began eating. The behavior bothered her, but she decided the relationships mattered more.
That calculus changes when the offender is a partner and the habit makes you dread eating together. If you’ve raised the issue respectfully and the person repeatedly dismisses your discomfort, the problem may no longer be their chewing. It may be that you don’t feel heard or considered—and that’s a larger conversation.
That, Hall says, was ultimately the problem in her relationship. Her partner didn’t merely struggle to change an ingrained habit; he dismissed her concern as evidence that she was too demanding. “He didn’t really value how I felt about it,” she says.
Etiquette, after all, isn’t really about mastering a complicated rulebook. Instead of tallying another person’s violations, Dunne-Henry suggests asking yourself a simpler question: “How easy am I to share a meal with?” That standard applies to everyone at the table. It means extending some grace when another person’s habits annoy you—and caring enough to listen when someone you love tells you that one of yours is making meals difficult.
ABC and its corporate parent, The Walt Disney Co., filed a lawsuit against the FCC Tuesday, accusing the agency of violating its First Amendment rights.

Пять месяцев назад я начал делать игровой движок Neotolis Engine на C17. Хотел глубже погрузиться в рендер и собрать для себя движок, с которым мне было бы легко и приятно работать. Сейчас в нём уже достаточно фич, чтобы делать игру. Я делаю 3D-инкременталку про проблему вагонетки Not a Trolley Problem.
В статье рассказываю, какие принципы я заложил в движок, как использую Claude и Codex и почему важно делать игры, а не только движок.
Читать далееMichael Caruso, once praised by Ron DeSantis, removed from Palm Beach county civic official roles after arrest
Florida’s Republican governor, Ron DeSantis, has suspended a former close ally and senior civic official who was arrested on felony child sexual abuse charges.
Michael Caruso, who was removed as clerk of court and comptroller for Palm Beach county on Tuesday, was a vocal supporter of a law signed by DeSantis in 2023 that allowed the death penalty for anybody convicted of the sexual battery of a child under 12.
Continue reading...Firefighters describe being pushed to limit by a brutal wildfire season, with key leadership roles going unfilled
The US has faced a critical shortage of firefighters at the US Forest Service (USFS) this summer as thousands of fires erupted across the country.
Despite officials’ claims that the firefighting workforce was stronger than ever, the agency has failed to keep pace with escalating conditions and the catastrophic fires fueled by them, according to nine firefighters who spoke to the Guardian anonymously, because they are barred from disclosing the information to the public.
Continue reading...Recycling system in Cambridgeshire that could save thousands of litres a day is deemed not in line with rules
The largest water reuse system in the UK, which could save thousands of litres of water a day for people living in one of the driest regions of the country, is not allowed to be switched on because of drinking water regulations.
As water supplies in England reach critical levels, the Guardian can reveal that a model water recycling system within an urban housing development in Cambridgeshire has not been switched on since it was made ready in 2021.
Continue reading...
Как с Windows только не изгалялись: сколько для неё было сделано модификаций, оболочек и скинов за последние лет 20 — подсчитать, наверное, невозможно. Но мода «накатывать красоту» поверх обыкновенных “Окон” началась, на самом деле, даже не в нулевых.
Читать далее
Привет, это команда Яндекс Практикума. Приём документов на поступление в 2026 году закончится меньше, чем через неделю, но вы ещё можете успеть поступить в онлайн-магистратуру «Специалист по работе с данными и применению ИИ» НИЯУ МИФИ в партнёрстве с Практикумом. В статье мы расскажем, что входит в программу и как на неё поступить.
Читать далееCompton’s Cafeteria is one of the earliest examples of LGBTQ+ resistance. Today, a prison company occupies the site
One of the earliest documented examples of LGBTQ+ resistance against police happened on a hot summer night 60 years ago this month. It started not with the throwing of a brick, as it did in New York City’s 1969 Stonewall riots, but with the throwing of a coffee cup inside Compton’s Cafeteria in San Francisco.
When police attempted to raid Compton’s – a hub for the drag performers, trans people and sex workers in the city’s Tenderloin neighborhood – hundreds of people in the community fought back. A drag queen threw a coffee mug at a police officer; others threw dishes and chairs outside. It was the culmination of years of police harassment, arrests and violence against the community and the beginning of the city’s trans movement.
Continue reading...
Cancer treatments have been veering toward more personalized approaches that recruit the immune system, and the latest results involving an mRNA-based therapy and an immunotherapy show that combining them may result in significant benefit for certain cancer patients.
In a release, the two companies report that people with melanoma who received intismeran, jointly developed by Moderna and Merck, and Merck’s pembrolizumab (Keytruda), lived longer without any recurrence of their cancer, as well as had fewer incidences of their cancer spreading, compared to those receiving Keytruda alone, which is the current standard treatment. Combining the two therapies seems to lead to better outcomes in this later-stage trial. Intismeran is not yet approved, while Keytruda was first approved to treat melanoma in 2014, and in 2019 to treat melanoma in people after tumors were removed. The current study included people in this latter group with stage 2 to stage 4 melanoma who were treated with either intismeran and Keytruda or Keytruda alone after surgeons removed the bulk of their tumors.
“What we’re trying to do here is to tell the immune system that it missed the signature of the tumor cell if you have cancer,” Moderna CEO Stephane Bancel tells TIME of intismeran. “This product basically allows us to teach the immune system about the mutation in your cancer that allows the cancer to grow.”
The study involved 1,137 people with stage 2 to stage 4 melanoma who received surgery then were randomly assigned to receive either the combination of therapies or Keytruda for just over a year. Intismeran is the first of its kind autogene therapy that relies on studying a patient’s cancer mutations, making mRNA sequences of those mutations and giving them back to the patient in so their immune systems can recognize the tumor signals in the same way it would a virus—in what's known as a therapeutic vaccine. One of the advantages of the mRNA platform is its ability to generate such genetic sequences relatively quickly, in a matter of weeks, which is essential for scaling up more personalized cancer treatment approaches. Keytruda works by unveiling the cancer cells, which can often hide from the immune system since they start out as normal cells before picking up mutations that make them grow out of control.
The companies did not provide specific details about the recurrence or survival rates, but earlier this year reported at ASCO, a major cancer conference, from an earlier stage study that showed that the combination lowered the risk of recurring melanoma by 49% and lowered the risk of distant spread of the cancer or death by 59%.
The latest results bring some good news to Moderna, which has seen its stock drop after reaching highs during the COVID pandemic following development of the first mRNA vaccine, against SARS-CoV-2. In 2025, Bancel laid off 10% of the workforce, amounting to 500 to 800 employees worldwide, after a combination of sagging sales from the COVID shot and loss of important government contracts to develop pandemic flu vaccines based on mRNA technology. In August, the U.S. Food and Drug Administration (FDA) approved the first mRNA flu shot, developed by Moderna, but only after initially refusing to review the company’s submission.
Bancel says that Moderna is also exploring using intismeran alone, perhaps in earlier stage cancers. For the current trial, because intismeran is still an experimental therapy under study, and an approved therapy, Keytruda, does exist for melanoma patients, regulators at the FDA were more comfortable with combining the drugs so every patient received at least the standard of care and therefore would not be additionally harmed by joining the study. “It would be unethical for us to tell people to come on a study of something that we don’t know if it works, when people are fighting for their lives,” he says. “That’s why we did the study together with Keytruda, which can improve outcomes, and we tried to show that the combination was better, and we did.”
Bancel’s teams are already studying intismeran in stage 1 lung cancer, to see if using it earlier, and priming the immune system, can lead to equally beneficial outcomes for those people. In lung cancer, standard treatment involves surgery and careful monitoring for any signs of returning cancer, so doctors can ethically study how adding intismeran for some patients affects their cancer outcomes compared to those not receiving it. While that study is still in early stages, Bancel is optimistic since “from a scientific standpoint there is no scientific sense that it would work in melanoma and not work in another tumor type,” he says of the mRNA-based approach. “I think it will be transformational. Think about if you get a screening X-ray and find stage 1 lung cancer. Then you get intismeran, which is like a vaccine so you have no severe toxicity like with other immunotherapy. Think about getting this product on your way to work, or even [potentially] at your local pharmacy—that would be an incredible change in care. And it can help reduce the risk of metastasis, and have a profound impact on patients, as well as prevent people from getting very severe disease.”
Moderna is also studying intismeran in stage 3 lung cancer, and hoping to see similarly encouraging results as they did in melanoma patients. And its scientists are studying the compound in kidney, pancreas, and bladder cancers in nine ongoing studies, says Bancel.
“Because of all the things we learned over the years in the field of immunology, we believe this molecule will be used in many different cancer types,” he says.
Correction, Aug. 19
The original version of the story misstated which companies developed intismeran. It was jointly developed by Moderna and Merck, not solely by Moderna.
Across the PyCharm 2026.2 release line, we shipped 263 fixes and improvements. Many improve Python code insight directly, with more precise type inference, fewer false positives, smarter completion and imports, and more reliable refactoring. Here are some of the smaller changes you’re likely to notice in everyday Python development.
SQLAlchemy has been a long-standing source of false positives – enough that several duplicate tickets have accumulated over the years. This release resolves a batch of them for the 2.0 style.
String forward-references inside Mapped[...] resolve correctly:
posts: Mapped[list["Post"]] = relationship(back_populates="author") # "Post" now resolves to the model class
PyCharm also correctly infers the mapped type returned by Session.get(), instead of treating the result as the model class itself:
report = session.get(Report, report_id) reveal_type(report) # was: type[Report] | None now: Report | None
Modern hybrid_property setters written as @name.inplace.setter are recognized, so assigning to the property no longer produces a warning. Model class attributes defined via mixins are picked up again, too, clearing the old unexpected argument reports on model constructors.
(PY-78816, PY-65142, PY-59732, PY-51906, PY-28762)
Several false This code is unreachable reports and instances of lost narrowing across loops have been fixed. The common issue: flow analysis either gave up or over-eagerly narrowed to Never in branches it should have kept alive.
isinstance on a numeric union no longer kills the else branch:
def foo(y: int | float) -> None: if isinstance(y, float): pass else: print(y) # was flagged unreachable, y inferred as Never
Narrowing also survives a while loop, so re-narrowing an optional attribute inside the loop body no longer reports a bogus has no attribute error.
(PY-83206, PY-83354, PY-88265)
A string used as metadata inside Annotated[...] – a Pydantic discriminator field name, for instance – is no longer parsed as a forward reference and flagged as unresolved.
PyCharm’s analysis of tuple and star unpacking could lose type information and fall back to Any. Unpacking a starred value into a tuple lost its element types, *-expansion collapsed to Any, and several genuine errors went unreported. Starred expressions preserve their element types:
def a() -> tuple[int, int]: return 2, 3 def b() -> tuple[int, int, int]: return (1, *a()) # no more bogus "Expected tuple[int, int, int]"
(PY-12592, PY-27205, PY-43585, PY-90219)
A cluster of false positives came from augmented assignments being misanalyzed. A simple /= on an int produced the wrong type:
foo = 5 foo /= 2 reveal_type(foo) # was: int now: float | int
(PY-80622)
Self and constructor return typesSelf binds correctly through classmethod parameters typed as type[Self]:
class A: @classmethod def bar(cls, y: type[Self]) -> Self: ... x = A.bar(A) # was a spurious "Expected type[A], got type[A]" reveal_type(x) # was: Any now: A
Construction also respects __new__, __init__, and metaclass __call__. When __new__ returns something other than an instance, that’s the constructed type – even when an __init__ is present. The same fix covers explicitly parameterized calls like MyClass[int]() and __new__ assigned as a class attribute.
(PY-89296, PY-77611, PY-88644, PY-89571)
.value and .nameReading an enum member’s .value or .name yields a precise Literal instead of a widened str or int, so assignments to Literal[...] target type-check. This matches mypy’s inference:
from enum import Enum from typing import Literal class E(Enum): a = "a" b: Literal["a"] = E.a.value # was: Expected 'Literal["a"]', got 'str' n: Literal["a"] = E.a.name # .name is a Literal too
When a decorator constrains the callable it accepts, the decorated function’s parameters are inferred from that constraint instead of falling back to Any:
from typing import Callable def d(fn: Callable[[int], str]): ... @d def f(a): reveal_type(a) # was: Any now: int
(PY-79204)
__init_subclass__ signature, and offered in completion (PY-79173).Callable used as a PEP 695 type-parameter bound no longer reports a bogus Invalid type expression (PY-83570).PyTypeChecker id, and # noinspection directives accept a simplified name form. PyTypeChecker still works as a blanket ignore (PY-90265).Auto-import is now noticeably less noisy. Previously, if a module was already imported, PyCharm would offer to add a second, redundant import instead of qualifying through the one you already had. The quick-fix – and the completion popup – prefer to reuse the existing import.
Given pkg/src.py containing MyClass, and a file that already imports the module, Alt+Enter produces this:
from pkg import src # no longer flagged as unused src.MyClass
instead of adding from pkg.src import MyClass. The same reuse logic applies to plain import pkg.src, and to the auto-import completion on a second Ctrl+Space.
Nested classes can be auto-imported too, which is something PyCharm didn’t previously support:
# mod.py class Outer: class Inner: pass # main.py – Alt+Enter on Inner now offers "Import Outer from mod" from mod import Outer value = Outer.Inner()
(PY-87970, PY-87971, PY-87972, PY-88009, PY-88016)
unittest.mock.patch() targetsPatching by string target previously offered no code assistance, so dotted paths had to be entered manually. The string argument to mock.patch(...) gets code completion for modules, classes, and their attributes, and it no longer suggests the invalid as keyword mid-path:
from unittest import mock
# sample.py defines: class Foo: my_attr = 42
with mock.patch("sample.Foo.my_attr", 14):
...
# completion now offers `sample`, `Foo`, and `my_attr`
(PY-89189, PY-89191, PY-89192)
Completing an override of a dunder or built-in method fills in the full annotated signature – and auto-imports the types it needs – instead of bare parameters:
from types import TracebackType class A: def __exit__(self, exc_type: type[BaseException] | None, exc_val: BaseException | None, exc_tb: TracebackType | None): ... # was: def __exit__(self, exc_type, exc_val, exc_tb):
(PY-79218)
Inferred type arguments are shown inline at the call site, so you can see what a generic resolved to without hovering over it:
class A[T]: def __init__(self, t: T): ... A[int](1) # [int] shown as an inlay hint
Type names rendered inside inlay hints – return types and solved arguments alike – are also clickable, so you can jump straight to a type’s definition from the hint.
f-string format-spec validationPyCharm already validated the str.format() mini-language. Those checks apply to f-strings too, and PyCharm flags formatting a type that doesn’t implement __format__:
data = 1
f"{data:.2f}" # ok
f"{data:.2q}" # now flagged: unsupported format spec
class A: ...
f"{A():d}" # now flagged: A doesn't support the 'd' format
The Rename refactoring also updates references to a module when the module itself is renamed. Previously, the renaming left importing sites pointing at the old name:
# rename provider/provider_module.py → some_module.py from ..provider import provider_module # this reference is updated too
(PY-53274)
The Refactor | Field action is now Attribute, and the documentation says “instance attributes” to match Python terminology (PY-85828).
Taken together, these changes make PyCharm’s understanding of Python more precise and predictable: fewer false positives, better type inference, smarter completion, and less time spent working around cases where the IDE gets valid code wrong.
Many of these improvements started with real-world examples reported by users. If PyCharm still misunderstands a typing pattern, framework API, or other valid Python code in your project, let us know in YouTrack – a small reproducer can help us turn that friction into the next fix.
Try PyCharm 2026.2 and let us know which improvements make the biggest difference for your workflow.
Thank you for using PyCharm!

Еще недавно ИИ в работе с данными использовали как вспомогательный инструмент. Нейросеть помогала написать запрос, найти информацию или подготовить отдельный документ. Теперь ей можно передать целый набор повторяющихся задач и подключить к корпоративным системам, каталогам и инструментам разработки. Часть работы выполняет агент, а специалист определяет правила, проверяет результат и принимает верхнеуровневые решения.
Как меняется работа с корпоративными данными под влиянием ИИ, рассказали эксперты на седьмом MWS Meetup.
Читать далееFernando Cerimedo, 42, arrested on suspicion of ordering shooting of Bolivian lawyer Nadia Beller
A senior adviser to many of Latin America’s new wave of far-right leaders has been arrested for allegedly masterminding the attempted murder of his girlfriend.
The businessman and political consultant Fernando Cerimedo, 42, had been working as an adviser to the Bolivian president, Rodrigo Paz Pereira, and was one of the main strategists behind Javier Milei’s campaign in Argentina’s 2023 presidential election.
Continue reading...Network Rail and Southern owner GTR apologise after investigators reveal picture of possible heat-buckled track
Rail operators have apologised after a report into last Thursday’s derailment in East Sussex found a track defect on the approach to where the train derailed on the hottest day of the year so far.
An interim report by the Rail Accident Investigation Branch (RAIB) said CCTV images showed the “track geometry irregularity” existed before the incident near Lewes injured 30 people.
Continue reading...Fernando Cerimedo, 42, arrested on suspicion of ordering shooting of Bolivian lawyer Nadia Beller
A senior adviser to many of Latin America’s new wave of far-right leaders has been arrested for allegedly masterminding the attempted murder of his girlfriend.
The businessman and political consultant Fernando Cerimedo, 42, had been working as an adviser to the Bolivian president, Rodrigo Paz Pereira, and was one of the main strategists behind Javier Milei’s campaign in Argentina’s 2023 presidential election.
Continue reading...