«Vibe code cleanup specialist» — теперь так называют себя разработчики, готовые за дополнительную плату исправить весь тот код, который сгенерировали нейросети.

«Vibe code cleanup specialist» — теперь так называют себя разработчики, готовые за дополнительную плату исправить весь тот код, который сгенерировали нейросети.

FFTW vs Ne10 на ARM Cortex-A9: кому отдать БПФ в embedded?
Недавно в одном проекте по спектральному анализу ЛЧМ-сигналов на моей AD/DA плате я столкнулся с тем, что FFTW на Cortex-A9 в Zynq рисует задержку в сотни микросекунд — критично для реального времени. Решил проверить лёгкую библиотеку Ne10: оказалось, что на средних размерах БПФ (128–512) Ne10 даёт до +10% производительности (905 MFLOPS против 817 MFLOPS у FFTW) благодаря оптимизациям под NEON.

Однако Ne10 выигрывает не во всём: для очень малых (≤ 64) и произвольных больших размеров FFTW остаётся лидером за счёт агрессивного планирования, double-точности и возможности сохранять «wisdom»-планы. Выбор между ними зависит от сценария: если нужна быстрая интеграция и фиксированные степени двойки — Ne10, а для универсального решения с поддержкой любых N и многопоточности — FFTW.
Более подробное описание соберу в статью. А какой библиотекой пользуетесь вы и какие удивительные кейсы встречали? Делитесь в комментариях, а в моём Telegram-канале DSP_labs вас ждут полные бенчмарки, скрипты и ещё больше примеров оптимизации DSP на embedded.
Интеграция VXLAN в архитектуру LBaaS: наш опыт и решения — тема доклада на IT-конференции GoCloud Tech 2025 ☁️

Расскажем про обновленный балансировщик сетевой нагрузки: какие есть отличия от старого, что уже появилось и еще появится в новом. Разберем его архитектуру и способы управления VXLAN в K8s, затронем тему перформанса и дальнейшего увеличения производительности.
Трек: Cloud Infrastructure — про построение устойчивой, масштабируемой и безопасной облачной инфраструктуры.
📅 Когда: 3 сентября в 12:00 мск
Что еще интересного будет на GoCloud Tech, смотрите в программе конференции.
Квиз: насколько хорошо вы владеете Podman

Docker долго был самым популярным инструментом контейнеризации, но сейчас все больше сервисов переходит на Podman. Вы уже умеете работать с ним? Тогда проверьте свои знания базовых команд.
Не забудьте поделиться результатами в комментариях!

Почему ваша архитектура ломается? Спросите у того, кто чинил десятки таких систем!
04.09.2025 в 15:00 (Мск) приглашаем на первую открытую AMA-сессию «Спроси меня о чем угодно» с Дмитрием Овчаренко — техническим директором департамента «Разработка для финансового сектора» IBS и экспертом Учебного центра IBS по архитектуре ПО.
Что вас ждёт (и почему это не обычный вебинар):
✔️ Без воды — только честные ответы на ваши вопросы (даже на те, о которых стыдно спросить).
✔️ Разбор реальных косяков — как ломались системы и что с этим делали.
✔️ Карьерный лифт — что нужно, чтобы перейти из разработчика в архитекторы?
А еще конкурс:
Пришлите самый нестандартный, забавный или абсурдный вопрос в комментариях к этому посту. Автор лучшего получит приз!
Кому полезно?
➕ Разработчикам, которые хотят расти до архитекторов.
➕ Аналитикам, уставшим от абстрактных советов.
➕ Всем, кому интересно, как устроена «кухня» fintech.
➡️ Зарегистрироваться ⬅️
P.S. Такого у нас еще не было — будет жарко! 🔥
Вышел Statsviz 0.7.0- визуализатор работы Golang программы в реальном времени.
В число показателей входят данные о куче, переменных, горутинах, паузах работы сборщика мусора, планировщика. Данные выводятся в браузере.

