Как стать автором
Поиск
Написать публикацию
Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Возвращаюсь к работе мозгом после месяцев кодинга с LLM

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров42K

TLDR: LLM неплохо справляются с кодингом, но в больших проектах они пишут запутанный сумбур. Я уменьшил объём использования ИИ при кодинге и вернулся к работе головой, ручке и бумаге.

Несколько месяцев назад мне нужно было создать новую инфраструктуру для моего SaaS, потому что связка из PHP+MySQL перестала отвечать нашим требованиям. Мне не терпелось воспользоваться этой возможностью, чтобы максимально задействовать все новые LLM, с которыми я экспериментировал. Поэтому я временно отказался от должности разработчика ПО, став сам себе продакт-менеджером. Я обсуждал с Claude технологии, проводил собственные исследования и спустя много итераций составил план. В итоге я решил использовать Go+Clickhouse.

Когда настала пора начинать кодить, я попросил Claude сгенерировать большой и сложный файл markdown с описанием моей старой инфраструктуры, желаемой новой инфраструктуры, перечислением того, чего я хочу достичь, почему мне это нужно и так далее.

Потом я закинул это всё в Cursor Notepads и начал составлять промпты. Cursor пишет код, я собираю и тестирую его. Меня вполне устраивало происходящее, кодовая база была не самой чистой, но вроде работала. Мне важнее была скорость разработки, а не чистота кода — мои бизнес-клиенты SaaS сказали, что им нужны определённые данные, а эта новая инфраструктура была единственным способом их доставки. У меня было ещё несколько потенциальных клиентов, ожидающих моего сообщения о том, что всё готово, чтобы можно было приобрести тарифный план. Пока всё не готово, я в буквальном смысле каждый день теряю деньги.

Читать далее

TypeScript: стоит ли усложнять типы?

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров7.5K

Что такое TypeScript? Официальная документация отвечает так: “TypeScript — это JavaScript с синтаксисом типов”. Однако некоторые считают TypeScript своеобразным слиянием двух языков: языка для манипулирования значениями JavaScript и языка для манипулирования типами.

Cистема типов TypeScript Тьюринг-полная. Это означает, говоря по-простому, что система может решить любую вычислительную задачу при наличии некоторого представления входных и выходных данных.

Можно ли использовать это знание на практике? Как избежать крайностей от примитивного аннотирования типов до избыточного усложнения?

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

Читать далее

Конфликт на уровне ценностей: откуда берется непрофильная дичь на профессиональных ресурсах

Время на прочтение12 мин
Количество просмотров3.5K

Привет, Хабр! Меня зовут Андрей, я редактор в команде техпиара МТС Web Services. Как-то раз в одном чате поднялся вечный вопрос: «Почему иногда хейтят даже материалы, которые проверены вдоль и поперек?» Кажется, что в них все продумано: тема, заголовок, структура, оформление. Но ты нажимаешь кнопку «опубликовать», и получаешь либо ничего, либо мощную порцию негатива.

Обычно в таких ситуациях причины ищут на поверхности: подача, информационный фон, слишком спорное мнение. Находят какие-то очевидные моменты… но проблема повторяется снова.

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

На примере работы с контентом я покажу, насколько тяжело бывает увидеть и свои, и чужие ценности — и что мы сталкиваемся с ними регулярно: в командной работе, бизнесе и менеджменте. А поможет мне в этом классик советского научпопа — Карл Левитин и его «Геометрическая рапсодия».

Читать далее

Nomina nuda tenemus: открываем ли мы математические законы или просто придумываем их?

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров5.8K

Diva Philippica, vox ubi coelica nunc Ciceronis?
Pax ubi civibus atque rebellibus ira Catonis?
Nunc ubi Regulus aut ubi Romulus aut ubi Remus?
Stat Roma pristina nomine, nomina nuda tenemus.

Божество филиппик, где ныне небесный голос Цицерона?
Мир где для граждан, а для мятежников где гнев Катона?
Где же Регул, где Ромул, где Рем?
От Рима осталось лишь имя. Имена, что мы держим — пустые.

