adamj.eu
Django: what’s new in 6.0 - Adam Johnson
Django 6.0 was released today, starting another release cycle for the loved and long-lived Python web framework (now 20 years old!). It comes with a mosaic of new features, contributed to by many, some of which I am happy to have helped with. Below is my…
А тем временем вышла новая мажорная версия Django. У меня к этому фреймворку давняя любовь; я умею его готовить и надеюсь к нему вернуться :)
Заметил, что он вобрал в себя много сторонних пакетов, которые доказали свою полезность. Итак, из интересного:
- выполнение отложенных задач
- улучшение Content Security Policy
- автоимпорт пакетов в
- встроенный тип поля модели StringAgg
Интересный получился релиз. И если хочется поиграться с отложенными задачами, то вот подробная инструкция. Главное, разделяйте рантайм и фоновую нагрзуки, чтобы работа в фоне не аффектила запросы пользователей.
UPD. Нашёл перевод
https://adamj.eu/tech/2025/12/03/django-whats-new-6.0/ #python
Заметил, что он вобрал в себя много сторонних пакетов, которые доказали свою полезность. Итак, из интересного:
- выполнение отложенных задач
- улучшение Content Security Policy
- автоимпорт пакетов в
./manage.py shell- встроенный тип поля модели StringAgg
Интересный получился релиз. И если хочется поиграться с отложенными задачами, то вот подробная инструкция. Главное, разделяйте рантайм и фоновую нагрзуки, чтобы работа в фоне не аффектила запросы пользователей.
UPD. Нашёл перевод
https://adamj.eu/tech/2025/12/03/django-whats-new-6.0/ #python
❤2👍2🔥1
А ведь я до сих пор не публиковал ссылку на замечательный сайт, в котором есть роадмапы по разным направлениям в IT. Например, что нужно знать фронтендеру, девопсу, млщику и т.п. Они очень подробны, расписаны какие технологии обязательны, а для каких есть альтернативы.
Проверил свой курс по linux, и он почти полностью совпадает :) По модулю работы с сетями — их студенты изучают только в следующем семестре.
https://roadmap.sh/ #dev
Проверил свой курс по linux, и он почти полностью совпадает :) По модулю работы с сетями — их студенты изучают только в следующем семестре.
https://roadmap.sh/ #dev
roadmap.sh
Developer Roadmaps - roadmap.sh
Community driven roadmaps, articles and guides for developers to grow in their career.
🔥8❤1👍1
Случайно натолкнулся на статью о том, как устроена разработка в AWS (в частности, в CloudFlare). Человека хватило аж на 3 года, но с последствиями для здоровья.
Если вы хотите работать в крупной компании, то готовьтесь не видеть своих результатов. Проталкивать свои идеи что-то из ряда невозможного. Расти на рабочих задачах — очень меееедленно. Менять мир — фантастика. Именно из-за этого я избегал раобты в энтерпрайзе. С другой стороны сидеть на попе ровно можно очень комфортно. Но в таком случае где вы окажитесь через 5 лет?
https://nekrolm.github.io/post.html?post=posts%2Fleaving-aws.md #dev
Если вы хотите работать в крупной компании, то готовьтесь не видеть своих результатов. Проталкивать свои идеи что-то из ряда невозможного. Расти на рабочих задачах — очень меееедленно. Менять мир — фантастика. Именно из-за этого я избегал раобты в энтерпрайзе. С другой стороны сидеть на попе ровно можно очень комфортно. Но в таком случае где вы окажитесь через 5 лет?
https://nekrolm.github.io/post.html?post=posts%2Fleaving-aws.md #dev
👍3
Если вы себя сегодня чувтсвуете котиком с этой картинки, то значит хорого отдохнули 🤪
У большинства наших органов есть свойство реципрокности: делать в один момент времени только одну какую-то задачу. Например, печень может или накапливать гликоген, или расщеплять алкоголь - но не одновременно! Вот с мозгом также. Ярко выражены 3 фазы, я их называю:
- "творец" - если надо придумать какой-то алгоритм или сделать презентацию
- "ученик" - подсистема выявления значимости
- "рефлексия" - переосмысление себя, отдых и т.п.
И переключаться между ними очень сложно. Но необходимо, т.к. нервные клетки одной подсети могут и не успевать восстанавливаться за ночь. Так что поболтайте у кулера, поразгребайте почту, почитайте Хабр - и мозг сам втянется в рабочий ритм 😉
Я, конечно, сильно утрирую. Гораздо лучше про работу мозга вам расскажет Вадим Макишвили. Есть текстовая расшифровка, но я настоятельно рекомендую именно видео. Спикер отлично рассказывает.
У большинства наших органов есть свойство реципрокности: делать в один момент времени только одну какую-то задачу. Например, печень может или накапливать гликоген, или расщеплять алкоголь - но не одновременно! Вот с мозгом также. Ярко выражены 3 фазы, я их называю:
- "творец" - если надо придумать какой-то алгоритм или сделать презентацию
- "ученик" - подсистема выявления значимости
- "рефлексия" - переосмысление себя, отдых и т.п.
И переключаться между ними очень сложно. Но необходимо, т.к. нервные клетки одной подсети могут и не успевать восстанавливаться за ночь. Так что поболтайте у кулера, поразгребайте почту, почитайте Хабр - и мозг сам втянется в рабочий ритм 😉
Я, конечно, сильно утрирую. Гораздо лучше про работу мозга вам расскажет Вадим Макишвили. Есть текстовая расшифровка, но я настоятельно рекомендую именно видео. Спикер отлично рассказывает.
👍16❤1
Ха-ха, вот и в Go появилась необходимость в определении заимствовании и владении. Спасибо rust, удобную концепцию ввели.
Суть в том, что вот такой код приводит к выделению огромного количества объектов на стеке, где никакого GC нет. И следовательно, приложение падает по OOM:
Я хоть и не работаю с Go, но понимаю где здесь утечка памяти. И чисто с продуктовой стороны я бы это поведение за баг не считал. Да, это особенность языка, что
К чему это я... Самый лучший код тот, который решает проблему будучи не написанным :) Попробуйте в своих продуктах убрать вариативность: возможность обработки разных типов параметров, не городите костыли для обработки очень редких случаев и т.п. - и увидите насколько проще станет поддерживать основной функционал.
https://habr.com/ru/articles/983622/ #go
Суть в том, что вот такой код приводит к выделению огромного количества объектов на стеке, где никакого GC нет. И следовательно, приложение падает по OOM:
package main
type Node struct {
next *Node
payload [64]byte
}
func main() {
curr := new(Node)
for {
curr.next = new(Node)
curr = curr.next
}
}
Я хоть и не работаю с Go, но понимаю где здесь утечка памяти. И чисто с продуктовой стороны я бы это поведение за баг не считал. Да, это особенность языка, что
new тут выделяет структуру на стеке, и это надо учитывать. Но уж точно не надо городить ещё один костыль в виде GC для стека. Это настолько редкая история, что он почти всегда будет работать в холостую. ИМХО, крайне странное архитектурное решение; впрочем, "вотэтоповоротов" в Go хватает и без этого.К чему это я... Самый лучший код тот, который решает проблему будучи не написанным :) Попробуйте в своих продуктах убрать вариативность: возможность обработки разных типов параметров, не городите костыли для обработки очень редких случаев и т.п. - и увидите насколько проще станет поддерживать основной функционал.
https://habr.com/ru/articles/983622/ #go
Хабр
Go: сборщик мусора там, где его не ждут
Всем привет! Меня зовут Нина Пакшина, и я уже 5 лет пишу на Go. Пару лет назад я готовилась к докладу и глубоко изучала исходники runtime Go. Там я наткнулась на очень интересный код. На время я о нём...
❤7
И эти люди ещё гонят на Linux 🙄
А вообще наглядный пример насколько сложно улучшать хороший продукт. Вместо реального исправления проблем делают то, что легко и показывает изменения сразу. Премию-то хочется, а за "просто хорошо работал" её не дают. Вот и приходится что-то придумывать, пусть даже от этого сам продукт пострадает. Такой вот конфликт интересов. Причём это просматривается не только в Apple.
Мне прям жалко дизайнера, который вынужден придумывать иконку для "Make plain text" или "Edit permissions". Ну потому что нет в этом неободимости!
https://habr.com/ru/companies/ruvds/articles/985818/ #dev
А вообще наглядный пример насколько сложно улучшать хороший продукт. Вместо реального исправления проблем делают то, что легко и показывает изменения сразу. Премию-то хочется, а за "просто хорошо работал" её не дают. Вот и приходится что-то придумывать, пусть даже от этого сам продукт пострадает. Такой вот конфликт интересов. Причём это просматривается не только в Apple.
Мне прям жалко дизайнера, который вынужден придумывать иконку для "Make plain text" или "Edit permissions". Ну потому что нет в этом неободимости!
https://habr.com/ru/companies/ruvds/articles/985818/ #dev
Хабр
Непростительные ошибки оформления иконок в Tahoe
Недавно читал руководство Macintosh Human Interface Guidelines от 1992 года и нашёл в нём интересную иллюстрацию: Которая сопровождалась пояснением: Перевод Не перегружайте экран графикой. Для более...
❤4👍2
"Когда показатель становится целью, он перестает быть хорошим показателем." (c) закон Гудхарта
Раньше в программисты шли, чтобы ковыряться с кодом и железяками; сейчас приходится заниматься саморекламой и работать на метрики. Всё потому, что бизнес сам не умеет оценивать вашу эффективность, а перекладывает на вас. Увы, ничего лучше опроса 360 или performance review он не придумал 🤷 В саму эту систему я перестал верить после того, как получил фидбэк "пишет сложный код" от вечного джуна. Да-да, фидбэк ещё надо фильтровать...
Если у вас на работе есть практики performance review, то настоятельно советую поставить себе регулярную задачу записывать чем же вы занимались в течение недели. Потом будет гораздо проще восстановить что же вообще было сделано и доказать какие вы зайки.
https://habr.com/ru/articles/987238/
Раньше в программисты шли, чтобы ковыряться с кодом и железяками; сейчас приходится заниматься саморекламой и работать на метрики. Всё потому, что бизнес сам не умеет оценивать вашу эффективность, а перекладывает на вас. Увы, ничего лучше опроса 360 или performance review он не придумал 🤷 В саму эту систему я перестал верить после того, как получил фидбэк "пишет сложный код" от вечного джуна. Да-да, фидбэк ещё надо фильтровать...
Если у вас на работе есть практики performance review, то настоятельно советую поставить себе регулярную задачу записывать чем же вы занимались в течение недели. Потом будет гораздо проще восстановить что же вообще было сделано и доказать какие вы зайки.
https://habr.com/ru/articles/987238/
Хабр
«Превосходит ожидания»: как хакнуть performance review и стабильно получать высокие оценки
Я профессиональный проходитель performance review. И может показаться, что это шуточная статья, но я вообще не шучу. Ещё со времён Сбера, где от итоговой оценки напрямую зависело, получишь ли ты в...
👍6❤4🔥1
Не так всё однозначно ©️
Подоспел очередной бенчмарк версий CPython (3.10 - 3.14). В целом, конечно, производительность улучшилась, но есть и деградация. Например, pickle/unpickle (что может быть важно для ML), работа с json и корутинами.
https://en.lewoniewski.info/2025/python-314-vs-313-312-311-310-performance-testing-video/ #python
Подоспел очередной бенчмарк версий CPython (3.10 - 3.14). В целом, конечно, производительность улучшилась, но есть и деградация. Например, pickle/unpickle (что может быть важно для ML), работа с json и корутинами.
https://en.lewoniewski.info/2025/python-314-vs-313-312-311-310-performance-testing-video/ #python
Lewoniewski
Python 3.14 vs 3.13 / 3.12 / 3.11 / 3.10 - performance testing (video)
In this article, the performance test results of Python version 3.14 are presented and compared with the results obtained for earlier releases — 3.13, 3.12, 3.11, and 3.10. A total of over 100 diverse benchmark tests were conducted, covering both computational…
👍3❤1
Хабр
Black-White Array: новая структура данных с O(log N) аллокаций
Кратко Black-White Array (BWA) — это упорядоченная структура данных с амортизированным временем операций вставки/поиска/удаления и используемых участков памяти. Пример реализации и оригинальная...
Впервые вижу, чтобы O-асимптоматику считали с мат. ожиданием. Но звучит интересно по крайней мере...
Итак, суть алгоритма в том, чтобы размещать ключи в отсортированном массиве. Выигрыш в том, что доступ будет последовательный, и все элементы будут вычитываться за одно обращение к кеш-линии. Да, вот так специфика реализации железа делает алгоритм сравнительно успешным.
Создаём log2(N) массивов длиной 1, 2, 4, 8 и т.д. При добавлении элемента помещаем его в первый массив с длиной 1. Если там уже что-то есть, то объединяем по merge sort и вставляем в массив длиной 2; если в нём уже что-то есть, то повторить пока не найдём пустой. Обратите внимание, что массивы получаются или пустые или полностью заполненные.
Если нужно найти k среди 10 элементов (битовое представление 10 = 1010), то будем искать в тех, у кого длина 2 и 8, т.к. остальные будут пустые. Каждый из массивов отсортирован, так что поиск в нём O(log(N)). Мат ожидание нахождения элемента в каждом массиве будет <длина массива>/N, и если начинать с самого длинного, то вероятность им же и закончить будет 1/2.
https://habr.com/ru/articles/984184/ #dev
Итак, суть алгоритма в том, чтобы размещать ключи в отсортированном массиве. Выигрыш в том, что доступ будет последовательный, и все элементы будут вычитываться за одно обращение к кеш-линии. Да, вот так специфика реализации железа делает алгоритм сравнительно успешным.
Создаём log2(N) массивов длиной 1, 2, 4, 8 и т.д. При добавлении элемента помещаем его в первый массив с длиной 1. Если там уже что-то есть, то объединяем по merge sort и вставляем в массив длиной 2; если в нём уже что-то есть, то повторить пока не найдём пустой. Обратите внимание, что массивы получаются или пустые или полностью заполненные.
Если нужно найти k среди 10 элементов (битовое представление 10 = 1010), то будем искать в тех, у кого длина 2 и 8, т.к. остальные будут пустые. Каждый из массивов отсортирован, так что поиск в нём O(log(N)). Мат ожидание нахождения элемента в каждом массиве будет <длина массива>/N, и если начинать с самого длинного, то вероятность им же и закончить будет 1/2.
https://habr.com/ru/articles/984184/ #dev
👍4❤2
Хабр
Flutter, Fuchsia, Zircon, ChromeOS, Aluminium OS, WGPU, Tensor Modem, RIL, SeL4, FIDL будущее Андроида и других ОС №2
ИИ картинка. Это более глубокое продолжение к этой статье и раскрытие вопросов в комментариях к ней. В конце 2025 года техноблоги взорвались инсайдами: Google планирует выпустить премиальный ноутбук...
Обстоятельная статья на тему "Android исчерпал свои возможности". Я не особо специалист в AOSP, но в Linux действительно много шлака, который стоило бы выбросить. Но сову продолжают натягивать на глобус. Google же предлагает свою новую ОС на базе Fuchsia (ядро Zircon, десктоп-версия Aluminium) с фокусом на стабильность и безопасность. Из основных моментов:
- микроядро (для упрощения портирования на кучу устройств)
- больше capabilities
- гибкий ABI через контракты (упрощение поддержки драйверов)
- Flutter вместо Electron
- MicroFuchsia уже в Android
Вот это мне особенно понравилось:
https://habr.com/ru/articles/984090/ #android
- микроядро (для упрощения портирования на кучу устройств)
- больше capabilities
- гибкий ABI через контракты (упрощение поддержки драйверов)
- Flutter вместо Electron
- MicroFuchsia уже в Android
Вот это мне особенно понравилось:
Google публично заявила: цель Fuchsia — поддерживать устройства 10+ лет. ☺️ Viva la Revolución!https://habr.com/ru/articles/984090/ #android
🔥8❤3
Новая концепция engram от DeepSeek (молодцы китайцы!). Суть в том, чтобы оперировать образами из памяти, а не вычислять каждый раз при инференсе. Это позволит схлопнуть трансформеры и освободить существенное количество вычислительных ресурсов. В общем, жду продолжения 🍿
Я не являюсь специалистом в LLM, но наработка выглядит перспективно.
https://habr.com/ru/companies/bothub/articles/989538/ #LLM
https://habr.com/ru/companies/bothub/articles/989538/ #LLM
Хабр
Новый «момент DeepSeek»? Память важнее масштаба
В мире искусственного интеллекта есть исследования, где достаточно нескольких страниц, чтобы понять — это нечто особенное. Engram от DeepSeek — именно такое. С новой моделью на подходе...
👍7
А казахи неплохо так ворвались в GeoPuzzle 😳 Зашёл ради интереса на сервер посмотреть загрузку — всего 6%. Видимо, придётся продолжать развивать проект, раз им пользуются 🤔
❤7🔥2👍1
В процессе настройки headscale (об этом будет отдельная статья) обратил внимание, что подсеть жёстко задана как 100.64.0.0/10. Т.е. не 192.168.0.0/16, не 172.16.0.0/12, и даже не 10.0.0.0/8. Казалось бы — она должна конфликтовать с каким-то публичным хостером. Но не всё так просто. Помимо multihomed networks (перечислены выше, RFC 3704) есть ещё special-use (192.0.2.0/24, 192.88.99.0/24, ... RFC 3330). Но и там подсети 100.64.0.0/10 нет. Оказывается, есть ещё один список IPv4 Special-Purpose Address Space, и вот там уже она присутствует как Shared Address Space с отметкой о глобальной недоступности.
Так что ребята из Tailscale всё норм сделали. Это можно сказать "домашняя" подсеть, которая недоступна извне. А в статье автор вычисляет все диапазоны публичных подсетей. Просто материал для информации.
https://habr.com/ru/companies/ruvds/articles/986878/ #network
Так что ребята из Tailscale всё норм сделали. Это можно сказать "домашняя" подсеть, которая недоступна извне. А в статье автор вычисляет все диапазоны публичных подсетей. Просто материал для информации.
https://habr.com/ru/companies/ruvds/articles/986878/ #network
Хабр
Перечень всех «белых» IP-адресов Интернета
Что значит внешние IP-подсети? По-научному это подсети, содержащие IP-адреса глобально доступных узлов, или, как их называют в простонародье, подсети «белых IP-адресов». Получить искомый перечень...
❤4🤯4👍3
PEP 822 – Dedented Multiline String (d-string) Остапа было уже не остановить. d-strings должны убирать пробелы в началах строк. ИМХО, так себе идея; но Гвидо вписался за это в плане обработки docstrings. Честно - вот лучше б это реализовали в самом парсере docstrings, а не тащили в стандарт.
Кстати, fun fact - даже Гвидо не знает всего, чего наворотили в CPython.
Кстати, fun fact - даже Гвидо не знает всего, чего наворотили в CPython.
❤5
Хайтек+
Сотни ИИ-агентов создали веб-браузер с нуля за неделю
Генеральный директор Cursor Майкл Труэлл <a href="https://x.com/mntruell/status/2011562190286045552" target="_blank">рассказал</a>, что его команде удалось скоординировать работу сотен автономных агентов GPT-5.2, которые всего за неделю непрерывной работы…
Сегодня немного про вайбкодинг. Не так давно генеральный директор Cursor заявил, что агенты ИИ написали браузер, правда компания ни разу не заявила, что этот браузер работает и выполняет свои функции 😄 А вот тут разбор вакханалии в самом репозитории.
На этой неделе Anthropic подсуетился и написал C-компилятор, который, правда, не смог скомпилировать hello world. Ладно, резолвы путей к стандартным библиотекам для CCC не очевидны, но результат работы компилятора выглядит пугающим. Если хотите защитить от реверса своё приложение, то CCC вам в этом поможето минусах тактично умолчим .
Что следующее? Ядро ОС, LibreOffice, мессенджер? А смысл, если этот код никто не берётся развивать и дорабатывать? Если каждый новый коммит это переписывание примерно половины проекта? Насколько это масштабируется и окупается? Поговорка, что сотни обезьян в итоге смогут написать "Войну и Мир" стала реальностью 😕
Ладно, вспоминая цикл Гартнера, мне кажется, что человечество только ищет возможность применения LLM. Возможно, творческие профессии будут во многом ими заменены, но и не удалены полностью. В конце концов, бум закончится, а рельсы останутся.
А нам работа будет всегда 😔 Но об этом в следующей заметке.
На этой неделе Anthropic подсуетился и написал C-компилятор, который, правда, не смог скомпилировать hello world. Ладно, резолвы путей к стандартным библиотекам для CCC не очевидны, но результат работы компилятора выглядит пугающим. Если хотите защитить от реверса своё приложение, то CCC вам в этом поможет
Что следующее? Ядро ОС, LibreOffice, мессенджер? А смысл, если этот код никто не берётся развивать и дорабатывать? Если каждый новый коммит это переписывание примерно половины проекта? Насколько это масштабируется и окупается? Поговорка, что сотни обезьян в итоге смогут написать "Войну и Мир" стала реальностью 😕
Ладно, вспоминая цикл Гартнера, мне кажется, что человечество только ищет возможность применения LLM. Возможно, творческие профессии будут во многом ими заменены, но и не удалены полностью. В конце концов, бум закончится, а рельсы останутся.
А нам работа будет всегда 😔 Но об этом в следующей заметке.
👍6❤2🔥1
Хабр
Элитный вайбкодинг
Еще одна поучительная история из жизни современной разработки, на этот раз на тему вайбкодинга — новой заразы, поражающей чаще всего обычных людей, не имеющих никакого...
Вторая заметка за день про вайбкодинг - это уже перебор. Но не могу пройти мимо :)
Понятно, что в мире будет появляться всё больше софта, сделанного с помощью вайб-кодинга. И это нормально с точки зрения продуктового подхода - дешёвая проверка гипотезы. Которую в случае успеха можно развить и продавать. Вот только отношение к сгенерированному коду должно поменяться с "чуть доработать и запустить" на "выкинуть MVP и сделать нормально".
Автор статьи занимается консалтингом и заказной разработкой уже лет 30. У него много опыта в общении с клиентами, но этот цирк достоин ваших 🔥 И вот чем нам предстоит заниматься уже в самом ближайшем будущем.
https://habr.com/ru/articles/993904/ #vibe
Понятно, что в мире будет появляться всё больше софта, сделанного с помощью вайб-кодинга. И это нормально с точки зрения продуктового подхода - дешёвая проверка гипотезы. Которую в случае успеха можно развить и продавать. Вот только отношение к сгенерированному коду должно поменяться с "чуть доработать и запустить" на "выкинуть MVP и сделать нормально".
Автор статьи занимается консалтингом и заказной разработкой уже лет 30. У него много опыта в общении с клиентами, но этот цирк достоин ваших 🔥 И вот чем нам предстоит заниматься уже в самом ближайшем будущем.
https://habr.com/ru/articles/993904/ #vibe
🔥10❤2
Хабр
Базы данных-2025: ретроспектива
Это перевод свежего обзора индустрии баз данных, написанного в начале 2026 года. Если вы думали, что PostgreSQL уже некуда расти, держитесь крепче: в статье рассказывается, как в 18-й версии «слон»...
Очередной обзор от Энди Павло что же происходит в мире баз данных. Краткое саммари:
- PostgreSQL 18 теперь использует асинхронный I/O и не полагается (читай зависит) от кеша ОС
- разрабатывается горизонтальный шардинг для Postgres
- SaaS на базе Postgres развелось прям очень много
- MCP есть теперь, кажется, у всех БД
- скоро все скажем "пока-пока" MongoDB
Но я всё равно рекомендую прочитать статью, т.к. там есть именно мнение Энди Павло, которое достойно доверия.
https://habr.com/ru/companies/postgrespro/articles/985698/ #database
- PostgreSQL 18 теперь использует асинхронный I/O и не полагается (читай зависит) от кеша ОС
- разрабатывается горизонтальный шардинг для Postgres
- SaaS на базе Postgres развелось прям очень много
- MCP есть теперь, кажется, у всех БД
- скоро все скажем "пока-пока" MongoDB
Но я всё равно рекомендую прочитать статью, т.к. там есть именно мнение Энди Павло, которое достойно доверия.
https://habr.com/ru/companies/postgrespro/articles/985698/ #database
❤5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Что-то за последнюю неделю было много задач по профилированию python приложений. Делюсь тем, что раскопал.
1. Профилировку по памяти удобней всего делать через memray. Всего
2. В 3.15 обещают завезти сэмплирующий профайлер Tachyon. Он будет уметь цепляться к работающему процессу
3. Но до 3.15 ещё дожить надо 😕 Так что воспользовался библиотекой tprof, которая умеет профилировать не всю программу, а только заданные функции. Удобно в коде держать и старую, и новую и итеративно оптимизировать.
4. Не забываем про классику py-spy, хотя её вывод для меня показался сложноватым.
Получился вот такой краткий обзор современных профилировщиков :) А если захотите написать свой, то вот статейка как они работают под капотом.
#python
1. Профилировку по памяти удобней всего делать через memray. Всего
python3 -m memray run example.py, а потом memray flamegraph memray-example.py.11235.bin. А он сам строит красивые графички, таблицы и пр. Умеет также цепляться к работающему процессу. Прям настоятельно рекомендую - после всех предыдущих оставил приятное впечатление.2. В 3.15 обещают завезти сэмплирующий профайлер Tachyon. Он будет уметь цепляться к работающему процессу
python -m profiling.sampling attach --subprocesses 12345, замерять разные тайминги (CPU, GIL, exception), что более чем хватило бы для решения большинства задач. Интерактивный пример результата. А ещё он умеет красиво выводить в real-time в терминал (см gif). Правда, не знаю зачем это может пригодится. Но красивое.3. Но до 3.15 ещё дожить надо 😕 Так что воспользовался библиотекой tprof, которая умеет профилировать не всю программу, а только заданные функции. Удобно в коде держать и старую, и новую и итеративно оптимизировать.
4. Не забываем про классику py-spy, хотя её вывод для меня показался сложноватым.
Получился вот такой краткий обзор современных профилировщиков :) А если захотите написать свой, то вот статейка как они работают под капотом.
#python
👍9❤4🔥2
YouTube
Эволюция CPython / Виктор Тыщенко
Презентация: https://disk.360.yandex.ru/i/mMWaBK9iI3CgYg
В ноябре выступал на Krasnodar Dev Days с докладом "Эволюция CPython". Это чуть более доработанный вариант темы, что я рассказывал в прошлом году на PyCon. Своим выступлением я хотел показать разработку CPython с продуктовой точки зрения: какие архитектурные решения были сделаны и как они повлияли на язык и сообщество. Мне Python близок именно из-за экосистемы и подходов. Они более спокойные и академические что ли... Гвидо не пытается сделать сразу как можно больше фич, но в первую очередь старается понять их необходимость через PEP. В общем, есть чему поучиться.
P.S. Кода на C в докладе намного больше, чем на самом python 😁
https://www.youtube.com/watch?v=F3mj5CXp7lA&list=PL1irPRp3Ng9ZriMMmHfy47eVsGfK3DOPF&index=1 #tyvik
P.S. Кода на C в докладе намного больше, чем на самом python 😁
https://www.youtube.com/watch?v=F3mj5CXp7lA&list=PL1irPRp3Ng9ZriMMmHfy47eVsGfK3DOPF&index=1 #tyvik
👍10❤6🔥3
Хабр
Я заменил Google на 50 строк Python. Через месяц я забыл, как пишется tar -xzf
Десять лет в девопсе. Десять. И я гуглю tar -xzf . Не раз в год — раз в неделю. Ну, может раз в десять дней, если повезёт. Открываю хром, набираю «tar extract gz linux», пролистываю три рекламы,...
Небольшая заметка про использование LLM в консоли, но меня зацепила двумя моментами:
1. Вместо понимания команд отношение становится к ним как к магии. А я не люблю магию — не угадаешь когда и как она может больно стрельнуть по тебе. Если бы автор-девопсер полез чуть глубже в историю возникновения синтаксиса tar, то узнал, что эта команда появилась ещё до того, как договорились о записи коротких ключей через минус. Во-вторых, короткие ключи можно записывать в любом порядке, если у них нет аргументов. Таким образом, не надо знать — надо понимать.
2. Ваша память деградирует. Для такой мелочи не страшно, но где гарантии, что вы по-прежнему сможете делать более сложные вещи? Декомпозиция средней задачки уже не помещается в кошелёк Миллера, и память надо тренировать. Да-да, не зря комбинаторику на первом курсе проходят. Я уже молчу про возрастные изменения — отсутствие когнитивной нагрузки чаще приводит к проблемам с мозгом в старости.
Звучит так, будто я против использования LLM? Отнюдь, сам ими пользуюсь :) Но не хочу бросаться с головой и заменять ими всё вокруг.
А скрипт хороший, правда. Утащу его себе :)
https://habr.com/ru/articles/1001214/ #llm
1. Вместо понимания команд отношение становится к ним как к магии. А я не люблю магию — не угадаешь когда и как она может больно стрельнуть по тебе. Если бы автор-девопсер полез чуть глубже в историю возникновения синтаксиса tar, то узнал, что эта команда появилась ещё до того, как договорились о записи коротких ключей через минус. Во-вторых, короткие ключи можно записывать в любом порядке, если у них нет аргументов. Таким образом, не надо знать — надо понимать.
2. Ваша память деградирует. Для такой мелочи не страшно, но где гарантии, что вы по-прежнему сможете делать более сложные вещи? Декомпозиция средней задачки уже не помещается в кошелёк Миллера, и память надо тренировать. Да-да, не зря комбинаторику на первом курсе проходят. Я уже молчу про возрастные изменения — отсутствие когнитивной нагрузки чаще приводит к проблемам с мозгом в старости.
Звучит так, будто я против использования LLM? Отнюдь, сам ими пользуюсь :) Но не хочу бросаться с головой и заменять ими всё вокруг.
А скрипт хороший, правда. Утащу его себе :)
https://habr.com/ru/articles/1001214/ #llm
❤9