OpenSUSE Leap 16.1

Post Syndicated from daroc original https://lwn.net/Articles/1105131/

The openSUSE project has announced the release of openSUSE Leap 16.1. The release is notable for allowing both traditional installations and immutable images with transactional updates. While immutable images had previously been available for Leap Micro, they are now available across all platforms that Leap supports, including servers, desktops, and virtual machines.

“Leap’s image gives the best of both for traditional and immutable users, and we expect that Tumbleweed will follow when Agama becomes the default installer for Tumbleweed as well.” said Leap release manager Lubos Kocman. “The Leap Micro experience people relied on is still here, but now it shares the same release, the same life cycle and the same maintenance updates as the rest of Leap, so users only have to pick the mode that fits their workload.”

[$] LLM reviews for Debian’s new queue spark debate

Post Syndicated from jzb original https://lwn.net/Articles/1103674/

The Debian project has wrestled with the topic of LLM usage for years, which
culminated in a general-resolution
vote
this August. The project voted in favor of the fifth, out of
eight, option: “Responsible Use of
Generative AI
“. With the door open to LLM use, the DFSG, Licensing & New Packages
Team
(usually shortened to “DFSG team”), which is relatively new, has started to employ LLMs in
sending out reviews of packages entering Debian’s new queue. The practice has
raised a number of objections and questions about where lines should be drawn in
the use of LLM-generated output.

Fedora Linux 45 released

Post Syndicated from jzb original https://lwn.net/Articles/1105121/

Fedora Linux
45
has been released. This includes all editions: Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Server, Fedora Cloud, Fedora CoreOS, and Fedora IoT, as well as the Atomic Desktops and Spins.

This release adds support for installation
on Stratis storage
using Anaconda or Kickstart installs, retires
unmaintained VPN plugins
for NetworkManager, and updates Fedora’s desktop
environments, developer toolchains, and system packages. See the Fedora wiki
ChangeSet page
for a list of major changes.

Security updates for Tuesday

Post Syndicated from jzb original https://lwn.net/Articles/1105111/

Security updates have been issued by AlmaLinux (bind, bind9.16, firefox, freerdp, ghostscript, kernel, kernel-rt, libXi, perl-YAML:1.24, perl:5.32, pipewire, qt5-qtbase, redis:6, tomcat, and wireshark), Debian (chromium, git-annex, incus, kernel, and strongswan), Fedora (barman, erlang-hex_core, glib-networking, kernel, knot, liblerc, libsoup3, mingw-cfitsio, openjpeg, perl-libnet, pipx, python-pillow, python-uv-build, radicale, ruff, rust-archive-trait, rust-astral-ini, rust-astral-mail-headers, rust-astral-pubgrub, rust-astral-version-ranges, rust-astral_async_zip, rust-quick-junit, rust-tar-codec, rust-tar-framing, tpm2-tss, ty, uv, and zvbi), Mageia (unbound), Red Hat (buildah, compat-openssl10, compat-openssl11, container-tools:rhel8, delve, golang-github-openprinting-ipp-usb, grafana, grafana-pcp, kernel, oci-seccomp-bpf-hook, openssl, opentelemetry-collector, osbuild-composer, podman, rhc, and skopeo), Slackware (expat), SUSE (ansible-core, apache-arrow, apache-commons-codec, apache-commons-io, apache-commons- logging, avalon-framework, avalon-logkit, glassfish-jsp, jsch, maven-file- management, opentest4j, aws-nitro-enclaves-cli, bouncycastle, chromedriver, chromium, cifs-utils, expat, firefox, gcc48, ghostscript, GraphicsMagick, guava, j2objc-annotations, gvfs, ImageMagick, in-toto, libsoup, nodejs22, nodejs24, praat, python-Pillow, python-PyJWT, python-soupsieve, python-sqlparse, python313-OpenEXR, python313-vllm, rootlesskit, and rqlite), and Ubuntu (kernel, linux, linux-aws, linux-aws-5.15, linux-aws-fips, linux-azure, linux-azure-5.15, linux-azure-fde-5.15, linux-azure-fips, linux-fips, linux-gcp, linux-gcp-5.15, linux-gcp-fips, linux-gke, linux-gkeop, linux-hwe-5.15, linux-ibm, linux-ibm-5.15, linux-intel-iot-realtime, linux-intel-iotg, linux-intel-iotg-5.15, linux-kvm, linux-lowlatency, linux-lowlatency-hwe-5.15, linux-nvidia, linux-oracle, linux-oracle-5.15, linux-realtime, linux, linux-aws, linux-aws-fips, linux-azure, linux-azure-5.4, linux-azure-fips, linux-fips, linux-gcp, linux-gcp-5.4, linux-gcp-fips, linux-hwe-5.4, linux-ibm, linux-ibm-5.4, linux-iot, linux-kvm, linux-oracle, linux-oracle-5.4, linux-xilinx-zynqmp, linux, linux-aws, linux-fips, linux-kvm, linux-lts-xenial, linux, linux-aws, linux-gcp, linux-hwe-7.0, linux-ibm, linux-oracle, linux-aws, linux-azure-fde, linux-bluefield, linux-nvidia-tegra, linux-nvidia-tegra-5.15, linux-nvidia-tegra-igx, and linux-oem-7.0).

