2025-02-21 разни openfest-овски

Post Syndicated from Vasil Kolev original https://vasil.ludost.net/blog/?p=3497

Още се освестявам от FOSDEM, но вече можем да движим някакви неща около OpenFest – имаме си дати (17-18 октомври), имаме разни забавни идеи и малко по малко време да ги правим.

Едното нещо е, че си сменяме системата за submit-ване на лекции към pretalx. След като дълги години изборът беше pentabarf (чиито сайт даже вече го няма) или да си пишем нещо (както имахме clarion за OpenFest), сега вече има нормално работеща система, която CCC и FOSDEM са проходили доста добре, и успява да свърши работа. Тази година ползвах pretalx-а на FOSDEM и бях приятно изненадан колко човешко е като интерфейс и функционалност.

Та, ако на някой му е скучно, сме започнали превод в translate.pretalx.com. Има 1500 неща за превод, от които в последните дни сме превели около 150.
(а няма начин да пуснем системата за самия фест без български без да бъда линчуван)

Има и разни интересни нововъведения за CfP-то и програмата, но тях ще ги разкажа като ги случим 🙂

How to debug code with GitHub Copilot

Post Syndicated from Jeimy Ruiz original https://github.blog/ai-and-ml/github-copilot/how-to-debug-code-with-github-copilot/


Debugging is an essential part of a developer’s workflow—but it’s also one of the most time consuming. What if AI could streamline the process, helping you analyze, fix, and document code faster? Enter GitHub Copilot, your AI-powered coding assistant.

GitHub Copilot isn’t just for writing code—it’s also a powerful tool for debugging. Whether you’re troubleshooting in your IDE, using Copilot Chat’s slash commands like /fix, or reviewing pull requests (PR) on github.com, GitHub Copilot offers flexible, intelligent solutions to speed up your debugging process. And with the free version of GitHub Copilot, available to all personal GitHub accounts, you can start exploring these features today.

In this guide, we’ll explore how to debug code with GitHub Copilot, where to use it in your workflow, and best practices to get the most out of its capabilities. Whether you’re new to GitHub Copilot or looking to deepen your skills, this guide has something for you.

Debugging code with GitHub Copilot: surfaces and workflows

Debugging code with GitHub Copilot can help you tackle issues faster while enhancing your understanding of the codebase. Whether you’re fixing syntax errors, refactoring inefficient code, or troubleshooting unexpected behavior, GitHub Copilot can provide valuable insights in your debugging journey.

So, how exactly does this work? “GitHub Copilot is recognizing patterns and suggesting solutions based on what it has learned,” says Christopher Harrison, Senior Developer Advocate. “Once you’ve identified the problem area, you can turn to GitHub Copilot and ask, ‘I’m giving this input but getting this output—what’s wrong?’ That’s where GitHub Copilot really shines.”

Let’s explore how GitHub Copilot can help you debug your code across different surfaces, from your IDE to github.com and even pull requests.

1. In Copilot Chat

Copilot Chat acts as an interactive AI assistant, helping you debug issues with natural language queries. And with Copilot Free, you get 50 chat messages per month. With Copilot Chat, you can:

  • Get real-time explanations: Ask “Why is this function throwing an error?” and Copilot Chat will analyze the code and provide insights.
  • Use slash commands for debugging: Try /fix to generate a potential solution or /explain for a step-by-step breakdown of a complex function. (More on this later!)
  • Refactor code for efficiency: If your implementation is messy or inefficient, Copilot Chat can suggest cleaner alternatives. Christopher explains, “Refactoring improves the readability of code, making it easier for both developers and GitHub Copilot to understand. And if code is easier to understand, it’s easier to debug and spot problems.”
  • Walk through errors interactively: Describe your issue in chat and get tailored guidance without ever having to leave your IDE.

2. In your IDE

When working in popular IDEs like VS Code or JetBrains, GitHub Copilot offers real-time suggestions as you type. It helps by:

  • Flagging issues: For example, if you declare a variable but forget to initialize it, GitHub Copilot can suggest a correction.
  • Code fixes: Encounter a syntax error? GitHub Copilot can suggest a fix in seconds, ensuring your code stays error-free.
  • Contextual assistance: By analyzing your workspace, GitHub Copilot provides solutions tailored to your codebase and project structure.

3. On github.com

GitHub Copilot extends beyond your IDE, offering debugging assistance directly on github.com via Copilot Chat, particularly in repositories and discussions. With this feature, you can:

  • Troubleshoot code in repositories: Open a file, highlight a problematic section, and use Copilot Chat to analyze it.
  • Generate test cases: If you’re unsure how to verify a function, GitHub Copilot can suggest test cases based on existing code.
  • Understand unfamiliar code: Reviewing an open-source project or a teammate’s PR? Ask GitHub Copilot to summarize a function or explain its logic.

4. For pull request assistance

GitHub Copilot can also streamline debugging within PRs, ensuring code quality before merging.

  • Suggest improvements in PR comments: GitHub Copilot can review PRs and propose fixes directly in the conversation.
  • Generate PR summaries: Struggling to describe your changes? Greg Larkin, Senior Service Delivery Engineer, says, “I use GitHub Copilot in the PR creation process to generate a summary of the changes in my feature branch compared to the branch I’m merging into. That can be really helpful when I’m struggling to figure out a good description, so that other people understand what I did.”
  • Explain diffs: Not sure why a change was made? Ask GitHub Copilot to summarize what’s different between commits.
  • Catch edge cases before merging: Use /analyze to identify potential issues and /tests to generate missing test cases.
  • Refactor on the fly: If a PR contains redundant or inefficient code, GitHub Copilot can suggest optimized alternatives.

By integrating Copilot into your PR workflow, you can speed up code reviews while maintaining high-quality standards. Just be sure to pair it with peer expertise for the best results.

