Pull to refresh
-4
Эдуард Зиганшин@e-zigread⁠-⁠only

Разработка электроники

Send message

Собрал EdTech-платформу за неделю. Разбираю свой workflow по шагам

Level of difficultyEasy
Reading time11 min
Reach and readers7.2K

В марте 2023 я написал статью «ChatGPT: новый инструмент в борьбе с багами». Показал как нейросеть генерирует тест-кейсы, ищет XPath-локаторы и пишет SQL-запросы. 40 000+ просмотров. Первая статья на эту тему в рунете.

Ты сейчас подумал «ну и что, таких статей теперь тысячи». И ты прав. Но подожди.

За 3 года я прошёл путь от «вау, ChatGPT написал мне 10 тест-кейсов» до «я один собрал образовательную платформу за неделю». И это НЕ кликбейт.

В этой статье — мой путь, мой стек, мой workflow, конкретные цифры по деньгам и времени, и ошибки, которые я сделал, чтобы ты их не повторял.

Читать далее

Учим Linux: Файлы, навигация и поиск

Level of difficultyEasy
Reading time13 min
Reach and readers30K

Начинаю серию «Linux Base» из 11 частей — структурированная база для DevOps, DevSecOps и всех, кто работает с Linux.

Часть 1 — Файлы, навигация и поиск: разбираем структуру каталогов (/etc, /proc, /var и др.), навигацию, работу с файлами, просмотр содержимого и поиск через grep, awk, sed.

в конце также вас ждет Linux commands cheatsheet!

Читать

Приведение типа в C++

Level of difficultyMedium
Reading time30 min
Reach and readers7.9K

Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специфичных. Это десятая статья из серии, список предыдущих статей приведен в разделе 9. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Данная статья посвящена приведениям типа.

В C++ тип каждой переменной определяется на стадии компиляции, но может оказаться так, что в каком-то контексте использования переменной этот тип окажется неподходящим. В этом случае C++ предлагает выполнять операцию, называемую приведением типа. Часто это можно сделать разными способами и программисту надо выбрать наиболее подходящий вариант. Кроме того, приведение типа может оказаться потенциально небезопасной операцией и вызывать ошибки в работе программы. Программист должен оценить возможный риск и принять меры для обеспечения правильной работы программы.

Итак, попробуем рассказать о приведениях типа максимально подробно.

Читать далее

Корутины C++20

Level of difficultyMedium
Reading time21 min
Reach and readers12K

Думаю, многие согласятся, что реализация корутин в C++20 с первого взгляда выглядит страшновато, а документация скорее более запутывает, чем вносит ясность. Многие воспринимают работу приостанавливаемых функций как некую магию со своими странными co_abracadabra()'ми и прочими promise_type'ами.
В этой статье я хочу разоблачить якобы стоящую за корутинами магию, сдёрнуть покровы и показать, что спрятано под столом у фокусника.

Читать далее

Топ нейросетей для рерайта текста: сохраняем факты, улучшаем стиль

Level of difficultyEasy
Reading time8 min
Reach and readers8.9K

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

В нынешнее время, когда новые модели выходят довольно часто, легко запутаться. Поэтому возникает вопрос - какая нейросеть справится лучше с задачей рерайтинга? Сегодня я протестирую ChatGPT 5.2, Claude Sonnet 4.5, Gemini 3 Pro, Grok 4 и DeepSeek V3.2 в некоторых задачах взаимодействия с текстом. 

Примите стратегически удобное положение, ну а я приступаю к сравнению.

Читать далее

Базовый минимум. Часть 3:  RAG-системы

Level of difficultyEasy
Reading time9 min
Reach and readers12K

Большая языковая модель это не источник актуальных сведений, а статистическая система, обученная на данных прошлого. Она не обращается к внешним базам знаний и не узнает о новых событиях. Все что она знает было усвоено на этапе обучения и зафиксировано в ее параметрах.

