Search
Write a publication
Pull to refresh
17
0

User

Send message

PEP-734: Субинтерпретаторы в Python 3.14

Level of difficultyHard
Reading time16 min
Views6.7K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом будет про: новые питоновские API для ускорение и паралеллизации ваших програм, про управление памятью, про дублирование данных. Ну и много C кода!

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

Если вам такое интересно или целиком незнакомо – добро пожаловать!

Читать далее

Как я собеседовался в Ozon, Т-Банк, Mindbox и другие крупные компании

Level of difficultyEasy
Reading time25 min
Views140K

Всем привет. Я сеньор и тимлид на .NET (C#). До недавнего времени работал в Росатоме, пока там внезапно не сократили целую дирекцию по цифровизации. Так что пришлось срочно выходить на рынок, причём, впервые в моей жизни (до этого работа находила меня сама). По результатам нескольких циклов собеседований получился неплохой дневник, который я здесь привожу.

История длинная, но интересная

Ошибки молодого лида: что меняется, когда у тебя появляется команда

Level of difficultyEasy
Reading time11 min
Views15K

Привет, меня зовут Галя Ширанкова и я product unit lead в Авито. Я работала во многих больших компаниях — Ланит, Т1, МТС, ВК — и полученный опыт позволил мне увидеть, какие ошибки совершают лиды, особенно в начале карьеры. В статье рассказываю, с чем сталкиваются на своём пути начинающие тимлиды, и даю советы, как справляться с этими сложностями. Материал будет полезен тем, кто только стал лидом, планирует карьерный рост или управляет молодыми лидами — отвечает за их онбординг и растит сотрудников на новой позиции.

Читать далее

Найм в IT мертв. Или нет?

Level of difficultyEasy
Reading time7 min
Views37K

Всем привет!

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

Читать далее

Найм в IT всё-таки мёртв

Reading time3 min
Views68K

Или почему найти работу в 2025 году стало практически невозможно.

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

Но сейчас всё по-другому

Читать далее

Как собрать Docker-образ, который можно запускать в проде (а не только у себя на ноуте)

Level of difficultyEasy
Reading time4 min
Views31K

Если ты пишешь Dockerfile, скорее всего, он работает. Но вопрос не в том, работает ли. Вопрос в другом: будет ли он работать через неделю, на другом сервере, в CI/CD, на чужом железе — и будет ли это безопасно?

Читать далее

Наш CEO хочет no-code в проде. Я против — и готов уйти

Level of difficultyMedium
Reading time7 min
Views34K

Как визуальные платформы ломают культуру разработки и зачем нам нужен контроль над кодом

У меня 25 лет опыта в веб-разработке. Я видел, как появлялись и умирали сотни инструментов, фреймворков, "революций" и "новых парадигм". Я устал повторять, что я не нео-луддит. Я не против прогресса. Но есть момент, когда вместо прогресса тебе продают иллюзию простоты, замаскированную под инновацию.

Так вот, теперь наш CEO влюбился попал под очарование Lovable и хочет, чтобы мы начали использовать его или Base44 для ускорения разработки и быстрого внедрения новых фич. По его задумке, дизайнер "набрасывает интерфейс" (в этих визуальных платформах для сборки UI/UX дизайнером), а мы "допиливаем чуть-чуть на бэке" (через API, Карл!), и всё - фича в проде. Time-to-Market стремительно сокращается, мир спасён, а мы свободны от "лишней инженерии".

Я против. Категорически. И да, это война.

Читать далее

DevOps не умер, нет. Но ему плоховато

Level of difficultyEasy
Reading time4 min
Views24K

Некоммерческая организация Continuous Delivery Foundation (далее — CDF) сообщает о том, что DevOps‑инициативы, похоже, зашли в тупик.

На саммите Open Source Summit (OSSummit) North America, одним из организаторов которого выступил CDF, в рамках конференции cdCon был представлен пятый ежегодный отчет State of CI/CD Report. В нем сообщается, что, хотя 83% разработчиков и применяют DevOps‑практики, тем не менее растет доля специалистов с низкими показателями в метриках развертывания — это тревожное наблюдение.

Что же это означает? Разбираемся под катом.
Читать дальше →

Почему твой await fetch тормозит — и как это исправить

Level of difficultyEasy
Reading time5 min
Views15K

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

В этой статье рассмотрим, почему безобидная строчка await fetch() неожиданно превращается в тормоз, где именно она зарывает драгоценные миллисекунды — и что можно сделать с этим.

Читать далее

Отбитый дотнет

Level of difficultyMedium
Reading time10 min
Views29K

Поскольку прошлая статья про «особенную» Java вызвала интерес, мы решили продолжить праздник. Настало время познакомить разработчиков С# с темной стороной любимой технологии — сегодня шатаем .NET!

Читать далее

Как я до конца пытался казаться успешным бизнесменом, пока за 6 лет не потерял все

Level of difficultyEasy
Reading time10 min
Views44K

Спустя несколько лет мое фото-видео производство будет приносить 35 млн ₽ выручки в год. А через 6 лет я его закрою и зафиксирую суммарный убыток в 13,5 млн ₽.

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

Читать далее

Доступное объяснение гипотезы Римана

Reading time20 min
Views169K
image

Посвящается памяти Джона Форбса Нэша-младшего

Вы ведь помните, что такое «простые числа»? Эти числа не делятся ни на какие другие, кроме самих себя и 1. А теперь я задам вопрос, которому уже 3000 лет:

  • 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, p. Чему равно p? 31. Каким будет следующее p? 37. А следующее p ? 41. А следующее? 43. Да, но… как нам узнать, каким будет следующее значение?

Придумайте суждение или формулу, которые (хотя бы с грехом пополам) прогнозируют, каким будет следующее простое число, (в любом заданном ряду чисел), и ваше имя навечно будет связано с одним из величайших достижений человеческого мозга. Вы встанете в один ряд с Ньютоном, Эйнштейном и Гёделем. Разберитесь в поведении простых чисел, и можете потом всю жизнь почивать на лаврах.

Введение


Свойства простых чисел изучались многими великими людьми в истории математики. С первого доказательства бесконечности простых чисел Евклида до формулы произведения Эйлера, связавшей простые числа с дзета-функцией. От формулировки теоремы о простых числах Гаусса и Лежандра до её доказательства, придуманного Адамаром и Валле-Пуссеном. Тем не менее, Бернхард Риман до сих пор считается математиком, сделавшим единственное крупнейшее открытие в теории простых чисел. В его опубликованной в 1859 году статье, состоявшей всего из восьми страниц, были сделаны новые, ранее неизвестные открытия о распределении простых чисел. Эта статья по сей день считается одной из самых важных в теории чисел.

После публикации статья Римана оставалась главным трудом в теории простых чисел и на самом деле стала основной причиной доказательства в 1896 году теоремы о распределении простых чисел. С тех пор было найдено несколько новых доказательств, в том числе элементарные доказательства Сельберга и Эрдёша. Однако до сих пор остаётся загадкой гипотеза Римана о корнях дзета-функции.
Читать дальше →

Как я купил ноутбук для дошколят на MIPS-процессоре и все заверте…

Level of difficultyMedium
Reading time9 min
Views27K

Осторожно: в статье я постарался подробно написать про всё, за что вы так любите Хабр: аппаратный моддинг и ковыряние в железе, хакинг Linux и обход проприетарной оболочки, а также программирование и портирование софта с других платформ.

Я очень большой фанат портативных гаджетов с полноценными QWERTY-клавиатурами: ноутбуков, коммуникаторов и различных хэндхелдов. Когда в мои руки попадает девайс с Linux или Windows CE в том или ином виде, я стараюсь максимально расширить функционал устройства и порой даже портирую программы с других платформ! Недавно мне удалось купить китайский детский обучающий ноутбук с MIPS-процессором и поворотным дисплеем всего за 1 000 рублей. Интересно узнать о том, как я хакнул девайс и причём здесь Dingoo A320? Тогда жду вас под катом!

Читать далее

Про Rust — просто. Что читать в каком порядке?

Level of difficultyMedium
Reading time20 min
Views25K

Друзья! Многие из вас, возможно, как и я, интересовались изучением и использованием в работе очень эффективного и востребованного языка программирования Rust но, как и я, оставляли свои попытки из-за сложности, запутанности и многослойности доступного материала и книг по этой теме.

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

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

Читать далее

Perforator: новая система непрерывного профилирования теперь в опенсорсе

Level of difficultyMedium
Reading time21 min
Views40K

Привет! Сегодня мы выложили в опенсорс Perforator — систему непрерывного профилирования (continuous profiling), которую используем внутри Яндекса для анализа производительности большинства сервисов.

В Github-репозитории доступен исходный код системы и инфраструктура для развёртывания своей инсталляции Perforator на кластере Kubernetes. Кроме того, Perforator можно использовать на своём компьютере как более простую замену perf record: профили получаются точнее, а оверхед меньше. Исходный код доступен под лицензией MIT (и GPL для eBPF-программ) и запускается под x86-64 Linux.

При помощи Perforator и прошлых подходов к задаче профилирования мы регулярно оптимизируем самые крупные сервисы в Яндексе, например Баннерную крутилку или Поиск, на десятки процентов. Кроме того, Perforator реализует недостающий в опенсорсе компонент профилирования для простой автоматической оптимизации программ с использованием profile-guided optimization. Наши тесты показывают, что использование PGO даёт ускорение около 10% в разных сценариях.

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

Читать далее

Мониторинг бизнес-процессов с помощью OpenTelemetry

Reading time17 min
Views10K

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

В этой статье расскажу, как мы объединили несколько разных команд разработки Райффайзен Онлайн общим Observability и с помощью исключительно технических метрик отслеживаем здоровье бизнес-процессов. Как всё это помогает мгновенно находить первопричину сбоя. Как устроен OpenTelemetry и как с его помощью рассчитать доступность приложения в девятках, а также MTTR (Mean Time to Recovery).

Читать далее

TS Extend: полезная утилитарная функция для расширения type

Reading time3 min
Views1.9K

В текущей версии TS (5.7) нет нативного расширения типов.

Расширение в TS реализуют интерфейсы через ключевое слово extend, причем интерфейсы могут быть расширены только от одного объекта.

Хотя для типов (type/interface) предусмотрена операция интерсекции (&), которая объединяет свойства двух или более типов - она обладает важным ограничивающим свойством - при наличии одинаковых свойств, операция интерсекции присваивает их результирующему типу значение never.

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

Читать далее

«Кандидат имеет право задавать уточняющие вопросы», или Доводим интервьюера до нервного срыва

Reading time4 min
Views129K
Недавно я прочёл запись в блоге одного парня, который жаловался, что на интервью его попросили написать функцию, которая должна скопировать файл. Нет, я понимаю, как можно взъесться на такое задание, но если бы в подобной ситуации оказался я… уж я бы оторвался по полной:

Кандидат: Что конкретно Вы имеете в виду, говоря «скопировать»?
Интервьюер: Ну… создать новый файл, содержимое которого является копией содержимого исходного файла.
Читать дальше →

Почему я не готовлюсь к алгоритмическому интервью

Level of difficultyEasy
Reading time7 min
Views50K

Почему я не готовлюсь к алгоритмическому интервью

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

К собеседованию

Контроль кода Powershell

Level of difficultyMedium
Reading time11 min
Views3.4K

Построение процесса разработки скриптов на Powershell с линтингом, тестами и Quality Gate. Выбор IDE, фреймворка тестирования и прочих инструментов с примерами.

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

Information

Rating
5,618-th
Registered
Activity