Как стать автором
Обновить
477
139.6
Дмитрий Брайт @Bright_Translate

Переводчик

Отправить сообщение

Эксперимент по ускорению SQLite

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.6K

SQLite быстра, но можно ли сделать её ещё быстрее? Исследователи из Университетов Хельсинки и Кембриджа задались этим вопросом и опубликовали работу Serverless Runtime / Database Co-Design With Asynchronous I/O. В ней они продемонстрировали возможность 100-кратного снижения времени задержки, и ниже я в общих чертах эту их работу прокомментирую.

Речь пойдёт об исследовании возможностей Limbo — переписанной на Rust версии SQLite.
Читать дальше →

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

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров25K

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

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

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров62K

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

Бюджетный квадрокоптер на базе ESP32 своими руками

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров42K
За последние годы дроны стремительно переросли из нишевых хобби-девайсов в гибкие инструменты, применяемые для множества всевозможных задач — от фотографии до сельского хозяйства и даже военной сферы. В зависимости от назначения, характеристик и способности нести полезную нагрузку подобные устройства могут стоить от нескольких тысяч до миллионов.

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

20-летие Linux для десктопных систем (часть 2)

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров9.8K

Коротко о прошлой части: в стремлении создать идеальную десктопную систему, аналогичную GNOME и Debian, молодой Ploum присоединяется к тайному проекту «no-name-yet», который в итоге становится Ubuntu.
Читать дальше →

20-летие Linux для десктопных систем (Часть 1)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров15K

Двадцать лет назад на меня снизошло озарение: Linux готов для десктопа.

(*смех аудитории*)

Я был одним из тех подростков, которых то и дело звали «починить» компьютер. Соседи, друзья, родственники. Да, такой вот подросток-ботан. Вы наверняка понимаете, о чём я. Но в итоге мне надоело устанавливать взломанные антивирусы и налаживать системы Microsoft Windows, избавляя RAM от вредоносов и оживляя тормозящие процессоры в компьютерах, мигающих светодиодами питания в мольбе облегчить их страдания.

Устав от такой неоплачиваемой работы техника поддержки Microsoft, я предлагал людям либо установить Linux с моим полным сопровождением, либо больше не обращаться ко мне с подобными проблемами.

И, к моему удивлению, некоторые это предложение принимали.
Читать дальше →

Обновление прошивки Toshiba NAS HDD под Linux

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров3.1K

Я произвёл реверс-инжиниринг модуля обновления прошивки своего HDD Toshiba, чтобы иметь возможность обновлять её под Linux. Приведённые ниже команды должны работать, но используйте их на свой страх и риск:

$ wget https://www.canvio.jp/en/support/download/hdd/ot_ihdd/fw/ISFw.dat
$ grep -C2 MODELNAME ISFw.dat
 # ^
 # |___ здесь определяем нужное имя файла
$ wget https://www.canvio.jp/en/support/download/hdd/ot_ihdd/fw/sk060202.ftd
# hdparm --fwdownload-mode3 sk060202.ftd /dev/sdX

Предыстория


Недавно я приобрёл для своего NAS диск Toshiba HDWG480 HDD. Вот вывод команды hdparm -I /dev/XXX:

ATA device, with non-removable media
        Model Number:       TOSHIBA HDWG480
        Serial Number:      3430A00RFR0H
        Firmware Revision:  0601
        Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
        Used: unknown (minor revision code 0x006d)
        Supported: 10 9 8 7 6 5
        Likely used: 10
[...]

Как обычно, я хотел проверить, есть ли для него доступные обновления прошивки. На сайте Toshiba для моей модели приводится версия 0602.

К сожалению, и вполне ожидаемо, для пользователей Linux возможности обновления нет. Производитель предоставляет лишь «Internal Storage Firmware Update Utility» для Windows.

Сами файлы обновления также отсутствуют.
Читать дальше →

PyMyFlySpy: отслеживание полёта по бортовым данным

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.6K

«Где мы, папа», — спросил меня 5-летний сын.

«Мы приземлимся примерно через час», — ответил я.

«Да нет, я имею в виду, где мы? Мы ещё не пролетаем Италию?»

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

Но, к его сожалению, я разработчик PySkyWiFi («абсолютно дурацкого WiFI-инструмента для бесплатного доступа в интернет при длительных перелётах»). Не платить за интернет авиакомпании — это моя личная фишка. Здесь же нам потребуется иная, офлайн-стратегия.
Читать дальше →

Всего несколько строк CSS для плавных переходов между страницами

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров12K

Одна строка CSS-кода может обеспечить чёткие переходы между страницами веб-приложений (и сайтов — для тех, кто их обслуживает, есть разница), открывая новые возможности для проектирования и работы. Так что предлагаю разобрать тему переходов между представлениями (View Transitions), обсудив их актуальность и сделав первые шаги при помощи всего одной строки CSS.
Читать дальше →

