Search
Write a publication
Pull to refresh
1
0
Send message

Ультимативные крестики-нолики и iPXE

Reading time10 min
Views6.2K

Привет, Хабр! Меня зовут Вова, я разработчик в Selectel. На днях меня осенило: загрузка сервера по сети — это прекрасный инструмент, из которого можно сделать что-нибудь необычное. Например, игру. У нас есть минимальный набор: командный интерпретатор, возможность скачивать и выполнять произвольный код.

Ранее я уже использовал инструменты не по назначению, когда создавал Морской бой на SQL, тетрис в QR-коде, крестики-нолики в DNS и Gravity Defied на sed. С прошлой «серии» ненормального программирования прошло почти два года — время вновь попробовать силы и придумать что-нибудь новое.
Читать дальше →

Пишем свой загрузчик операционной системы Linux

Level of difficultyMedium
Reading time23 min
Views25K


Меня давно интересовал вопрос, насколько сложно написать собственный загрузчик операционной системы. Я не говорю о простой программе, выводящей «Hello, World!», а о полноценном загрузчике, который передаёт управление от встроенного программного обеспечения компьютера ядру операционной системы. Современные загрузчики представляют собой сложные программы, способные загружать множество операционных систем различными способами, учитывая массу нюансов, связанных с программным и аппаратным обеспечением. Читая их исходный код, легко утонуть в деталях и потерять понимание сути и реализации.


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

Читать дальше →

Ветераны Intel и Джим Келлер разрабатывают новые RISC-V процессоры. Что это за проект

Reading time3 min
Views9.8K

В мире чипов, возможно, вскоре появится новый претендент на лидерство. Группа ветеранов Intel, покинувших компанию, объединилась с известным разработчиком Джимом Келлером, одним из создателей архитектуры AMD Zen. Зачем? Для разработки новых процессоров на основе открытой архитектуры RISC-V. Стартап, который получил название AheadComputing, может стать серьезным игроком на рынке, бросив вызов доминирующей архитектуре x86. Во всяком случае, так считает команда проекта.
Читать дальше →

Unihertz Titan — лучший QWERTY-смартфон в 2025 году?

Level of difficultyEasy
Reading time7 min
Views15K

Я большой фанат смартфонов с полноценными физическими клавиатурами. В 2023 году я купил себе 9-летний BlackBerry Passport, восстановил его и ходил как с основным на протяжении полугода. Однако годы берут своё, BlackBerry уже давным-давно не выпускает новые смартфоны, а свежих QWERTY-устройств на рынке практически нет. И вдруг, в 2019 году, небольшой стартап UniHertz выпускает QWERTY-смартфон — Titan, практически полностью повторяющий BlackBerry Passport и Q10.

Недавно я стал владельцем Titan'а и решил написать статью об опыте использования одного из немногих QWERTY-аппаратов за последние 10 лет. Интересно? Тогда жду вас под катом!

Читать далее

Изучаем программирование шейдеров с Риком и Морти

Level of difficultyMedium
Reading time31 min
Views3K

Эта анимация Рика состоит из 240 строк кода. Никаких библиотек и изображений. В статье я покажу, как использовать шейдеры GPU и поля расстояний со знаком для создания подобных анимаций для видео, видеоигр и просто для развлечения! В оригинале статьи даже есть интерактивный редактор кода, благодаря которому вы сможете поэкспериментировать с примерами.

Читать далее

Томонобу Итагаки: тру-панк японского игропрома

Level of difficultyEasy
Reading time17 min
Views2.9K

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

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

Читать далее

ЛикБез: Тепловой Насос

Level of difficultyEasy
Reading time5 min
Views22K

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

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

В этом тексте я попытался объяснил, как это возможно с точки зрения физики процесса. Буквально на пальцах.

Читать далее

Как фильтры Блума в 10 раз ускорили SQLite

Level of difficultyMedium
Reading time4 min
Views8.9K