Introducing Zero Wire, a hub for investigating critical Internet vulnerabilities

Post Syndicated from Daniele Molteni original https://blog.cloudflare.com/zero-wire/

You run security at your organization. It’s 7:00 am, and you’re having breakfast. You receive a ping: a new critical vulnerability has been disclosed. Your team scrambles to compare vendor advisories, read technical research, check which systems run the affected software, and answer familiar questions from the business: are we affected, and what are we doing about it? Another disclosure arrives before that work is finished.

AI is changing both the volume and speed of critical vulnerability discovery. It can analyze large codebases at scale and surface deeply nested flaws that may have existed for years without being found through human review. That discovery momentum will put more pressure on security teams to understand the impact of each disclosure on their infrastructure.

To help security teams prepare, today we’re introducing Zero Wire: a public vulnerability intelligence feed on Cloudflare Radar, bringing the clarity of a news wire service to critical security developments. It helps security leaders and practitioners understand significant vulnerabilities and decide what to do next.

How it works

Zero Wire lives inside Cloudflare Radar under the security section.

Each briefing brings together a plain-language explanation of the vulnerability, who should investigate it, recommended actions, and links to the evidence and vendor guidance. The format is deliberately simple: an index card with what you need to know, without the drama. A CISO should be able to understand the issue quickly and ask the right questions. An engineer should be able to follow the same briefing to the technical guidance needed to investigate and remediate it.

We also offer a pre-compiled prompt you can use with your agent to assess the impact on your infrastructure. Cloudflare contributes security research, observations from our network, and practical knowledge of the controls that can help reduce exposure. The information is useful whether or not you are a Cloudflare customer. 

Zero Wire brings that context together with authoritative external sources, giving readers a starting point for assessment and a place to return as an issue develops.

Our focus

Rather than a catalog of every CVE, Zero Wire complements vendor advisories and vulnerability databases, linking readers to the evidence and technical guidance needed to act. Zero Wire focuses on critical CVEs in Internet-facing software, such as vulnerabilities in web applications, the runtimes and libraries they depend on, and services exposed to the Internet, where a proxy can help mitigate exploitation.

We select significant issues that security teams need to understand and assess. Each briefing explains the potential impact, which deployments should be investigated, what is known about exploitation, and the available mitigation and patching guidance. A vulnerability’s severity and evidence of active exploitation are distinct: readers need both to make informed decisions.

A dedicated Cloudflare protection, such as Web Application Firewall (WAF) rules, is not a prerequisite for inclusion. Some issues require vendor updates or changes beyond the traffic Cloudflare can inspect. Where Cloudflare controls can help, we explain their scope and configuration requirements.

A walk through Zero Wire

Start on the Zero Wire homepage. Each card introduces an issue, identifies associated CVEs where applicable, and summarizes why it matters and what to do. You can search for a published briefing using a CVE or issue name, and follow technology tags to related entries. One briefing can cover several related CVEs when understanding them together makes the response clearer.

Find what needs attention

The homepage separates briefings into two categories. “Needs attention” brings together issues requiring active assessment or action, including those with known exploitation or developing guidance. “Reference” keeps briefings available when guidance has stabilized. Moving to “Reference” does not mean every affected system has been patched: an older vulnerability can still matter to an organization that has not completed remediation.

The status and last-checked date help you interpret each card. Known exploitation, an ongoing investigation, and an available vendor fix describe different things. Read them alongside the briefing’s evidence rather than treating them as a verdict on your own environment.

Understand what happened and who should investigate

When you open a briefing, the overview tells you what happened, why it deserves attention, and which teams should investigate. The explanation connects the technical issue to its practical consequences, such as service disruption or risk of data exposure.

For example, the recent php2shell vulnerability concerns flaws in the PHP runtime. That distinction matters for teams running applications such as WordPress or Magento: updating application code or a plugin alone does not repair the underlying runtime. The briefing helps readers identify the right system owners and directs them to the PHP security guidance for affected versions and remediation.

Turn the briefing into an action plan

What to do now gives your team a short set of next steps. Depending on the issue, that can mean identifying affected deployments, checking versions with a hosting provider, applying vendor updates, reviewing suspicious activity, or keeping compensating controls in place while patching.

The purpose is to make the next conversation concrete. For a PHP deployment, ask which runtime is actually running, whether the vendor’s fix has been applied, and who owns the update. Follow the linked vendor advisory for detailed applicability and remediation instructions, which can change as the investigation develops.

Assess your exposure with an AI agent

In this section, we share a prompt that can be used with your AI agent to quickly assess the impact on your infrastructure. The prompt asks for a read-only assessment of deployed software, relevant vendor fixes, exposure, and compensating controls, with per-asset evidence, unknowns, and next actions. It helps your team investigate its own environment; copying the prompt does not itself scan or change systems.

Check the evidence and follow what changed