GitHub: https://github.com/arl/statsviz
ChangeLog: https://github.com/arl/statsviz/blob/main/CHANGELOG.md
По определенным обстоятельствам я не могу тупо дропать звонки от неизвестных. Но скаммерсанты достают. Что делать ? Все очень просто:
1) подождать пока отзвонит. 2 сек на звонок - тоже нехороший признак но не 100%.
// для любителей - трубку можно снять и поиздеваться над сотрудником службы безопастности, с роботом можно поговорить на псевдоазиатском тарабарском языке - пусть подпортит себе обучающую выборку.
2) номер телефона из пропущенных копипастом в ватсапп "+ создать новый контакт". если "этот номер телефона не зарегистрирован ... пригласить" то пошли они. в телеграме то же самое.
3) если мессенджер взял контакт, то стандартно: "Здравствуйте, от вас один пропущенный", если в ответ скам то бан и жалоба.
ps: мошонники и скаммерсанты, а также честные колл-центры ! не стесняйтесь регистрировать мессенджеры wa/tg на свои 1разовые sim-карты. вас ждет много удивительных приключений.
С момента запуска на платформе Lichess ИИ-бот Allie уже сыграл свыше 11 300 партий, из которых выиграл более 6 600. Бот доступен всем желающим, причём абсолютно бесплатно и с открытым исходным кодом. Попробовать его можно только в режиме блица, а также наблюдать за его партиями в реальном времени.
Шахматного бота Allie создал аспирант Карнеги-Меллона Йимин Чжан. В отличие от классических движков, Allie обучался не на просчётах позиций, а на 91 миллионе партий, сыгранных людьми. Поэтому его стиль максимально приближен к человеческому: он нападает, защищается и даже «задумывается» в критических моментах. Исследователи отмечают, что Allie демонстрирует уровень игры гроссмейстера, особенно в партиях против сильных соперников. Но главное — играть против него полезно: его ходы понятны, и обучение становится «естественным».

Пройдите опрос и получите подарки от Selectel

Мы развиваем в Академии Selectel Security Center — спецпроект по информационной безопасности. Чтобы сделать его еще полезнее, нам важно знать, какие темы вам интересны.
Возможно, вы читаете новости об утечках? Или вас интересуют инструкции по защите инфраструктуры? А может, вы хотите узнать о новых угрозах? Расскажите об этом — пройдите короткий опрос.
С нас — подарки
15–21 сентября среди всех, кто поделится мнением, разыграем подарки:
— 10 сертификатов в крупный маркетплейс,
— 5 плюшевых Тирексов.
Пройти опрос ➡️

Делимся расписанием бесплатных вебинаров на следующую неделю:
🎬 19 августа в 16:00 (Мск) «Как ускорить работу с данными в 3 раза? Основы ДБТ за час» — вебинар про DBT, его возможности, принципы работы и способы с его помощью сделать свою деятельность эффективнее.
🎬 21 августа в 16:00 (Мск) «От идеи до продакшена: какой Kafka-клиент упростит вам жизнь?» — практический вебинар: какие высокоуровневые клиенты Kafka выбрать для Spring Boot, .NET и NestJS. Разберём ключевые отличия, реальные примеры использования и лучшие практики.
🎬 22 августа в 18:00 (Мск) «Как LDA и ARTM могут изменить подход к анализу текстовых данных» — вебинар по тематическому моделированию с LDA и ARTM, примеры на Python и практические кейсы.
Увидимся на вебинарах!
Давно у нас не было игрушек на $mol...
Встречайте Гипер Шары! - ремейк классической игры Color Lines!

Не смотря на простые правила, она имеет не только тактическую, но и стратегическую глубину, что объясняет её залипательность и более 9000 клонов.
Нашу версию выгодно отличает лаконичный интерфейс, кроссплатформенность, открытые исходники, а главное - отсутствие раздражающей рекламы.
Ставьте её на домашний экран, и в минуты скуки помогайте этим разноцветным милашкам находить друг друга.

