Обновить
512K+

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

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

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

Scala Digest. Выпуск 46

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

Привет, Хабр! Мы — Настя и Эвелина — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal, добавляем дополнительные материалы и собственные комментарии. Мотивацию черпаем из желания развиваться и делиться полученными знаниями.

Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать сорок шестой выпуск

Новости

LinkedIn и семь удалёнок: как из России выходят на валютные IT-контракты в 2026 году

Уровень сложностиСредний
Время на прочтение46 мин
Охват и читатели8K

Можно ли в 2026 году жить в России, работать на зарубежную компанию, получать валюту и претендовать на контракты от $10 000 в месяц? Что сегодня важнее на международном рынке – технические навыки или умение продать собственный опыт? Почему первое собеседование на английском почти всегда оказывается стрессовым, какие технологии сейчас продаются дороже остальных и что происходит с разработчиком, когда одной работы становится мало и он берёт семь параллельных проектов?

Я, Александр, автор телеграм-канала «Shulepov Code», поговорил с Евгением – разработчиком с более чем двадцатилетним опытом в IT, автором YouTube-канала «IT Красавчик» и человеком, который начал работать на зарубежные компании ещё в середине нулевых. За это время он прошёл путь от техподдержки и Perl до Go, B2B-контрактов, ставок в сотни евро в день, нескольких параллельных проектов и собственного сообщества разработчиков, которые ищут валютную удалёнку. 

В разговоре мы обсудили состояние российского и зарубежного IT-рынка, роль LinkedIn и английского, возраст разработчика, background check, выплаты из-за рубежа, B2B против обычного трудоустройства, AI, актуальные стеки, Upwork, «накрутку» опыта и цену семи удалёнок одновременно. А в середине интервью Евгению буквально позвонили по поводу background check – так что часть теории удалось проверить в прямом эфире.

Читать далее

Находки в опенсорсе: доклады с большой встречи сообщества, конец опенсорса и питон 3.15; октябрь 2026

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели7.8K

Всем привет! Очень большой получился дайжест: было очень много событий. Но тем будет интереснее!

17 октября прошла наша большая открытая встреча сообщества в Нижнем Новгороде, доклады с которой уже выложены в посте ниже.

Еще поговорим про Python 3.15 и его фичи, ведь он как раз был релизнут в октябре 2026. Посмотрим, что нам уже готовит Python 3.16.

Поговорим про проекты сообщества. Очень много крутых (и очень красивых!) штук подобралось.

С меня как всегда статья без нейрослопа и ИИ, с вас как всегда интересные комментарии и лайки! А вот тут ссылка на прошлый дайджест за сентябрь.

Погнали смотреть, что у нас в питоне происходило!

Читать далее

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

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели6.4K

Порассуждаем о том, на чём мы будем писать код в ближайшие годы. Появятся ли ещё новые языки, если нейронка умеет хорошо писать только на тех, что видела при обучении? Кто платит за Rust, Python и Zig? Переживут ли PHP и 1С эпоху агентов? И чем будут заниматься те, кто продолжит программировать?

Читать далее

Ты не бойся, это Goose

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели9.8K

Есть вещи посильнее “Фауста” Гёте. Есть вещи побыстрее Rust – новый ЯП Goose. Он же и помедленнее. Зависит от контекста.

В типичных публикациях феномен подаётся так: “ИИ написал язык Goose – быстрее C++ и Rust”. Под катом – магия в деталях с частичным последующим разоблачением.

Читать далее

От промпта до продакшна за два часа: всё, что нужно знать о Claude Code

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

К концу 2026 года Claude Code перестал быть экзотикой: CLI-агент от Anthropic генерирует всё на свете — видео, сайты, приложения, скрипты, статьи — и закрывает заметную часть инженерной рутины. Одни называют его лучшим, что случилось с разработкой за последние годы; другие указывают на лимиты, которые заканчиваются быстрее, чем ожидалось, жалуются на решения, которые агент принимает без спроса, и на очередную волну блокировок аккаунтов.

Статья для тех, кто не сразу нырнул в ИИ-сферу и до сих пор копирует код из браузера в IDE, а теперь хочет понять, что за зверь такой Claude Code.