To help you learn more about the vulnerability, each briefing links to external documents such as CVE records, research, and relevant exploitation evidence, including CISA’s Known Exploited Vulnerabilities Catalog. These sources answer different questions. A vendor advisory establishes affected versions and remediation guidance. An exploitation report provides evidence of attacker activity. 

If applicable to a briefing, Cloudflare can add context about traffic seen on our network, for example by showing traffic matching WAF rules that indicates exploitation attempts. Those distinctions matter. Observing an attack attempt does not establish that a particular organization was compromised. Equally, a lack of observed attempts on Cloudflare’s network does not establish that exploitation is absent elsewhere. Briefings distinguish what the sources establish from what remains unknown.

Where available, charts add context to that evidence. The php2shell briefing shows the volume of HTTP requests matching Cloudflare WAF managed rules over time. Note that requests matching these rules are not a count of compromised systems or successful exploits; the chart aims at providing practitioners a sense of what the focus level is by threat actors on a particular vulnerability.

Finally, update chronology records important developments, such as new advisories or changes to the evidence and response guidance. Together with the last-checked date, it helps returning readers understand what has changed since their previous visit.

Understand Cloudflare’s role

The Cloudflare section provides links to whether we offer compensating controls or provide a way to mitigate the vulnerability impact on your infrastructure. 

If a particular CVE can be addressed with a WAF rule, the briefing reports its availability and essential configuration requirements. When applicable, paid Plans and free Plans links take customers to the relevant dashboard configuration. The next step is explicit: “Review your WAF configuration to determine whether you are protected”. A link allows you to review your security posture, it does not automatically enable a rule or verify a deployment.

Note that a WAF mitigation is a compensating control for the traffic it covers, it is not a replacement for fixing vulnerable software. Blocking the requests can prevent exposed data from reaching an attacker, but it cannot undo actions already performed at the origin. The security teams should always follow the vendor remediation guidance.

Stay informed with Zero Wire

A useful vulnerability briefing should leave you with a clearer understanding of the issue and a concrete next step. Day Zero brings those essentials together: what happened, who should investigate, what to do now, and where to find the evidence.

Visit Zero Wire vulnerability intelligence, share the relevant briefings with the teams responsible for your systems, and return for new entries and updates. When the next disclosure arrives, we want you to spend less time assembling the basic facts and more time acting on them.

Follow Cloudflare Radar on X @CloudflareRadar and Bluesky @radar.cloudflare.com for updates.

AIs Hacking the Law

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2026/11/ais-hacking-the-law.html

In both a 2021 essay and my 2022 book, A Hacker’s Mind, I talk about AIs finding vulnerabilities and exploits—hacking—the legal system.

Here’s some demonstrations of this from Germany:

Legal systems encode the foundations of social order in natural language. Similar to computer systems, the written law can contain vulnerabilities that invite exploitation.1 Courts absorb most exploits through interpretation, and such vulnerabilities rarely surface in the first place. With highly capable AI systems enabling the discovery of vulnerabilities at unprecedented scale, we believe the latter could change.

In testing this hypothesis, we have identified a substantial number of vulnerabilities in the German legal system using LLMs. To our knowledge, none of these have been previously recorded. We share a selection of vulnerabilities below, and present potential exploits for each. We share only those vulnerabilities whose exploitation we believe would not cause serious harm.

We believe that with cheap legal reasoning proliferating, AI systems could jeopardize the functioning of today’s legal systems. In such a world, lawmakers would need to significantly harden the process of legislation, for example by leveraging advanced AI themselves.

Still in its early stages, but definitely something that’s coming.

Бомбоубежища за 1%

Post Syndicated from Александър Малинов original https://www.toest.bg/bomboubezhishta-za-1-procent/

Бомбоубежища за 1%

България не е във война, поне официално. Липсата на формално обявена война обаче не пречи на Русия вече почти пет години да убива цивилни и да разрушава градове и села в Украйна. От години насам България като важна част от обединена Европа и НАТО също е жертва на руска агресия под формата на информационна война, саботажи и политическа намеса. През октомври 2026 г. това се промени, след като Русия засили военния си натиск върху България. 

На 6, 13 и 28 октомври близо до българския бряг няколко търговски кораба бяха ударени от руски дронове, а над 20 души от екипажите им загинаха. България ще се сблъсква с все повече преки военни заплахи и инциденти, а междувременно инфраструктурата ни за гражданска защита остава критично неподготвена. В това отношение се вижда рязък контраст с други европейски държави, които активно подготвят населението си за действие по време на криза, включително и война.

Как е в Европа?

В отговор на ескалиращата руска агресия срещу Европа много държави предприеха спешни мерки – от обновяване на укритията до масово разпространение на ръководства за оцеляване за всяко домакинство.

В Полша подготовката на гражданското общество премина от формални административни прегледи към мащабна трансформация. Страната прие фундаментални законодателни промени, задължаващи строителния сектор и частните инвеститори да интегрират защитни съоръжения и подземни бункери в нови обществени и многофамилни сгради. Чрез националната програма за защита на населението и гражданска отбрана Варшава задели милиарди злоти за реновиране на съществуващи укрития и изграждане на нови пространства за сигурност, а финансовите параметри на тези проекти достигат мащаби от десетки милиарди евро за следващия петгодишен цикъл. 

