Pull to refresh
4
0.2
Send message

Самодельная танцевальная платформа для игры Dance Dance Revolution

Level of difficultyEasy
Reading time19 min
Views2.3K

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

Читать далее

Величайшая история разработки приложения-калькулятора: как Google создал почти идеальный инструмент

Level of difficultyEasy
Reading time6 min
Views29K

Калькулятор должен показывать результат математического выражения, которое вы ввели, и это намного, намного сложнее, чем кажется. То, что я собираюсь вам рассказать, — это величайшая история о разработке приложения-калькулятора. Взгляните на калькулятор iOS. Что-нибудь заметили? Он показывает неверный результат. (10^100) + 1 − (10^100) равно 0, а не 1. В Android всё правильно. И история о том, как это произошло, совершенно безумна.

Читать далее

Intel: крупнейший убыток в истории и смена стратегии. Что происходит с корпорацией?

Reading time5 min
Views13K

Хабрчане, привет! Это Александр Баулин, я анализирую работу Intel уже 25 лет. По итогам 2024 года чистый убыток Intel составил 18,8 млрд $ США — антирекорд за всю историю корпорации. Чем вызван кризис и что происходит с Intel, я писал здесь. Но компания продолжает бороться.

Четвертый квартал 2024 года был относительно стабильным: убыток всего в 100 млн $ — копейки при выручке в 14,3 млрд. Так что сегодня хочу обсудить нынешнюю ситуацию с компанией и ее перспективы. Начнем!

Читать далее

DOGE — бэкдор атака на систему госуправления США (успешная)

Level of difficultyMedium
Reading time2 min
Views23K

Кто как, а я просто в восхищении! Обе мои субличности, юридическая и черно-бело-шляпная рукоплещут ходу Трампа и Маска, по поиску и захвату существующего скрытого бэкдора в системе госуправления США - United States Digital Service (USDS) .
В чем суть и кто его создал?

Читать далее

Ностальгические игры: Sid Meier's Civilization IV

Level of difficultyEasy
Reading time13 min
Views8.7K
image

Время безжалостно – оно превращает величайшие империи в пыль, оставляя после себя лишь строки в учебниках истории. Но так же происходит и с играми: одни уходят в забвение, а другие вызывают споры даже спустя десятилетия. Civilization III была глубокой, сложной, порой беспощадной к новичкам, но именно за это её и любили, поэтому когда в 2005 году вышла Civilization IV, фанаты встретили её настороженно. Разработчики во главе с Сидом Мейером и Сореном Джонсоном сознательно отошли от прежней формулы, сделав игру динамичнее и интуитивнее, и этот шаг стал причиной множества споров: кто-то увидел в нём упрощение, а кто-то – эволюцию.

Но за этими изменениями стоял продуманный дизайн. Разработчики не просто «облегчили» игру, но попытались сделать стратегию доступной без ущерба для глубины. Полностью трёхмерная карта, гибкая дипломатия, влияние религии, доработанная система великих людей – всё это не только меняло тактику, но и делало каждое прохождение уникальным. Civilization IV была создана с мыслью, что даже тот, кто впервые попробует серию, сможет в неё втянуться, а ветеран всё равно найдёт, над чем ломать голову.
Civilization IV очень сильно отличалась от своих предшественников, однако, независимо от мнений, она оставила след в истории стратегий, и сегодня самое время вспомнить, что сделало её такой особенной…
Читать дальше →

10X – и всё же они существуют

Level of difficultyMedium
Reading time5 min
Views4.1K

Статья «Что означает 10X» — это отредактированная версия записи в блоге « Вариации производительности среди разработчиков и команд: происхождение 10x ». В статье основное внимание уделяется исследованиям, которые подтверждают утверждение о 10-кратной разнице в производительности среди программистов.

TL;DR

Для случая разработки Excel 3.0 vs Lotus 1-2-3 разница в количестве строк кода в день различалась на порядок.

Читать далее

Пишем простой драйвер на Rust

Reading time9 min
Views17K

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

В своей повседневной работе я по-прежнему придерживаюсь C++, так как основная её часть связана с низкоуровневым программированием систем и ядра, а из этого языка легко задействовать написанный на С Windows API и COM API.

Rust — это язык для системного программирования, то есть он может справляться с теми же задачами, что и C/C++. Основное неудобство при этом создаёт громоздкий синтаксис, необходимый для преобразования типов С в типы Rust. Но это неудобство можно преодолеть, используя подобающие обёртки и макросы.