5 slash commands in GitHub Copilot for debugging code

Slash commands turn GitHub Copilot into an on-demand debugging assistant, helping you solve issues faster, get more insights, and improve your code quality. Here are some of the most useful slash commands for debugging:

1. Use /help to get guidance on using GitHub Copilot effectively

The /help slash command provides guidance on how to interact with GitHub Copilot effectively, offering tips on structuring prompts, using slash commands, and maximizing GitHub Copilot’s capabilities.

  • How it works: Type /help in Copilot Chat to receive suggestions on your current task, whether it’s debugging, explaining code, or generating test cases.
  • Example: Need a refresher on what GitHub Copilot can do? Use /help to access a quick guide to slash commands like /fix and /explain.

2. Use /fix to suggest and apply fixes

The /fix command is a go-to tool for resolving code issues by allowing you to highlight a block of problematic code or describe an error.

  • How it works: Select the code causing issues, type /fix, and let Copilot Chat generate suggestions.
  • Example: If you have a broken API call, use /fix to get a corrected version with appropriate headers or parameters.

3. Use /explain to understand code and errors

The /explain command breaks down complex code or cryptic error messages into simpler, more digestible terms.

  • How it works: Highlight the code or error message you want clarified, type /explain, and Copilot Chat will provide an explanation. It will explain the function’s purpose, how it processes the data, potential edge cases, and any possible bugs or issues.
  • Example: Encounter a “NullPointerException”? Use /explain to understand why it occurred and how to prevent it.

4. Use /tests to generate tests

Testing is key to identifying bugs, and the /tests command helps by generating test cases based on your code.

  • How it works: Use /tests on a function or snippet, and Copilot Chat will generate relevant test cases.
  • Example: Apply /tests to a sorting function, and Copilot Chat might generate unit tests for edge cases like empty arrays or null inputs.

5. Use /doc to generate or improve documentation

There are long-term benefits to having good text documentation—for developers and GitHub Copilot, which can draw context from it—because it makes your codebase that much more searchable. By using the /doc command with Copilot Free, you can even ask GitHub Copilot to write a summary of specific code blocks within your IDE.

The /doc command helps you create or refine documentation for your code, which is critical when debugging or collaborating with others. Clear documentation provides context for troubleshooting, speeds up issue resolution, and helps fellow developers understand your code faster.

  • How it works: Highlight a function, class, or file, type /doc and right-click to see the context menu, and Copilot Chat will generate comprehensive comments or documentation.
  • Example: Apply /doc to a function, and Copilot Chat will generate inline comments detailing its purpose, parameters, and expected output.

By mastering these commands, you can streamline your debugging workflow and resolve issues faster without switching between tools or wasting time on manual tasks.

Best practices for debugging code with GitHub Copilot

Provide clear context for better results

Providing the right context helps GitHub Copilot generate even more relevant debugging suggestions. As Christopher explains, “The better that Copilot is able to understand what you’re trying to do and how you’re trying to do it, the better the responses are that it’s able to give to you.”

Since GitHub Copilot analyzes your code within the surrounding scope, ensure your files are well structured and that relevant dependencies are included. If you’re using Copilot Chat, reference specific functions, error messages, or logs to get precise answers instead of generic suggestions.

💡 Pro tip: Working across multiple files? Use the @workspace command to point GitHub Copilot in the right direction and give it more context for your prompt and intended goal.

Ask, refine, and optimize in real time

Instead of treating GitHub Copilot as a one-and-done solution, refine its suggestions by engaging in a back-and-forth process. Greg says, “I find it useful to ask GitHub Copilot for three or four different options on how to fix a problem or to analyze for performance. The more detail you provide about what you’re after—whether it’s speed, memory efficiency, or another constraint—the better the result.”

This iterative approach can help you explore alternative solutions you might not have considered, leading to more robust and efficient code.

Master the art of specific prompts

The more specific your prompt, the better GitHub Copilot’s response. Instead of asking “What’s wrong with this function?” try “Why is this function returning undefined when the input is valid?” GitHub Copilot performs best when given clear, detailed queries—this applies whether you’re requesting a fix, asking for an explanation, or looking for test cases to verify your changes.

By crafting precise prompts and testing edge cases, you can use GitHub Copilot to surface potential issues before they become production problems.

Try a structured approach with progressive debugging

Next, try a step-by-step approach to your debugging process! Instead of immediately applying fixes, use GitHub Copilot’s commands to first understand the issue, analyze potential causes, and then implement a solution. This structured workflow—known as progressive debugging—helps you gain deeper insights into your code while ensuring that fixes align with the root cause of the problem.

For example:

  1. Start with the slash command /explain on a problematic function to understand the issue.
  2. Use the slash command /startDebugging to help with configuring interactive debugging.
  3. Finally, apply the slash command /fix to generate possible corrections.

📌 Use case: If a function in your React app isn’t rendering as expected, start by running /explain on the relevant JSX or state logic, then use /debug to identify mismanaged props, and finally, apply /fix for a corrected implementation.

Combine commands for a smarter workflow

Some issues require multiple levels of debugging and refinement. By combining commands, you can move from diagnosis to resolution even faster.

For example:

  • Use /explain + /fix to understand and resolve issues quickly.
  • Apply /fixTestFailure + /tests to find failing tests and generate new ones.

📌 Use case:

  • Fixing a broken function: Run the slash command /explain to understand why it fails, then use the slash command /fix to generate a corrected version.
  • Improving test coverage: Use the slash command /fixTestFailure to identify and fix failing tests, then use the slash command /tests to generate additional unit tests for the highlighted code.

Remember, slash commands are most effective when they’re used in the appropriate context, combined with clear descriptions of the problem, are part of a systematic debugging approach, and followed up with verification and testing.

Better together: AI tools with a developer in the pilot’s chair