Полските власти не просто инспектират мазета и подземни паркинги, а създават национална мрежа от самостоятелни убежища със системи за филтровентилация, водоснабдяване и електрозахранване и развиват система за ранно предупреждение при ракетен и дронов удар.

Подобни действия се наблюдават и в балтийските страни – Естония, Латвия и Литва, чиито правителства третират гражданската отбрана като пряко продължение на военната си доктрина. Латвия започна мащабни инициативи, подкрепени с милионни европейски и общински инвестиции, за трансформиране на хиляди сгради в защитни убежища (само в столицата Рига се разработват проекти за сигурност на десетки хиляди граждани). 

Литва и Естония от своя страна залагат на тотална децентрализация на информацията: стотици хиляди домакинства преди време получиха директно в домовете си специализирани ръководства за оцеляване в условия на криза, обсада или окупация, съдържащи детайлни инструкции за поведение при военен конфликт и съпротива. 

Брошурата, раздадена на населението на Литва, информира, че граждани, попаднали под чужда окупация, имат право да извършват саботажи срещу окупационните сили и че 

при настъпила окупация всяка информация за капитулиране на литовските сили би била фалшива. 

Швеция, Норвегия и Дания разпространиха обновени брошури за гражданите с ясни инструкции при военен конфликт. В шведското ръководство за оцеляване категорично се заявява: 

Ако Швеция бъде нападната, никога няма да се предадем.

По подобие на страните от Северна Европа, през миналата година Чехия раздаде над 5 млн. брошури, които стигнаха до всяко домакинство, и пусна специален уебсайт с инструкции за оцеляване през първите 72 часа на криза, включваща прекъсване на електричеството, интернет и останалите комуникации.

Породената от руската агресия срещу Украйна активна подготовка на населението за оцеляване в криза е приоритет не само за Източна Европа. В западната част на континента държавните власти също обновиха готовността си – както що се отнася до скривалища и бомбоубежища, така и по отношение на комуникацията с населението. 

Германия предприе спешна реформа в своята политика за сигурност, започвайки изпълнението на дългосрочен план на стойност милиарди евро за преоборудване и адаптация на съществуващата подземна инфраструктура. Берлин съсредоточава усилията си върху спешни ремонти на бункери от Студената война и трансформирането на метростанции, подземни тунели и паркинги, мазета в надеждни защитни пространства, които могат да служат за скривалища. В допълнение федералните власти активно модернизират националната мрежа за ранно предупреждение на гражданите.

Нидерландия, Франция и Белгия залагат на превантивната информираност и масовото ангажиране на самите граждани. В Нидерландия например правителството започна мащабна национална кампания чрез изпращане на специални ръководства на милиони домакинства, даващи ясни указания как всяко семейство да състави собствен план за действие и да подготви тридневни запаси от вода, консерви, медикаменти и алтернативни източници на светлина и топлина. Подобни инициативи бяха реализирани и от френските и белгийските власти през националните кризисни центрове с цел повишаване на устойчивостта срещу хибридни атаки, киберзаплахи и мащабни прекъсвания на комуникациите.


/* ———- ОБЩО за всички инфографики (.tst-ig) ———- */
.tst-ig,
.tst-ig * {
box-sizing: border-box;
margin: 0;
padding: 0;
border: 0;
text-transform: none;
letter-spacing: 0;
text-decoration: none;
text-indent: 0;
}
.tst-ig {
–tst-ink: #000;
–tst-white: #fff;
–tst-shape: #e8e8e8; /* сивото на картите и на „празните” кръгчета */
–tst-radius: 20px;
–tst-accent: #D92B36; /* акцентът на Тоест (цветът на точките и на запълнените кръгчета) */
display: block;
width: 100%;
margin: 24px 0;
padding: 8px 0;
color: var(–tst-ink);
font-weight: 700;
font-style: normal;
font-size: 15px;
line-height: 1.3;
text-align: left;
overflow: visible;
}
.tst-ig-title { display: block; text-align: center; margin-bottom: 24px; }