Отсылкой к последней строке этого стихотворения Бернарда Клюнийского заканчивается "Имя розы" - знаменитый роман итальянского писателя-постмодерниста, философа и медиевиста Умберто Эко. В этом произведении одной из сюжетных линий идёт спор монахов-схоластов об истинности реализма и номинализма или, иначе говоря, о реальности абстрактных идей и математических структур. Именно об этом философском споре, растянувшемся на тысячелетия, я и хотел бы поговорить в своём сегодняшнем эссе. Последние слова великолепного стихотворения, которое в полном варианте на языке оригинала можно послушать здесь, дали название не только роману Умберто Эко, но и этому посту. Nomina nuda tenemus - "имена, что мы держим, пустые".

Читать далее

Почему я не доверяю Signal (хотя вроде должен)

Время на прочтение3 мин
Количество просмотров29K

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

Протокол у Signal считается надёжным. Многие криптографы его поддерживают. Формально — всё хорошо: используется сквозное шифрование, ключи меняются, реализация открыта. Но лично у меня есть сомнения. Не к криптографии, а к тому, как всё устроено в реальности.

Читать далее

Я не люблю NumPy

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров18K

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

NumPy — это ПО для выполнения вычислений с массивами на Python. Оно невероятно популярно и очень сильно повлияло на все популярные библиотеки машинного обучения, например, на PyTorch. Эти библиотеки во многом имеют те же самые проблемы, но для конкретики я рассмотрю NumPy.

Читать далее

Кого ИИ уже уволил, а кто только ждёт своей очереди? Как ИИ меняет рынок труда — разбор мифов и фактов

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров38K

Нейросети («ИИ») больше не инструмент будущего — это активный участник рынка труда. От HR-отделов до бухгалтерии, от школ до юридических фирм — машины не только помогают, а кое-где заменяют. Эта статья — о том, какие профессии исчезают, а какие трансформируются, и что делать, чтобы остаться на плаву в эпоху алгоритмов.

И восстали машины...

На входе аудио, на выходе — саммари. Собираем локальный транскрибатор из бесплатного софта

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров19K

Однажды я устал расшифровывать аудио пачкой инструментов в духе «Балерино-Капучино и Бобрито-Бандито» и решил собрать свой пайплайн.

В статье расскажу, как я подключил ИИ к обработке голосовых записей буквально за вечер. Мне нужно было загружать запись голоса в нейросетку и на выходе получать выжимку с итогами встречи — саммари/фоллоу‑апами/«минутками». Я хотел от софта безопасности данных, локального запуска и минимума вложений (в идеале 0 затрат). Я системный аналитик, поэтому не был готов писать приложение целиком.

По моей инструкции вы сможете сделать подобный конвейер своими силами даже без навыков кодинга.

Читать далее

Как я пытался продавать корпорациям экономию времени

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.7K

Это история предпринимательского эксперимента из 2016 года: где я пытался выделиться на перегретом рынке телефонии, создав плагин для экономии времени при звонках. Но, как оказалось, экономия 12 секунд — не всегда весомый аргумент в мире корпоративных продаж. В статье нет технических деталей реализации, только отражение продажно-маркетинговых попыток. Некоторые символы и буквы в текущем контексте могут читаться как-то иначе, но тогда это были просто буквы.

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

Тут важно сделать отсыл к структуре рынка телефонии. Проект состоит из двух частей. Первое - сама АТС, телефонная станция, та коробка, что творит магию и передает звук формата HD по проводам. Второе - телефонные аппараты. Последних в бюджете проекта могло быть до 80% и по сути заработок был на них. Работы, какие-то доработки-интеграции, вообще погрешность в плане денег. Но! Работы и какой-то эксклюзивный «допил» выгодно мог выделить проект на фоне конкурентов, потому что АТС и телефоны продавали все одинаковые. И в итоге, все сваливалось в цену. Все кто перепродает сталкивается с этими рассылками на 100500 адресов - Пришлите КП, или обоснуйте почему вы не шлете. Кстати, от этой схемы, вроде как, и закупщики сами страдают. Ну бог с ними. 

