Дизайн и реализация виртуальной машины CPython
Наиболее интересной частью каждого языка, компилируемого в байт‑код является виртуальная машина (также известная как интерпретатор байт‑кода), в которой происходит исполнение байт‑кода. Поскольку это наиболее важная часть реализации языка, она должна быть крайне производительной. Даже если вы не занимаетесь разработкой компиляторов, знание внутреннего устройства её реализации может дать вам возможность найти новые способы оптимизации вашего кода, что может быть полезно в других областях вашей работы. А если вы занимаетесь разработкой компиляторов, вам всегда стоит исследовать реализации в других языках, чтобы найти для себя новые трюки и потенциально упущенные детали.
В этой статье мы обсудим формат инструкций байт‑кода CPython, а также реализацию цикла обработки байт‑кода в интерпретаторе, где он и исполняется
Наиболее интересной частью каждого языка, компилируемого в байт‑код является виртуальная машина (также известная как интерпретатор байт‑кода), в которой происходит исполнение байт‑кода. Поскольку это наиболее важная часть реализации языка, она должна быть крайне производительной. Даже если вы не занимаетесь разработкой компиляторов, знание внутреннего устройства её реализации может дать вам возможность найти новые способы оптимизации вашего кода, что может быть полезно в других областях вашей работы. А если вы занимаетесь разработкой компиляторов, вам всегда стоит исследовать реализации в других языках, чтобы найти для себя новые трюки и потенциально упущенные детали.
В этой статье мы обсудим формат инструкций байт‑кода CPython, а также реализацию цикла обработки байт‑кода в интерпретаторе, где он и исполняется
👍22🤓22🔥4
На прошедшей неделе мы учились читать QR-коды без компьютера, разбирались, как устроены серийники для Windows, ускоряли генерацию BlurHash и выясняли, почему Space Launch System по-прежнему является бомбой с часовым механизмом.
Лучшие публикации недели (14-20 октября 2024)
Лучшие публикации недели (14-20 октября 2024)
🤓13👍5🔥1
Forwarded from Хабр Карьера
This media is not supported in your browser
VIEW IN TELEGRAM
😁172🔥23❤5👍3
Устраняем ошибки USB-Blaster
Поговорим о способе перепрошивки китайского программатора, который избавит вас от вечно выскакивающих ошибок, синего экрана смерти, невозможности прошить FPGA и т. д. Эта заметка для вас, если вы купили самый дешёвый программатор USB Blaster с алиэкспресса, и он упорно отказывается работать в вашей ОС.
Поговорим о способе перепрошивки китайского программатора, который избавит вас от вечно выскакивающих ошибок, синего экрана смерти, невозможности прошить FPGA и т. д. Эта заметка для вас, если вы купили самый дешёвый программатор USB Blaster с алиэкспресса, и он упорно отказывается работать в вашей ОС.
👍21❤3🥴3
Пишем алгоритмы на самом ненужном языке в мире и страдаем
То, что будет происходить ниже — сущий ад. Мы будем писать простейшие программы на языке Whitespace. Этот язык настолько ненужный, что оригинальный сайт с интерпретатором для этого языка уже давно мёртв, все ссылки на оригинальные гайды соответственно тоже.
Мы с головой запрыгнем в язык, состоящий из пробелов, чёрт побери, что вам ещё нужно? А потом этим пробельным кодом отформатируем отрывок из книги «Война и Мир», и он будет прекрасно компилироваться.
То, что будет происходить ниже — сущий ад. Мы будем писать простейшие программы на языке Whitespace. Этот язык настолько ненужный, что оригинальный сайт с интерпретатором для этого языка уже давно мёртв, все ссылки на оригинальные гайды соответственно тоже.
Мы с головой запрыгнем в язык, состоящий из пробелов, чёрт побери, что вам ещё нужно? А потом этим пробельным кодом отформатируем отрывок из книги «Война и Мир», и он будет прекрасно компилироваться.
😁49🤮11👍5👎4🥱4🫡2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🔌 Tesla продемонстрировала беспроводную зарядку для электромобиля-роботакси Cybercab (ВИДЕО)
#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤2👎1
Postal 2: антигерой мира видеоигр
В начале 2000-х индустрия видеоигр делала большие шаги к мейнстриму, и жанр шутеров от первого лица бурно развивался. Это было время, когда игроки могли погрузиться в миры, нарушающие все возможные моральные и социальные нормы. Одним из таких проектов, что в первую очередь вспомнится большинству олдфагов, является Postal 2, вышедший в 2003 году. Он стал воплощением бунтарского духа того периода и своего рода символом той эпохи, ведь обещал игрокам беспрецедентную для FPS тех лет свободу и море чёрного юмора, будучи не столь сильно закован в рамки политкорректности. Всё это позволило ему взбудоражить игровое сообщество своей противоречивостью, заставляло задуматься, где грань между весёлой игрой и моральным вызовом. И пусть Postal 2 был далеко не первым проектом, стремившимся шокировать жестокостью, но он хорошо запомнился аудитории свой индивидуальностью, необычным подходом к геймплею и свободой, позволяющей творить настоящий беспредел!
Вспомним, чем он был так хорош, и действительно ли это обычный шутерок, обёрнутый в кровавую упаковку, или всё-таки в нём есть нечто большее
В начале 2000-х индустрия видеоигр делала большие шаги к мейнстриму, и жанр шутеров от первого лица бурно развивался. Это было время, когда игроки могли погрузиться в миры, нарушающие все возможные моральные и социальные нормы. Одним из таких проектов, что в первую очередь вспомнится большинству олдфагов, является Postal 2, вышедший в 2003 году. Он стал воплощением бунтарского духа того периода и своего рода символом той эпохи, ведь обещал игрокам беспрецедентную для FPS тех лет свободу и море чёрного юмора, будучи не столь сильно закован в рамки политкорректности. Всё это позволило ему взбудоражить игровое сообщество своей противоречивостью, заставляло задуматься, где грань между весёлой игрой и моральным вызовом. И пусть Postal 2 был далеко не первым проектом, стремившимся шокировать жестокостью, но он хорошо запомнился аудитории свой индивидуальностью, необычным подходом к геймплею и свободой, позволяющей творить настоящий беспредел!
Вспомним, чем он был так хорош, и действительно ли это обычный шутерок, обёрнутый в кровавую упаковку, или всё-таки в нём есть нечто большее
👍49🫡19❤9🤮4
Энтузиасты прогнали из дома компьютерных ломастеров-«домушников» и нашли на забытом переносном HDD рабочую информацию, включая прайсы, зловредные инструкции и архивы со скриптами и вирусами.
Оказалось, что ломастера не брезгуют скрытым обманом клиентов и практикуют запуск различных деструктивных скриптов (включая сборки вирусов и троянов) в рабочей системе, чтобы выбить из пользователей побольше денег за ремонт ПК, который в итоге может стоить больше, чем новый ноутбук или компьютер среднего уровня. В случае отказа клиента от дополнительных услуг, ломастера могут оставить в системе зловред, который активируется через несколько часов или дней, чтобы клиент созрел на новую выплату за ремонт ПК.
Оказалось, что ломастера не брезгуют скрытым обманом клиентов и практикуют запуск различных деструктивных скриптов (включая сборки вирусов и троянов) в рабочей системе, чтобы выбить из пользователей побольше денег за ремонт ПК, который в итоге может стоить больше, чем новый ноутбук или компьютер среднего уровня. В случае отказа клиента от дополнительных услуг, ломастера могут оставить в системе зловред, который активируется через несколько часов или дней, чтобы клиент созрел на новую выплату за ремонт ПК.
🤬156😢23🤯13👍11🤮7😡5😁4👌3❤1
«Апгрейды и софт — это хорошо, но надо позаботиться о сохранности данных при внештатных ситуациях, например, при отключении света. ИБП у меня уже стоит, но хватает его буквально до получаса, после чего он отрубает выход. Хотелось бы, чтобы сервера заранее выключались без потери данных»
Собираем бюджетный домашний NAS на 14 ТБ. Часть вторая. Софт, железо и всё такое
Собираем бюджетный домашний NAS на 14 ТБ. Часть вторая. Софт, железо и всё такое
👍30🔥1🥱1
Последовательное A/B-тестирование в Netflix. Часть вторая. Процессы подсчёта
В Netflix наблюдают за множеством метрик, многие из которых можно отнести к классу «счётных». В их число входят такие показатели, как количество входов в систему, ошибок, успешных запусков воспроизведения видео и даже количество обращений пользователя в колл-центр. В этой части описывается методология последовательного статистического анализа, применяемая в компании для исследования счётных метрик.
В Netflix наблюдают за множеством метрик, многие из которых можно отнести к классу «счётных». В их число входят такие показатели, как количество входов в систему, ошибок, успешных запусков воспроизведения видео и даже количество обращений пользователя в колл-центр. В этой части описывается методология последовательного статистического анализа, применяемая в компании для исследования счётных метрик.
❤8🔥3👍1👎1😁1
Программист Кейю Тянь устроился в компанию ByteDance стажёром и изнутри два месяца саботировал выполнение проекта по разработке нейросетей, добавляя ошибки в код. Из-за действий Кейю команда из трёх десятков разработчиков круглосуточно искала и устраняла постоянно появляющиеся баги в проекте.
Расследование показало, что стажёр:
— методично и последовательно загружал специальные Pickle-файлы со скрытым кодом, который был полон вирусов и вредоносных компонентов. Код в таких скриптах выполняется рандомно и автоматически, поэтому никто не мог понять, почему все усилия команды не приносят должной стабилизации;
— получил доступ и полностью изменил версию библиотеки PyTorch, на которой держались проекты. Он вносил туда маленькие изменения каждый день, а они обрушивали программы. При этом никто из разработчиков команды даже не подумал посмотреть в исходный код — задачи продолжали падать с ошибками и тонной багов, а все эксперименты приносили только неверные результаты;
— внёс настоящий хаос в чекпоинты — это файлы, которые помогают обучать нейронки и сохранять их промежуточные состояния. Он жонглировал параметрами моделей, менял данные обучения или просто удалял многие чекпоинты, а наработки команды пропадали, удалялись, их не было возможности повторить;
— не скрывался от встреч. Его не могли поймать быстро, потому что он ходил на каждый митинг и собирал решения команды по фиксу проблем. После созвонов стажёр знал, как собираются фиксить баги, и придумывал новые. Команда каждый раз не понимала, что происходит.
В итоге стажёра выловили по логам. Также в ByteDance пояснили, что команда из тридцати программистов целых два месяца работала впустую из-за деструктивных действий одного разработчика. У проекта команды сгорели все сроки, деньги заказчиков были потрачены зря.
Расследование показало, что стажёр:
— методично и последовательно загружал специальные Pickle-файлы со скрытым кодом, который был полон вирусов и вредоносных компонентов. Код в таких скриптах выполняется рандомно и автоматически, поэтому никто не мог понять, почему все усилия команды не приносят должной стабилизации;
— получил доступ и полностью изменил версию библиотеки PyTorch, на которой держались проекты. Он вносил туда маленькие изменения каждый день, а они обрушивали программы. При этом никто из разработчиков команды даже не подумал посмотреть в исходный код — задачи продолжали падать с ошибками и тонной багов, а все эксперименты приносили только неверные результаты;
— внёс настоящий хаос в чекпоинты — это файлы, которые помогают обучать нейронки и сохранять их промежуточные состояния. Он жонглировал параметрами моделей, менял данные обучения или просто удалял многие чекпоинты, а наработки команды пропадали, удалялись, их не было возможности повторить;
— не скрывался от встреч. Его не могли поймать быстро, потому что он ходил на каждый митинг и собирал решения команды по фиксу проблем. После созвонов стажёр знал, как собираются фиксить баги, и придумывал новые. Команда каждый раз не понимала, что происходит.
В итоге стажёра выловили по логам. Также в ByteDance пояснили, что команда из тридцати программистов целых два месяца работала впустую из-за деструктивных действий одного разработчика. У проекта команды сгорели все сроки, деньги заказчиков были потрачены зря.
🤣312🤯122👍34❤19😁8🤔6🤬6🔥5👌2👏1
«Я пишу эту статью в 30 лет, успев побывать на собеседованиях по обе стороны стола. В течение последнего года я проводил технические интервью и видел, как моложавых выпускников, едва достигших возраста, позволяющего арендовать авто, так и бывалых специалистов, проработавших в IT больше лет, чем мне отроду. И этот опыт прекрасно прояснил для меня общую картину»
Так ли важен возраст в IT?
Так ли важен возраст в IT?
😁24🤮15👍14👎6