Search
Write a publication
Pull to refresh
593
138.7

Пользователь

Send message

Знакомство с форками Firefox

Level of difficultyMedium
Reading time13 min
Views15K

В последнее время действия разработчиков Mozilla озадачивали многих сторонников Firefox, склоняя их к поиску альтернатив. На рынке есть много решений для тех, кому нужен браузер, который бы не являлся частью монокультуры Chrome, но при этом был полноценен и удобен для постоянного использования. Для тех же, кто желает остаться в «семье» Firefox, есть ряд хороших вариантов, идущих своим путём. К ним можно отнести GNU IceCat, Floorp, LibreWolf и Zen.
Читать дальше →

История S.u.S.E. Кульминация

Level of difficultyMedium
Reading time8 min
Views8.9K

Продолжение истории про зарождение и развитие дистрибутива SuSE. В прошлой части мы остановились на том, что в декабре 2001 года компания выпустила SuSE Linux Enterprise Server для мейнфреймов IBM S/390. В тот же год в США произошла рецессия, которая ощутимо сказалась на делах компании. Продолжим…
Читать дальше →

Парсер JSON в 500 строках Rust

Level of difficultyMedium
Reading time9 min
Views9.7K

За время прошлого семестра в универе я прошёл курс «Инструменты и компиляторы на основе синтаксиса». В рамках курса мы создавали сканер, парсер, компилятор и прочие инструменты для языка Plo. Писали мы их на Python, но тогда меня серьёзно заинтересовал Rust.

В итоге я решил заняться очередным хобби-проектом, и на сей раз создать парсер JSON на Rust. Мне хотелось проверить полученные на курсе навыки и, наконец-то, реализовать проект на этом языке, что я откладывал уже не один год.
Читать дальше →

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

Reading time9 min
Views17K

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

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

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

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

Как амбиции и маркетинг Nokia уничтожили N-Gage

Level of difficultyEasy
Reading time13 min
Views8.4K
image

В середине января Nokia дала «добро» университету Аалто на публикацию огромного архива ранее конфиденциальных документов. Открытие доступа к таким документам очень важно для понимания того, как Финляндия, в отрыве от остального мира, смогла создать свою философию дизайна для портативных устройств. Помимо весьма запоминающихся дизайнов, компания всегда старалась будто бы совершить прыжок во времени: какой концепт ни посмотри — все напоминают современные устройства. Правда, многие из концептов больше напоминали иллюстрации к какой-то научной фантастике. Но реализовать игровое устройство у них таки получилось в виде смартфона N-Gage. Благодаря обнародованным архивам, мы можем лишний раз убедиться, что маркетологи Nokia смотрели слишком далеко в будущее, игнорируя реалии тех лет. Привело всё это к тому, что N-Gage потерпела крах.

Но как зарождалась идея игрового смартфона? Да, на Хабре в последнее время уже вышли материалы про N-Gage, но они больше технические, и не затрагивают архивные материалы, как и не рассказывают про менее успешную платформу N-Gage 2.0. Эта же статья — больше про историю того, как Nokia пыталась позиционировать устройство и платформу.
Читать дальше →

Хакерские утилиты Дидье Стивенса

Level of difficultyMedium
Reading time6 min
Views31K


Дидье Стивенс — бельгийский разработчик и авторитетный специалист по информационной безопасности. Наиболее известен своими инструментами по взлому паролей Windows, анализу документов PDF и внедрению туда вредоносных файлов, а также как автор опенсорсных утилит Didier Stevens Suite: это 140 программ для системных операций с файлами, процессами, реестром и прочими штуками. Например, диспетчер задач Windows, реализованный в Excel/VBA (на КДПВ).
Читать дальше →

Сортировка «Милосердный Сталин»

Level of difficultyMedium
Reading time7 min
Views26K