/* =====================================================================================
КАРТА НА ЕВРОПА (.tst-map) — кликаш държава → излиза балонче с текст
===================================================================================== */
.tst-map {
–tst-map-idle: #ee9aa0; /* кликаемите държави — по-бледо червено */
–tst-map-hover: #e56a73;
}
.tst-map-hint { margin: -12px 0 14px; text-align: center; font-weight: 500; font-size: 13px; }
.tst-map-texts { display: none; } /* текстовете се четат от скрипта и излизат в балончето */
.tst-map-stage { position: relative; max-width: 760px; margin: 0 auto; }
.tst-map-svg { display: block; width: 100%; height: auto; }
.tst-map-bg { fill: var(–tst-shape); stroke: #fff; stroke-width: 1; stroke-linejoin: round; fill-rule: evenodd; }
.tst-map-c path {
fill: var(–tst-map-idle);
stroke: #fff;
stroke-width: 1;
stroke-linejoin: round;
cursor: pointer;
transition: fill 0.2s;
}
@media (hover: hover) { .tst-map-c:hover path { fill: var(–tst-map-hover); } }
.tst-map-c.is-active path { fill: var(–tst-accent); }
.tst-map-c:focus { outline: none; }
.tst-map-c:focus-visible path { stroke: var(–tst-ink); stroke-width: 2; }

.tst-map-bubble {
position: absolute;
left: 0;
top: 0;
z-index: 2;
width: 290px;
max-width: calc(100% – 16px);
padding: 16px 18px 18px;
background: var(–tst-white);
border-radius: 18px;
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.15);
pointer-events: none;
}
.tst-map-bubble[hidden] { display: none; }
.tst-map-name { font-size: 17px; line-height: 1.2; }
.tst-map-body { margin-top: 8px; font-weight: 500; font-size: 15px; line-height: 1.4; }
.tst-map-tail {
position: absolute;
bottom: -7px;
left: 20px;
width: 16px;
height: 16px;
background: var(–tst-white);
transform: rotate(45deg);
border-radius: 0 0 3px 0;
}
.tst-map-bubble.is-below .tst-map-tail { bottom: auto; top: -7px; border-radius: 3px 0 0 0; }

.tst-map.is-armed:not(.is-done) .tst-map-bg,
.tst-map.is-armed:not(.is-done) .tst-map-c { opacity: 0; }

/* =====================================================================================
ФИНЛАНДИЯ СРЕЩУ БЪЛГАРИЯ (.tst-fin) — по 100 кръгчета (1 кръгче = 1% от населението)
===================================================================================== */
.tst-fin { –tst-fin-d: 20px; –tst-fin-gap: 6px; }
.tst-fin-parts { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px 64px; }
.tst-fin-part { width: calc(var(–tst-fin-d) * 10 + var(–tst-fin-gap) * 9); max-width: 100%; }
.tst-fin-top { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 16px; }
.tst-fin-country { font-size: 18px; }
.tst-fin-num { font-size: 42px; line-height: 1; }
.tst-fin-grid {
display: grid;
grid-template-columns: repeat(10, var(–tst-fin-d));
gap: var(–tst-fin-gap);
}
.tst-fin-dot {
position: relative;
width: var(–tst-fin-d);
height: var(–tst-fin-d);
border-radius: 50%;
background: var(–tst-shape);
overflow: hidden;
}
.tst-fin-glow { /* цветната част; JS я добавя във всяко „пълно” кръгче */
position: absolute;
left: 0; top: 0; bottom: 0;
width: var(–tst-fin-p, 100%); /* при частично кръгче (напр. 0,5) е по-тясна */
background: var(–tst-accent);
}
.tst-fin-note { margin-top: 16px; font-weight: 500; font-size: 15px; line-height: 1.4; }
.tst-fin-legend { margin-top: 28px; text-align: center; font-weight: 500; font-size: 13px; }

.tst-fin-part.is-armed:not(.is-done) .tst-fin-dot { opacity: 0; }
.tst-fin-part.is-armed:not(.is-done) .tst-fin-glow { clip-path: inset(0 100% 0 0); }
.tst-fin-part.is-armed:not(.is-done) .tst-fin-country,
.tst-fin-part.is-armed:not(.is-done) .tst-fin-num { clip-path: inset(0 100% 0 0); }
.tst-fin-part.is-armed:not(.is-done) .tst-fin-note { opacity: 0; }


<!– =====================================================================================
[B] КАРТА НА ЕВРОПА — как се подготвя Европа
Копирай от тук до „КРАЙ КАРТА".
РЕДАКТИРАШ САМО текстовете в блока „ТЕКСТОВЕ" (име и текст на всяка държава/група).
Блокът с картата () НЕ СЕ ПИПА. data-group в двата блока трябва да съвпада.
Групите се оцветяват заедно: Естония+Латвия+Литва, Швеция+Норвегия+Дания, Нидерландия+Франция+Белгия.
===================================================================================== –>

Как се подготвя Европа
Натисни върху държава

Полша
Нови обществени и многофамилни сгради задължително се строят с убежища. Милиарди злоти за обновяване и нови укрития.

Естония, Латвия, Литва
Ръководства за оцеляване в стотици хиляди домакинства. В Латвия хиляди сгради стават убежища.

Швеция, Норвегия, Дания
Обновени брошури за гражданите с ясни инструкции при военен конфликт

Чехия
Над 5 млн. брошури за всяко домакинство и сайт с инструкции за първите 72 часа на криза

Германия
План за милиарди евро: ремонт на бункери от Студената война, метростанции, тунели и паркинги като скривалища

Нидерландия, Франция, Белгия
Национални кампании: всяко семейство съставя план за действие и си осигурява тридневни запаси

Финландия
Над 50 000 убежища с капацитет 4,8 млн. души

България
247 напълно годни убежища с капацитет около 60 000 души


Що се отнася до покритие и достъп до бункери, абсолютният лидер е Финландия. 