Короче говоря, я решил попробовать написать простой и полезный драйвер WDM. Это будет Rust-версия драйвера «Booster», о котором я пишу в своей книге (Windows Kernel Programming), позволяющего изменять приоритет любого потока на любое значение.
Читать дальше →

Конкретные биомаркеры болезни Альцгеймера

Level of difficultyMedium
Reading time3 min
Views1.9K

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

Читать далее

Новый формат собеседований в Яндекс

Level of difficultyEasy
Reading time6 min
Views79K

Недавно Яндекс изменил процесс отбора кандидатов, теперь перед алгоритмической секцией добавилась секция Advanced Code. Секция заявлена как более близкая к практике, в статье я расскажу правила нового формата.

Читать далее

Космические объекты из окрестностей Альфы Центавра уже могут быть здесь

Level of difficultyMedium
Reading time5 min
Views8.5K

Появление межзвёздных объектов (МЗО) Оумуамуа и кометы Борисова в 2017 и 2019 годах соответственно вызвало всплеск интереса. Что это были за объекты? Откуда они взялись? К сожалению, они не задержались и не стали сотрудничать с нами по вопросу по их детального изучения. Тем не менее, они нам кое-что рассказали: объекты внутри Млечного Пути перемещаются по всей Галактике.

Мы не знаем, откуда взялись тот или иной МЗО, но их должно быть больше — гораздо больше. Сколько ещё объектов из наших звёздных соседей могут посещать нашу Солнечную систему?

Звёздная система Альфа Центавра (АЦ) — наш ближайший звёздный сосед, состоящий из трёх звёзд: Альфа Центавра A и Альфа Центавра B, составляющие близко взаимодействующую пару, и Проксима Центавра, тусклый красный карлик. Вся система AЦ движется к нам, и это даёт прекрасную возможность изучить, как материал может перемещаться между Солнечными системами.

Читать далее

Хеш-индексы в PostgreSQL: быстрый поиск или скрытые проблемы?

Level of difficultyEasy
Reading time3 min
Views5.4K

Хеш-индексы в PostgreSQL - мощный, но недооценённый инструмент.

Когда они быстрее B-Tree, а когда наоборот?

Простое объяснение, тесты и ключевые нюансы, которые помогут ускорить запросы...

Читать далее

Магия полупроводниковых диодов: начало

Level of difficultyMedium
Reading time13 min
Views13K

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

По виду основного материала наиболее известны германиевые и кремниевые диоды, а также диоды из арсенида и нитрида галлия. В этой статье я сперва расскажу об основах — как устроен p-n переход обычных выпрямительных диодов. А затем я перейду к очень интересным туннельным диодам, работа которых основана на квантовых эффектах. На их базе мне удалось сделать надежно работающие генераторы высокочастотных и низкочастотных колебаний, а также повышающий преобразователь напряжения с питанием от батарейки на 1,5 В.

Читать далее

MongoDB: магия вне Хогвартса в IT

Level of difficultyMedium
Reading time9 min
Views4K

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

Меня зовут Алена Метенева, я работаю старшим инженером по обеспечению качества в компании SM Lab в проекте «Кассы». Я тестирую бэкенд и интеграции и там, где это возможно, автоматизирую тесты на Java. Сегодня я хочу рассказать вам о том, как MongoDB помогает мне с этим процессом.

Что такое MongoDb

Думаю, многие работали с MongoDB (Монга) и знают, что это нереляционная СУБД, которая использует для хранения данных JSON-структуру: вместо таблиц и строк, как в реляционных базах данных, в MongoDB есть коллекции (набор документов, эквивалент таблицы реляционной базы данных) и документы (внутри коллекции они могут отличаться друг от друга размером, содержанием и количеством полей), которые состоят из пар «ключ–значение».

Для чего Монга тестировщику 

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

Что я имею в виду?

Представьте, что вы тестируете интеграцию с другой системой. Если все работает стабильно, то пройти позитивные сценарии будет проще всего. А если вы хотите протестировать кейс, в котором смежная система выдает ошибку 503 (Service Unavailable) – это будет уже сложнее. Хорошо, если вы управляете обеими системами и можете просто перезагрузить одно приложение и попытаться достучаться до него через второе. А если система не ваша? В таком случае принято использовать моки. Но есть и третий вариант: если ваше приложение для подключения к другому берет ссылку из MongoDB, то эту ссылку можно просто подменить, добавив в нее лишние символы, чтобы получить ту самую ошибку 503 или 404 (Not Found), например.