GitHub Copilot is a powerful tool that enhances your workflow, but it doesn’t replace the need for human insight, critical thinking, and collaboration. As Greg points out, “GitHub Copilot can essentially act as another reviewer, analyzing changes and providing comments. Even so, it doesn’t replace human oversight. Having multiple perspectives on your code is crucial, as different reviewers will spot issues that others might miss.”

By combining GitHub Copilot’s suggestions with human expertise and rigorous testing, you can debug more efficiently while maintaining high-quality, reliable code.

Ready to try the free version of GitHub Copilot?
Start using GitHub Copilot today >

You can keep the learning going with these resources:
* Debug your app with GitHub Copilot in Visual Studio
* Example prompts for GitHub Copilot Chat
* GitHub Copilot and VS Code tutorials

The post How to debug code with GitHub Copilot appeared first on The GitHub Blog.

Announcing CDK Garbage Collection

Post Syndicated from Kaizen Conroy original https://aws.amazon.com/blogs/devops/announcing-cdk-garbage-collection/

The AWS Cloud Development Kit (CDK) is an open source framework that enables developers to define cloud infrastructure using a familiar programming language. Additionally, CDK provides higher level abstractions (Constructs), which reduce the complexity required to define and integrate AWS services together when building on AWS. CDK also provides core functionality like CDK Assets, which gives users the ability to bundle application assets into their CDK applications. These assets can be local files (main.py), directories (python_app/), or Docker images (Dockerfile). CDK Assets are stored in an Amazon Simple Storage Service (Amazon S3) Bucket or Amazon Elastic Container Registry (Amazon ECR) Repository that is created during CDK bootstrapping.

For CDK developers that leverage assets at scale, they may notice over time that the bootstrapped bucket or repository accumulated old or unused data. If users wanted to clean this data on their own, CDK didn’t provide a clear way of determining which data is safe to delete. To solve this problem, we are excited to announce the preview launch of CDK Garbage Collection, a new feature of the CDK that automatically deletes old assets in your bootstrapped Amazon S3 Bucket and Amazon ECR Repository, saving users time and money. This feature is available starting in AWS CDK version 2.165.0.

We expect CDK Garbage Collection to help AWS CDK customers save on storage costs associated with using the product while not affecting how customers use CDK.

Quickstart

CDK Garbage Collection is exposed as a CDK CLI command named gc. To use CDK Garbage Collection in its default configuration, run the following command on a terminal in your CDK application.

cdk gc --unstable=gc

The --unstable flag is meant to acknowledge that CDK Garbage Collection is in preview mode. This indicates that the scope and API of the feature might still change, but otherwise the feature is generally production ready and fully supported.

Walkthrough

CDK Garbage Collection works at the environment level, so it will attempt to delete isolated assets in the AWS account / region that you call it in. For the purposes of this walkthrough, you will be re-bootstrapping the environment with a custom qualifier so that you do not delete isolated assets before you are ready.

cdk bootstrap --qualifier=abcdef --toolkit-stack-name=CDKToolkitDemo

You now have a new bootstrap template under the name CDKToolkitDemo and bootstrap resources associated with it. Next, set up a CDK application with both Amazon S3 and Amazon ECR assets:

mkdir garbage-collection-demo && cd garbage-collection-demo
cdk init -l typescript app

Your next step is to replace the existing code In lib/garbage-collection-demo-stack.ts with the following CDK Stack:

import * as path from 'path';
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as lambda from 'aws-cdk-lib/aws-lambda';

export class GarbageCollectionDemoStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const fn1 = new lambda.Function(this, 'my-function-s3', {
    code: lambda.Code.fromAsset(path.join(__dirname, '..', 'lambda')),
    runtime: lambda.Runtime.NODEJS_LATEST,
    handler: 'index.handler',
    });

    const fn2 = new lambda.Function(this, 'my-function-ecr', {
    code: lambda.Code.fromAssetImage(path.join(__dirname, '..', 'docker')),
    runtime: lambda.Runtime.FROM_IMAGE,
    handler: lambda.Handler.FROM_IMAGE,
    });
  }
}

This creates two AWS Lambda functions, one which uses an Amazon S3 asset as its source code and one that uses an Amazon ECR image as its source code. You need to add the assets that are referenced to our CDK application. In lambda/index.js add a simple Lambda function:

exports.handler = async function(event) {
  const response = require('./response.json');
  return response;
};

And in docker/Dockerfile add a simple Docker image:

FROM public.ecr.aws/docker/library/alpine:latest Now you can run cdk deploy and get your initial CDK application set up in your AWS Account.
cdk deploy \
  --toolkit-stack-name=CDKToolkitDemo \
  --context='@aws-cdk/core:bootstrapQualifier=abcdef'

At this point you can check to make sure that assets have been correctly added into the bootstrapped Amazon S3 bucket and Amazon ECR repository:

cdk assets inside s3 bucket

Two objects exist in the bootstrapped Amazon S3 Bucket after the initial AWS CDK Deploy.

1 Image exists in the bootstrapped Amazon ECR Repository after the initial AWS CDK Deploy.

One image exists in the bootstrapped Amazon ECR Repository after the initial AWS CDK Deploy.

The output shows that you have the data you expect in both bootstrapped resources. The Amazon S3 Bucket also stores the json file of the AWS CloudFormation Template that was generated when you ran cdk deploy.

You can now simulate a typical CDK development cycle by updating both assets. Add a small change to the Amazon S3 asset that lives in lambda/index.js:

exports.handler = async function(event) {
  console.log('hello world');
  const response = require('./response.json');
  return response;
};

And do the same in docker/Dockerfile:

FROM public.ecr.aws/docker/library/alpine:latest
CMD echo 'Hello World'

You can now run cdk deploy again, and both assets should be re-uploaded under a new hash.