Новая версия Gramax!
Приглашаем вас протестировать экспериментальные функции:
💡 Статический сайт в облаке Gramax. Можно опубликовать свою документацию буквально за пару кликов, для этого не нужен сервер или хостинг. Достаточно нажать «Опубликовать в облако» и войти в почтовый аккаунт.
💡 Фильтр по содержимому. В каталоге можно создавать статьи и абзацы для разных сборок. На портале для чтения они будут фильтроваться с помощью переключателя.
💡 Браузерная версия на мобильном. Браузерную версию Gramax можно использовать на мобильном телефоне. Доступны все действия, как при работе на компьютере.
А также:
📌 Новая главная страница. Улучшили внешний вид главной страницы. Добавили возможность создавать вложенные группы.
📌 Транскрипция речи с помощью ИИ. Если в пространстве включены ИИ-функции, редактор может автоматически транскрибировать аудиозаписи в текст.
📌 Просмотр изменений после синхронизации. После синхронизации автоматически открывается окно сравнения ревизий: сравнивается новая версия каталога с версией до синхронизации.
Об этих и других изменениях читайте в Release Notes 🔥
Жёсткая структура React-компонентов
При работе над React-приложениями я часто сталкиваюсь с тем, что мои коллеги смешивают в одном файле и JSX, и CSS-in-JS стили, и логику, и типы компонента. Работать с таким месивом очень сложно. Даже если настаивать на выделении логики, стилей и типов в отдельные файлы, это то делается, то нет. Для введения жёсткой структуры компонентов мною была написана простейшая библиотека react-component-structure.
https://github.com/sergeyshpadyrev/react-component-structure
Работает она простейшим образом. Любой компонент необходимо разделить на три хука и файл с типами:
-| Component
-| index.ts
-| logic.ts
-| render.tsx
-| style.ts
-| types.tsВ файле logic.ts мы пишем хук useLogic - контроллер компонента, включающий в себя всю его бизнес-логику - все хуки useCallback, useEffect, useMemo и подобные. В этом хуке у нас есть доступ к props компонента.
import { useCallback, useState } from 'react';
import type { Props } from './types';
const useLogic = (props: Props) => {
const [count, setCount] = useState(props.defaultCount);
const onClickMinus = useCallback(() => setCount((c) => c - 1), []);
const onClickPlus = useCallback(() => setCount((c) => c + 1), []);
return {
count,
onClickMinus,
onClickPlus,
};
};
export default useLogic;В файле styles.ts мы помещаем хук useStyle со стилями нашего компонента. Тут мы можем использовать inline-стили, CSS-in-JS или Tailwind. В этом хуке у нас есть доступ к props нашего компонента и к его контроллеру.
import type { Props } from './types';
import useLogic from './logic';
import { useMemo } from 'react';
const useStyle = (props: Props, logic: ReturnType<typeof useLogic>) =>
useMemo(
() => ({
counter: {
fontSize: logic.count + 10,
},
title: {
color: props.color,
},
}),
[logic.count, props.color],
);
export default useStyle;В файле render.tsx мы помещаем хук useRender с JSX, то бишь отображение компонента. В этом хуке у нас есть доступ и к props компонента, и к его контроллеру logic, и к стилям.
import type { Props } from './types';
import type useLogic from './logic';
import type useStyle from './style';
const useRender = (props: Props, logic: ReturnType<typeof useLogic>, style: ReturnType<typeof useStyle>) => {
return (
<div>
<div style={style.title}>Hello {props.greeting}!</div>
<div style={style.counter}>Count: {logic.count}</div>
<div onClick={logic.onClickMinus}>Decrease</div>
<div onClick={logic.onClickPlus}>Increase</div>
</div>
);
};
export default useRender;В index.ts файле мы соединяем все три хука с помощью функции createComponent:
import { createComponent } from 'react-component-structure';
import useLogic from './logic';
import useRender from './render';
import useStyle from './style';
const Component = createComponent({ useLogic, useRender, useStyle });
export default Component;И в файле types.ts мы объявляем тип для props компонента:
export interface Props {
color: string;
defaultCount: number;
greeting: string;
}Если у компонента нет props, то можно объявить их так:
export type Props = unknownПри использовании каждый компонент нашего приложения имеет чёткую структуру, состоящую из файлов контроллера, отображения, стилей и типов. Это разделение подобно разделению на HTML (отображение), CSS (стили) и JavaScript (контроллер) в ванильных JS-приложениях.
Если подход и библиотека вам понравились, поставьте репозиторию звезду на гитхабе. Надеюсь этот подход будет вам полезен.
Просмотр кода в интерфейсе Amvera Cloud
Мы сделали возможность просмотра содержимого файлов репозитория в интерфейсе.
Раньше было сложно понять, какая версия файла загружена в облако.
Теперь можно зайти в файл в разделе Репозиторий и посмотреть его содержимое.