Читать далее

От Docs as Code к Everything as Code: как Gramax меняет работу с документацией

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7K

Привет, Хабр! Меня зовут Катя, я лидирую Gramax, open source-платформу для управления технической документацией. Однажды мы с коллегами утонули в хаосе рабочих документов: без версий, без согласований, без истории принятых решений. Это подтолкнуло нас к созданию Gramax — инструмента, который интегрирует документацию в процесс разработки, делая его прозрачным и управляемым.

В этой статье расскажу, как Gramax помогает на каждом этапе разработки ПО. Как перейти к документированию в подходе Docs as Code и шагнуть дальше — к Everything as Code.

Интересно, давай!

Voyager 1 восстановил резервные двигатели перед командной паузой

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.7K

14.05.2025, Редакционная Группа NASA Science

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

Инженеры Лаборатории реактивного движения NASA в Южной Калифорнии восстановили ряд двигателей на борту космического корабля Voyager 1, которые считались неисправными с 2004 года. Ремонт потребовал креативности и риска, но команда хочет иметь их в качестве резерва для работающих двигателей, в топливных трубках которых накапливается остаток, что может привести к их выходу из строя уже этой осенью.

Читать далее

Веб-разработка на ванильном HTML, CSS и JavaScript: стилизация и сайты

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров5.4K

Это вторая статья из цикла переводов о веб-разработке на чистых (ванильных) технологиях — без фреймворков и сторонних инструментов, только HTML, CSS и JavaScript. В первой части мы обсудили, почему такой подход может быть разумной альтернативой современным фреймворкам и рассмотрели использование веб-компонентов в качестве базовых строительных блоков для создания более сложных примитивов. В этот раз поговорим про стилизацию, а также деплой компонентов в продакшен без использования сборщиков, фреймворков или серверной логики.
Читать дальше →

Форма на сайте = штраф от 100 тысяч. Многие даже не подозревают

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров78K

Я часто общаюсь с предпринимателями и вижу: даже те, кто давно в бизнесе, не знают, что если на сайте есть форма с запросом имени или телефона — они уже считаются оператором ПД и обязаны соблюдать требования закона.

Многие думают, что формальная политика конфиденциальности, скачанная из интернета, спасёт. Это глубокое заблуждение. Кстати, эти правила касаются не только сайтов — Telegram-ботов тоже , если они собирают данные пользователей.

Читать далее

Ближайшие события

Как не переплатить за автоматизацию? Разбираем, когда стоит подключать ML

Время на прочтение11 мин
Количество просмотров4.3K

Часто автоматизация средствами ML ассоциируется с быстрым ростом эффективности бизнеса, но на практике оборачивается молниеносным увеличением затрат. Поэтому подход «Если делаешь что-то больше одного раза, автоматизируй это» выглядит слишком радикальным.

Как понять, действительно ли вам нужны ML-технологии или же ваши задачи можно закрыть простыми скриптами и правилами? Чтобы разобраться в этом вопросе, мы в Selectel исследовали успешные кейсы автоматизации в финансовом секторе, телекоме и IT-инфраструктуре, опираясь на экспертизу специалистов из T-Банк, PIX Robotics и Netcracker. Подробности под катом!
Читать дальше →

Data-Driven: от интуиции к фактам, и при чем тут data internals?

Время на прочтение12 мин
Количество просмотров1.4K

Netflix сделал ставку на то, чтобы у каждого нового зрителя в списке просмотров было минимум три фильма или сериала «на потом». Для этого они упрощают интерфейс, мотивируют добавлять контент в очередь и персонализируют всё, что вы видите. Они постоянно экспериментируют с разными версиями интерфейса, тестируют расположение кнопок и оформление. Для одного и того же фильма создаются десятки вариантов обложек, чтобы показать вам именно то, что вас зацепит. Сразу после регистрации вы получаете трейлер оригинального контента, подобранного под ваши предпочтения, а настройки профиля встроены в сам процесс адаптации.

Как Netflix научился читать мысли пользователей? Зачем собирает и анализирует сотни терабайт данных? Какой подход помогает обгонять конкурентов?