4 Objects exist in the bootstrapped Amazon S3 Bucket after the second AWS CDK Deploy.

Four objects exist in the bootstrapped Amazon S3 Bucket after the second AWS CDK Deploy.

2 Images exist in the bootstrapped Amazon ECR Repository after the second AWS CDK Deploy.

Two images exist in the bootstrapped Amazon ECR Repository after the second AWS CDK Deploy.

This output confirms that everything is as expected and the new assets have been added in. Because you are using new bootstrapped resources, you can still tell which resources are currently isolated and which are not. Right now, only the zipfile prefixed with 50f409b9 is referenced in AWS CloudFormation, and in Amazon ECR, only the image prefixed a5801b5b is referenced. That means that every other asset — 3 objects in Amazon S3 and 1 object in Amazon ECR — are isolated and can be deleted.

One item to note is the additional files in Amazon S3 that are not your local assets — these are AWS CloudFormation templates that are uploaded to Amazon S3 as an intermediary step before being sent to AWS CloudFormation. They are not needed after being copied over and are a perfect candidate for deletion via CDK Garbage Collection.

Here is where CDK Garbage Collection comes in. With the right parameters, you are able to clean up the isolated objects while not disturbing the assets that are actively in use.

cdk gc \
  --unstable=gc \
  --bootstrap-stack-name=CDKToolkitDemo \
  --rollback-buffer-days=0 \
  --created-buffer-days=0

Because you want to delete assets immediately, and not tag them for deletion later, set rollback-buffer-days to 0. You also want to delete assets that were just created, so be sure to set created-buffer-days to 0 as well. The default for created-buffer-days is 1.

 ⏳ Garbage Collecting environment aws://912331974472/us-east-1...
Found 3 objects to delete based off of the following criteria:
- objects have been isolated for > 0 days
- objects were created > 0 days ago

Delete this batch (yes/no/delete-all)? 

CDK Garbage Collection found three assets to be deleted from Amazon S3, which is to be expected. It prompts you to verify that you want to delete, which you do, so enter yes. You will then get this response:

[100.00%] 4 files scanned: 0 assets (0.00 MiB) tagged, 3 assets (0.02 MiB) deleted.

Followed by:

Found 1 image to delete based off of the following criteria:
- images have been isolated for > 0 days
- images were created > 0 days ago

Delete this batch (yes/no/delete-all)?

Once again, this is to be expected for Amazon ECR, so you enter yes again. You then get the response:

[100.00%] 2 files scanned: 0 assets (0.00 MiB) tagged, 1 assets (3.90 MiB) deleted.

At this point, CDK Garbage Collection is finished.

Details

CDK Garbage Collection exposes some parameters to help you customize the experience to your specific scenario. These options help you determine how aggressive you want your garbage collection to be.

  • rollback-buffer-days: this is the amount of days an asset has to be marked as isolated before it is eligible for deletion.
  • created-buffer-days: this is the amount of days an asset must live before it is eligible for deletion.

Rollback Buffer Days should be considered when you are not using cdk deploy and instead use a deployment method that operates on templates only, like a pipeline. If your pipeline can rollback without any involvement of the CDK CLI, this parameter will help ensure that assets are not prematurely deleted. When used, instead of deleting unused objects, cdk gc tags them with the current date. Subsequent runs of cdk gc will check this tag and delete the asset only after it has been tagged for longer than the specified buffer days.

Created Buffer Days should be considered if you want to be extra safe about assets that have been recently uploaded. When used, cdk gc filters out any assets that have not persisted that number of days. Note that this may not include assets that have been shared across multiple CDK Apps CDK reuses assets that are identical, and its possible that a recent deploy of a CDK App references an asset that was uploaded earlier.

For example, if you want to ensure that only assets that are over a month old and have been isolated for a week are deleted, you can specify:

cdk gc --unstable --rollback-buffer-days=7 --created-buffer-days=30.
Decision flow diagram of an asset as it gets audited for garbage collection.

Decision flow diagram of an asset as it gets audited for garbage collection.

Limitations of CDK Garbage Collection

During CDK Garbage Collection, we collect all stack templates to see what assets are in use. If garbage collection runs between the asset upload and stack deployment, there is a chance that it does not pick up the latest stack deployment, but it does pick up the latest asset. In this scenario, CDK Garbage Collection may delete those assets.

We recommend not deploying stacks while running CDK Garbage Collection. If that is unavoidable, setting --created-buffer-days will help as garbage collection will avoid deleting assets that are recently created. Finally, if you do experience a failed deployment, the mitigation is to redeploy, as the asset upload step will be able to re-upload the missing asset. In practice, this race condition is only for a specific edge case and unlikely to happen. However, we are working on a new method of storing CDK Assets to reduce the risk of this race condition. That work is being tracked in this issue.

Conclusion

CDK Garbage Collection helps users manage the lifecycle of unused CDK Assets in their AWS account. As users continue to scale with the CDK, tools like CDK Garbage Collection will play a crucial role in maintaining clean, efficient, and cost-effective cloud environments. We encourage CDK users to explore this feature, provide feedback, and incorporate it into their workflows to optimize their AWS resource management.

Implementing Cryptography in AI Systems

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2025/02/implementing-cryptography-in-ai-systems.html

Interesting research: “How to Securely Implement Cryptography in Deep Neural Networks.”

Abstract: The wide adoption of deep neural networks (DNNs) raises the question of how can we equip them with a desired cryptographic functionality (e.g, to decrypt an encrypted input, to verify that this input is authorized, or to hide a secure watermark in the output). The problem is that cryptographic primitives are typically designed to run on digital computers that use Boolean gates to map sequences of bits to sequences of bits, whereas DNNs are a special type of analog computer that uses linear mappings and ReLUs to map vectors of real numbers to vectors of real numbers. This discrepancy between the discrete and continuous computational models raises the question of what is the best way to implement standard cryptographic primitives as DNNs, and whether DNN implementations of secure cryptosystems remain secure in the new setting, in which an attacker can ask the DNN to process a message whose “bits” are arbitrary real numbers.