В современных прикладных системах это ограничение часто скрыто за инструментами, поиском и дополнительными модулями. Однако именно архитектурный подход Retrieval-Augmented Generation, RAG стал стандартным способом расширения возможностей модели без ее дообучения. Он позволяет подключать внешние базы знаний, работать с актуальными документами и заметно снижать количество галлюцинаций.

В третьей части серии Базовый минимум разбирается как устроен RAG и как реализовать его минимальную рабочую версию на практике.

Читать далее

Типовая разметка памяти STM32F4

Level of difficultyEasy
Reading time8 min
Reach and readers12K

Как Вы могли заметить, у микроконтроллеров STM32F4 секторы NOR Flash памяти обладают разным размером: 16kByte(4 шт), 64kByte (1 шт), 128kByte ( 7+ шт.).

Это накладывает определенную специфику на программирование микроконтроллеров STM32F4.

Из каких секций обычно состоит Flash память микроконтроллерной программы?

В этом тексте я предлагаю простое решение проблемы разметки памяти для случая работы с микроконтроллерами STM32F4.

Читать далее

Как я ускорил работу с Claude Code в 2 раза: разбираем Agentation

Level of difficultyEasy
Reading time7 min
Reach and readers15K

Я совсем не опытный фронтендер, но вайбкодинг уважаю и люблю. Отдельная боль - это создание стабильных и хороших UI для своих проектов. И вот представь: используешь Claude Code в разработке своего очередного стартапа-единорога и пытаешься объяснить агенту что нужно поправить: "сделай кнопку темнее и ту фигуру закругленней". Какую? «Ну ту, в сайдбаре». Так их там три. «Вторую сверху, с иконкой». Агент правит первую и как итог - ты возмущаясь, пишешь подробное описание с координатами, классами, соседними элементами и всё равно 50 на 50, что он поймёт. Если знакома эта боль, то есть интересная штука под названием Agentation.

Реноме у него довольно рекламное: за пару месяцев проект набрал 120 000+ загрузок на npm и наделал много шума, став частью воркфлоу многих разработчиков, которые активно vibe-кодят с AI. В этой статье разберем: что это за штука, как устроена изнутри, зачем нужна версия 2.0 с MCP, как завести и пользоваться самому и стоит ли вообще тратить время. Спойлер - если ты React-разработчик и работаешь с AI-агентами, то да, попробовать стоит.

Читать далее

Как я перестал «вайбкодить» с LLM и собрал процесс разработки, который не разваливает проект

Level of difficultyMedium
Reading time5 min
Reach and readers44K

Я использую LLM в повседневной разработке уже больше года и довольно быстро упёрся в типовую проблему: модель генерирует “красивый код”, но по мере роста проекта появляется дублирование, разъезжается стиль, растёт число заглушек и отладка становится дорогой. В статье покажу процесс, который мне помог: как разделять контекст по чатам, какие артефакты требовать на каждом шаге и какими чек-листами я проверяю результат.

Читать далее

Data Structure Protocol (DSP): как дать LLM-агентам «долговременную память» о большом репозитории

Level of difficultyMedium
Reading time6 min
Reach and readers8.8K

Есть паттерн, который видит каждый, кто работает с агентами: первые 5–15 минут уходят не на задачу, а на "ориентацию". Где точка входа? Откуда растут зависимости? Почему эта библиотека, а не другая? Кто считает это публичным API? В маленьком проекте раздражает. В большом — превращается в постоянный налог на токены и внимание.

DSP (Data Structure Protocol) "выносит карту проекта наружу" — в простой, версионируемый, языковой граф, который живёт рядом с кодом и доступен агенту как постоянная память.

k-kolomeitsev/data-structure-protocol

Цель в архитектуре сформулирована так:

1) Цель и границы

Цель DSP — хранить минимальный, но достаточный контекст о репозитории/системе артефактов в виде графа «сущности → зависимости/публичный API», чтобы LLM могла:

- быстро находить нужные фрагменты по UID,

- понимать «зачем» сущности существуют и «как» они связаны,