В этой статье я расскажу как им пользоваться, почему пара часов вместо пары дней — на самом деле реальный сценарий, но только для небольшой фичи или сервиса, оговорю это сразу. Разберём, что настроить до первого запуска, как описать проект, чтобы агент не угадывал команды, и в какой момент пора остановиться и проверить всё руками. А также разберем конкретные инструменты и нововведения Claude Code - скиллы, агенты и MCP. Они распространяются и на другие альтернативы, будь то Codex или OpenCode, но Claude Code остается эталоном, на его примере и разберем.

Читать далее

Многопоточность в Rust: как Ownership, Send и Sync помогают бороться с гонками данных

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.7K

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

В Rust мы с вами постараемся решить ту же самую задачу.

Главное отличие заключается не в том, что Rust умеет создавать потоки каким-то лучшим способом, а дело в модели владения и системе типов: компилятор не позволяет безопасному коду произвольно разделять изменяемые данные между потоками.

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

Будем разбираться с вами на практических примерах.

Читать далее

Можно ли отказаться от Opus и Codex? Проверил MacBook, игровой ноутбук и DGX Spark на одной задаче с ловушками

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

В моём пет-проекте open-daimon давно есть роутинг между локальными моделями и облаком.

Сразу оговорюсь: публично open-daimon не обновляется, потому что разработку я веду локально, так быстрее. А на его основе у меня уже есть отдельный закрытый проект, который расширяет его возможности, — студия управления агентами. В ней я всё это и тестировал.

Всерьёз захотелось по простой причине: в облаке правила чужие, и меняются они без спроса.

В октябре снова всплыло, что в потребительских условиях Anthropic для жителей ЕЭЗ и Швейцарии прямо написано: не использовать сервисы «в коммерческих или деловых целях». Под эти условия попадают Claude.ai и подписки Pro и Max. То есть разработчик в Европе, который пишет рабочий код в Claude Code по подписке Max, формально их нарушает. Для работы нужен API, Team или Enterprise, а это уже совсем другие деньги.

Вторая история про то, что тебе разрешат делать со своим же железом. Автор Decrypt попросил Claude Opus 5.5 помочь заново получить root на собственном телевизоре LG. Защита модели оборвала запрос и предложила переключиться на Opus 4.8. А исследователь, известный находкой с постоянно включённым микрофоном в телевизорах Samsung, пишет, что OpenAI заблокировала его аккаунт за «Cyber Abuse» после анализа прошивки через ChatGPT. Вместе с аккаунтом пропали примерно $500 на балансе API. OpenAI это не комментировала, так что пока это только его слова.

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

Читать далее

Основы глубокого обучения. Часть 2

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели8.3K

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

В этой части мы разберём подробнее свёрточные нейронные сети.

Читать далее

Почему мы запретили AI-менеджеру писать код и поручили это Claude Opus

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

AI-менеджер маркетплейсов получил весь API Wildberries, но маржу, сроки поставки и аудит карточек ему приходилось считать заново в каждом разговоре. Нужны были готовые инструменты. Оставалось решить, кто их напишет.

Разрешить писать код самому менеджеру мы не решились: он постоянно читает чужие тексты, а код выполнялся бы рядом с ключами кабинетов. Поэтому инструменты написал Claude Opus в отдельной изолированной службе, а менеджер может только вызывать готовое. Рассказываем, как устроено это разделение и как мы лишили модель возможности выполнить правку без «да» владельца.

Читать далее

Раскладку нельзя определить. Можно только сделать ошибку обратимой

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

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

Читать далее

Программируем без IDE или применение qwen и qwen coder для написания софта

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

Сейчас мы попробуем быстро написать сканер ntfs alternate data streams потоков, на не совсем тривиальном стеке и архитектуре. Сделал я это в первую очередь для тестирования возможностей моделей семейства qwen.