In this paper we lay the foundations of this new theory, defining the meaning of correctness and security for implementations of cryptographic primitives as ReLU-based DNNs. We then show that the natural implementations of block ciphers as DNNs can be broken in linear time by using such nonstandard inputs. We tested our attack in the case of full round AES-128, and had success rate in finding randomly chosen keys. Finally, we develop a new method for implementing any desired cryptographic functionality as a standard ReLU-based DNN in a provably secure and correct way. Our protective technique has very low overhead (a constant number of additional layers and a linear number of additional neurons), and is completely practical.

Security updates for Friday

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

Security updates have been issued by AlmaLinux (bind, bind9.16, and mysql:8.0), Debian (chromium, djoser, libtasn1-6, and postgresql-13), Fedora (python3.12 and vim), Red Hat (libpq, postgresql, postgresql:13, postgresql:15, and postgresql:16), Slackware (ark), SUSE (brise, chromium, emacs, google-osconfig-agent, grafana, grub2, helm, kernel, openssh, openssl-1_1, ovmf, postgresql13, postgresql14, postgresql15, and postgresql17), and Ubuntu (gnutls28, libtasn1-6, openssl, python3.10, python3.12, python3.8, and webkit2gtk).

Linus on Rust and the kernel’s DMA layer

Post Syndicated from corbet original https://lwn.net/Articles/1011197/

At the end of January we ran this article
on the discussions around a set of Rust bindings for the kernel’s
DMA-mapping layer. Many pixels have been expended on the topic since
across the net, most recently in this
sprawling email thread
. Linus Torvalds has now made
his feelings known
on the topic:

You are not forced to take any Rust code, or care about any Rust
code in the DMA code. You can ignore it.

But “ignore the Rust side” automatically also means that you don’t
have any *say* on the Rust side.

You can’t have it both ways. You can’t say “I want to have nothing
to do with Rust”, and then in the very next sentence say “And that
means that the Rust code that I will ignore cannot use the C
interfaces I maintain”.

The code in question seems highly likely to be merged for the 6.15 release.

Какво става: Бюджет, регулатори, Украйна

Post Syndicated from Емилия Милчева original https://www.toest.bg/kakvo-stava-byudzhet-regulatori-ukrayna/

Какво става: Бюджет, регулатори, Украйна

Коалиционното управление натисна газта с две приоритетни теми – бюджет 2025 и нови състави на ключови регулатори, докато България е изправена пред въпрос с геополитически заряд: ще остане ли в единство с ЕС за Украйна, или ще направи крачка назад?

Пушекът, който се вдига около бюджета, замъглява фигурите на кандидатите за регулаторните и контролни органи, кой ги предлага, кои имат най-големи шансове и чии интереси представляват. Разбираемо, първата тема привлича много по-голям интерес – над 550 000 са заетите в обществения сектор, още 2,04 милиона души са пенсионерите, болниците (държавни, частни и тук-там общински) се финансират от едно място – НЗОК, бизнесът разчита на капиталовата програма. 

Що се отнася до регулаторите, които контролират всички процеси и бизнеси за милиарди, предполага се, че мачовете са свирени, предвид скоростно стартираните процедури за избор и едноседмичния срок за номинации, още преди да бъде внесен бюджетът и да са известни управленските намерения. Но и предишните процедури не са се отличавали с прозрачност, дълбочина и стремеж за по-широко обществено обсъждане. Фигурите, които изплуват като номинирани, показват познатия стремеж за овладяване от сили, вече работили и работещи за познати задкулисни интереси. Надежда за обществена полза няма.

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

Игрички с пенсиите 

Когато едно правителство публикува около полунощ проектобюджета си и след 11 часа промени основен разход, засягащ 1/3 от населението, в създалото се напрежение ли е причината, или в „издърпаните ушички“? Така олигархът и лидер на ДПС – Ново начало Делян Пеевски си приписа заслугите за променената позиция на властта да повиши пенсиите на всичките над 2 милиона пенсионери с 8–9%, вместо само най-ниските. 

Бързичко се коригираха и ги поздравявам. Пенсионерите ще имат своите пенсии. Отпушиха ушичките и така трябва да чуват. Ако не – протести до дупка от „Ново начало“ и всеки път ще ги дисциплинирам.

Съпредседателят на „Продължаваме промяната“ Кирил Петков смята, че промяната е тяхна заслуга

Благодарение на бързата реакция на Асен (Василев – б.а.) и цялата коалиция, нормалното увеличение на пенсиите бе възстановено само за няколко часа. Пенсионерите са защитени.

Акцията обаче е по-скоро реверанс към коалиционния партньор БСП и нейното прясно избрано ръководство, така се уплътнява ролята ѝ в управлението като негов „социален гарант“. В замяна БСП вече говори за еврозоната. Странно е, че проектобюджет, разгледан по-рано същия ден от Съвета за съвместно управление, в който участват представители на четирите формации (ГЕРБ–СДС, БСП–ОЛ, ИТН и ДПС–ДПС), предизвиква напрежение следващата сутрин с разхода за пенсии. После всичко се разви предсказуемо – управляващите обявиха, че от 1 юли всички пенсии ще се повишат по т.нар. швейцарско правило с 8,6%, а Надзорният съвет на НОИ тутакси се събра и го потвърди. 

За увеличението от 1 юли на всички пенсии са необходими още 427 млн. лв. освен планираните в бюджета близо 200 млн. Остава министърката на финансите Теменужка Петкова да ги намери, но БНБ вече обяви, че ще внесе 800 млн. лв. в бюджета тази година, което е по-високо от планираната вноска от 550 млн. лв. Според социалния министър Борислав Гуцанов необходимите за увеличението средства най-вероятно „ще дойдат от инфраструктурните проекти“, другият вариант е заем. 

