Firm told to treat third-party services that appear in its results in ‘fair and non-discriminatory manner’
Google has been fined a total of €890m (£760m) by the EU for breaches of online competition laws by its search and app store services.
The European Commission, the EU’s executive arm, said Google had broken the Digital Markets Act by giving priority to its own services, such as shopping and hotel deals, in search results over those of its rivals.
If you’ve found yourself living communally at one point or another, you know that sharing space comes with its quirks and potential headaches. Who gets to use the only bathroom first in the morning? Who’s responsible for taking out the trash? Do you actually need to be friends with your roommates?
Being a better roommate or family member isn’t just about minimizing daily annoyance — it’s about transforming your relationships and overall well-being. According to the 2025 World Happiness Report, a household of about four members is predictive of higher happiness levels and better relationships. Older adults who cohabitate are more satisfied living with others, and have higher well-being and happiness than those who live alone, research suggests.
Whether you live with a romantic partner, roommates, parents, grandparents, or other family members, experts (including therapists, authors, friendship experts, and researchers) — who have firsthand experience of their own — have concrete tips for how to communicate, declutter, and split finances with the people you share space with.
Responses have been edited and condensed for clarity.
Communicate, communicate, communicate
“I will live and die on the hill of communication being the most important aspect of successfully living with other adults. That comes from my experience living with my parents in adulthood, and from working on my anthology about communal living and interdependence. If good communication can ultimately lead to progress, any challenges that come up around logistics, habits, preferences — the things people tend to think are most important to consider when sharing space with others — can be addressed. Understanding that living with other adults doesn’t require perfect compatibility, but rather a shared willingness to work at it, opens up so many doors.”
Accept everyone’s unique (and probably wrong) ways of doing chores
“How someone loads the dishwasher is the biggest differing personalities button-pusher ever. Know this. And accept it.”
—Lauren Palmer Jansen, communications coordinator for L’Arche GWDC, a community where people with and without intellectual disabilities live and work together
Get regular meetings on the calendar
“I always recommend having a designated time — weekly, monthly — for house meetings. It feels odd initially because we believe that everything with friends should happen organically. But when you’re sharing something as sacred as a home, you have to be aligned on what creates a safe and joyful experience. This also helps with any anxiety you might feel about bringing up hard topics, like washing the dishes or inviting guests over, because you have the security of knowing that there’s dedicated time to check in.”
“In a shared home, peace isn’t about square footage, but it’s often helped by each person having one space that’s truly their own. That single boundary, like a door you can close, is often what makes the togetherness feel like a choice you’re happy to continue making.”
—Juli Ford, multigenerational living expert and founder of Home After 50
Discuss decluttering
“Clutter is a common household stressor, and our research suggests one reason why is that people living together buy things independently but hesitate to get rid of things independently, often over-involving each other in disposal decisions. Our proposed fix: Set disposal rules up front, the same way you might set buying rules. Let each person freely toss items only they use, or create a ‘staging area’ where items sit briefly before leaving the house. People can weigh in if they want, without letting clutter linger indefinitely.”
—Peggy Liu, professor of marketing at the University of Pittsburgh School of Business, and Theresa Kwon, assistant professor of marketing at the University of Hong Kong Business School
Agree to the “uncomfortable rule”
“Roommates who want to get along will find a way to get along. The second you stop wanting to get along, the dynamics shift. Agree to the uncomfortable rule. The uncomfortable rule says that if anyone is uncomfortable, you all agree to talk about the problem and listen. This way no one needs to hide the truth when uncomfortable situations come up. This also makes it easier to have conversations instead of confrontations.”
“Don’t divide housework equally, divide it explicitly and equitably. In an intergenerational home, people have different amounts of time, energy, and physical capacity, so the goal isn’t identical workloads but a shared agreement everyone considers fair. Use a shared system to make the work visible. Track what gets done and by whom, then check in regularly before invisible labor turns into resentment.”
—Peter Askjær Drejer, founder of Tody, a chore managing app
Get clear about money up front
“From a financial therapist perspective, one of the biggest sources of conflict in shared living situations is the meaning people attach to money, fairness, and responsibility. Talk about expectations from the very beginning. You want to reduce the possibility of resentment forming, which can often happen if there were no conversations early on discussing what is or is not acceptable behavior and what is expected of everyone within the shared space. Most often people will wait until they’re already frustrated to discuss sharing finances or household responsibilities. But it is highly unproductive to engage in a conversation when it starts emotionally charged. Instead, schedule regular check-in conversations where you discuss not only who pays for what, but also whether the current arrangement still feels fair.”
—Kiki Jacobson, licensed mental health counselor specializing in financial therapy
Find the good in tough situations
“My best advice is to see good intentions everywhere, even if you’re experiencing bad outcomes. For the most part, no one wants to be a bad roommate, so if someone is acting in a way that’s driving you insane, you want to approach the situation as if both of you want to fix the situation. Offer help rather than accusations. And, importantly, sometimes you can help teach others how to show up to a conversation by modeling good behavior. Sometimes people just don’t know how to have a mature, helpful conversation because they’ve never done it before. Staying regulated goes a long way.”
“Every recurring argument is an invitation to redesign the system rather than blame the person. Stop asking who’s right and start asking, How could we make this easier? The happiest households aren’t conflict-free — they’re creative. They develop rhythms, rituals, and agreements that work for the people actually living there rather than trying to squeeze themselves into someone else’s idea of how a household should function. One person cooks while the other cleans. Mornings become a quiet zone. Everyone gets an hour alone before reconnecting. Creativity is often a far better relationship skill than compromise.”
—Jane Garnett, licensed marriage and family therapist
Invest in a white noise machine
“Get an industrial strength white noise-maker. The app on your phone won’t cut it. It needs to be the kind you find in therapy offices so you can drown out at least some of the annoying sounds around you. Keep it on all day, not just for sleeping. Buy two if needed.”
Shalina Rahman, 42, and daughter Sameeha, 15, were on holiday in West Mersea and boy is believed to be family member
The teenage girl and woman who died in the waters off an Essex beach were trying to help a seven-year-old boy who had got into difficulties, police believe.
Family members identified the pair as Shalina Rahman, a 42-year-old British-Bangladeshi teacher who is married to a Bangladeshi politician, and her 15-year-old daughter, Sameeha. The boy, who police say was a relative, was also said to be on life support in a hospital in London after the incident.
Code coverage is one of those metrics that every development team talks about but few use to its full potential. Whether you’re shipping a SaaS product or maintaining a legacy monolith, understanding what your tests actually exercise-and what they miss-can make the difference between a confident release and a 2AM incident page.
This article walks you through the core coverage metrics, how to measure them with modern tools, and practical steps to improve code coverage without wasting effort on tests that don’t matter.
Code coverage is a software testing metric that measures the percentage of source code executed by your automated tests. It directly impacts software quality and deployment confidence.
Measuring code coverage starts with choosing the right metrics-line, branch, condition, and path coverage-and using tools like Qodana, JaCoCo, Istanbul/NYC, Coverage.py, or Jest to generate coverage reports in your CI pipeline.
Aiming for 80% code coverage is generally considered a good target for critical business logic, but achieving 100% code coverage is often impractical and costly. High coverage never guarantees bug-free software.
To improve code coverage, use coverage reports to identify untested parts of the code, prioritize risky modules, and integrate coverage checks into your CI/CD workflow.
Code Coverage measures the percentage of code executed during testing. If your code base has 1,000 executable lines of code and your test suite runs 900 of them, you have 90% line coverage. It’s typically expressed as a percentage and serves as a runtime metric-meaning it tracks what actually executes, not what could be problematic based on structure alone.
This makes it distinct from static code analysis, which inspects source code without execution to flag complexity, style issues, or security smells. The two are complementary: static analysis tells you where trouble might lurk, and Code Coverage tells you whether your tests actually reach those areas. We expand on this in detail here.
It’s worth clarifying the difference between Code Coverage and what’s sometimes called test coverage:
Code Coverage focuses on how much source code executed during a test suite runs-lines, branches, conditions.
Test coverage is broader. It asks whether business requirements and user behaviors were validated, even if every relevant line was hit.
For example, a test suite might execute 95% of the lines in a payment module, giving high Line Coverage. But if no test checks that a payment fails gracefully on a negative balance, test coverage measures for that behavior are incomplete.
Code Coverage identifies untested code that allows developers to improve testing efforts, especially in critical parts like authentication, data access layers, and error handling. Measuring Code Coverage helps discover untested paths and edge cases that could hide regressions or security issues.
Here’s a quick example in JavaScript:
function foo(a, b) {
let c = 42
if (a > 0 && b > 0)
c = c + a * b
return c
}
If your only test calls foo(1, 1), every line executes-but the else branch is never tested. Line coverage looks complete; branch coverage reveals the gap.
Core Code Coverage metrics and criteria
Coverage criteria are formal rules for determining how thorough your code execution is during tests. Rather than chasing every metric simultaneously, teams get better results by picking a small set of primary coverage metrics and focusing effort there. Here are the common coverage types you’ll encounter.
Metric
Definition
Best For
Line/Statement
Checks if each line of code has been executed. Statement coverage measures executed statements in the program.
Baseline dashboards
Function
Function coverage checks if each function has been called at least once.
Spotting dead code
Branch
Branch coverage determines how many branches of control structures have been executed (e.g., both sides of an if/else).
Decision logic
Condition
Condition coverage tests how many boolean sub-expressions have been evaluated for both true and false.
Complex predicates
Path
Path coverage tests all possible execution paths in the code.
Critical algorithms
Line coverage and statement coverage are often reported as a single percentage by most tools, making them the easiest baseline metric. But high line coverage but high line does not mean other metrics are scored high. For example, if we had 5 functions, 4 of which has 1 line, and the last of which has 100 lines in it’s body, while tests only covered the last one, the code coverage will be almost 100%, but the function coverage will be 20%.
Condition coverage goes further. For a compound expression like if (a && b || c), condition coverage demands that each boolean sub-expression (a, b, c) evaluates to both true and false across your test cases. This can reveal missing tests that branch coverage alone might hide.
Full path coverage is practically impossible for non-trivial applications due to combinatorial explosion-loops and nested branches multiply code paths exponentially. It remains useful only for particularly critical algorithms.
In safety-critical domains, more advanced criteria like Modified Condition/Decision Coverage (MC/DC) are mandated. DO-178C, for example, requires Modified Condition/Decision Coverage (MC/DC) for Level A avionics software, demonstrating that each condition independently affects the outcome of every decision.
How to measure Code Coverage in practice
Here’s how to measure Code Coverage in four steps:
Instrument your code – Instrument your code by introducing hooks that allow coverage tools to observe execution. This can be done through source instrumentation, bytecode instrumentation, or runtime instrumentation.
Run your automated tests – unit tests, integration tests, or end-to-end coverage tests.
Collect coverage data – record which lines, branches, and conditions were executed.
Generate coverage reports – HTML dashboards, terminal summaries, or machine-readable formats (Cobertura XML, LCOV).
Running coverage in practice
Qodana supports coverage reports generated by a range of popular tools, including:
Coverage is typically reported as a percentage of the code elements exercised during testing:
Line coverage = executed executable lines ÷ total executable lines.
Branch coverage = executed branches ÷ total branches.
Different metrics provide different levels of confidence. Line coverage indicates which code was executed, while branch coverage reveals whether every decision path has been tested.
Measuring Code Coverage involves using tools that analyze executed parts of the source code, then surfacing those results where developers can act on them-in pull request comments, IDE plugins, or CI dashboards. Exact coverage calculations can vary slightly between tools and languages, but line and branch coverage are the most commonly used metrics.
Understanding coverage percentages and “good” Code Coverage
Headline coverage numbers can be misleading if taken alone. A project at 85% line coverage might still have only 55% branch coverage, leaving complex logic undertested. Coverage metrics provide insights into test execution rather than test quality. A test that runs every line but asserts nothing offers a false sense of security.
So what counts as good coverage? Here are practical guidelines:
To many, aiming for 80% coverage is a healthy industry standard for critical business logic. But 100% Code Coverage does not guarantee bug-free code-it just means every line was touched, not that every behavior was validated.
Generated or boilerplate code → exclude from thresholds entirely
Treat coverage as a trend indicator over time (week over week, sprint over sprint) rather than a one-off target. High coverage data indicates risks associated with legacy or untested code when numbers start dropping. Dashboards that visualize this trend help teams spot regressions before they compound.
How to improve Code Coverage without sacrificing quality
To improve Code Coverage meaningfully, treat it as a practical playbook, not an abstract goal. Here’s a step-by-step approach that keeps software quality front and center.
1. Start with your coverage reports. Use coverage reports to identify untested code sections, focusing on high-risk, low Code Coverage areas like core domain services, payment processing, and data access layers. Don’t try to raise the global coverage percentage uniformly.
2. Write focused unit tests first. Unit tests help quickly increase Code Coverage because they target isolated, pure functions and small components. Use frameworks like JUnit 5, pytest, or Jest to write additional tests around functions with the highest business impact.
3. Target uncovered branches and conditions. Line coverage remains the most common way to measure how much of a codebase is exercised by automated tests. However, you can look beyond it. Write test cases that exercise error paths, retry logic, timeout handling, and edge cases in complex logic. This will increase Code Coverage at the branch and condition level, where bugs most often hide.
4. Refactor overly complex code. Functions with very high Cyclomatic Complexity are hard to test and hard to cover. Splitting them into smaller, testable units improves both coverage numbers and static analysis findings.
5. Handle hard-to-test code. For third-party integrations, legacy modules, or code with heavy I/O, use dependency injection, mocking, test doubles, and contract testing. These strategies make writing tests possible without requiring full external environments.
6. Integrate coverage checks into CI. Integrate Code Coverage tools into your CI pipeline and set the goal to 80%, then track your progress. Enforce “no significant coverage regressions per pull request” using coverage status checks on GitHub, GitLab, or Azure DevOps.
7. Set realistic coverage goals based on project criticality. Not every file deserves the same target. Set coverage goals per module rather than globally.
Avoid writing superficial tests solely to push the coverage percentage up. Useful tests should assert meaningful behavior, edge cases, and error conditions – not just execute lines of code.
Code Coverage improves code reliability by verifying critical paths and logic, but only when the tests themselves are meaningful. Code coverage strengthens quality assurance by measuring test thoroughness, not by padding numbers.
Integrating Code Coverage with static analysis and CI/CD workflows
Combining coverage tools with static code analysis platforms gives you a more complete picture of code health: runtime execution metrics plus structural and style checks across multiple languages and programming languages.
You can find Code Coverage statistics in the upper-right corner of the Qodana report UI. It also lists the inspections used by the feature.
IDE
You can view Code Coverage reports using IntelliJ IDEA, WebStorm, PhpStorm, PyCharm, and GoLand IDEs. This feature is available for reports retrieved from Qodana Cloud after linking, or reports from local storage.
Currently, Code Coverage overview is not available for XML-formatted reports generated by .NET coverage reports.
Open reports from Qodana Cloud
In your IDE, navigate to Tools | Qodana | Log in to Qodana.
On the Settings dialog, click Log in. This will redirect you to the authentication page.
In the Settings dialog, search for the project you would like to link with.
View coverage reports in IDE
You can view code coverage reports based locally using JetBrains IDEs.
In your IDE, navigate to Run | Show coverage data and open the file containing a code coverage report.
In the Coverage tool window, you can view the test coverage report. This report shows the percentage of the code that has been executed or covered by tests.
Report overview
The IDE highlights the codebase test coverage using color marking. By default, the green color means that a particular line was covered, and the red color means the uncovered line of code.
If you see that code coverage results look incomplete, you probably need to reconfigure your code coverage tool and generate a new code coverage report.
The report shows coverage for the lines that implement the logic of a method, function, or a class, but not for the function, method, or class declaration. The image below shows that code coverage is not applicable to line 7, while line 8 is not covered.
With Qodana, you can view Code Coverage in your Insights Dashboard.
FInd out more about Code Coverage and other features here.
Common pitfalls and misconceptions about high Code Coverage
High code coverage may provide a false sense of security. Consider a test suite with 100 code coverage on line coverage: if assertions are weak or missing entirely, serious bugs can slip through undetected. Execution alone isn’t validation.
Pitfalls to watch for:
Completely ignoring other types of coverage. Qodana supports both overall line coverage and fresh lines coverage, allowing teams to focus on ensuring that newly added or modified code is properly tested while gradually improving coverage across the rest of the codebase. However, we encourage you to explore other types over time, such as branch coverage.
Using coverage as a performance metric. When a single global coverage percentage becomes a team KPI, it incentivizes maintaining tests that are superficial-just enough to hit the number. This can slow the development process without meaningful benefit.
Forcing coverage on untestable code. Generated code, trivial getters/setters, and framework glue are legitimately unnecessary to test. Trying to force coverage here wastes effort. Exclude these from thresholds.
Forgetting what coverage doesn’t measure. Coverage tools do not evaluate whether all business requirements, user journeys, or non-functional aspects (performance, security, usability) are adequately tested. They only report which code was executed.
Microsoft Research examined 100+ large open-source Java projects and found insignificant correlation between high coverage and fewer post-release defects at the file level. This reinforces that coverage is necessary but not sufficient-balance it with defect trends, incident postmortems, static analysis warnings, and production monitoring.
Is 100% code coverage ever required in real projects?
Yes, in safety-critical domains. Aerospace software under DO-178C and automotive systems under ISO 26262 can require near-100% statement, branch, and MC/DC coverage based on one or more criteria tied to safety integrity levels. For most commercial web and mobile applications, 80% code coverage is generally considered a good goal for core modules, with diminishing returns beyond that. Test quality and risk-based focus matter more than chasing 100% across the entire code base.
How often should I run coverage analysis in my project?
Run coverage on every pull request in active repositories so regressions are caught immediately. For large software projects with slower integration and end-to-end existing tests, schedule a nightly or weekly full-coverage job. Use the trend data to guide refactoring investments and determine where additional tests are most needed.
Which coverage metric should I prioritize first: line, branch, or something else?
Start with line coverage as a simple baseline that’s easy to communicate to stakeholders. Once your team is comfortable, introduce branch coverage as the primary metric for non-trivial business logic. Condition Coverage and Path Coverage are most useful in particularly complex, risk-heavy code-authorization checks, pricing engines, or any program with deeply nested control structures-and can be adopted selectively rather than project-wide.
How do static code analysis and code coverage complement each other?
Static analysis flags potential problems without running the code, including dead code, null dereferences, security smells. Code coverage shows which parts of the source code are actually exercised by tests. Together they create a feedback loop: static analysis identifies complex or risky areas, coverage reports reveal whether they’re adequately covered, and developers prioritize new tests or refactors accordingly.
Can I use code coverage for manual tests or only for automated tests?
Coverage tools work with automated tests by default, but they can also collect data while manual exploratory tests run against an instrumented application. This is useful during pre-release hardening phases to confirm which functionality was exercised. The most valuable manual scenarios can then be converted into automated tests to preserve that coverage over time across your software projects.
Note: While examples in this article use specific coverage tools, Qodana isn’t tied to any particular solution. Any tool that produces a supported coverage report format can be used.
Special thanks to Andrei Iurko and Ivan Efiminov for their assistance with this post.
A new report from the Council on Criminal Justice shows an 18% decrease in the homicide rate across 30 American cities from 2025 compared to the same period in 2026
Модели для программирования и AI-агенты сейчас меняются быстро. Для человека, который хочет превратить идею в работающий продукт, это хорошее окно возможностей.
Необязательно сначала становиться инженером. AI может писать код, запускать команды и чинить ошибки, но решение о том, что делать, как проверять результат и где остановиться, остаётся за вами.
Ниже мой маршрут для человека без технического бэкграунда, который хочет выпустить первый продукт. Это не универсальный стандарт: для разных проектов подойдут разные платформы, стек и правила разработки. Но пройти путь от пустой папки до рабочего сервиса по этой схеме вполне реально.
Shipwrecks, ice football and igloos for dogs … the digitisation of Frank Hurley’s photographs shows the heroic trek more clearly – and unlocks some remarkable new details
Спустя десять лет после релиза диаблоида Grim Dawn независимые разработчики из Crate Entertainment продолжают развивать свой проект. 23 июля выходит Fangs of Asterkarn — третье и, по словам разработчиков, крупнейшее дополнение для мрачной экшен-RPG.
Игроков ждет новая область размером более 80% от мира оригинальной игры, отдельная сюжетная глава, новый класс персонажа и эндгейм-режим для персонажей максимального уровня. Разбираемся, чем Астеркарн встретит старых героев и почему дополнение дает хороший повод вернуться в мир темного фэнтези под названием Кэрн.
The project, agreed in principle with the Fujairah Ports Authority under a 50-year concession, includes a container and multipurpose terminal and a general-cargo terminal.
Привет, Хаброжители! Системная инженерия — ключевой инструмент для разработки сложных систем на всех этапах их жизненного цикла. В обновленном издании эксперт в области системной инженерии подробно рассказывает, что следует учитывать при проектировании надежных и эффективных систем.
Продолжается сезон отпусков – всего месяц остался, но все же. Во время полетов, на пляже, на борту корабля или катера не всегда доступны мессенджеры, рабочая почта и соцсети. Самое время для автономных развлечений вроде журнала, книги или мобильной игры, не требующей стабильного подключения.
Во что играть? Я собрал проекты российских разработчиков – от небольших инди-студий до крупных компаний мирового уровня. В списке шутер от первого лица, ностальгический квест с умным юмором, головоломки и настоящая легенда (вполне ожидаемая). Все эти игры работают в офлайн-режиме. Прямо как во времена, когда диски вставляли в компьютер (уходит эпоха), а «Змейка» на телефоне не знала об интернете.
Обязательно дополняйте список своими любимыми играми.
With “blessings” from the original Jibo founders, iKairos is a wearable or desk-mounted “AI journal” that turns your family moments into AI images and video.
Ludwig Göransson’s meticulous score uses instruments of the era to create an earthy, raw and bleak soundscape, but it merely supports the portrayal of an uncomplicated hero
A few weeks ago I came across a video of Professor Armand D’Angour, associate professor of classics at Oxford university. He explained how, through groundbreaking research involving fragments of melody and rhythms found on papyrus and stone and the reconstruction of ancient instruments, it is now possible to hear for the first time in 2,000 years what ancient Greek music would have sounded like.
Given Ludwig Göransson’s beautiful theme for the aulos (an ancient double-barrelled flute) in Christopher Nolan’s latest blockbuster, The Odyssey, and his reputation for dedicated research into his subject matter, it seems very likely that he too has heard these calls from the ancient past.
Selection of economist formerly at helm of green thinktank marks continuation of decarbonising Miliband era
In her first 48 hours as energy secretary, Miatta Fahnbulleh was left in no doubt about the thorny policy decision at the top of her in-tray. Protesters from Fossil Free London met her outside her new offices dressed as firefighters holding placards reading: “We’re already putting out fires, don’t start new ones.”
The MP for Peckham – a radical economist who is outspoken about the climate crisis – is a surprising choice as secretary of state for energy and net zero for those who believe the speculation in Westminster that Andy Burnham wants to approve new oil and gas drilling in the North Sea.
CBA chair says contempt charge over closing speech by Rajiv Menon KC has left lawyers fearful of doing their job
The prosecution of a leading human rights barrister for contempt of court over his closing speech during a trial of Palestine Action activists has left lawyers fearful of doing their job, the chair of the Criminal Bar Association (CBA) has said.
Rajiv Menon KC, who was acting for the defence, is due to stand trial next week, accused of breaching the judge’s directions in the trial of six people for a direct action protest at an arms factory of the Israeli subsidiary Elbit Systems UK in Filton, near Bristol, in 2024.
Для команд, разрабатывающих приложения, базы данных должны ощущаться как решённая задача. Команде нужен PostgreSQL, MariaDB, Redis или другой сервис данных, она отправляет запрос, получает учётные данные и начинает разработку. На практике всё редко оказывается настолько просто.
В 2026 году многие организации заметно продвинулись в платформенной инженерии и внедрении Kubernetes, но подготовка баз данных остаётся фрагментированным. Команды, которым нужен cloud-native-опыт разработчика, часто сталкиваются с неудобным компромиссом: операционная ответственность против зависимости от платформы.
С одной стороны, разработчики могут сами эксплуатировать базы данных с помощью операторов Kubernetes. С другой стороны, платформенные команды могут предоставить управляемый опыт через внутренние платформы и системы провиженинга, часто опираясь на управляемые облачные сервисы. Оба подхода работают, но у обоих есть ограничения.
В итоге организации снова и снова изобретают решения одной задачи, ставшей распространённой платформенной проблемой: предоставление возможностей Database-as-a-Service (DBaaS, база данных как сервис, выдача БД по запросу как готового сервиса), которые работают одинаково в разных окружениях.
Команда VK Cloud перевела статью о том, как в 2026 году устроен provisioning баз данных в Kubernetes-инфраструктуре: почему модель service broker из Cloud Foundry не прижилась в облачных экосистемах и как open source-проект Klutch.io пытается создать Kubernetes-native стандарт для Database-as-a-Service. Материал будет полезен платформенным инженерам, DevOps- и SRE-специалистам, а также техническим руководителям, которые выстраивают внутренние платформы для баз данных в гибридных и on-prem-окружениях.
The 17-year-old dreamed of playing for the Dallas Cowboys. Now he is America’s next big track star, with another chance for gold at this week’s US championships
George Lutkenhaus and his family were rushing to the airport. There was a plane to catch and traffic was bad. Inside the car was a tense silence. In the back, a teenager, minding his own business, AirPods in, seemingly oblivious. Wife Tricia turned to George. “Are you OK?” she said.
“No, I am not OK!” he replied. “What just happened there was not normal! And he’s just sitting there in the back … ”
Spain’s World Cup-winning captain may require surgery
Leeds in advanced talks with City to sign James Trafford
Rodri could face an extended period of time out with a back injury, which may require surgery.
The 30-year-old Manchester City midfielder returned to his finest form at the World Cup following two injury-plagued seasons. Having captained Spain to Sunday’s 1-0 final win over Argentina in New Jersey, Rodri was awarded the Golden Ball as the tournament’s best player. Yet he may now require an operation on a back issue that is set to rule him out for the start of the season.
The agreement offers the Saudis the same options Trump has sworn Iran will never have
The stark contrast between Donald Trump’s nuclear deal with Saudi Arabia and his nuclear demands for Iran would be comical if not so tragic. Trump has handed the Saudis the same nuclear options he swore Iran would never have.
To make matters worse, Trump seems to have offered the Saudis this sweetheart deal to make amends for his disastrous war of choice with Iran. Meanwhile, he continues to bomb Iran in a push to open the strait of Hormuz, which was not closed until Trump launched his counterproductive war.
The gay Netflix romance maintained a political edge despite rollbacks to queer and trans rights
After six books, three seasons of television and a film-length finale, Heartstopper has come to an end. Often dubbed the most wholesome show on TV, Netflix’s adaptation of Alice Oseman’s young adult LGBTQ+ graphic novel series, which itself began life as a web comic, is a legitimate cultural phenomenon, turning its two leads – Kit Connor and Joe Locke – into household names, while racking up tens of millions of views. In print, meanwhile, the Heartstopper series has sold over 10m copies worldwide, including about 1.3m in the UK alone.
Yet these figures only tell one side of the story of Heartstopper’s impact. At the queer and feminist bookshop where I work part-time in Sheffield, the young people who come in are immediately drawn to copies of Oseman’s books, and often take pictures of the now permanent window display depicting Nick and Charlie, the couple at the story’s heart. I see young queer people’s faces light up when they see we have the book in stock, even though they probably already have a copy at home.
Anton Jäger has been lauded for his exceptional ability to make sense of these strange political times – and he’s only 32. The writer and academic explains why we’re living in an age of hyperpolitics
‘I am acutely conscious,” said Andy Burnham outside 10 Downing Street on Monday, “that I am the sixth person in the last 10 years to walk up this street.” It was good to hear him say it because, beneath all the cabinet gossip and rune-reading, there is a feeling of terror about the immediate future and also about ourselves, the electorate. Is this who we are now? Wildly enthusiastic one minute, seething the next; as passionate about the change we want as we are convinced that those who promise it are incapable of enacting it?
It is perhaps not surprising that Anton Jäger’s recent book, Hyperpolitics: Extreme Politicization without Political Consequences, is being read by Labour watchers and leftwing thinkers. As the New York Times wrote, it’s “among the best and most dazzling efforts to model the political present in all its maddening strangeness”. Still, I think Jäger was surprised to have his honeymoon interrupted so I could interview him about it. Life comes at everyone quite fast in a hyperpolitical age.
The New York Times will argue in court Thursday that the White House is abusing the justice system to intimidate reporters over a story that angered President Trump.
(Image credit: BRENDAN SMIALOWSKI/AFP via Getty Images)
A woman was arrested by Texas authorities and charged with murder after FBI DNA testing linked her to a murder case that was stuck in limbo for 14 years.
Как измерить человеческую глупость? На первый взгляд, кажется, легко: измерить IQ, делов то! Но не все так однозначно. Как Вы сподвигнете человека на 2 часа интенсивных умственных нагрузок (а столько времени занимает прохождение теста)? Но даже замерив IQ, можно ли однозначно по нем делать вывод о глупости человека? К примеру, если замерить IQ Дон Кихоту и Санчо Пансо, у кого он окажется выше? А кто из них более глупый? В данной статье не только предлагается операциональное определение глупости, но и готовый бесплатный open source инструмент для ее измерения в течении 3-х минут. Поехали!
В конце июня по соц. сетям разлетелась новость от РБК про претензии от налоговой к 50 резидентам «Сколково». В сообществе начали говорить о том, что государство взяло под прицел резидентов, льготы заканчиваются, а сам статус превращается в источник дополнительных рисков. Что же произошло на самом деле?
В статье разберу из-за чего претензии ФНС к резидентам «Сколково» всех так напугали, почему это касается вообще не всех, что происходит при превышении финансовых лимитов и в каких случаях стоит заранее задуматься о смене налогового режима.
Запустить ИИ-агента на багбаунти — дело пяти минут. Зато превратить его поток сознания в принятые отчеты, чтобы не словить бан за спам и минус в рейтинге, — задача со звездочкой.
Привет, Хабр! Меня зовут Владислав, я работаю в отделе реагирования на инциденты в Бастионе и около полутора лет активно ханчу на багбаунти. Под Новый год мы с другом так пробили ИБ-интегратора (он, кстати, остался доволен), а недавно я выиграл Bug Zone 7.0. Подобные активности — хорошая возможность поэкспериментировать и выработать новые подходы, и последние полгода я ищу баги при помощи LLM. Так что с ИИ можно добиваться хороших результатов, а не сдавать мусор. Но как это делать?
Под катом вас ждут:
• четыре подхода к ИИ-багхантингу;
• четыре способа платить за модель;
• три слоя верификации;
• пайплайн из двух агентов;
• живой разбор blind SSRF.
Спойлер: готовой кнопки «сделать хорошо» не ждите.
Статья будет интересна всем, кто уже натравливал ИИ на BB-программу и тонул в фолз-позитивах, а также новичкам и матерым этичным хакерам — хотя последним отдельные рекомендации наверняка покажутся очевидными.
Всем известно такое устройство, как видеопроектор. Они широко используются для целей образования, бизнеса и даже для дома.
Перечень их основных технологий тоже известен — DLP, 3LCD, LCoS.
Однако как вам понравится, пожалуй, один из самых странных (и потрясающих с технической точки зрения!) проекционных аппаратов в истории — видеопроектор на электронно-лучевой трубке?! О_о Где электронно-лучевая трубка — это только маааленький кусочек странностей!
Как старый поклонник видеопроекторов, я никак не мог пройти мимо этой темы… :-) Итак…
Я заменил std::deque на boost::circular_buffer в надежде получить прирост производительности. В реальности получил загрузку процессора в 25% вместо 2%.
Представьте, что вы купили беспроводную колонку. Колонка отработала полгода, а в одно утро просто перестала включаться. В сервисе разводят руками: дело в плате, чинить дороже, чем купить новую.
Причина такой поломки бывает старше устройства. Ошибку сделали ещё на компьютере, когда проектировали плату. Она пережила производство, проверки, сборку и полгода работы. Внутри с первого дня осталась заводская химия, которая за полгода “съела” важный проводник.
Я ловлю такие ошибки, пока проект печатной платы не ушёл в производство. Почти вся моя работа состоит из вопросов к такому проекту. Сейчас расскажу, откуда в файлах берутся ошибки, которые не видит даже их автор, и как против них работают правильные вопросы.
Nutrition advocates and public health experts are mystified by the decision to eliminate SNAP-Ed, given the Trump administration's embrace of the Make America Healthy Again agenda.