Страната разполага с над 50 000 убежища за гражданска защита с капацитет от 4,8 млн. души – значителна част от населението ѝ, което наброява близо 5,7 милиона. Повечето от тях са частни стоманобетонни скривалища, разположени в отделни сгради. В съчетание със задължителните бомбоубежища в мазетата на жилищните кооперации капацитетът в столицата Хелзинки надхвърля 700 000 души, каквото е населението на града.

Как е в България?

В цялата страна официално регистрираните и напълно годни да изпълнят своето предназначение защитни скривалища са едва 247. Това става ясно от данни на отдел „Превантивна дейност“ в Главна дирекция „Пожарна безопасност и защита на населението“, представени пред БНР. Общият капацитет на тези съоръжения позволява едновременно да бъдат укрити максимум около 60 000 души, или по-малко от 1% от постоянно живеещите в страната.

Според същите данни при евентуална извънредна ситуация най-мащабно укриване на населението в градски условия би могло да се осъществи в станциите на метрото в София. 


Каква част от населението може да се скрие в убежище
Финландия
84%

Убежища за 4,8 млн. души при около 5,7 млн. население

България
<1%

247 годни убежища с капацитет около 60 000 души

1 кръгче = 1% от населението



(function () {
‘use strict’;

/* ===== ОБЩО ===== */
var reduceMotion = window.matchMedia && window.matchMedia(‘(prefers-reduced-motion: reduce)’).matches;
var canAnimate = typeof Element !== ‘undefined’ && typeof Element.prototype.animate === ‘function’;
function qs(root, sel) { return root.querySelector(sel); }
function qsa(root, sel) { return Array.prototype.slice.call(root.querySelectorAll(sel)); }
function noop() {}
var WIPE_FROM = ‘inset(0 100% 0 0)’;
var WIPE_TO = ‘inset(0 0 0 0)’;

function onceInView(el, threshold, cb) {
if (!(‘IntersectionObserver’ in window)) { cb(el); return; }
var io = new IntersectionObserver(function (entries) {
entries.forEach(function (e) {
if (e.isIntersecting) { io.unobserve(e.target); cb(e.target); }
});
}, { threshold: threshold });
io.observe(el);
}

/* пуска елементите един след друг: всеки чака да е в екрана И предишният да е стигнал до „реда” си.
play(el) връща след колко ms да тръгне следващият. */
function sequence(items, threshold, play) {
var prev = Promise.resolve();
items.forEach(function (it) {
var seen = new Promise(function (res) { onceInView(it, threshold, res); });
prev = Promise.all([prev, seen]).then(function () {
var wait = play(it) || 0;
return new Promise(function (res) { setTimeout(res, wait); });
});
});
}

/* събира анимациите и при край маха началното състояние (is-armed) */
function makeRunner(root, defaultEase) {
var anims = [];
function run(el, keyframes, delay, duration, easing) {
var a = el.animate(keyframes, { delay: delay, duration: duration, easing: easing || defaultEase, fill: ‘both’ });
anims.push(a);
return a;
}
function finish() {
Promise.all(anims.map(function (a) { return a.finished; })).then(function () {
root.classList.add(‘is-done’);
anims.forEach(function (a) { try { a.cancel(); } catch (e) { noop(); } });
}).catch(noop);
}
return { run: run, finish: finish };
}

var EASE_OUT = ‘cubic-bezier(0.22, 0.8, 0.26, 1)’;
var EASE_POP = ‘cubic-bezier(0.34, 1.56, 0.64, 1)’;

/* =====================================================================================
КАРТА НА ЕВРОПА (.tst-map) — влизане на картата + клик върху държава → балонче
===================================================================================== */
var MAP = {
threshold: 0.3,
bgMs: 600,
groupDelay: 300, // кога тръгват държавите
groupStep: 110, // пауза между групите
groupMs: 500,
bubbleMs: 260
};

function mapSetup(root) {
var stage = qs(root, ‘.tst-map-stage’);
var svg = qs(root, ‘.tst-map-svg’);
var bubble = qs(root, ‘.tst-map-bubble’);
var bName = qs(bubble, ‘.tst-map-name’);
var bBody = qs(bubble, ‘.tst-map-body’);
var groups = qsa(root, ‘.tst-map-c’);
var texts = {};
qsa(root, ‘.tst-map-text’).forEach(function (t) {
texts[t.getAttribute(‘data-group’)] = {
name: (qs(t, ‘.tst-map-name’) || {}).textContent || ”,
body: (qs(t, ‘.tst-map-body’) || {}).textContent || ”
};
});
var active = null;
var FULL_VIEW = svg.getAttribute(‘viewBox’);
/* компютър с мишка: балончето излиза при посочване; телефон/таблет: при докосване */
var canHover = !!(window.matchMedia && window.matchMedia(‘(hover: hover) and (pointer: fine)’).matches);

/* на тесен екран (телефон/приложение) приближаваме към Европа, за да са държавите по-големи */
function applyView() {
var narrow = stage.clientWidth < 560;
svg.setAttribute('viewBox', narrow ? '130 90 520 540' : FULL_VIEW);
}
applyView();

/* намира държавата под пръста; ако докосването е „до" държава (малките са тесни), взема най-близката */
function groupAt(x, y) {
var offs = [[0, 0], [10, 0], [-10, 0], [0, 10], [0, -10], [14, 14], [-14, 14], [14, -14], [-14, -14], [20, 0], [-20, 0], [0, 20], [0, -20]];
for (var i = 0; i < offs.length; i++) {
var el = document.elementFromPoint(x + offs[i][0], y + offs[i][1]);
var g = el && el.closest ? el.closest('.tst-map-c') : null;
if (g && root.contains(g)) { return g; }
}
return null;
}

function place() {
if (!active) { return; }
var vb = svg.viewBox.baseVal;
var sw = stage.clientWidth, sh = stage.clientHeight;
var kx = sw / vb.width, ky = svg.getBoundingClientRect().height / vb.height;
var bb = active.getBBox();
var cx = (bb.x – vb.x + bb.width / 2) * kx;
var top = (bb.y – vb.y) * ky, bottom = (bb.y – vb.y + bb.height) * ky;
var w = bubble.offsetWidth, h = bubble.offsetHeight;
var left = Math.max(8, Math.min(cx – w / 2, sw – w – 8));
var below = top – h – 14 < 0;
var y = below ? bottom + 14 : top – h – 14;
y = Math.max(0, Math.min(y, sh – h));
bubble.style.left = left + 'px';
bubble.style.top = y + 'px';
bubble.classList.toggle('is-below', below);
var tx = Math.max(24, Math.min(cx – left, w – 24));
bubble.querySelector('.tst-map-tail').style.left = (tx – 8) + 'px';
bubble.style.transformOrigin = tx + 'px ' + (below ? '0' : '100%');
}

function close() {
if (active) { active.classList.remove('is-active'); }
active = null;
bubble.hidden = true;
}

function select(g) {
var t = texts[g.getAttribute('data-group')];
if (!t) { return; }
if (active) { active.classList.remove('is-active'); }
active = g;
g.classList.add('is-active');
bName.textContent = t.name;
bBody.textContent = t.body;
bubble.style.visibility = 'hidden';
bubble.hidden = false;
place();
bubble.style.visibility = '';
if (canAnimate && !reduceMotion) {
bubble.animate([{ opacity: 0, transform: 'scale(0.92)' }, { opacity: 1, transform: 'scale(1)' }],
{ duration: MAP.bubbleMs, easing: EASE_POP });
}
}

groups.forEach(function (g) {
g.setAttribute('tabindex', '0');
g.setAttribute('role', 'button');
var t = texts[g.getAttribute('data-group')];
if (t) { g.setAttribute('aria-label', t.name); }
g.addEventListener('click', function (e) { e.stopPropagation(); if (active !== g) { select(g); } });
if (canHover) {
g.addEventListener('mouseenter', function () { if (active !== g) { select(g); } });
g.addEventListener('mouseleave', function () { if (active === g) { close(); } });
}
g.addEventListener('keydown', function (e) {
if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); select(g); }
if (e.key === 'Escape') { close(); }
});
});
stage.addEventListener('click', function (e) { // клик до държава → избира я; клик другаде → балончето се скрива
var g = groupAt(e.clientX, e.clientY);
if (g) { select(g); } else { close(); }
});
window.addEventListener('resize', function () { applyView(); place(); });

if (reduceMotion || !canAnimate) { return; }
root.classList.add('is-armed');
onceInView(root, MAP.threshold, function () {
var R = makeRunner(root, EASE_OUT);
R.run(qs(root, '.tst-map-bg'), [{ opacity: 0 }, { opacity: 1 }], 0, MAP.bgMs);
groups.forEach(function (g, i) {
R.run(g, [{ opacity: 0 }, { opacity: 1 }], MAP.groupDelay + i * MAP.groupStep, MAP.groupMs);
});
R.finish();
});
}

