Одна разработчица с нуля провела обратную разработку графического процессора Apple.
Пять лет спустя Linux работает на нём с полноценным аппаратным ускорением графики.
Знакомьтесь, Алисса Розенцвейг
> Канадская разработчица.
> Начала заниматься обратной разработкой графических процессоров ещё в школе, в 2017 году.
> Присоединилась к проекту Asahi Linux в 2020 году.
> Изначально собиралась лишь дать несколько подсказок.
> В итоге осталась на пять лет.
> По графическому процессору Apple M1 не было вообще никакой публичной документации.
> Никаких драйверов. Никакой помощи.
> Она купила Mac Mini и начала разбираться во всём с нуля.
> Уже через несколько недель смогла отрисовать свой первый рабочий треугольник.
> Если ты умеешь отрисовать треугольник, дальше можешь сделать всё что угодно.
> Компилятор шейдеров. Потоки команд. Полный конвейер рендеринга.
> Создала полноценные драйверы для Mesa.
> OpenGL 4.6. OpenGL ES 3.2. Vulkan 1.4. OpenCL 3.0.
> Всё с открытым исходным кодом. Всё полностью принято в основные проекты.
> Именно благодаря её работе Proton и 3D-игры работают в Linux на Mac с M1 и M2.
> Большую часть этого она сделала, будучи студенткой факультета компьютерных наук Университета Торонто.
> Учёба. Подработка. Обратная разработка Apple Silicon. Всё одновременно.
> Закончила работу в августе 2025 года.
> А затем перешла к Intel.
Apple так и не открыла дверь.
Поэтому она проложила свой собственный путь внутрь.
✈️ Python Ninja
Пять лет спустя Linux работает на нём с полноценным аппаратным ускорением графики.
Знакомьтесь, Алисса Розенцвейг
> Канадская разработчица.
> Начала заниматься обратной разработкой графических процессоров ещё в школе, в 2017 году.
> Присоединилась к проекту Asahi Linux в 2020 году.
> Изначально собиралась лишь дать несколько подсказок.
> В итоге осталась на пять лет.
> По графическому процессору Apple M1 не было вообще никакой публичной документации.
> Никаких драйверов. Никакой помощи.
> Она купила Mac Mini и начала разбираться во всём с нуля.
> Уже через несколько недель смогла отрисовать свой первый рабочий треугольник.
> Если ты умеешь отрисовать треугольник, дальше можешь сделать всё что угодно.
> Компилятор шейдеров. Потоки команд. Полный конвейер рендеринга.
> Создала полноценные драйверы для Mesa.
> OpenGL 4.6. OpenGL ES 3.2. Vulkan 1.4. OpenCL 3.0.
> Всё с открытым исходным кодом. Всё полностью принято в основные проекты.
> Именно благодаря её работе Proton и 3D-игры работают в Linux на Mac с M1 и M2.
> Большую часть этого она сделала, будучи студенткой факультета компьютерных наук Университета Торонто.
> Учёба. Подработка. Обратная разработка Apple Silicon. Всё одновременно.
> Закончила работу в августе 2025 года.
> А затем перешла к Intel.
Apple так и не открыла дверь.
Поэтому она проложила свой собственный путь внутрь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2
Нашёл отличный репозиторий для тех, кто хочет за выходные собрать настоящий DevOps-проект и добавить его в резюме.
Там 54 практических проекта по AWS, Azure и Kubernetes, Terraform и инфраструктуре как коду, Docker и CI/CD, DevSecOps и безопасности, мониторингу, бессерверным и облачным приложениям.
Можно выбрать проект, собрать его за выходные и получить работу, о которой уже не стыдно рассказать на следующем собеседовании.
https://github.com/DevCloudNinjas/DevOps-Projects
✈️ Python Ninja
Там 54 практических проекта по AWS, Azure и Kubernetes, Terraform и инфраструктуре как коду, Docker и CI/CD, DevSecOps и безопасности, мониторингу, бессерверным и облачным приложениям.
Можно выбрать проект, собрать его за выходные и получить работу, о которой уже не стыдно рассказать на следующем собеседовании.
https://github.com/DevCloudNinjas/DevOps-Projects
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Жирный подгон новичкам «Coddy» широкая подборка курсов и задач
На этой страничке «Coddy» собрано всё самое вкусное по Python: курсы, задачки, проекты и челленджи. Хотите научиться с нуля или подтянуть конкретную тему тут есть и основы, и тонкости, и куча примеров для тренировки
Ставь лайк и погнали учиться🏃♂️
☝️ Ссылка источник
✈️ Python Ninja
На этой страничке «Coddy» собрано всё самое вкусное по Python: курсы, задачки, проекты и челленджи. Хотите научиться с нуля или подтянуть конкретную тему тут есть и основы, и тонкости, и куча примеров для тренировки
Ставь лайк и погнали учиться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Удивительно, как часто путают программу, процесс и поток.
Вот простое объяснение.
1. Программа
Это файл на диске, содержащий набор инструкций.
Одна программа может запускать несколько процессов.
Например, Firefox может создавать отдельные процессы для разных компонентов.
2. Процесс
Это программа, которая уже выполняется.
Программа превращается в процесс, когда загружается в память и запускается.
Для работы процесс использует, например, счётчик команд, стек и регистры.
3. Поток
Поток — минимальная единица выполнения внутри процесса.
Один процесс может содержать много потоков.
Например, браузер одновременно выполняет несколько потоков. Один может загружать содержимое, другие — отрисовывать анимации, воспроизводить видео и выполнять другие задачи.
Главные различия между процессами и потоками:
• процессы независимы, а потоки существуют внутри процесса
• у каждого процесса своё адресное пространство памяти, а потоки одного процесса делят общую память
• переключение между процессами обычно дороже
• обмен данными между потоками быстрее, чем между процессами
• создание и завершение потока обычно легче и быстрее
✈️ Python Ninja
Вот простое объяснение.
1. Программа
Это файл на диске, содержащий набор инструкций.
Одна программа может запускать несколько процессов.
Например, Firefox может создавать отдельные процессы для разных компонентов.
2. Процесс
Это программа, которая уже выполняется.
Программа превращается в процесс, когда загружается в память и запускается.
Для работы процесс использует, например, счётчик команд, стек и регистры.
3. Поток
Поток — минимальная единица выполнения внутри процесса.
Один процесс может содержать много потоков.
Например, браузер одновременно выполняет несколько потоков. Один может загружать содержимое, другие — отрисовывать анимации, воспроизводить видео и выполнять другие задачи.
Главные различия между процессами и потоками:
• процессы независимы, а потоки существуют внутри процесса
• у каждого процесса своё адресное пространство памяти, а потоки одного процесса делят общую память
• переключение между процессами обычно дороже
• обмен данными между потоками быстрее, чем между процессами
• создание и завершение потока обычно легче и быстрее
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Это, пожалуй, одна из лучших технических книг о том, как большие языковые модели обучают в огромных масштабах:
> память GPU и профилирование
> разбиение вычислений на блоки, объединение ядер и FlashAttention
> параллелизм по данным, тензорам, конвейеру и контексту
Я уже прочитал бесплатную онлайн-версию, но всё равно пришлось купить бумажную копию для своей библиотеки.
Бесплатно прочитать её можно и на Hugging Face:
https://huggingface.co/spaces/nanotron/ultrascale-playbook
✈️ Python Ninja
> память GPU и профилирование
> разбиение вычислений на блоки, объединение ядер и FlashAttention
> параллелизм по данным, тензорам, конвейеру и контексту
Я уже прочитал бесплатную онлайн-версию, но всё равно пришлось купить бумажную копию для своей библиотеки.
Бесплатно прочитать её можно и на Hugging Face:
https://huggingface.co/spaces/nanotron/ultrascale-playbook
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Проверка уникальности работает через
Postgres не может доказать равенство двух
Простой пример, где это ломается, — составной ключ:
В итоге можно получить две активные записи membership для одного и того же пользователя, потому что ограничение уникальности вообще не срабатывает.
Начиная с Postgres 15, уникальные ограничения и индексы могут считать
Второй
Но это также запретит две строки с одинаковым значением
Частичный уникальный индекс
Если уникальность нужно обеспечить только для активных строк, используйте partial unique index:
✈️ Python Ninja
=, а NULL = NULL не даёт true. По умолчанию NULL не считается уникальным значением.Postgres не может доказать равенство двух
NULL, поэтому пропускает обе строки.Простой пример, где это ломается, — составной ключ:
-- UNIQUE (user_id, org_id, deleted_at)
INSERT INTO memberships VALUES (1, 10, NULL);
INSERT INTO memberships VALUES (1, 10, NULL);
-- обе строки будут вставлены
В итоге можно получить две активные записи membership для одного и того же пользователя, потому что ограничение уникальности вообще не срабатывает.
NULLS NOT DISTINCTНачиная с Postgres 15, уникальные ограничения и индексы могут считать
NULL равными:UNIQUE NULLS NOT DISTINCT (user_id, org_id, deleted_at)
Второй
INSERT уже завершится ошибкой.Но это также запретит две строки с одинаковым значением
deleted_at, а не только две активные строки.Частичный уникальный индекс
Если уникальность нужно обеспечить только для активных строк, используйте partial unique index:
CREATE UNIQUE INDEX ON memberships (user_id, org_id)
WHERE deleted_at IS NULL;
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Программирование c нуля «От новичка к уверенности в коде на Python»
На Stepik запустили курс для новичков, которым важно не зубрить команды, а понимать логику. Наглядные схемы и визуальные разборы показывают, что происходит внутри программы и как она работает
Много практики, понятные объяснения решений не дадут застрять на теории. Материал предлагает вам не иллюзию знаний, а ощущение контроля: вы ясно видите как из нескольких строк кода рождается работающая программа
Программа курса:
✅ переменные и типы данных
✅ условия и логика программ
✅ циклы и рекурсия
✅ функции и работа с вводом данных
✅ списки, словари и множества
✅ базовое ООП
✅ работа с библиотеками Python
✅ десятки задач и упражнений
Эти знания фундамент для написания простых ботов и автоматизации задач
🔗 Скидка 25% действует 48 часов
На Stepik запустили курс для новичков, которым важно не зубрить команды, а понимать логику. Наглядные схемы и визуальные разборы показывают, что происходит внутри программы и как она работает
Много практики, понятные объяснения решений не дадут застрять на теории. Материал предлагает вам не иллюзию знаний, а ощущение контроля: вы ясно видите как из нескольких строк кода рождается работающая программа
Программа курса:
Эти знания фундамент для написания простых ботов и автоматизации задач
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
«Understanding Linear Algebra» — бесплатный учебник, который связывает теоретические основы линейной алгебры с практическими применениями и информатикой.
Он охватывает широкий круг тем: системы уравнений, векторы и матрицы, линейные комбинации, матричные преобразования, базисы и системы координат, определители, подпространства, собственные значения и собственные векторы, динамические системы, цепи Маркова, ортогональность, метод наименьших квадратов, сингулярное разложение и многое другое.
Очень полезный материал для тех, кто изучает линейную алгебру. Стоит сохранить как справочник.
https://scholarworks.gvsu.edu/cgi/viewcontent.cgi?article=1026&context=books
✈️ Python Ninja
Он охватывает широкий круг тем: системы уравнений, векторы и матрицы, линейные комбинации, матричные преобразования, базисы и системы координат, определители, подпространства, собственные значения и собственные векторы, динамические системы, цепи Маркова, ортогональность, метод наименьших квадратов, сингулярное разложение и многое другое.
Очень полезный материал для тех, кто изучает линейную алгебру. Стоит сохранить как справочник.
https://scholarworks.gvsu.edu/cgi/viewcontent.cgi?article=1026&context=books
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Python-библиотека для получения цен и расписания рейсов из Google Flights.
https://github.com/AWeirdDev/flights
✈️ Python Ninja
https://github.com/AWeirdDev/flights
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Репозиторий содержит Jupyter-ноутбуки к книге O’Reilly «Transformers: The Definitive Guide».
Внутри — код для задач компьютерного зрения, временных рядов, обработки аудио и обучения с подкреплением.
https://github.com/Nicolepcx/transformers-the-definitive-guide
✈️ Python Ninja
Внутри — код для задач компьютерного зрения, временных рядов, обработки аудио и обучения с подкреплением.
https://github.com/Nicolepcx/transformers-the-definitive-guide
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Если полностью разберётесь в этой статье, то будете понимать инференс лучше 90% людей.
И это, кстати, всего лишь первый материал в репозитории AI Performance Engineering.
Страшно представить, сколько знаний в остальных.
https://github.com/wafer-ai/gpu-perf-engineering-resources
✈️ Python Ninja
И это, кстати, всего лишь первый материал в репозитории AI Performance Engineering.
Страшно представить, сколько знаний в остальных.
https://github.com/wafer-ai/gpu-perf-engineering-resources
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥4
Каждый новый
Убери один граничный случай — и смотри, как вся конструкция начинает шататься.
✈️ Python Ninja
else if — это ещё одно критическое допущение, о котором ты уже забыл.Убери один граничный случай — и смотри, как вся конструкция начинает шататься.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
OpenResearch в пятницу занял первое место среди самых популярных репозиториев на GitHub.
С OpenResearch можно превратить любого агента для вайбкодинга в ресёрч агента, который изучает литературу, формулирует гипотезы, проводит эксперименты и создаёт исследовательские материалы.
Теперь OpenResearch доступен и на Windows.
https://github.com/alphaXiv/OpenResearch
✈️ Python Ninja
С OpenResearch можно превратить любого агента для вайбкодинга в ресёрч агента, который изучает литературу, формулирует гипотезы, проводит эксперименты и создаёт исследовательские материалы.
Теперь OpenResearch доступен и на Windows.
https://github.com/alphaXiv/OpenResearch
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
11 принципов разработки ПО, которые я хотел бы понять раньше
1. SOLID — качественное объектно-ориентированное проектирование
2. DRY — не повторяйся
3. KISS — делай проще
4. YAGNI — не создавай то, что пока не нужно
5. SRP — одна ответственность
6. Open/Closed — расширяй, не ломая существующее
7. Dependency Inversion — меньше жёстких связей
8. Composition — собирай систему из гибких компонентов
9. Separation of Concerns — разделяй зоны ответственности
10. Fail Fast — выявляй проблемы как можно раньше
11. Measure First — оптимизируй только то, что действительно имеет значение
✈️ Python Ninja
1. SOLID — качественное объектно-ориентированное проектирование
2. DRY — не повторяйся
3. KISS — делай проще
4. YAGNI — не создавай то, что пока не нужно
5. SRP — одна ответственность
6. Open/Closed — расширяй, не ломая существующее
7. Dependency Inversion — меньше жёстких связей
8. Composition — собирай систему из гибких компонентов
9. Separation of Concerns — разделяй зоны ответственности
10. Fail Fast — выявляй проблемы как можно раньше
11. Measure First — оптимизируй только то, что действительно имеет значение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Вот как сегодня выглядит «фабрика программного обеспечения» OpenAI, где значительная часть работы уже строится вокруг агентов.
✈️ Python Ninja
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Гайд по основным командам для диагностики сетей, которые должен знать каждый Sysadmin.
Сравнение инструментов, используемых в системах Linux/macOS и Windows.
✈️ Python Ninja
Сравнение инструментов, используемых в системах Linux/macOS и Windows.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Это что за имба
An Introduction to Statistical Learning это полноценный учебник по статистике, Machine Learning. Бесплатная учебная база: регуляризация, классификация, регрессия, деревья решений, SVM, Deep Learning, статистические тесты и практическая лабораторные работы в каждой главе.
https://www.statlearning.com/
✈️ Python Ninja
An Introduction to Statistical Learning это полноценный учебник по статистике, Machine Learning. Бесплатная учебная база: регуляризация, классификация, регрессия, деревья решений, SVM, Deep Learning, статистические тесты и практическая лабораторные работы в каждой главе.
https://www.statlearning.com/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2