Привет, Хабр! Меня зовут Алексей Жиряков. Я руководитель направления в KION и член программного комитета конференции Data Internals. Давайте поговорим о том, зачем нужен Data-driven (и как он устроен в KION), его проблемах и том, нужен ли он вам.

Читать далее

Ошибка компилятора или неожиданный эффект шаблонов в C++?

Уровень сложностиСложный
Время на прочтение3 мин
Количество просмотров5.8K

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

Я быстро добавил нужный код, запустил утилиту и... программа тут же упала с ошибкой доступа к памяти. В проекте давно существовал собственный бинарный протокол сообщений, аналогичный protobuf, со своим генератором C++ кода и механизмами кодирования и декодирования. Эта часть кода была старая, и никто не хотел её трогать.

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

Первая мысль была: возможно, мой новый код где-то портит память. Чтобы найти ошибку, я решил собрать проект с Address Sanitizer. Спросив у коллег, использовали ли они его раньше, я услышал, что попытки были, но безуспешные. Запасшись терпением, через полдня я получил сборку. К сожалению, санитайзер ничего не обнаружил.

Странность была в том, что сообщение, на котором падала утилита, спокойно передавалось между сервисами и успешно парсилось там. Сервисы и утилита использовали абсолютно одинаковый код парсинга — одну и ту же статическую библиотеку. Почему же тогда сервисы работали, а утилита нет?

Пришлось разбираться в «страшном» коде вручную. Выглядел он примерно так:

Читать далее

Как довести фичу до продакшена без боли: пошаговый гайд от команды RuStore. Часть 3

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров608

В первой и второй частях нашего гайда мы — техлид backend-команды Rustore Григорий Рябов и руководитель команды разработки RuStore: направление платежей Александр Котельников, прошлись по всем подготовительным этапам — от Kick-off до разработки и тестирования.

Читать далее

Читерство в законе. Как пройти собеседование и устроиться на работу в дивном новом мире

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров20K

Требования к вакансии — во многом обман. Также как резюме от кандидатов, которые часто накручивают опыт. Собеседование похоже на театральное выступление, к которому готовятся отдельно. Будущего программиста учат не только работать, но ещё и проходить собесы, в том числе врать, использовать LLM для решения задач, чтобы хакнуть эту идиотскую систему найма… Появились менторы, которые помогают «вкатываться» в IT — они советуют, как эффективнее врать продавать себя, и публикуют статьи на Хабре.

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

Ситуация неприятная для тех, кто давно наблюдает за рынком.
Читать дальше →

SQL-линтер на Rust, HTML-минификатор для .NET и эмулятор DOS в браузере: кто получил гранты Yandex Open Source

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.8K

В конце октября мы анонсировали продление программы грантов от Yandex Open Source для поддержки проектов независимых разработчиков. Пришло время подвести итоги и рассказать о победителях.

За прошедшие месяцы мы изучили 120 проектов в трёх категориях: обработка и хранение данных, машинное обучение и разработка. Кстати, одну из заявок мы получили 15 марта в 23:59 — в последнюю минуту подачи. Этот проект тоже есть среди победителей.

Так мы выбрали 12 проектов, которые показались нам самыми интересными, полезными и перспективными. Мы попросили победителей рассказать про свои проекты чуть подробнее. Кто знает, возможно, в этой статье вы найдёте для себя новые инструменты, которые будут полезны в вашем проекте.

Читать далее

Рукописный редактор на Python: инструкция для тех, кто хочет «рисовать» код

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров11K

Привет, меня зовут Лёня! Я автор YouTube‑канала eleday о программировании на Python. Недавно в школе была проверочная работа и мне пришлось писать код на бумаге. Такой подход показался странным: все-таки программа может исполняться только на компьютере и логично набирать ее там же. Подобная цепочка рассуждений привела к интересной идее — редактору рукописного ввода. В этой статье расскажу о задумке и деталях ее реализации. Создадим виртуальный лист, на котором можно набросать код от руки — и он будет исполняться!
Читать дальше →