Merciful Stalin Sort (сортировка «Милосердный Сталин») — это новый алгоритм сортировки, вдохновлённый пресловутым Stalin Sort (сталинской сортировкой). В ходе развлекательного эксперимента со сталинской сортировкой возникла интригующая идея: что, если вместо удаления выбивающихся элементов, сохранить те, которые идут по порядку, и рекурсивно упорядочить остальные? Логика заключалась в том, чтобы добиться повышения производительности за счёт уменьшения массива, требующего сортировки, особенно в случае частично упорядоченных массивов. Это и привело к разработке сортировки «Милосердный Сталин».
Читать дальше →

Как инженеры Apple ошиблись с полярностью конденсатора

Level of difficultyMedium
Reading time4 min
Views62K

Хочу затронуть давнюю шумиху на тему того, что в схеме Apple Macintosh LC III один из конденсаторов установлен задом наперёд. LC III — это модель Mac размером с «коробку от пиццы». Выпускалась она с начала 1993 по начало 1994 года преимущественно для сферы образования. Также существовала линейка потребительских модификаций в виде моделей Performa 450, 460, 466 и 467. Масштабного отзыва устройств со стороны Apple так и не последовало, что, на мой взгляд, и вызвало среди сообщества скептическое отношение к проблеме. Поэтому предлагаю взглянуть на эту историю более подробно и подробно рассмотреть саму схему устройства. Действительно ли инженеры Apple допустили ошибку?
Читать дальше →

Пишем Wake-on-LAN сервис на ESP8266 при помощи ChatGPT

Level of difficultyEasy
Reading time5 min
Views14K


Мне нужен простой девайс с веб-страницей, заходя на которую, я смогу будить спящие компьютеры при помощи Wake-on-LAN магического пакета.

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

О том, как я писал прошивку и веб-страницу через ChatGPT, поведаю далее в статье.
Читать дальше →

Почему мои ZFS-диски так шумят?

Level of difficultyMedium
Reading time11 min
Views19K
У Джонни Кэша есть песня «One piece at a time» 1976 года. В ней рассказывается история об автомеханике, собирающем собственный Cadillac из деталей, которые он в течение 25 лет по одной тырил с производственного конвейера General Motors.

Некоторое время назад пользователь Practical ZFS задал обманчиво простой вопрос:

«У меня есть пул Proxmox из трёх RAIDz1 vdev (virtual device, виртуальное устройство) по 4 диска. Проблема в том, что во время работы VM все двенадцать дисков минимум раз в секунду издают громкий звук, причём в течение всего дня. Что может быть причиной, и как это устранить?»
Читать дальше →

Черт тебя возьми, CSS. Часть 3

Level of difficultyMedium
Reading time7 min
Views7.9K


Привет, Хабр. Я продолжаю делиться «косяками» CSS, которые могут сбить нас с толку. Мне не нравится, что многие плюются от него. Конечно, не без оснований. Я их понимаю, потому что тоже плевался.


Только мне нравится CSS. Хоть и потратил множество часов на изучение неочевидных моментов, я не хочу, чтобы у языка была слава «костыля». Подумав, как помочь другим меньше мучиться, я собираю и объясняю неочевидности CSS.

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

Интересные приёмы, взятые из исходников Android

Level of difficultyEasy
Reading time8 min
Views15K
Интересные приёмы, взятые из исходников Android

В процессе чтения исходников Android SDK я замечал интересные механики и приёмы написания кода, какие-то из них до сих пор используются при создании новых библиотек, другие, напротив, заменены более логичными и понятными конструкциями. В этой статье я постараюсь перечислить всё, что смог заметить сам при изучении исходников Android'а. Сразу отмечу: эта статья не претендует на полноту материала и возможно вы нашли даже больше интересных моментов при чтении кода, ладно, погнали, короче!
Читать дальше

Эй, компьютер, создай-ка мне шрифт

Level of difficultyMedium
Reading time6 min
Views7.4K

