6 083
Subscribers
No data24 hours
-77 days
-5530 days
Posts Archive
6 083
Нейросети позволяют программистам работать быстрее, но при этом пишут в 3-4 раза больше кода и создают в 10 раз больше проблем безопасности
Компания Apiiro, занимающаяся безопасностью приложений, сообщает, что проанализировала код из десятков тысяч репозиториев и код нескольких тысяч разработчиков, связанных с предприятиями из списка Fortune 50, чтобы лучше понять влияние помощников ИИ-разработчиков кода, таких как Claude Code от Anthropic, GPT-5 от OpenAI и Gemini 2.5 Pro от Google.
Компания обнаружила, что разработчики, использующие ИИ, создают в 3-4 раза больше кода, чем их коллеги, работающие без него, но при этом создают в 10 раз больше проблем безопасности.
По состоянию на июнь 2025 года код, сгенерированный ИИ, ежемесячно вносил более 10 000 новых «проблем безопасности» в набор данных репозитория Apiiro, что в 10 раз больше, чем в декабре 2024 года, сообщает компания.
Помощники ИИ, генерирующие код, также имели тенденцию упаковывать больше кода в меньшее количество запросов на извлечение, что усложняло проверку кода, поскольку предлагаемые изменения затрагивали больше частей кодовой базы.
Помощники ИИ-кода не совсем бесполезны. Они сократили количество синтаксических ошибок на 76%, а логических — на 60%, но за счёт более серьёзных потерь — на 322% увеличилось количество путей повышения привилегий и на 153% увеличилось количество архитектурных недостатков. Другими словами, ИИ исправляет опечатки, но создаёт бомбы замедленного действия
Анализ Апииро также показал, что разработчики, использующие ИИ, раскрывали конфиденциальные учётные данные и ключи в облаке почти вдвое чаще, чем их коллеги-самоучки.
Выводы компании перекликаются с результатами других исследователей. Например, в мае 2025 года учёные из Университета Сан-Франциско, Института искусственного интеллекта Vector (Канада) и Массачусетского университета в Бостоне определили, что итеративное улучшение образцов кода с помощью моделей ИИ снижает безопасность.
https://www.theregister.com/2025/09/05/ai_code_assistants_security_problems/
6 083
Линус Торвальдс поясняет Биллу Гейтсу, что значит "Vibe" в словосочетании "Vibe Coding"
(Very Inefficient But Entertaining - Очень неэффективно, но занимательно)
6 083
9 рекомендаций по работе с Docker, которые помогут оптимизировать работу с контейнерами:
(продолжение предыдущего поста)
1. Используйте официальные образы
Использование официальных образов Docker обеспечивает безопасность, надежность и регулярные обновления. Пример:
FROM node:14-alpine.
2. Используйте конкретные версии
Указание конкретной версии образа предотвращает неожиданные изменения. Пример: FROM node:14.17.0-alpine3.13.
3. Многоступенчатые сборки
Многоступенчатые сборки уменьшают размер финального образа, исключая инструменты сборки и зависимости. Пример:
FROM build-image AS build
# Build steps
FROM production-image
COPY --from=build /app /app
4. Используйте файл .dockerignore
Файл .dockerignore исключает ненужные файлы из контекста сборки, ускоряя процесс и уменьшая размер образа. Пример содержимого:
node_modules npm-debug.log5. Наименьшие привилегии Запуск приложений с правами непривилегированного пользователя повышает безопасность. Пример:
RUN useradd -m myuser
USER myuser
CMD node index.js
6. Используйте переменные окружения
Использование переменных окружения увеличивает переносимость приложения между средами. Пример:
ENV APP_HOME /app
WORKDIR $APP_HOME
7. Порядок инструкций важен для кэширования
Порядок инструкций в Dockerfile влияет на эффективность кэширования. Рекомендуется начинать с менее изменяемых команд. Пример:
FROM debian
RUN apt-get update
RUN apt-get -y install openjdk ssh vim
COPY . /app
CMD ["java", "-jar", "/app/target/app.jar"]
8. Имена для образов
Назначение имен для образов помогают организовать и управлять образами. Пример:
LABEL maintainer="name@example.com"
LABEL version="1.0"
9. Сканирование образов
Проверка образов на уязвимости с помощью команды docker scan помогает предотвратить проблемы безопасности.
#docker6 083
9 рекомендаций по работе с Docker, которые помогут оптимизировать работу с контейнерами
(продолжение в следующем посте)
6 083
9 базовых архитектурных паттернов интеграции систем:
(описание к предыдущему посту)
1. Peer-to-Peer (P2P)
Децентрализованная сеть, где каждый участник (пир) может быть одновременно отправителем и получателем данных. Пример: обмен файлами через BitTorrent.
2. API Gateway
Центральный компонент, который управляет входящими запросами, выполняет маршрутизацию, авторизацию, ограничение скорости и другие задачи. Пример: Spring Cloud Gateway.
3. Pub-Sub (Publish-Subscribe)
Модель обмена сообщениями, где издатели отправляют сообщения в темы, а подписчики получают их. Пример: системы уведомлений.
4. Request-Response
Классическая модель клиент-сервер, где клиент отправляет запрос, а сервер возвращает ответ. Пример: HTTP-запросы.
5. Event Sourcing
Подход, при котором система сохраняет все изменения состояния в виде последовательности событий. Пример: журнал событий для восстановления состояния системы.
6. ETL (Extract, Transform, Load)
Процесс извлечения данных из источников, их преобразования и загрузки в хранилище. Пример: миграция данных между системами.
7. Batching
Обработка данных пакетами для повышения эффективности. Пример: массовая обработка платежей.
8. Streaming Processing
Обработка потоков данных в реальном времени. Пример: анализ логов приложений.
9. Orchestration
Управление последовательностью выполнения задач между сервисами. Пример: координация микросервисов в сложной системе.
6 083
Google Meet перестал работать в России: что дальше?
📞🏃♂️ Сперва в Telegram и WhatsApp заблокировали звонки, а теперь и Google Meet сбоит. Видеозвонки не проходят ни с телефонов, ни с ПК.
Для бизнеса это означает:
- сорванные онлайн-совещания и встречи с клиентами;
- срыв собеседований и переговоров с подрядчиками;
- потерю времени и простои в коммуникациях команд;
- срочный поиск альтернативы для видеозвонков и онлайн-летучек.
Что делать бизнесу, когда зарубежные сервисы один за другим перестают работать в России?
✅ В МТС Линк:
видеозвонки, чаты, онлайн-доски и совещания без сбоев и ограничений 40 минут;
дата-центры в России, соответствие 152-ФЗ и 149-ФЗ;
готовые интеграции;
русскоязычная техподдержка 24/7.
Проверьте, подходит ли МТС Линк вашей компании
Узнать больше
#реклама 16+
mts-link.ru
О рекламодателе
6 083
Шаблон повторных попыток (Retry Pattern)
(описание к предыдущему посту)
Это один из самых простых способов повысить отказоустойчивость системы. Как это работает:
1. Не выполняйте повторные попытки бесконечно
Повторные попытки имеют свою цену.
* Слишком мало попыток: вы можете сдаться при временных сбоях (например, кратковременном сетевом сбое).
* Слишком много попыток: вы перегружаете систему, увеличиваете время отклика и маскируете реальные проблемы.
Практическое правило: обычно оптимальным является 3 попытки. После этого более вероятно, что вы имеете дело с реальным сбоем, а не с временным.
2. Используйте экспоненциальную отсрочку
Время повторных попыток важнее их количества.
* Без таймата: все неудачные запросы повторяются мгновенно → увеличивается перегрузка системы.
* С экспоненциальной отсрочкой (таймаутом): время ожидания увеличивается (например, 1 с → 2 с → 4 с → 8 с), давая системам время на восстановление.
Это предотвращает превращение повторных попыток в проблему.
3. Выполняйте повторные попытки только при временных ошибках
Не каждая ошибка заслуживает повторной попытки.
* Подходящие для повтора: 408 (тайм-аут), 5xx (сервер перегружен).
* Неподходящие для повтора: 400 (неверный запрос), 403 (запрещено).
Ошибки, подлежащие повторным попыткам, носят временный характер. Ошибки, не подлежащие повторным попыткам, связаны с проблемами проектирования или данных; здесь требуется исправление, а не повторная попытка.
Если торговый автомат показывает «временно не работает», попробуйте позже. Если он говорит «вставьте 5 долларов, а не 1», повторная попытка не поможет.
4. Комбинируйте с паттерном Circuit Breaker (предохранитель)
Одни только повторные попытки могут вызвать каскадные сбои, если сервис действительно не работает. Circuit Breaker добавляет защиту:
* Отслеживает частоту сбоев.
* Открывается, когда количество сбоев превышает порог → останавливает повторные попытки на некоторое время.
* Закрывается, когда состояние улучшается.
6 083
Ищу желающих заполнять карточки товаров на ВБ!
Работа полностью на удаленке с зп до150 000 рублей в месяц.
Без опыта, нужен только телефон, занятость 3-6 часов в день.
Всему обучат на бесплатном курсе и после возьму на работу:
✅ 3 дня уроков по 30 минут
✅ Домашки с проверкой и оплатой бонусами
✅ Плачу 10 тыс за каждую выполненную домашку
Все кто пройдет курс, получат сертификат от школы с образовательной лицензией.
⚡ Набор заканчивается завтра.
👍 Для регистрации жмите кнопку "Зарегистрироваться"
Зарегистрироваться
#реклама 16+
course.wildmanager.ru
О рекламодателе
6 083
Проект Primes - проект от бывшего инженера Microsoft для вычисления быстроты/эффективности различных языков программирования на основе вычисления простых чисел
https://github.com/PlummersSoftwareLLC/Primes
Результаты по различным языкам и для разных комбинаций и архитектур можно постротеть здесь https://plummerssoftwarellc.github.io/PrimeView/?rc=50&rs=0&fr=&sc=rc&sd=True
В целом такие языки C/ C++ / Zig / Rust по тесту являются наиболее быстрыми
6 083
В Госдуме опровергли слухи о том, что MAX будет "оформлять доносы"
Депутат Немкин заявил, что мессенджер MAX не может оформлять доносы с помощью ИИ
"На смартфонах большинства граждан давно установлены сервисы крупнейших компаний и госструктур — Сбер, ВТБ, "Госуслуги". За все годы их работы не было ни одного факта использования встроенного ИИ для "доносов" или отслеживания личных действий пользователей", — добавил Немкин.
Как он пояснил, распространение подобных мифов — это способ посеять недоверие к отечественным цифровым продуктам.
"На практике же MAX проходит те же самые проверки безопасности и соответствует тем же правилам, что и другие популярные приложения. Его главная задача — обеспечить удобную и защищённую коммуникацию, а не заниматься слежкой", — заключил депутат.
https://ria.ru/20250903/max-2039498307.html
6 083
Схема работы PostgreSQL, которая включает основные компоненты и процессы системы
(продолжение предыдущего поста)
1. Web Application: Веб-приложения подключаются к PostgreSQL через соединения (Connection 1, Connection 2, Connection 3). Каждое соединение создает фоновый процесс (Background Process), который обрабатывает запросы.
2. Фоновые процессы (Background Processes):
- Эти процессы работают в фоновом режиме и выполняют задачи, такие как обработка запросов, управление буферами и синхронизация данных.
- Они используют разделяемую память (Shared Memory) для обмена данными между процессами.
3. Разделяемая память (Shared Memory):
- Содержит буферы (Shared Buffers), которые используются для временного хранения данных.
- Включает WAL Buffers для буферизации журнала предзаписи (Write-Ahead Logging).
- Также содержит CLOG Buffers и Temp Buffers для управления транзакциями и временными данными.
4. Вспомогательные процессы (Auxiliary Processes):
- BG Writer: Записывает данные из буферов в файлы данных.
- WAL Writer: Записывает журнал предзаписи (WAL) на диск.
- Auto Vacuum: Автоматически очищает ненужные данные.
- Checkpointer: Обеспечивает целостность данных при перезагрузке системы.
- Stats Collector: Собирает статистику о работе системы.
- SysLogger: Записывает системные журналы.
- Archiver: Архивирует данные.
- Replication Launcher: Управляет репликацией данных.
5. Postmaster Process:
- Главный процесс, который управляет всеми другими процессами и обеспечивает их взаимодействие.
6. Физические файлы:
- Data Files: Файлы данных, где хранятся таблицы и другие объекты.
- WAL Files: Файлы журнала предзаписи.
- Archive Files: Архивированные файлы.
- Log Files: Системные журналы.
6 083
Распространенные три стратегии замещения кеша:
FIFO (First In, First Out) — стратегия, при которой замещается самая старая строка в кэше. Это означает, что данные, которые были добавлены в кэш первыми, будут удалены первыми.
LRU (Least Recently Used) — стратегия, при которой замещается строка, к которой дольше всего не было обращений. Это позволяет сохранять наиболее часто используемые данные в кэше.
Time Aware LRU — модифицированная версия LRU, которая учитывает время последнего обращения к данным. Это может быть полезно для оптимизации производительности в системах с переменной частотой использования данных.
6 083
+1
Вебинар - "Оптимизация маркетинга с помощью нейросетей!"
Хватит «гореть» на рутине! ⚡
Узнайте на бесплатном вебинаре, как ИИ сократит вашу рутинную работу на 80%.
📅 10 сентября | 19:00 (МСК)
Вы получите практические инструкции, как:
- Автоматизировать контент и анализ аудитории
- Генерировать креативные идеи за секунды
- Создать своего AI-аватара без программирования
Для маркетологов, SMM- и контент-специалистов.
💰 Подарок после регистрации: «Гид по созданию цифрового аватара».
Превратите ИИ в вашего неутомимого помощника!
Зарегистрироваться
#реклама 16+
ed.bonnieandslide.com
О рекламодателе
6 083
Спрос на разработчиков ПО для роботов в этом году увеличился на 72% на фоне сокращения потребности работодателей в программистах.
Всего за I полугодие 2025 г. российские компании в сфере робототехники разместили 5,3 тыс. вакансий, тогда как за весь 2024 г. было опубликовано 9 тыс., а за весь 2023 г. — 6,9 тыс.
Зарплатные предложения для специалистов по робототехнике растут вне зависимости от опыта работы
Среднее зарплатное предложение увеличилось на 13% и составило 90, 44 тыс. руб. в месяц. Сотрудникам без опыта работы в I полугодии 2025 г. предлагали 71,02 тыс. руб. (плюс 13% год к году); с опытом больше одного года работы — 76,98 тыс. (плюс 8% год к году).
Зарплаты, предлагаемые опытным специалистам, выросли намного больше — на 23% для тех, чей опыт составляет более трех лет (до 109, 64 тыс. руб.), и сразу на 47% для имеющих опыт более пяти лет (до 149,03 тыс. руб.).
Среди наиболее востребованных навыков у кандидатов являются программирование на языках C++ и Python, математика, навыки работы с искусственным интеллектом, с мехатроникой и управлением.
https://www.cnews.ru/news/top/2025-09-03_v_rossii_vzletel_spros_na
6 083
Хочется перевернуть календарь, а календаря нет, можно создать себе в консоле простенький календарь на языке Python #python
6 083
Уровни изоляции в базах данных
(продолжение предыдущего поста)
📌 Уровни изоляции — это фундаментальное понятие в управлении параллельным доступом к базам данных.
Некоторые предварительные сведения:
* ACID — набор свойств, гарантирующих надёжность транзакций в базе данных.
* Хотя многие базы данных заявляют о соответствии требованиям ACID, по умолчанию они часто реализуют более слабые уровни изоляции.
* Различные приложения предъявляют разные требования к изоляции.
* Некоторые могут отдавать приоритет производительности и допускать определённые несоответствия, в то время как другие могут требовать строгой целостности данных.
* Параллелизм, то есть одновременное выполнение нескольких транзакций, создаёт серьёзные проблемы для систем данных.
* Если не управлять им должным образом, это может привести к таким аномалиям, как:
* грязное чтение;
* неповторяемое чтение;
* фантомное чтение.
📌 Уровни изоляции определяют, насколько транзакция защищена от влияния параллельных транзакций.
Давайте поговорим о различных уровнях изоляции:
1. Read Uncommitted (самый низкий уровень изоляции):
* транзакции не изолированы друг от друга;
* все транзакции могут видеть эффекты других параллельных транзакций, даже если эти транзакции ещё не завершены;
* данные, считанные на этом уровне изоляции, могут быть отменены позже, что приводит к грязному чтению.
2. Read Committed:
* транзакция, работающая на этом уровне изоляции, не видит «грязных» данных из других транзакций;
* видны только зафиксированные данные;
* Read Committed обычно использует общие блокировки для считываемых данных;
* этот уровень изоляции позволяет избежать грязного чтения, но всё ещё может приводить к неповторяемому чтению (он не гарантирует, что данные, которые вы читаете, останутся неизменными на протяжении всей вашей транзакции).
3. Repeatable Read:
* основной принцип Repeatable Read заключается в предоставлении каждой транзакции согласованного моментального снимка базы данных в начале транзакции;
* этот снимок подобен замороженной картине базы данных;
* любые изменения, внесённые другими транзакциями после этого момента, не видны текущей транзакции до её фиксации.
Два способа реализации:
* Блокировка чтения — устанавливает общие блокировки на все строки, прочитанные транзакцией.
* Управление параллелизмом с несколькими версиями (MVCC) — поддерживает несколько версий каждой строки, причём каждая версия связана с меткой времени или идентификатором транзакции.
* Устраняет неповторяемое чтение.
4. Serializable:
* этот уровень обеспечивает строжайшую изоляцию транзакций;
* он имитирует последовательное выполнение транзакций, как если бы транзакции выполнялись одна за другой, последовательно, а не параллельно;
* включает более строгие механизмы блокировки, такие как блокировки диапазона или предикатные блокировки.
📌 Уровни изоляции обеспечивают баланс между согласованностью данных и производительностью.
Более высокие уровни изоляции обеспечивают более надёжные гарантии целостности данных, но могут снижать производительность из-за блокировок или сериализации транзакций.