/* =====================================================================================
ФИНЛАНДИЯ СРЕЩУ БЪЛГАРИЯ (.tst-fin) — първо кръгчетата едно след друго (сиви),
после цветът се „пали" в цветните, докато излиза числото. После втората част.
===================================================================================== */
var FIN = {
threshold: 0.5,
dotStep: 9, // пауза между кръгчетата
dotMs: 350,
glowLead: 200, // цветът тръгва толкова след последното кръгче
glowStep: 10, // пауза между цветните кръгчета
glowMs: 450,
wordMs: 500,
noteDelay: 350,
next: 500 // след колко ms от старта на цвета тръгва следващата част
};

/* създава кръгчетата от data-total / data-on (работи и без анимация) */
function finBuild(grid) {
if (grid.getAttribute('data-built') === '1') { return; }
var total = parseInt(grid.getAttribute('data-total'), 10);
var on = parseFloat(grid.getAttribute('data-on'));
if (!isFinite(total) || total < 1) { total = 100; }
if (!isFinite(on)) { on = 0; }
for (var i = 0; i < total; i++) {
var dot = document.createElement('div');
dot.className = 'tst-fin-dot';
if (i < on) {
var g = document.createElement('span');
g.className = 'tst-fin-glow';
var p = Math.min(1, on – i);
if (p < 1) { g.style.setProperty('–tst-fin-p', (p * 100) + '%'); }
dot.appendChild(g);
}
grid.appendChild(dot);
}
grid.setAttribute('data-built', '1');
}

