Все потоки
Поиск
Написать публикацию
Обновить
1050.63

Программирование *

Искусство создания компьютерных программ

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

Книга: «Мощный Python: паттерны и стратегии современного программирования»

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

Привет, Хаброжители! Как стать экспертом в создании сложных и мощных приложений на Python, не тратя времени на повторение уже известных основ или перечисление ненужных функций? Аарон Максвелл фокусируется на первопринципах Python, которые действуют подобно катализаторам для всего остального: достаточно получить 5 % знаний в области программирования, чтобы остальные 95 % подтянулись автоматически.

Читать далее

Думай о секундах свысока — как бы говорит нам Modern C++

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

Думай о секундах свысока - как бы говорит нам Modern C++.

Зачем нам использовать Modern C++, особенно старших версий? Дурацкий вопрос, скажут сектанты, фанаты, фанатики, адепты. Оно же необходимо для большей выразительности, читабельности и ускорения всех возможных процессов, включая метаболизм; и еще для экономии времени. Что-то в этом есть, а кое-чего нет. Давайте рассмотрим пример из жизни.

Один программист (имя сохранено в редакции) писал себе спокойно код и написал примерно такое (для справки: используемый стандарт 2017):

пример из жизни

Почему лучшие программисты — это филологи (сами того не подозревая). Что общего у переменной temp и прозвища «Очкарик»?

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

Привет, Хабр!

Меня зовут Артем Лакомов, я филолог из МГУ. Да, вы не ослышались. И сегодня я хочу поговорить с вами о самой главной (и самой дорогой) боли в IT, но с совершенно неожиданной стороны.

Каждый из вас хоть раз в жизни видел код, от которого хотелось плакать или же тихо ненавидеть свою работу. Код с переменными вроде data, res, temp. Код, где есть один гигантский класс, который делает абсолютно всё, и коллеги с любовью (или ужасом) называют его godObject.

Все привыкли думать, что это просто «плохой стиль» или «технический долг». Но что, если я скажу вам, что это — не техническая, а языковая проблема? И что у монструозного godObject гораздо больше общего со школьным прозвищем «Толстый», чем вы думаете?

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

Давайте я покажу вам, как теория прозвищ, разработанная великим отечественным лингвистом А.В. Суперанской, вскрывает то, о чем инженеры только догадывались интуитивно, но, увы, не могли сформулировать.

Читать далее

Зачем детям изучать программирование, если есть ChatGPT?

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

Каждую неделю нам задают один и тот же вопрос: «Зачем учить ребенка программированию, если нейросети скоро заменят всех программистов?». Честно говоря, три года назад я и сама так думала. Но наблюдая за детьми в эпоху ИИ-революции, поняла кое-что важное.

Читать далее

Универсальный парсинг сайтов на Python: requests vs headless, токены, куки, прокси и ротация IP

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

Вы когда-нибудь радовались идеальному прототипу парсера, который у вас летал на демо-странице, а в проде внезапно начал ловить 403, 429, пустые HTML и «куда-то делись карточки»? Контент отрисовывается на JS, сервер требует токен, после смены IP, старая сессия перестаёт работать.

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

Читать далее

CPython — сборка мусора изнутри, ч.1

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

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

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

Читать далее

Упрощаем работу с БД с помощью Drizzle ORM — как выжать максимум из инструмента

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

Привет, я Сергей Маркизов, разработчик диджитал-продакшна Далее. В наших проектах часто использую Drizzle — современную, типобезопасную ORM для TypeScript, которая не усложняет базовую задачу: читать и писать данные. В этой статье расскажу, чем библиотека отличается от других и как с ней работать.

Читать далее

Spring Modulith: проверяем границы модулей в монолите и события домена

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

Привет, Хабр!

Еще в C++20 появилась явная поддержка модулей в языке. Интересно, но в Java тоже давно искали похожее решение для упорядочивания больших монолитных проектов. Spring предлагает свой ответ – проект Spring Modulith, цель которого дать разработчику инструмент для построения модульного монолита. Он не делает всю работу, но помогает структурировать код по модулям, проверять архитектурные правила и организовывать взаимодействие между этими модулями.

Читать далее

Не откладывайте на завтра, что можно сделать сегодня

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

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

Все очень просто. Говорите себе: «Это я потом поправлю, а это я потом перепишу. А вот это пока подождет. А файловую систему я потом продумаю»? Так вот это «потом» может так и не наступить. А ваш проект превратится в мусор. А даже если вы и вспомните о том, что пора что-то куда-то переносить, вместо двух файлов у вас будет 100 или больше. И вы уже не будете помнить, что за что отвечает и где лежит. В итоге вместо одного часа вы потратите день или больше на рефакторинг, которого можно и нужно было избежать.

В общем, ключевое — это не бежать сразу писать код, а сначала все продумать. Структуру, архитектуру, всякие эти фишечки и прочее. Хотя бы в общих чертах. Иначе ваш проект очень скоро будет приносить вам боль, а время вы потратите совсем не на то, что вам бы хотелось.

Читать далее

Больше никакой ручной сортировки: как мы настроили автоимпорт резюме из hh.ru в Битрикс24

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