Это история о том, как я с нуля осваивал создание генеративных моделей МО, попутно обучая компьютер создавать шрифты. Да, настоящие типографские шрифты, состоящие из набора заглавных глифов. Созданная мной модель получает на входе описание шрифта и создаёт на выходе файл с их готовым набором. Назвал я свой проект FontoGen.

Выше вы видите несколько примеров шрифтов, сгенерированных моделью FontoGen.

Ну а дальше я подробно опишу всю историю.
Читать дальше →

Самые странные контроллеры для консолей: о некоторых вы не знали

Level of difficultyEasy
Reading time6 min
Views7.8K
image

Не секрет, что для разных игр разработчики делали порой ну очень странные девайсы: без некоторых игры просто непроходимы, а некоторые делались чисто для погружения в атмосферу. О каких-то из них вы точно слышали, а что-то — скорее всего, будет для вас открытием.
Читать дальше →

I в LLM означает Intelligence

Level of difficultyEasy
Reading time6 min
Views4.4K

Я уже давно ничего не писал об ИИ или о том, как мы (не) используем его для разработки в нашем проекте curl. Больше откладывать нельзя. Хочу продемонстрировать вам наиболее значительный эффект, который ИИ может оказать на curl сегодня, подкрепив его примерами.
Читать дальше →

Бомбезная модификация электрогитары типа «Телекастер»

Level of difficultyEasy
Reading time9 min
Views12K


Привет, Хабр! Исходя из набора предметов на фото, может показаться, что речь пойдёт просто об установке рельсового хамбакера в бриджевую позицию с попутным апгрейдом колковых механизмов, верхнего порожка и ретейнеров.

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

Почему порой так сложно вводить текст в терминал

Level of difficultyMedium
Reading time8 min
Views20K

Как-то раз я спросила у пользователей Mastodon, что их не устраивает в работе с терминалом, и одним из ярких замечаний оказалось «редактирование уже введённой команды».

Мне эта проблема тоже реально знакома. Несмотря на то, что ввод текста и его редактирование является «базовой» задачей, мне потребовалось около 15 лет каждодневной работы с терминалом, чтобы привыкнуть к использованию Ctrl+A для перехода к началу строки (или Ctrl+E для перехода в конец — я использовала вместо этого Home/End).

Так что сегодня речь пойдёт о том, что ввод текста порой вызывает сложности. Я также поделюсь с вами кое-какими советами, которые сама была бы рада услышать давно.
Читать дальше →

Через объектив игровой консоли

Level of difficultyEasy
Reading time12 min
Views4.4K
image

Камеры в консолях появились давно и используются в той или иной степени по сей день. И в этом материале пройдусь по истории камер в консолях — какими они были и как использовались.
Читать дальше →

Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: «Как скрыть элемент доступно?»

Level of difficultyMedium
Reading time6 min
Views8.8K


Привет, Хабр. Я продолжаю отвечать на вопросы по вёрстке из собеседований на должность фронтендера. Если я где-то ошибаюсь, вы поправляете меня в комментариях. Таким способом я учусь у вас, а вы у меня.


Сегодня я отвечу на следующий вопрос: «Как скрыть элемент с помощью CSS доступно?»

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

Памяти Кевина Митника — хакера, ломавшего ФБР, АНБ и Кремниевую долину. Часть 7: призрак в маске мертвеца

Level of difficultyEasy
Reading time9 min
Views20K

Итак, настал декабрь 1992 года. Хитроумному Митнику не удалось увернуться от того, чтобы суд в последний момент его условного срока выписал ордера на его арест. Шестерни правоохранительной машины США раскручивались по его душу медленно, но верно — и агенты ФБР относились к задержанию хакера даже с некоторой ленцой и пофигизмом. Вероятно, они считали, что 100%-й компьютерный гик, при всех его умениях обводить систему вокруг пальца, не решится на уход в бега и жизнь в подполье. Они недооценили то, насколько Митнику не понравилось в тюрьме — и насколько он не желал вновь угодить за решётку.
Читать дальше →

Information

Rating
Does not participate
Works in
Registered
Activity