Краткое пояснение для тех, кто не работал в это сфере. NTFS (аббревиатура от англ. new technology file system — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT. Одним из ее малоизвестных свойств является наличие альтернативных потоков данных (англ. Alternate Data Streams, ADS), который представляют собой метаданные, связанные с объектом файловой системы NTFS. Таким образом к файлу можно прикрепить еще несколько потоков данных которые будут не видны стандартными средствами ОС.

Читать далее

Выжимаем максимум из BERT: токенизация в 50 раз быстрее

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

Даже проверка обычных символов может стать узким местом в обработке текста для языковых моделей. При профилировании bert-base-uncased выяснилось, что на нормализацию уходило 88% времени токенизации. В статье разбираемся, как SIMD‑инструкции, кеширование Unicode и пропуск лишних операций помогли ускорить обработку примерно в 50 раз, почему на разных языках результаты отличаются и где у такого подхода есть ограничения.

Разобрать оптимизацию

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

Динамический метод численного интегрирования Гаусса‑Лежандра на C#: вычисляем узлы и веса «на лету» без переполнения

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

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

Читать далее

React Context без лишних ререндеров: подписка на отдельные поля

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.5K

Знакомая ситуация: в контексте лежат два поля, скажем, name и age. Меняется age, и ререндерится компонент, который читает только name. У useContext нет селектора, как у useSelector в Redux: React сравнивает value провайдера целиком, а при каждом изменении это новый объект. Ни useMemo, ни React.memo тут не спасают.

В статье — небольшой контекст, где компонент ререндерится, только когда меняется его собственное поле. И разбор, почему он устроен именно так:

Почему через контекст стоит передавать не сами данные, а стабильный объект доступа к ним?

Почему обычные приёмы — useMemo на value и раздельные контексты — до этого не дотягивают?

Зачем для подписки нужен useSyncExternalStore и что такое tearing?

На каких деталях легко ошибиться и когда такой контекст вообще нужен?

Читать далее

Написал NetRuleRouter, чтобы сайты, приложения и сети работали через разные подключения без отключения VPN

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

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

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

А если одновременно нужны корпоративный VPN, личный VPN, мессенджеры, игры и обычный интернет?

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

Причём NetRuleRouter — не VPN-клиент. Он работает поверх уже существующих подключений и позволяет выбирать, через какое из них должен идти определённый трафик.

Разработку я начал 1 апреля 2026 года, первые рабочие версии использовал ещё летом, а теперь выпустил первую публичную альфу NetRuleRouter v0.1.0-alpha.1 для Windows и Linux.

Хочу рассказать, откуда появилась идея, что уже умеет программа, как я использую её сам и почему при таком количестве возможностей это пока именно alpha.

Читать далее

Ваш recover() эту ошибку не поймает

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

В Go‑сервисе recover() может выглядеть надёжной страховкой, пока конкурентная запись в map не завершает процесс через fatal error: concurrent map writes. При этом часть гонок проходит незаметно и приводит к потере данных без единой ошибки в логах. В статье разбираемся, почему recover() не спасает в таких ситуациях, как обнаружить проблему с помощью -race и какой способ синхронизации выбрать для общей map.

Разобрать проблему

Внутри диаграммы Ганта: холст 480 на 360, палитра на 30 цветов и число без последнего бита

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

Я собираю файл конфигурации из XML так, чтобы он совпал с платформенным с точностью до бита. Диаграммы Ганта в типовых конфигурациях пустые, и на них ушло шесть дней. Внутри нашлись обычная диаграмма, воображаемый холст 480 на 360, число, у которого платформа теряет последний бит, и палитра, где серия номер -1 получает 15-й цвет. Рассказываю, как это устроено и как добывалось: дизассемблер, Frida и серия загрузок платформой.

Читать далее

Два бага, 20 часов откатов: как я чинил гонки в M:N-рантайме Nova

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.8K

На первый баг ушло десять часов и пять гипотез, ни одна не подтвердилась. На второй — ещё десять часов и семь попыток. А потом каждый закрылся за минуты: в одном случае хватило строчки в дампе состояния, в другом — первого запуска с самодельным обработчиком падений.

Три истории о гонках в M:N-рантайме языка Nova: что сломалось, как я это искал и что в итоге нашло баг. Объясняю простыми словами, знать устройство рантайма не нужно, а в конце — чек-лист для отладки гонок в многопоточном коде.

Читать далее

Подводные камни битовых полей в C++

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

Думаю, вы знаете, что C++ — язык, который разрешает вам вообще всё. А потом молча смотрит, как вы на этом подрываетесь. Обычно мы привыкли мыслить категориями байтов, но что делать, если стандартная сетка типов кажется слишком расточительной? Когда внутренний перфекционист требует компактности, на помощь приходят битовые поля. Зачем отдавать под скромный флаг “да/нет” целый восьмибитный контейнер, если можно ювелирно отрезать ровно один бит? Поставил двоеточие — и ты повелитель памяти. Но там, где начинается экономия, заканчивается порядок и предсказуемость. Программист остается один на один с тонкостями стандартов и поведением конкретных платформ. Предлагаю вместе заглянуть под капот C++ и подробно разобрать, как на самом деле устроены битовые поля.

Читать далее