- не требовать загрузки исходников целиком в контекстное окно.

DSP — это долговременная память и индекс проекта для LLM. Агент может в любой момент выполнить поиск (grep) по проекту, найти нужные сущности по описаниям/ключевым словам и от найденного UID раскрутить весь граф связей: входящие зависимости, исходящие импорты, реципиентов через exports. Это заменяет необходимость «помнить» структуру проекта или загружать его целиком — вся карта проекта всегда доступна через .dsp.

Читать далее

Что такое Skills и как их использовать? (Cursor, Claude Code)

Level of difficultyEasy
Reading time6 min
Reach and readers15K

Вы наверняка ловили себя на том, что раз за разом копипастите в чат с ИИ одни и те же инструкции: «Пиши на TypeScript», «Не используй сторонние библиотеки», «Добавляй тесты». В программировании мы по сути называем это нарушением принципа DRY (Don't Repeat Yourself). Но почему мы продолжаем это делать при общении с нейросетями?

В этой статье мы разберем концепцию Skills (Скиллов) - переиспользуемых «навыков» для ИИ-ассистентов, которые живут прямо в вашем репозитории и делают работу агентов предсказуемой, чистой и профессиональной.

Читать далее

IDE понимает ваш код. AI-агент — нет. Это можно исправить

Level of difficultyEasy
Reading time5 min
Reach and readers18K

TL;DR: Ваша IDE знает о проекте всё — иерархии типов, ссылки между модулями, исходники библиотек, ошибки компиляции. AI-агент ничего из этого не видит и вынужден грепать код и логи. За один выходной можно написать плагин и CLI, которые выставят семантику IDE наружу — и агент получит те же суперсилы, что и вы. В статье — как это сделано на примере Eclipse и JDT, но подход переносим на любую IDE. Открытый код: github.com/kaluchi/jdtbridge.

Если ваши руки давно привыкли к Ctrl+Shift+G, Ctrl+T, Ctrl+Shift+T и сопротивляются переходу в другой редактор — вы, вероятно, в Eclipse. И вы точно знаете, что ваша IDE понимает код на уровне, который не снился ни одному AI-редактору. Но AI-агент об этом не в курсе, и как следствие, вынужден жечь десятки тысяч токенов на свои grep-ы.

Читать далее

6 инструментов для параллельного Claude Code: тестирую всё, чтобы вам не пришлось

Level of difficultyHard
Reading time12 min
Reach and readers8.9K

Conductor, Crystal, Auto-Claude, Claude Squad, CCManager и Cursor 2.0 — честное сравнение с плюсами, минусами и рекомендациями по сценариям.

Читать далее

Проклятие легких побед: как вайбкодинг убивает волю к решению проблем

Level of difficultyMedium
Reading time9 min
Reach and readers18K

«Вайбкодинг» ‑ это просто ролевая игра для парней, которые хотят чувствовать себя хакерами, не делая сложной работы, или это мощный инструмент, меняющий процессы даже ML‑инженера? Я думал, что это просто игрушка, пока не попробовал.

Привет, меня зовут Марк, я ML-инженер уже более 4-х лет и за несколько дней я навайбкодил приложение не зная ни языка ни технологий. А еще я навайбкодил кучу техдолга и получил неочевидные трансформации личности.

Я не буду учить тебя пользоваться нейросетями, но я разобрался, где вайб уместен, где запрещен и какие скрытые минусы тебя ожидают при длительной работе с AI-агентами.

Читать далее

Sing-Box Launcher: как собрать VPN + WireGuard + split-tunneling без JSON-конфигов

Level of difficultyEasy
Reading time10 min
Reach and readers24K

Многие, наверное, хотели сделать конфигурацию чтобы и рабочие ресурсы через WireGuard, и российские сайты напрямую, и заблокированные — через VLESS, а доступные только из РФ сервисы — через RU-прокси. В статье покажу, как собрать такую схему без единой строчки JSON и почему Sing-Box Launcher постепенно превратился в GUI-оркестратор конфигураций sing-box.

Читать далее

Как я адаптировал v2rayN для России или российские источники geo файлов для v2ray/sing-box/etc

Level of difficultyEasy
Reading time5 min
Reach and readers554K

Сегодня был выпущен мажорный релиз v2rayN v7.0, а вместе с ним и моя серия коммитов, которые добавляют поддержку пресета "Россия".

Для его работы так же был создан российский источник geo файлов для v2ray/sing-box/etc.

Читать далее

Skaro — AI-оркестратор полного цикла разработки

Level of difficultyMedium
Reading time5 min
Reach and readers15K

Всем привет!

Некоторое время назад я опубликовал статью о своём опыте AI-кодинга и поделился рабочими практиками. В комментариях нашёл много полезного — в частности, упоминания методологии SDD.

Это натолкнуло меня на идею: собрать инструмент, который позволяет управлять и автоматизировать процесс разработки, основанной на спецификациях и контроле генерации кода. Я приступил к реализации — очень плотно и почти без сна за все эти дни o_O.

Основная идея проста: разработчик формирует спецификации, ИИ генерирует код. Принципы — не терять и не размывать контекст, контролировать структуру и качество кода.

Читать далее

Структуры данных на практике. Глава 4: Массивы и локальность кэша

Level of difficultyMedium
Reading time10 min
Reach and readers8.5K

«Массив — самая важная структура данных в computer science», — Дональд Кнут (вольное изложение цитаты)

Простейшая структура данных

Массивы настолько просты, что мы иногда воспринимаем их, как нечто само собой разумеющееся. Смежная память, доступ за O(1): что тут ещё оптимизировать?

Всё.

Я работал над конвейером обработки пакетов сетевого коммутатора. Код был простым: считываем пакеты из кольцевого буфера (массива), обрабатываем их и записываем результаты в другой массив. Всё просто, правда?

Но производительность была ужасной. Мы обрабатывали 100 тысяч пакетов в секунду, хотя оборудование должно было справляться с 1 миллионом.

Профилировщик показал нечто странное:

$ perf stat -e cache-misses,instructions ./packet_processor

Performance counter stats:

450,000 cache-misses

1,000,000 instructions

450000 промахов кэша на 1000000 команд? То есть промах происходил раз в 2-3 команды. При простых операциях с массивами это не имело никакого смысла.

Проблема заключалась не в самих массивах, а в том, как мы их использовали.

Читать далее

SearXNG + Claude Code: бесплатный веб-поиск вместо $10 за 1000 запросов

Level of difficultyEasy
Reading time7 min
Reach and readers12K

Встроенный WebSearch в Claude Code стоит $0.01 за запрос и регулярно падает с «Rate limit reached» — даже на подписке за $200/мес. Я поднял локальный SearXNG, подключил через MCP — и теперь поиск бесплатный, без лимитов, а запросы не уходят на серверы Anthropic. Установка — 10 минут, три файла конфигурации.

Показать решение

Тревога. Твоя ли это зона ответственности?

Reading time5 min
Reach and readers6.7K

Тревога — как много в этом слове. Почему одни люди выходят сухими из любых передряг, а другие — разваливаются на ровном месте? Не от масштаба проблем. А от того, куда они мысленно ставят себя внутри своей же жизни. Подход, или мета-позиция.

Одни — авторы. Другие — пассажиры.

Пассажир всегда тревожен. Он ведь не управляет маршрутом, не видит карту, не держит штурвал. Ему остаётся только гадать и надеяться — прилетит или не прилетит? Одобрят или уволят? Полюбят или бросят?

Тревога — это плата за билет в чужом транспорте.

Я тоже долго платил. Искал решения. Пока не понял одну простую, но очень неудобную вещь.

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Мытищи, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Системный инженер, Инженер электронных устройств
Старший
From 225,000 ₽
C++
Qt
Verilog HDL
VHDL
Git
Linux
FPGA
Схемотехника
Altium designer
Разработка электроники