Это интригующая история о том, как исследователи с помощью грамотного использования фильтров Блума смогли в 10 раз ускорить аналитические запросы в SQLite. Ниже я приведу свой краткий обзор работы «SQLite: Past, Present, and Future (2022)», и объясню некоторые внутренние особенности баз данных, включая механизм реализации соединений.
Читать дальше →

Рассказ об истоках и эволюции редакторов Vi и Vim

Level of difficultyEasy
Reading time13 min
Views7K

В этой статье мы отправимся к истокам текстовых редакторов UNIX, чтобы рассмотреть ключевых участников и важные события, сыгравшие решающую роль в эволюции Vi и Vim, и узнаем, кто их общий «прародитель».

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

Читать далее

Быстрый целочисленный логарифм по основанию 2

Reading time4 min
Views13K
Часто бывает нужно посчитать целую часть логарифма по основанию 2 от любого целого числа.

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

У VLIW длиннее x86: Itanium в шаге от величества, Эльбрус — подержите моё пиво, тайны PS2

Level of difficultyMedium
Reading time24 min
Views8.5K

Разбираем архитектуру VLIW (Very Long Instruction Word). Поговорим о предтечах, погрузимся в дух 1980-1990-х, узнаем, как Itanium стал Itanic’ом, как архитектура жила, живёт и будет жить. Ах да, будет про Эльбрус и даже PlayStation 2.

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

Дропдаун

Составляем из четырёх двоек любое целое число

Level of difficultyEasy
Reading time2 min
Views24K

Есть одна очень миленькая математическая задачка, которая может быть интересна людям на очень разных уровнях:

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

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

Читать далее

Что нужно знать, чтобы писать быстрые SQL-запросы

Level of difficultyMedium
Reading time21 min
Views31K

Привет, я Марк Шевченко, ведущий разработчик, ИТ‑холдинг Т1. SQL — мощный декларативный язык, который скрывает от программиста большинство технических деталей. Проектировщики языка предполагали, что его простота поможет не‑программистам работать с данными самостоятельно. К сожалению, простота имеет свою цену, и эта цена — производительность. Некоторые несложные запросы работают слишком медленно, что становится неприятным сюрпризом как для программистов, так и для пользователей.

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

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

Читать далее

У вас не хватает мотивации, чтобы достичь важной цели? Вот только дело вообще не в мотивации

Level of difficultyEasy
Reading time6 min
Views65K

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

Читать далее

Как уместить поиск по 30 тысячам слов в 64 КБ ОЗУ

Level of difficultyMedium
Reading time17 min
Views9.5K

Как уместить словарь размером 250 КБ в 64 КБ ОЗУ с возможностью выполнения быстрого поиска? Для справки: даже современные методики сжатия наподобие gzip -9 не могут сжать этот файл до размера меньше 85 КБ.

В 1970-х Дуглас Макилрой столкнулся с этой непростой задачей при реализации проверки правописания для Unix в AT&T. Из-за ограничений компьютера PDP-11 весь словарь должен был умещаться всего в 64 КБ ОЗУ. Кажется, подобную задачу решить невозможно.

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

История spell в Unix — это не только любопытный исторический факт. Это мастер-класс по проектированию в условиях жёстких ограничений: анализа первооснов задачи, применения математических наблюдений и проектирования изящных решений, работающих в условиях строгого дефицита ресурсов.

Читать далее

20 лет YouTube: как главный мировой видеохостинг родился из футбольной вечеринки, цунами и любви к бюстам?

Level of difficultyEasy
Reading time9 min
Views8.6K

20 лет тому назад, 14 февраля 2005 года, тремя друзьями-айтишниками было зарегистрировано доменное имя youtube.com. Всего лишь через год на сайте было порядка 25 миллионов видеороликов — и ежедневно заливалось ещё не менее 20 000. К лету 2006-го число видео дошло уже до 65 миллионов, и в октябре платформа была выкуплена Google более чем за полтора миллиарда долларов США. Как идея, родившаяся на нетрезвых посиделках, переросла в эпически успешный стартап, почему современный YouTube имеет мало отношения к изначальной задумке, и какие видео стали первыми вирусными во всемирной сети?
Читать дальше →

Дерево Дайсона

Reading time5 min
Views8.5K