function finPlay(part) {
part.classList.remove('is-done');
part.classList.add('is-armed');
var R = makeRunner(part, EASE_OUT), run = R.run;
var dots = qsa(part, '.tst-fin-dot');
var glows = qsa(part, '.tst-fin-glow');
var country = qs(part, '.tst-fin-country'), num = qs(part, '.tst-fin-num'), note = qs(part, '.tst-fin-note');

if (country) { run(country, [{ clipPath: WIPE_FROM }, { clipPath: WIPE_TO }], 0, FIN.wordMs); }
dots.forEach(function (d, i) {
run(d, [{ opacity: 0, transform: 'scale(0.3)' }, { opacity: 1, transform: 'scale(1)' }], i * FIN.dotStep, FIN.dotMs, EASE_POP);
});
var tG = Math.max(0, (dots.length – 1) * FIN.dotStep) + FIN.glowLead;
glows.forEach(function (g, k) {
run(g, [{ clipPath: WIPE_FROM }, { clipPath: WIPE_TO }], tG + k * FIN.glowStep, FIN.glowMs);
});
if (num) { run(num, [{ clipPath: WIPE_FROM }, { clipPath: WIPE_TO }], tG, FIN.wordMs); }
if (note) { run(note, [{ opacity: 0, transform: 'translateY(6px)' }, { opacity: 1, transform: 'translateY(0)' }], tG + FIN.noteDelay, 600); }
R.finish();
return tG + FIN.next;
}

function finSetup(root) {
qsa(root, '.tst-fin-grid').forEach(finBuild);
if (reduceMotion || !canAnimate) { return; }
var parts = qsa(root, '.tst-fin-part');
parts.forEach(function (p) { p.classList.add('is-armed'); });
sequence(parts, FIN.threshold, finPlay);
}

/* ===== старт ===== */
function init() {
qsa(document, '.tst-map').forEach(mapSetup);
qsa(document, '.tst-fin').forEach(finSetup);
}
if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }
})();

МВР обаче не потвърждава дали метростанциите отговарят на нужните изисквания. 

На този фон капацитетът на отделните специализирани подземни скривалища остава ограничен, като най-големият обект може да побере само около 300 души. Въпреки поредицата от атаки с дронове край българското крайбрежие и продължаващата война на Русия в Украйна темата за сигурността на цивилното население шокиращо остава извън дневния ред на българските политици – както в проруските среди на Радев и Костадинов, така и сред проевропейските сили. Следва незабавно да се поставят на фокус въпросите около състоянието, поддръжката и капацитета на защитната инфраструктура в страната и готовността на държавата и населението за реакция при кризисни ситуации. 

Три са насоките, които изискват спешно внимание:

Увеличаване на капацитета – спешна проверка на всички бомбоубежища от времето на Студената война в цялата страна и превръщането им в годни скривалища по примера на Германия и Полша. Одит на гражданска инфраструктура, която би могла да се ползва по време на кризи – това са метростанции, тунели и подземни гаражи. 

Институционална, политическа и обществена ангажираност – обществото не получава ясни насоки от управляващите, актуални карти на укритията или практични обучения за реакция при криза. Липсва мащабна национална кампания за подготовка на домакинствата, подобна на тези в Европа.

Разминаване с реалността – заради дребни политически интереси и нежелание на политическите сили да всяват „паника“ защитата на населението е хвърлена в кофата; не само че липсва инфраструктура и кампания за подготовка, липсват дори идеи и насоки такива да бъдат създадени.

Според премиера Радев няма място за „истерия“, когато Русия убива моряци в близост до българския бряг. Вероятно по същата причина къпещото се в похвали от Москва правителство пази гробно мълчание по темата с липсата на бомбоубежища в България и не предприема кампания за кризисна готовност на населението. Но да се подготвиш за бедствие, когато е очевидно, че то се насочва към теб, не е истерия, а елементарно чувство за самосъхранение. Ако съседската къща гори, да знаеш къде има пожарогасител или да се измъкнеш навреме е начин да останеш жив. 

Докато Европа готви своите граждани за природни бедствия, кибератаки и военен конфликт, в България институциите са безмълвни по темата, а за политическите лидери явно безопасността на хората в страната не е на дневен ред. Кой обаче ще поеме отговорност, когато ни връхлети кризата?

Marvell Proposes Acquiring Lumentum to Combine Optical Circuit Switching with AI Connectivity Silicon

Post Syndicated from Cliff Robinson original https://www.servethehome.com/marvell-to-acquire-lumentum-115-billion-optical-ai-connectivity/

Marvell announced its intention to acquire Lumentum in a $115B acquisition to further optical connectivity in the AI era

The post Marvell Proposes Acquiring Lumentum to Combine Optical Circuit Switching with AI Connectivity Silicon appeared first on ServeTheHome.

The collective thoughts of the interwebz