Предвид традиционното неизпълнение на капиталовите разходи от няколко години насам – не повече от 50%, предвидените за 2025 г. 13,8 млрд. лв. може да бъдат намалени. (Другият вариант е дълг.) За мащабни проекти работна ръка в България трудно може да се намери – и високо-, и нискоквалифицирана. А ако започне строителството на седми и осми блок на АЕЦ „Козлодуй“, със сигурност ще трябва да се внася отвън. 

Едно е ясно – няма да се реже от увеличените разходи за заплати на всички в МВР, които струват над 1,2 млрд. лв. Нито от повишените възнаграждения за военните или държавната администрация. 

И всички са доволни. Бюджетът е добър, защото има… бюджет. Реформи няма. Пенсионерите в МВР остават, увеличението на заплатите ще е за всички, не само за редовите полицаи, както предложи ПП–ДБ. А Бойко Борисов, лидерът на партията, с чийто мандат управлява правителството и са излъчени ключовите министри, в това число и премиерът, зададе и хоризонта на властта.

Стоим в това правителство заради еврозоната [очаквана от 1 януари 2026 г. – б.а.].

В превод: разпределяме регулаторите и съдебната система, избират се главен прокурор и председател на ВАС, изхарчва се бюджетът – и избори

Регулатори на втори план

В шумотевицата около парите за пенсионерите потънаха новините за първите номинации за регулаторите, станали известни тази седмица. Изборът им, с изключение на квалифицираното мнозинство, нужно за ВСС и Инспектората, ще става с половината от гласовете на присъстващите в залата депутати. За втори мандат като подуправител за „Банков надзор“ БНБ предлага Радослав Миленков, който оглавяваше Фонда за гарантиране на влоговете след фалита на КТБ. Неговата лоялност към Пеевски не е тайна – и не само заради ролята му в разпределението на средствата, получени от активите на фалиралата банка.

За управител на НЗОК, която тази година ще разпределя бюджет от 9,45 млрд. лв. (от които 4,1 млрд. са за болниците и 2,5 млрд. – за лекарства), само ГЕРБ–СДС издигна кандидат, което означава и сигурна победа. Това е доскорошният заместник-министър на здравеопазването доц. Петко Стефановски, който заемаше този пост и в правителството на т.нар. сглобка, и в служебния кабинет на Димитър Главчев. Според ПП–ДБ мандатът на настоящия управител на НЗОК изтича през август, не през март, но парламентарната Здравна комисия откри процедурата. 

Изглежда, че ГЕРБ ще вземе и председателското място в Комисията по енергийно и водно регулиране (КЕВР) с кандидата си – настоящия директор на Дирекция „Електроенергетика и топлоенергетика“ в регулатора Пламен Младеновски. И макар за втори път най-голямата партия да го предлага за поста, лидерът не го познавал.

Не го познавам, Делян Добрев ги предлага.

Конкурент на Младеновски за поста председател е Меглена Русенова, номинирана от ПП–ДБ и за председател, и за енергиен комисар. Прогнозите са, че и двамата ще влязат в КЕВР, но Русенова, подкрепена от енергийния бранш, като комисар. В момента тя е член на управата на Фонд „Сигурност на електроенергийната система“ и е в борсовия съвет на Българската независима енергийна борса.

Конкуренция на Русенова за енергиен комисар е Таско Ерменков, издигнат от БСП – Обединена левица. Останалите номинации са за воден комисар – на ветерана в политиката Ремзи Осман от ДПС–ДПС и на Александра Богоявленска, подкрепена от ИТН, с опит в „Напоителни системи“. Но и БСП, и партията на Слави Трифонов вече имат по един комисар, така че прогнозите са Доган и сие да получат креслото.

За един от ключовите регулатори, каквато е Комисията за защита на конкуренцията (КЗК), изплува името на Росен Карадимов, последния председател на Комсомола при Живковия режим, шеф на кабинета на премиера Сергей Станишев при Тройната коалиция, който влезе в Българската банка за развитие (ББР) благодарение на служебния кабинет на президента Радев през 2022 г. По-късно стана и министър на иновациите в служебното правителство на Димитър Главчев. Човек на „ти“ с олигарха Делян Пеевски, а изглежда, не само с него, изскача и по делото КТБ в свидетелски показания, че „идвал всеки месец за 10 000 евро на ръка“. 

През януари тази година сайтът за разследваща журналистика BIRD.bg съобщи, че братът на министъра на спорта Иван Пешев – Санко Пешев, е в управлението на дружеството „Интернешънъл инвестмънтс“ ЕАД, за което има индиректни връзки, че е свързано с Пеевски и Йордан Цонев, депутат от ДПС – Ново начало. През 2016 г. компанията е получила заем от 115 млн. лв. от ББР за купуването на хотел на Халкидики. Преди месец по bTV Карадимов защити заема – бил редовно обслужван, а на въпрос дали е вярно, че няма обезпечения, заяви, че това не е единственият начин да се обезпечи един кредит.

Издигнат от БСП за шеф на КЗК – органа, който разрешава или отказва сливания и придобивания и следи за картели и нелоялни търговски практики, засега Карадимов изглежда почти сигурен. Един от шефовете на КЗК Петко Николов изкара на поста от 2003 г. до 2016 г., а настоящият – Юлия Ненкова, майка на депутата от ГЕРБ Александър Ненков, кара 9-та година.

Но и ПП–ДБ имат номинации за КЗК – и за председател, и за член, и тя е на доц. д-р Иван Стойнев, преподавател по европейско право в Софийския университет, специалист по конкурентно право, и на доктора по икономика Юлиан Войнов, който има опит в КЕВР и в Министерството на финансите. Стойнев чете лекции и в европейски университети.