Элегантная математика фильтров Блума

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров15K

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

В этой статье речь пойдёт об изяществе математики, лежащей в основе фильтров Блума. Мы разберём аспекты точности работы и компромиссов при конфигурировании этих фильтров, а также узнаем, почему в некоторых случаях они могут стать отличным выбором, особенно в сфере больших данных и системах OLAP, когда подразумевается обработка огромных и статичных датасетов.
Читать дальше →

О векторных базах данных простым языком

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров24K

Представьте, что управляете онлайн-магазином, предлагающим тысячи товаров.

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

Например, когда пользователь вводит «лето», вы можете показывать предметы вроде шортов, платьев, панам и пляжных зонтов.

Как бы вы реализовали такую систему?
Читать дальше →

«Антенные» диоды в процессорах Pentium

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров17K
Увеличенный кристалл процессора Pentium, где видно слой кремния и нижний металлический слой. Стрелками показаны места подключения антенных диодов. Чтобы сделать этот снимок, я счистил два верхних металлических слоя.

Недавно, изучая кристалл процессора Pentium, я заметил непонятные структуры, где линии сигнала без видимых на то причин были соединены с кремниевой подложкой. На фото выше я отметил два примера таких конструкций, где металлическая линия (оранжевая) соединяется с миниатюрными квадратными областями легированного кремния (серый), изолированными от остальной цепи. В итоге мне удалось выяснить, что эти структуры являются «антенными диодами», особыми диодами, защищающими цепь от повреждения во время производства пластин. И в текущей статье я порассуждаю на тему проектирования первых процессоров Pentium, попутно объяснив, как эти диоды работают.
Читать дальше →

MomBoard: E-Ink дисплей для родственника с амнезией

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.3K

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

Реализация подобия Apple Vision Pro

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров4.2K
Не так давно я был свидетелем запуска Apple Vision Pro. Презентация оказалась очень интересной, но больше всего моё внимание зацепила одна деталь — дистанционное управление вводом с помощью пальцев. Выглядит очень интуитивно — использовать перемещение и сведение пальцев для управления курсором на экране. Меня этот механизм заинтриговал, и я решил воссоздать его сам.
Читать дальше →

Разгон Raspberry Pi 5 до 3 600 МГц и охлаждение жидким азотом

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров7.2K

Мы испробовали всё, чтобы сделать наш Raspberry Pi самым быстрым в мире — меняли ОС, использовали для охлаждения жидкий азот, апгрейдили схему питания и даже поменяли тактовый генератор. В этой статье я поделюсь некоторыми интересными выводами, которые мне удалось сделать за несколько недель хакинга малинки в сотрудничестве с ElmorLabs.
Читать дальше →

Сложности с отображением иконок рабочего стола

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.9K

Последние три недели я работал над рефакторингом и исправлением легаси-кода (самые старые части которого были написаны в 2013 году), отвечающего за позиционирование иконок в KDE Plasma, а также сохранение и загрузку этих данных.

Вот мой запрос на внесение изменений: plasma-desktop: Refactor icon positioner saving and loading.

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

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

Бывало у вас такое, что провода наушников спутываются, когда вы убираете их в шкаф или кладёте ненадолго в карман? И с базами кода происходит нечто похожее, когда множество людей записывают в них изменения, исправляя баги друг друга. Каждый мыслит по-своему, поэтому вполне естественно, что всё со временем запутывается.

В итоге периодически кому-то нужно разгребать такую запутанную базу кода и подчищать её.
Читать дальше →

Небезопасный Rust сложнее C

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров23K

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

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

Почему программное обеспечение движется только вперёд

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров8.8K

В случае масштабных систем не происходит ни откатов, ни запланированных переходов (cut-over) — ваше ПО движется только вперёд.

Примечание: это электронное письмо, взятое из книги, которую я пишу последние три недели. В ней я отражаю сложную идею, которую вынашивал 10 лет. Я постарался сократить его содержание для удобства восприятия и хотел бы услышать ваши мысли по этому поводу.
Читать дальше →

Австралия, Лорд-Хау — самый странный часовой пояс

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров14K

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

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

Так что я предлагаю другой подход. В этой статье я покажу вам несколько странных часовых поясов, можно даже сказать самых странных — так как страннее, пожалуй, уже некуда.
Читать дальше →

Как я одержал победу над создателем чита для MMO-игры

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров18K

В конце 2000-х я работал в нишевой компании, разрабатывавшей MMO-игру. У нас была небольшая команда и скромная прибыль, зато верная аудитория. Игра опиралась именно на навыки, не предлагая привычных усилений, и игрокам такая система нравилась.

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

Информация

В рейтинге
28-й
Откуда
Россия
Работает в
Дата рождения
Зарегистрирован
Активность