Amvera – облако для простого запуска проектов со встроенным CI/CD (деплой идёт через Git или загрузку файлов в интерфейсе). C Amvera вам не нужно думать о настройке NGINX, виртуальных машин и другой инфраструктуры.
Qwen и "неподобающий контент" - сообщения, которые ломают чат
Наверняка не я один сталкивался при работе с Qwen, что в ответ на самое безобидное сообщение пользователя, вдруг выскакивает системное сообщение вместо ответа:
Упс! Возникла проблема подключения к Qwen2.5-Max. Предупреждение о безопасности контента: выходные данные текст могут содержать неподобающий контент!"
Выхода нет. Такие сообщения сыпятся на каждую вашу попытку что-то ввести в чат. Особенно обидно, когда чат длинный, контекст хорошо проработан и это заняло много времени. До жути обидно все терять и начинать сначала. Есть разные предложения, например, выгружать чат в JSON, вручную стирать там последнюю группу сообщений до возникновения этой ошибки и загружать исправленный JSON обратно в Qwen в новый чат. Так себе занятие, я считаю. Но если выхода простого нет, можно попробовать.
Если ошибка постоянна и появляется в ответ на любое ваше сообщение, то явно что-то сломалось внутри логики обработки данного конкретного чата. И я подумал, а что если сломать ее еще раз? перешел в веб-разработку, сгенерил абсолютно левый лендинг. Кнопкой вернуться обратно в нормальный чат не получилось, не активна.
Тогда я спросил "как вернуться обратно в нормальный чат?" Ответ: "никак. но мы можем продолжить здесь". Я спросил, что он помнит из предыдущих 5 сообщений нормального чата - помнит все! И мы продолжили решать настоящую нужную мне задачу находясь в режиме веб-разработки, но именно так, как в обычном чате.
Возможно, кому то поможет мой опыт и не придется терять хорошо проработанный чат.
Спасибо, что прочитали.
Гендиректор OpenAI Сэм Альтман признал, что на фондовом рынке вокруг ИИ образовался финансовый пузырь с небольшими стартапами, который может скоро лопнуть.

