С выходных каждый день программирую новый сервис для студентов. Программист я никакой, но очень нравится. Сидишь, смотришь, как нейронка пишет код за тебя. А ты ей: «Просто хочу быть богатым, напиши мне программу». Магия какая-то. Так думают все, кто первый раз пробует с нейронкой написать код. А потом, спустя первые 20 минут, чёт, ошибка какая-то, и потом 4 часа пробуешь её поправить с помощью нейронки.
Вторая стадия — это когда ты пишешь ей уже матом, чтобы выплеснуть всю ненависть к роботу, и он извиняется: «Мол, прости брат, не бей, ошибся» — и вроде легче на душе. И ошибается снова и снова. Моя стадия — 4 нейронки, которые правят ошибки друг друга, долго, муторно, но двигаешься, чуть быстрее, чем сам.
Следующая стадия — это уже сам пишешь код. Надеюсь, не дойду сюда. Всегда, когда видите, что кто-то по-быстрому разбогател с помощью ИИ, помните, что ИИ сделала 20-30% работы.
Перешли этот пост тому, кто думает, что быстро напишет программу с помощью ИИ.
Ты программист, работаешь в команде. Ты пишешь код, что бы создать продукт для пользователя, что бы ему было удобно и комфортно. Тебя мотивирует конструктивная обратная связь, она позволяет делать продукт лучше.
Вот продукт готов, покупатели и менеджеры довольны... Они твои пользователи.
Вопрос: ты никого не забыл? Кто первым посмотрит на твой продукт еще до выхода его в прод? Кто увидит его в сыром, первозданном виде? Кому придется поддерживать его, исправлять ошибки?
Да, да.... это я, твой коллега, твой первый пользователь, твой продукт - это код, я им пользуюсь.
Почему ты не подумал обо мне: не написал README, не оставил инструкций, не озвучил подводные камни? Почему мне нужно провести реверс-инжинириг, просто что бы запустить или задеплоить проект?
Почему мне кажется, что ты хочешь меня запутать: почему сервисы названы именами греческих богов? Почему я открываю эти папки, и они меня удивляют своим содержимым?
Почему ты злишься, когда я комментирую код на ревью? Почему ты отвечаешь - "мне так удобно"? Почему... почему... почему?
После этого, ты удивляешься тому, что я не хочу иметь ничего общего с твоим продуктом и с тобой. Почему?
Полезные ссылки и новости в дайджесте за февраль🌨️
📢 Анонсировали программу главной конференцию про облачные технологии и искусственный интеллект — GoCloud 2025. Хотите узнать про глобальные тренды в AI, пополнить список инструментов и сценариев работы в облаке, обменяться опытом с коллегами-экспертами, а также увидеть, какой простор открывают облачные и AI-технологии для ваших IT-проектов? Тогда мы ждем вас 10 апреля онлайн и офлайн в Москве в Цифровом деловом пространстве (ЦДП). Посмотреть программу и зарегистрироваться.
🚀 Запустили Cloud․ru Evolution Stack — платформу для создания частных и гибридных облаков в IT-ландшафте компании. Платформа позволяет построить частное облако в собственном дата-центре, а также развернуть гибридную инфраструктуру, объединяя возможности публичного облака Cloud․ru Evolution, сторонние облачные сервисы на базе OpenStack и виртуализацию VMware vSphere. Узнать больше.
добавили ресурсы в Evolution Bare Metal — доступно более 40 мощных серверов в двух зонах доступности.
🦾 Обновили наши облачные платформы — об этом подробно рассказали в дайджесте на сайте.
💰 Обновили реферальную программу, чтобы вы могли с большей выгодой рекомендовать сервисы Cloud.ru клиентам, коллегам или друзьям. Теперь можно получить 20% от суммы чеков приведенных пользователей в первый год и 15% — в последующие годы. Регистрируйтесь в программе до 31 мая и приводите новых пользователей в течение трех месяцев. Участвовать могут самозанятые, ИП и юридические лица. Присоединиться.
🧊 Заморозили цены на облачные услуги для новых клиентов на три года. Вы можете выбрать виртуальные машины, GPU-ресурсы, объектные хранилища, базы данных и другие облачные сервисы — тарифы останутся неизменными в течение трех лет. Предложение действует до 31 марта 2025 для юрлиц и индивидуальных предпринимателей. Оставить заявку.
📺 Провели вебинары, и их можно посмотреть в записи:
Топ-5 ошибок при миграции в облако и как их избежать. Наш эксперт поделится опытом реализации проектов миграции на примере реальных кейсов, поможет выбрать эффективные инструменты, а также предложит пошаговое руководство для быстрого переезда в облако. 1 апреля в 11:00 мск.
В один из проектов внедрили себе gitlint и уже несколько месяцев полноценно им пользуемся. По отзывам разработчиков: кому-то понравилось, что теперь коммиты нужно писать более дисциплинированно, кто-то и так их качественно писал, поэтому и не заметил разницы. Кто-то, конечно, воняет до сих пор, но на них не отвлекаемся :)
Мне же приятно, что ченджлог и история коммитов теперь выглядит стройненько и единообразно.
За вдохновением по правилам написания коммитов загляните сюда.
Чтобы всем этим добром легче пользоваться, существуют всевозможные плагины для вашей IDE.
Как джуну вырасти до мидла, а мидлу — почувствовать уверенность
Переход с уровня junior на middle — важный этап в карьере разработчика. На этом уровне уже недостаточно просто писать рабочий код. Требуется понимать архитектуру, оптимизировать производительность, уверенно работать с многопоточностью и сложными паттернами проектирования.
Если вы джун или уже работаете на позиции мидла, но не чувствуете уверенности в своих знаниях, — держите подборку курсов, которые помогут закрыть пробелы и развить необходимые навыки. В каждом курсе есть бесплатная вводная часть, чтобы проверить свои силы.
Мидл Python-разработчик — курс поможет прокачать архитектурное мышление, освоить многопоточное программирование, научиться работать с асинхронностью и оптимизировать код. Особое внимание уделяется построению высоконагруженных систем и работе с базами данных.
Мидл фронтенд-разработчик — вас ждёт работа с TypeScript, SSR, современными фреймворками и производительностью веб-приложений. Курс также охватывает CI/CD, архитектуру и паттерны проектирования.
Мидл Android‑разработчик — продвинутая разработка на Android с фокусом на Clean Architecture, Kotlin Coroutines, Jetpack Compose и Unit-тестирование. Подойдёт тем, кто хочет писать масштабируемые и поддерживаемые приложения.
Мидл Java‑разработчик— поможет освоить инструменты и технологии Java-разработчика: Spring, Hibernate, микросервисную архитектуру, Kafka и Kubernetes. Подойдёт желающим глубже разобраться в построении отказоустойчивых систем.
Мидл разработчик С++ — курс для разработчиков, желающих освоить продвинутые возможности C++: многопоточность, шаблонное программирование, оптимизацию под производительность и работу с низкоуровневыми механизмами ОС.
Я пишу облегчённую версию SDL3, с поддержкой старых систем. Проект решил назвать SDL3Lite. Проект пишу на C++ 98, но наружу торчит совместимый С API. Я хочу реализовать базовый функционал, поэтому вполне реально довести проект до конца. Главная идея проекта это сохранить совместимость с оригинальным C API SDL3. В идеале это конечно на уровне бинарной совместимости. Код единожды написанный должен собираться без изменений для всех поддерживаемых систем.
Сейчас работает рендер на OpenGL 1.2, добавляю версию software для старых систем без поддержки аппаратного ускорения. Также планирую добавить и поддержку vulkan. В репе есть скриншоты с выводом графики.
На данный момент поддерживается windows 95 и выше, linux начиная с Debian 3.
Запуск примера под windows 95 в 16 цветов.
В будущих версиях планирую добавить поддержу windows 3.1 и ms-dos.
На картинке — код на JavaScript с ошибкой, который написал специально для Хабра руководитель группы разработки интерфейсов компании «Криптонит» Василий Беляев.
Кто увидел, где ошибка и как её можно решить — пишите в комментариях! А решение этой ошибки оставили под картинкой.
Где здесь ошибка?
Если запустим этот код, то получим ошибку
Uncaught TypeError: this.clearHistory is not a function
Проблема находится на строчках 11-13 (на картинке)
В один из проектов внедрили себе gitlint и уже несколько месяцев полноценно им пользуемся. По отзывам разработчиков: кому-то понравилось, что теперь коммиты нужно писать более дисциплинированно, кто-то и так их качественно писал, поэтому и не заметил разницы. Кто-то, конечно, воняет до сих пор, но на них не отвлекаемся :)
Мне же приятно, что ченджлог и история коммитов теперь выглядит стройненько и единообразно.
За вдохновением по правилам написания коммитов загляните сюда.
Чтобы всем этим добром легче пользоваться, существуют всевозможные плагины для вашей IDE.
Представлен онлайн-ресурс для изучения языков программирования Coddy. Внутри полная геймификация: обучение через игру, квесты и допы за активность. За каждый урок ваш персонаж двигается по карте к финишу. Ежедневные испытания дают дополнительный опыт, а за стрик капают «огоньки». Опыт можно тратить на бустеры, включая премиум подписку на 2 недели. Темы выбираете сами — можно сменить в любой момент.
Присоединяйтесь к обновленной реферальной программе 💰
Перезапустили реферальную программу, чтобы вы могли с большей выгодой рекомендовать наши сервисы клиентам, коллегам или друзьям. Теперь можно получить 20% от суммы чеков приведенных пользователей в первый год и 15% — в последующие годы.
Кому подойдет:
Разработчикам — можете предлагать облачные услуги как часть своих пакетов;
DevOps-инженерам — рекомендуйте сервисы для размещения решений;
Веб-студиям — советуйте облако для размещения сайтов;
Системным интеграторам — интегрируйте облачные решения в свои проекты.
Как принять участие:
Регистрируйтесь в программе до 31 мая и приводите новых пользователей в течение трех месяцев. Участвовать могут самозанятые, ИП и юридические лица.
А еще приведенные пользователи получат до 26 000 бонусов — их хватит, чтобы запустить проект, протестировать гипотезы или проверить интересующее решение на практике.
Знакомьтесь с программой и регистрируйтесь на GoCloud 2025 ☁️
Делимся с вами программой предстоящей масштабной конференции про облака и AI, которая состоится 10 апреля — GoCloud 2025.
10:00 – 11:00 Регистрация
11:00 – 12:00 Открытие конференции
12:20 – 18:00 Доклады. Три трека
Инфраструктура и сервисы: K8s, Bare Metal, платформа данных и другие сервисы Cloud.ru Evolution для ваших задач в облаке. Покажем новые и популярные инструменты, а также возможности личного кабинета. Все, чтобы развернуться по максимуму.
AI & ML: загляните в будущее искусственного интеллекта. Мы расскажем об AI-инструментах, поделимся опытом и анонсируем продукты, меняющие индустрию. Узнайте, как мы работаем с сообществом и какие возможности открываются для вас.
Сценарии работы в облаке: не только доклады, но и дискуссии с лидерами рынка, которые уже в облаке. Будем обсуждать популярные сценарии, гибридные решения, GenAI, миграцию в облако, вопросы безопасности, а также кейсы наших клиентов.
18:00 – 20:00 Afterparty и нетворкинг
Для участия подключайтесь к онлайн-трансляции (ссылка придет зарегистрированным участникам в письме) или приходите в Цифровое деловое пространство (ЦДП) в Москве.
На ресурсе OverAPI собраны все шпаргалки для разработчиков по популярным языкам программирования и технологиям. Информация там постоянно обновляется. Можно нажать на любую команду и узнать о ней всё. Ресурс бесплатный и без регистрации.
В этом году мы решили не просто на словах поздравить девушек с праздником. Мы сделали видео с девушками и о девушках в IT. На то есть несколько причин:
Мы хотим сказать: коллеги, мы вам благодарны за ваш труд! Мы гордимся вами!
Мы хотим показать вам реальных людей из разных сфер IT, а не просто цифры в статистике.
Надеемся, примеры участниц покажут, что IT — это не для избранных. Здесь есть место каждой, если ей интересно и она этого захочет.
$ fasm example.asm example
$ ld example -o example
$ ./example
Hello, World!
А сам код генерируется такой:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Author: alexeev-prog ;;
;; Example ASM Program ;;
;; Program generated by FLEXPASM (github.com/alexeev-pro/flexpasm) ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
format ELF64 executable 3; ; ELF64 EXECUTABLE
entry start ; Set Start Entry
;; Segment readable executable in FASM is a directive for defining a section of code with readable and executable attributes.
segment readable executable
start: ; Label start with 7 commands
MOV RAX, 4 ; Loading 4 value into RAX register.
MOV RCX, message ; Loading message value into RCX register.
MOV RDX, message_size ; Loading message_size value into RDX register.
INT 128 ; Call software interrupt 128: SYSCALL
MOV RAX, 1 ; Loading 1 value into RAX register.
MOV RBX, RBX ; Exclusive OR operation RBX and RBX using XOR
INT 128 ; Call software interrupt 128: SYSCALL
;; Segment readable writeable in FASM is a definition of a segment of program data codes, where the attributes readable (the contents of the segment can be read) and writeable (program commands can both read codes and change their values) are specified for it.
segment readable writeable
message db 'Hello, World!', 0xA ; Var message (string)
message_size = $-message ; Var message (string) length
Я его написал довольно давно, вот решил поделиться. Может кому-то пригодится. Если есть баги - создавайте PR и Issue, буду рад)
Я информирую о релизе постом только потому, что у меня лично сейчас нет свободного времени написать полноценную статью об всех изменениях. Изменений много.
Важное изменение, которое всё же я упомяну - появился свой backend для компилятора. То есть отказ от LLVM состоялся, но на данный момент только для Linux x86_64.
Интерактивный стримкаст со зрителями 9 марта в 19:00
Максим будет писать веб интерфейс для вики (с выделением текста и возможностью отставлять инлайн комментарии) с помощью последней версии Copilot agent. А все мы (включая вас) — токсично (и не очень) комментировать.
Исследование выявило ключевые тенденции в том, как open-source проекты работают с документацией: ✅ README-файлы появляются на ранних этапах жизни проекта. ✅ Руководства по внесению вкладов (CONTRIBUTING) добавляются позже, когда активность растёт. ✅ Документация в основном сосредоточена на использовании и внесении изменений, а не на развитии сообщества, несмотря на частые рекомендации уделять больше внимания именно этому аспекту.
Хотя развитие сообщества считается важным фактором устойчивости FLOSS-проектов, не все основатели сразу ставят эту цель. Более того, излишний упор на построение сообщества на ранних этапах может усложнить процесс и отпугнуть потенциальных участников.
🔍 Главный инсайт: Вместо универсального подхода open-source проекты могут выстраивать стратегию документации, исходя из реального роста и потребностей участников. Интересно, что более содержательная документация, как правило, коррелирует с расширением проекта со временем.
Почему решение необходимо. Предположения, ограничения, мотиваторы принятия решения.
# Критерий оценки
Какие приоритеты в принятии решения? Какие из параметров и характеристик системы рассматриваются или используются в принятии этого решения. Какие мотиваторы и ограничения использовались при принятии решения?
# Доступные варианты
Описывает доступные варианты, изученные при принятии решения согласно критерию оценки(обычно используя рейтинг или оценочную функцию), и компромиссы, возникающие за пределами критерия.
# Решение
Сделанный выбор и аргументация в его пользу.
# Последствия
Положительные и отрицательные последствия принятого решения.
# Консультации
В случае привлечения к обсуждению дополнительных участников, их комментарии документируется здесь. Дополнительная информация о приглашенных, не взирая на наличие от них отклика также записывается тут. Консультации обычно проводятся до принятия решения, но документируются в конце шаблона, чтобы своим объемом и свободной формой не затмевать собственно решение, ради которого создается запись.
Представлен локальный ИИ-ассистент DeepSeek Code Companion для разработчиков на базе DeepSeek R1. Для работы с ним не нужен даже API. Пишет код на уровне сеньора. Во время компиляции помогает в отладке и исправлении багов. Даёт рекомендации по архитектуре и масштабированию. На выбор есть две модели: для быстрых ответов и для более сложных задач.