Привет, Хабр! Меня зовут Иван, я разработчик из команды KISLOROD. Рассказываю, как мы настроили автоимпорт резюме с hh.ru в Битрикс24: от нюансов API до фильтрации и борьбы с дублями — без лишней магии, но с кучей тонкостей.

Читать далее

Контроль напряжения над блоком питания на STM32: Подход к энергоэффективности и защите

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

Привет, Хабр !

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

В данной статье будет представлен пример контроля напряжения, над блоком питания - внутри которого (никель-металлгидридная аккумуляторная сборка NiMH 14.4В/12 банок по 1.2В(1.4В- при полной зарядке)), с помощью микроконтроллера STM32.

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

Работа с кнопкой;

Работа со светодиодом;

Работа с пъезоэлектрическим излучателем(звуковая индикация);

Контроль заряда/разряда аккумулятора(дает звуковой сигнал при напряжении менее 9 вольт и более 14).

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

Читать далее

Создаём собственный системный вызов в Linux 6.8

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

Вам когда-нибудь хотелось создать собственный системный вызов? Может быть, вы получали такое домашнее задание, пытались сделать это из интереса или просто для того, чтобы узнать что-то новое о ядре. В любом случае, системные вызовы – крутая штука, чтобы подробнее разобраться в Linux.

Читать далее

От стартапа до ИИ-экосистемы: как GitHub стал частью Microsoft CoreAI. Что произошло?

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

GitHub — не просто платформа для хранения кода, а центр open-source-культуры, объединяющий миллионы программистов. С момента запуска в 2008 году GitHub прошел путь от амбициозного стартапа до ключевого игрока в разработке ПО, пережил покупку Microsoft в 2018 году. Ну а в 2025-м он потерял автономию из-за интеграции в Microsoft CoreAI. Уход CEO Томаса Домке стал символом этих перемен. Давайте вспомним развитие GitHub, а еще обсудим последствия сделки с Microsoft и влияние новых изменений на Copilot и open-source.

Читать далее

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

Настольные игры для юных программистов и робототехников. Что можно купить в 2025 году?

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

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

Читать далее

Работа с Binance REST API с помощью Java

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

В предыдущей статье мы рассмотрели основы парсинга данных в Java.

В этой статье мы пошагово разберём, как с помощью Java 11+ быстро отправлять HTTP GET‑запросы, получать JSON от Binance REST API и извлекать из него символ пары (symbol) и цену (price) — без сторонних зависимостей.

Также в статье мы рассмотрим обход блокировки запросов со стороны сервера.

Читать далее

Лучшие антидетект браузеры: Рейтинг лучших решений для мультиаккаунтинга

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

В эпоху тотального трекинга цифровая идентичность дороже золота. Один неверный клик — и рекламный кабинет улетает в бан, а масс-рег на маркетплейсах буксует. Поэтому именно антидетект браузер (часто называют антики или браузер антик) становится главным щитом против антифрода. Хотите скачать антидетект браузер и сразу выйти в плюс? Ниже собраны лучшие решения, проверенные на реальных CPA-кампаниях, SMM-фарме и e-commerce-воронках. Всего за несколько минут вы узнаете, как с нуля внедрить undetectable browser, держать сотни профилей без бана и автоматизировать рутину до клика.

Читать далее

Как нарисовать космического захватчика

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

Недавно я написал Space Invader Generator в рамках соревнований по кодингу Creative Coding Amsterdam. Разумеется, я сделал это ради развлечения... но и для господства над галактикой тоже! На скриншоте показано, как он выглядит, а в посте я объясню, как он работает.

Читать далее

Как работает машина Enigma M3 (для флота)

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

Привет всем!

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

В этой статье описываю всё подробно, не опуская детали, и записывая куски кода на Python для иллюстрации. В конце статьи полный код, реализующий алгоритм Энигмы.

Читать далее

Невидимые чернила в цифровом мире: технология сокрытия данных в DOCX/XLSX

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

Привет, Хабр!

Стеганография — искусство сокрытия информации — чаще всего ассоциируется с изображениями и аудиофайлами. Но что если нам нужно спрятать данные не в медиафайле, а в обычном офисном документе, например, в .docx или .xlsx?

На первый взгляд, задача кажется сложной. Документы имеют строгую структуру, и любое неосторожное изменение может повредить файл. Однако современные форматы Office, основанные на Open XML, предоставляют удивительно элегантные и надежные способы для встраивания сторонних данных.

Читать далее

ТОП-10 сервисов для проверки авто по VIN и госномеру в 2025 году

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

Год 2025 окончательно сделал проверку авто по VIN и гос номеру обязательной частью сделки. Быстрая автопроверка показывает историю авто онлайн: ДТП, ограничения регистрационных действий, залог, количество владельцев, сервисные записи, ОСАГО и техосмотр. Такой отчёт об автомобиле помогает торговаться, избегать юридических рисков и не купить «кота в мешке». Ниже собраны 10 актуальных сервисов: 5 коммерческих и 5 бесплатных. Все карточки одинаковой структуры, чтобы удобно сравнивать и искать машину по номеру или VIN коду.

Читать далее

Вклад авторов