На вопрос о том, не чересчур ли много энтузиазма инвесторы проявляют к технологии, Альтман ответил: «По моему мнению, да».
Гендиректор OpenAI сравнил реакцию рынка на ИИ с пузырём доткомов в 1990-х, который лопнул в 2000 году и привёл к краху интернет‑стартапов с раздутыми оценками. «Когда образуются пузыри, умные люди становятся крайне эмоциональны из‑за крупицы правды. Если посмотреть на большинство пузырей прошлого, например технологический пузырь, у него была реальная основа. Технологии действительно были важны. Интернет был настоящим прорывом. Люди стали слишком эмоциональны», — отметил Альтман.
Глава OpenAI считает «безумным» то, что некоторые ИИ‑стартапы «с тремя людьми и одной идеей» получают финансирование при баснословных оценках. «Это не рациональное поведение. Думаю, кто‑то обожжётся», — сказал глава OpenAI.
За последний год стартапы нескольких экс‑топов OpenAI — Safe Superintelligence Ильи Суцкевера и Thinking Machines Миры Мурати — получили миллиарды долларов инвестиций. «Кто‑то потеряет феноменальные суммы денег. Мы не знаем, кто это будет, но многие люди заработают феноменальное количество денег. Могу ошибаться, но мне кажется, что в целом экономика от этого сильно выиграет», — сказал Альтман. Он уверен, что OpenAI в любом случае переживёт пузырь.
Unit-тесты во фронтенде: развеиваем мифы
После статьи о навыках джуниоров многие не согласились с моей оценкой unit-тестов. Давайте посмотрим, где они действительно полезны, а где создают иллюзию ценности.
Если вы начинающий разработчик, вас наверняка убеждали:
«Без unit-тестов никуда! Всё должно быть покрыто тестами!»
Но так ли это на самом деле?
Где unit-тесты полезны:
Бизнес-логика и утилиты (форматирование данных, расчёты)
Кастомные хуки (управление состоянием, формы)
Критичные функции (редкий зверь во фронтенде)
Где они бесполезны (и даже вредны):
UI-компоненты (скриншотные тесты часто ломаются из-за изменений вёрстки)
API с моками (моки не показывают реальное поведение сервера)
Тестирование библиотек (проверяете чужой код)
Что использовать вместо?
Интеграционные тесты — проверяют реальные сценарии
Zod для валидации API — предотвращает ошибки из-за неожиданных данных
Ручные проверки — быстрее и точнее, чем скриншотные тесты
Для джуниора unit-тесты — не приоритет. Важнее:
Глубокое изучение фреймворка
Умение работать с API
Навык чтения и отладки кода
Не стоит тратить время на «тесты ради тестов». Сосредоточьтесь на том, что действительно поможет в работе.
Переход 1С на PostgreSQL и прогнозы до 2031 года
Ни для кого не секрет, что клиент‑серверный вариант 1С изначально затачивался под MS SQL. Вспоминаю год 2017-й и точно помню, что в тот момент Postgres ставили в основном те компании, которые хотели сэкономить. Плевались, но использовали. Чуть более или менее серьезная нагрузка — и всё.
Помню, как мы для «Управления IT‑отделом 8» написали расчет SLA по графикам техподдержки. На файловой базе и в MS SQL все работало прекрасно. Выпустили обновление, но один клиент на Postgres начал жаловаться. Долго выясняли, в чем дело. В конечном итоге я подключился к нему на тестовый сервер, прошелся отладчиком и… бинго! Действительно наша ошибка: не указали сортировку в одном из вложенных запросов. На файловой и на MS SQL такой запрос, повторю, работал отлично. Postgres в этом деле оказался строже — сказано в документации, что выборка не гарантирует порядок? Будьте добры предусмотрите это.
Эта история из прошлого отлично иллюстрирует те же проблемы, с которыми бизнес сталкивается сегодня, когда переход стал практически неизбежным.
Если коротко, то вот главные грабли, на которые наступают при миграции 1С на PostgreSQL:
Проблема № 1: Деградация производительности. Миграция «в лоб» почти всегда приводит к проблемам с блокировками и работой планировщика запросов. Приходится переписывать код и оптимизировать его под PostgreSQL. Возможно, даже менять что‑то в самой платформе.
Проблема № 2: Кадры. Найти опытного DBA по Postgres, который глубоко понимает специфику 1С, значительно сложнее и дороже. С MS SQL всё было проще: установил, клик, клик — готово. Даже без тонких настроек многое работало «из коробки».
Ну и самое главное: миграция — это не просто смена СУБД. Это полноценный проект, требующий тестирования, переписывания узких мест в коде и, возможно, обучения команды. Экономия на лицензиях может быть полностью съедена затратами на внедрение и поддержку (да и не сказал бы, что тот же Postgres Pro дешевый).
А теперь о том, почему этот разговор вообще имеет смысл.
Раньше мы всегда советовали клиентам MS SQL как надежную и проверенную СУБД. Да, в 2015-м появился платный Postgres Pro, но, честно сказать, мы его всерьез не рассматривали. Зачем, если есть деньги на проверенный MS SQL? А если хотелось сэкономить — был бесплатный Postgres со всеми его тогдашними особенностями.
Но потом пришел 2022-й год, санкции вендоров и постепенная миграция стала трендом. А сейчас это уже не вопрос выбора, а вопрос времени.
Это не просто ощущения, это подтверждают цифры из исследования ЦСР.