Номинациите тепърва ще изненадват, гласуванията по тях – също. На ГЕРБ е единствената номинация за друг голям регулатор, какъвто е Комисията за финансов надзор – издигат дългогодишния директор на Българската фондова борса Васил Големански. Избраният за председател предлага други трима за свои заместници. 

За Фискалния съвет ГЕРБ номинира за председател бившия си финансов министър Симеон Дянков, а за членове – бившия зам.-министър на финансите Любомир Дацов, който и сега е в Съвета, и Десислава Калчева, която също е работила там, а сега преподава в Софийския университет. Предложението на ИТН е Атанас Атанасов, сега главен експертен сътрудник във Фискалния съвет. БСП издига Богомил Манов, също университетски преподавател, а ДПС на Доган – бившия депутат Ердоан Ахмедов.

Липсата на кворум попречи да бъде открита процедурата за попълване на 11-членната парламентарна квота във Висшия съдебен съвет. Управляващото мнозинство – ГЕРБ, БСП, ИТН и ДПС–ДПС, не успя да събере мнозинство. Да се чете: още не е постигнато разбирателство зад кулисите за кандидатите. Постигне ли се, кворумът веднага ще се намери. От ГЕРБ обвиниха ПП–ДБ, че заедно с „Възраждане“ са провалили кворума.

Лидерът на ДСБ Атанас Атанасов напомни, че мнозинството отговаря за кворума.

Още едно правило от политиката – че подкрепата се търси, а не се носи на тепсия. Така че тези, които управляват, които набутаха, извинявайте за израза, всички тези точки, бързайки да се окомплектоват регулаторите с техните хора, да си потърсят подкрепата, нали. Ние сме готови за разговори.

България – изгубена за Украйна

Геополитическото напрежение също скрива управленските игри, при които точно определени хора трайно биват намествани на определени места за години напред. На преден план е невъобразимата патаклама около изпращането на български войници в Украйна, без никой да е искал такива. Потвърдиха го министрите на външните работи и на отбраната Георг Георгиев и Ангел Запрянов, извикани на изслушване в парламента. 

Никой никъде и по никакъв начин не е подлагал на обсъждане въпроса за изпращане на военни контингенти в Украйна за участие в бойни действия между Русия и Украйна.

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

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

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

Премиерът Росен Желязков обаче прояви гъвкавост, заявявайки, че ЕС трябва да остане единен и предвидим в цялостната си подкрепа за Украйна. Направи го чрез видеоконферентната връзка, с която участва във втората извънредна среща за Украйна, чийто домакин беше френският президент Еманюел Макрон. Европа и Украйна трябва да бъдат на преговорната маса, беше онова, което заяви. 

А в петъчния ден единствено ПП–ДБ излезе с декларация, огласена от Явор Божанков, във връзка с третата година от началото на войната на Руската федерация срещу Украйна.

Цивилизационният избор на България ще бъде поставен пред изпитание в следващите месеци. Нашият национален интерес е траен мир, а той се гради само на истината – Украйна е жертва, решение на този конфликт без нея и без Европа е невъзможно. 

Изглежда, че всичко си остава постарому: властта „делка“ постове, бюджети и влияние на фона на геополитическо напрежение и не особено ефективен бойкот на търговските вериги по примера на съседните балкански държави. Пенсионерите са доволни, регулаторите – уредени, а големият въпрос за Украйна е удавен в политически шум.

Но поне към еврозоната държавата се движи.

България в епохата на автократите

Post Syndicated from original https://www.toest.bg/blgharia-v-epohata-na-avtokratite/

България в епохата на автократите

През 2022 г. журналистът и главен коментатор с ресор външни работи на Financial Times Гидиън Рахман издава книгата „Епохата на автократите. Как култът към лидера заплашва демокрацията по света“. Преводът на български идва през 2024-та, поредната година на политическа и социална криза в България, но също така и месеци преди преизбирането на Доналд Тръмп за президент на САЩ. Събитие, чиято календарна близост с формирането на правителство в България предизвика не само остроумни коментари, но и прекалено много асоциации между начините, по които Тръмп заяви и започна да практикува политика в първите си дни като президент, и българския политически и обществен живот, който, макар и често наподобяващ определена политическа стилистика, има своя съвсем жив опит по отношение на заявките от Белия дом.

В „Епохата на автократите“ Рахман, в лек и четивен стил с изключително висока информационна стойност, щрихира обстоятелствата, в които най-изявените автократични лидери в света през последните 20–25 години успяват да се застопорят на водещи места в държавите си. Тук няма да правя резюме на тази информация и ще оставя удоволствието от книгата на читателя. Ще изведа обаче няколко ключови точки, които правят остро впечатление на едно съзнание, социализирано в българската реалност на Прехода и солидарно с ценностите на либералната демокрация, подложена на неистови и често безумни атаки по неясни, но пък явно силно мотивиращи причини. С помощта на тези точки, които ще разглеждам като индикатори, всеки ще може да направи поне повърхностна преценка близо ли е България до изпадане в автократичен режим. 

Първи индикатор: завладяването на медиите

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

Завладяването на медиите си има и много конкретни измерения, като например рязката промяна в душата на един бивш шеф на нюзрума на bTV, който за няколко часа се превърна от журналист в политическо острие, и това бе представено в публичното пространство като нещо нормално.

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

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

Втори индикатор: върховенството на правото

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