Одной из вечнозелёных и поистине излюбленных футуристических тем Хабра является сфера Дайсона, её варианты (кольца, рои), а также публикации о попытках обнаружить такое астроинженерное сооружение. О ней высказывались уважаемый @Pavel-Well (здесь), уважаемый @SLY_G (например, здесь) и даже я в одной из моих первых статей – «Скорлупа сверхцивилизации. Об энергетических, инженерных и экологических аспектах сферы Дайсона». Но в тени сферы Дайсона часто проходит незамеченным подлинный масштаб кругозора и невероятных, если не сказать — безумных фантазий этого астрофизика, прожившего 96+ очень интересных лет в истории нашей цивилизации (1923-2020). Попытку обобщить идеи Фримена Дайсона однажды предпринял на Хабре уважаемый Георгий Тимс @Physics-for-Humanities в статье «Фримен Дайсон: космический мечтатель». В конце статьи Георгий любезно ссылается на книгу эссе Дайсона «Мечты о земле и о небе», подготовкой которой, кстати, руководил я, ещё когда работал в издательстве «Питер». Но даже в этой статье Георгий не упоминает, что Фримен Дайсон любил не только сферы и кольца, но и деревья. Пожалуй, самые необычные деревья, которые может представить себе далёкий потомок лесной обезьяны. О них я и расскажу под катом.

Читать далее

Нет, ваша генеративная модель меня не заменит

Level of difficultyEasy
Reading time4 min
Views24K

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

Как я нашёл эти проблемы? Можно назвать это необъяснимой, основанной на опыте интуицией, шестым чувством нёрда; у меня просто возникло ощущение, что с системой что-то не так. За свои двадцать с лишним лет опыта я видел множество приложений и знал, что где-то в этой системе есть узкое место.

Я создал тестовый сценарий, чтобы точно замерить пропускную способность системы от времени, запустил инстанс VisualVM и прошерстил десятки потоков, трассировок стеков, снэпшотов памяти и CPU. Я обнаружил проблемы, написал их исправления и запустил всё заново. Бум! Производительность возросла в десять с лишним раз. Мой начальник и коллеги были счастливы, а продуктивность повысилась. Меня похвалили, и я ощутил отдачу от выполненного долга.

Но стоит помнить, что, строго говоря, это не были баги. Успешно проходили все юнит-тесты и интеграционные тесты, тесты BDD, линтеры, статический анализ кода и было выполнено несколько раундов проверок кода. Проблемы заключались в двух невинных строках кода (спрятанных среди тысяч других), казалось бы, не вызывавших никаких трудностей. Слава Богу, проблемы были найдены на этапе разработки и не затронули ни одной системы в продакшене (мои коллеги теперь могли выполнять свои тесты быстрее, поэтому скорость разработки сильно возросла).

Читать далее

DEC. История в лицах. Часть 2

Level of difficultyEasy
Reading time12 min
Views2.5K

«Волновалась ли супруга, когда мы начинали бизнес? Нет, она никогда не волновалась. Понимаете, мы, наверное, пришли из немного иного мира: в Депрессию у тебя ничего и не было, и ты не волновался о том, чтобы иметь что-то еще. Жена же пережила две войны в Финляндии и большую часть ее жизни еда в ее доме не всегда была в достаточном количестве. То есть у нас особо ничего не было, так что мы ни о чем и не волновались. Да и зарплата была той же, что в Lincoln Labs, так что о рисках мы тоже не думали»
K. Олсен

Радостно, что эта статья успела выйти в 99-й день рождения Кеннета Олсена. Ну, а мы продолжаем.

Читать далее

Разработка 2-наносекундного излучателя лидара. Тестовое задание от Яндекс.Беспилотники

Reading time10 min
Views45K

Это рассказ о том, как потратить 3 недели на тестовое задание от работодателя мечты и провалить второй тур собеседования. Несмотря на то, что работу я не получил, тестовое задание оказалось испытанием, с которым я справился, попутно вынеся для себя несколько важных уроков.

Читать далее

Information

Rating
Does not participate
Registered
Activity