Уже в 2024 году на новые продажи зарубежного ПО пришлось всего ~10% рынка. Прогноз до 2031 года следующий: российские решения для работы с базами данных могут занять до 99% новых продаж (!) Процесс импортозамещения будет идти, а если мы берем 1С, то тут в выигрыше PostgreSQL/Postgres Pro. Причины понятны: уход западных вендоров, требования регуляторов и развитие отечественных продуктов.
Для компаний использующих 1С это означает полный стратегический переход на Postgres в ближайшие годы. Но, как показывает практика, делать это нужно с умом.
У меня вопрос. Планируете переход на PostgreSQL или, как и мы, пока живете на старом софте?
‑-
Понравилась эта аналитика? В моем блоге Код ИТ‑директора я гораздо чаще делюсь мыслями, короткими кейсами и полезными инструментами, которые не всегда доходят до формата большой статьи.
Вебинар "От кода до запуска: российский стек для Java — Axiom JDK и OpenIDE"

Приглашаем на вебинар, посвященный безопасному стеку базовых технологий для разработки и исполнения Java-приложений и безопасной среде разработке OpenIDE. Вы поймете, что такое OpenIDE, как это всё относится к Intellij IDEA, зачем OpenIDE бизнесу и какие у проекта OpenIDE планы на будущее.
Кому будет полезен вебинар:
• тимлидам
• разработчикам
• DevOps
Вебинар проведут:
• Дмитрий Сапожников, технологический консультант Axiom JDK
• Илья Сазонов, директор по продуктам Axiom JDK, направления Spring и OpenIDE
Когда: 21 августа 2025 г.
Во сколько: 11:00–12:30 по мск
Формат: Онлайн
Участие: Бесплатное (нужно предварительно зарегистрироваться)
Прошиваем CH32V003 с помощью платы Arduino
Задался вопросом, а можно ли сделать программатор из подручных средств для CH32V003 на экстренный случай? Или это еще может пригодится тем, у кого его еще нет.
Оказывается можно и способов не один, но я расскажу обо одном. Другие пока еще не пробовал. Решил написать эту заметку, т.к. в рунете ничего не нашел, пусть будет.
В проекте ch32fun есть программа minichlink, так вот она умеет прошивать WCH микроконтроллеры с помощью разных программаторов, например, b003boot, ardulink, esp32s2chfun. Нас интересует программатор ardulink.
Код программатора Ardulink можно взять из arduino-ch32v003-swio. На гитхабе есть обертка его для PlatformIO, кому как удобнее. Он написан под atmega328p, поэтому спокойно запускается на Arduino Nano. Подсоединяем провод от D8 (PB0) ножки Ардуино к SWIO (например, восьмая ножка у CH32V003J4M6), питание к питанию, земля к земле. Всего 3 провода. (Ножку D9 (PB1) так и не понял к чему подключать, но про нее есть в Readme.)
Дальше выполняем команды:
minichlink.exe -c COM3 -i этой командой можно проверить определяется ли микроконтроллер, где COM3 номер порта платы Ардуино, которую используем как программатор.
minichlink.exe -c COM3 -w .\firmware.bin flash -b а этой командой можно залить файл прошивки, где firmware.bin сам файл.
Пока у меня не получилось подключить такой программатор напрямую к PlatformIO, только получилось работать из командой строки, но при желании это сделать можно.