България със сигурност не е измислила топлата вода на клиентелизма, фина форма на корупция, чиито апологети понякога я наричат „усещане за корупция“ или обвиняват другите в същото (без доказателства), сякаш това извинява собствените им прегрешения. Източването на държавните ресурси прекалено често става без институционална реакция, защото в голяма степен всичко е практически законно или просто няма кой да го разследва. Ако частните болници не са задължени да пускат обществени поръчки, за да купуват лекарства с държавни пари, защо да го правят? Ако Българска банка за развитие може без последствия да подпомага олигарси със стотици милиони заеми, обезпечени фиктивно, защо да не го прави? Ако можете да изградите път с по-малко материали от необходимото, защо да не си спестите разходите? Така де, да ви ги спестят.

Отвличането на законността поставя цялото общество в плен на частни интереси.

Ярка е картината на Тръмп, до когото гордо е застанал олигархът Мъск, въртящ пламенна реч за демокрацията, докато невръстният му син сякаш се опитва да изгони президента от Овалния кабинет, защото не му е там мястото. И може би има право. Тръмп е първият президент на САЩ, избран на поста, след като е осъден по наказателно дело – подкуп на порно звезда, за да си мълчи за общите им похождения (консерватизмът е особено нещо). До този етюд поставяме българския олигарх Делян Пеевски, чието присъствие в списъка за значима международна корупция „Магнитски“ по никакъв начин не притеснява местната Темида. Тя дори не си прави труда да се самосезира, за да разсее всякакви обществени съмнения в изрядността на корпулентния фактор, харчещ стотици хиляди за наеми на къщи и автомобили. 

Примерите са безкрайно много, но избирането на Тръмп за втори мандат сякаш даде високото самочувствие на българските корупционери да се консолидират и да се върнат към практиките си отпреди протестите през 2020 г. На този фон сякаш нормални изглеждат покриването и конформизмът. А това е най-сигурният път към автократизъм, чието лице може и да не е Пеевски, тъй като не само той има своите антидемократични апетити към властта. Но другият все още изпълнява ролята на президент.

Трети индикатор: популизъм и демагогия

Ако не е войната и вкарването в нея на българската армия, която в същото време и не съществува („закрита“ от лошите западни „колонизатори“), ще са джендърите, които така и никой не успя да каже какво са. Въпреки че джендъри не сме виждали, но и не знаем какво са, правата им ще са за сметка на нашите, които и без това също ги няма. Да не забравяме и главозамайващия външен дълг, който, макар и най-малък в ЕС, ще пороби мощната ни левова икономика, а внуците ни ще плащат за пенсиите на родителите ни. Този битовистичен транспоколенчески апокалипсис настъпва всеки път, в който либерал, имал неблагоразумието да се роди в нелош квартал, си купи соево лате. Съвсем очаквано срещу тази мерзост следва да се изправи цялото световно тоталитарно войнство, което ще върне принципите на „един народ – един вид хляб“.

Страховете, които се хранят от незнанието, са прекрасен повод за героичната поява на спасител, който ще върне „нормалността“, „стабилността“ или пък истинското кисело мляко, равносилно на национална идентичност (поради липса на други личностни качества извън нездравия апетит към млечни продукти).

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

Усещането, че с връщането на Тръмп ще се върне и някакъв изгубен рай на нормалност в България, е натрапчиво, особено в определени среди, които объркаха либерализма със слободията и консерватизма с фашизма, за да целунат ръка на тъкмо обратното на това, което си мислят, че ще получат. Като например по-ниски цени в магазина след вдигането на цените на вносни стоки през митата. Или пък нормалност и стабилност с връщането на изцяло калинковата институционалност. Или пък по-истинска (да се разбира вкусна) информация, ако бъде победен Сорос, докато Пеевски, лично допринесъл преди десетилетие за въвеждането на антидемократичната и проруска пропаганда в България през собствените си медии, громи отново „соросоидите“, след като през 2024 г. беше виден борец срещу нея, изчаквайки смяната на караула в Белия дом. 

Защо ни е всичко това?

Тези три индикатора изобщо не са изчерпателни. Към тях трябва да добавим и култа към личността, употребата на конспиративни теории и други, но големият проблем с автократичния стил на политическо управление е следният: докато си мислим, че там просто има едни странни хора, които са леко корумпирани, леко нарцистични, леко послъгват, крачката към суспендирането на демокрацията е много малка. 

Добър пример е и последният индикатор, който ще спомена: 

Откраднатите избори

Парламентарните избори през есента на 2024 г. бяха показно за злоупотреби от всякакъв порядък. Злоупотреби, които въпреки яркия печат върху видеа и документи не предизвикаха почти нищо повече от обществено възмущение. Определени хора през медиите ни обясниха, че такива неща няма, докато в същото време са нещо нормално. Институциите на справедливостта продължават да си измиват ръцете с дребните търговци на гласове и влияние, които сякаш сами си поръчват и плащат, докато обоснованите хипотези за партийни поръчители остават да се бият в мач с купен съдия, публика и охрана на входа. А популистите и демагозите успешно замитат тези случаи чрез подмяна на темата, с „всички са еднакви“ и със страховете, че поне имаме избори, за разлика от някои други. За да стигнем до квинтесенцията на последните поне 16 години в България:

„Не пипайте организираната престъпност, ще настане хаос“

Мафията не обича хаоса. Автокрациите също. А сега, след избора на Доналд Тръмп и последвалите пируети на корпулентни български политици според новия вятър от Вашингтон, и абоминацията на лепкаво удобство между олигарси, и политическата им клоунада, и сърдитата публика получиха фалшива надежда, че всички онези, които създават „хаоса“, ще бъдат халосани и зашеметени от мощния автократичен фактор в Белия дом. Че той ще бъде светлото възмездие срещу сатанизма на соевото лате и хоумофиса, докато най-много да донесе индулгенция, комфорт и просперитет на едни най-обикновени балкански престъпници. 

Да поздравим обнадеждените с връщането на пластмасовата сламка – последния пирон в ковчега на либеразлима. 

The collective thoughts of the interwebz