Читать далее

Автоскейлинг до нуля, отказоустойчивые кластеры и мощные GPU: что нового в январе

Reading time4 min
Views2.9K

Привет! Я — Дима, технический писатель в Selectel. В новом дайджесте обновлений расскажу, как можно не переплачивать за простаивающие GPU, масштабировать кластеры до нуля, гибко управлять сетевой безопасностью и многом другом.
Читать дальше →

Я проверил, сколько вы платите за одинаковое железо в разных облаках

Reading time43 min
Views32K
image
Чем короче полоска, тем, вероятно, больше вас переподписывают или более старое железо предлагают. Что это за график — ниже

Идея очень простая: покупаю одинаковые тарифы на одинаковом железе и гоняю тесты. Удивляюсь, немного охреневаю, снова гоняю тесты.

Ну и вот теперь показываю вам.

Задача: понять, насколько одинаковый тариф с одинаковым количеством vCPU и RAM выражается в реальную производительность у разных провайдеров.

Забегая вперёд — у меня нет вопросов к Селектелу, Клауд.ру (Сберу) и Яндексу (почти). У них переподписки, вроде, нет. А вот дальше начинается дичь.

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

Книга: «Blue Fox: взлом и реверс-инжиниринг ARM»

Reading time10 min
Views3.2K
Привет, Хаброжители!

Что такое реверс-инжиниринг?

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

Конечно же, сегодня мы расскажем о новой книге «Blue Fox: взлом и реверс-инжиниринг ARM», которая поможет разобраться во внутреннем устройстве архитектуры ARM и реверс-инжениринге.
Читать дальше →

У меня 4 фулл-тайм работы в разных странах, а я работаю по 7 часов в день

Level of difficultyEasy
Reading time7 min
Views88K

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

Читать далее

2G и 4G с нами надолго: обзор основных архитектур сетей операторов связи

Level of difficultyMedium
Reading time9 min
Views18K

Привет, Хабр! На связи Михаил Бухтеев, ведущий технический менеджер продукта в YADRO. Я отвечаю за планирование функционала базовой станции LTE. В статье я расскажу об устройстве сетей сотовых операторов в России, которые обеспечивают работу более 260 млн активных SIM-карт. 

Мобильные сети — это не просто «связь», а сложная экосистема, которая помогает десяткам миллионов людей быть онлайн. 2G, 3G, 4G, а скоро и 5G — каждое поколение выполняет свою задачу. Давайте разберемся, как операторы управляют этим технологическим коктейлем, узнаем, почему 3G уходит в прошлое, а 2G остается с нами надолго. Также поговорим о преимуществах сетей пятого поколения. 

Читать далее

Как научить модель рассуждать, не переобучая её, меньше чем за 10$

Level of difficultyHard
Reading time10 min
Views3.9K

Это статья обобщение моего исследования передачи знаний от большой модели с замороженными весами в малую модель, которую мы будем обучать через расширенный механизм кросс внимания или проще говоря через LLM модули. Оригинальное исследование доступно по ссылке: arxiv.org/abs/2502.08213 . Репозиторий с кодом и весами доступен на Hugging Face: LLM модули.

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

Читать далее

Как не укусить себя за хвост во время написания функциональных тестов на Go

Level of difficultyMedium
Reading time8 min
Views2.2K

Залог успеха любого программного решения — хорошее покрытие его функциональными тестами. Каждая полностью покрытая функция — минус одна потенциальная ошибка в работе проекта или даже больше. Однако при написании тестов в проекте, насчитывающем тысячи строк кода и множество пакетов (packages), можно столкнуться с различными трудностями.

Я Роман Соловьев, ведущий ИТ‑инженер в отделе RnD и готовых решений управления развития продукта в СберТехе. Сегодня расскажу, с какими проблемами мы столкнулись при написании тестов к проекту на Go, активно использующему Docker‑контейнеры, и как нам удалось их решить.

Эта статья будет полезна тем, кто пишет модульные тесты на Go, особенно для проектов, использующих Docker‑контейнеры. Я постараюсь просто и понятно объяснить официальный code‑style для модульных тестов, а также подсветить подводные камни, с которыми можно столкнуться при их написании.

Читать далее

Information

Rating
3,494-th
Registered
Activity