Обновить
1

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

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

Шесть лет без электричества: USB-накопители не потеряли ни байта

Время на прочтение5 мин
Охват и читатели8.7K

USB-флешки многие воспринимают как временную вещь: скинули на них пару файлов — отчёт, фотографии, видео — и бросили в ящик стола. Есть распространённое мнение, что долго так хранить данные нельзя и через год-два они начинают портиться. Энтузиаст по имени Зак Вэнс решил проверить, правда ли это, и в 2020 году запустил простой эксперимент. Он записал данные на несколько флешек, закинул в коробку и теперь время от времени проверяет, что с ними происходит. Результаты противоречат устоявшемуся мнению. Оказалось, что при обычном хранении и нормальном качестве накопителей информация может сохраняться гораздо дольше, чем принято думать.

Читать далее

Подъемная сила крыла, часть 2: парадокс д'Аламбера и модель Жуковского

Время на прочтение7 мин
Охват и читатели8.9K

Привет всем любителям физики и физического эксперимента! На прошлой неделе в говорили о спорах и заблуждениях, касающихся подъемной силы крыла и ее возникновения. Сегодня вторая часть этой статьи – главным образом о теории создания этой силы, которую предложил Николай Егорович Жуковский. Но начнем мы не с модели Жуковского, а с парадокса, который установил еще в середине XVIII века французский ученый и энциклопедист Жан Лерон д'Аламбер.

Читать далее

Заменяем базу данных SQLite на 3 ГБ конечным автоматом‑преобразователем на 10 МБ

Время на прочтение7 мин
Охват и читатели14K

Примечание для любителей чисел: все значения в статье округлены до первого значимого разряда, потому что я фанат метода «zequals» Роба Истэуэя, который позволяет сразу переходить к сути при выполнении оценочных расчётов. Гораздо полезнее запомнить такую эвристику: «Один парень сократил потребление памяти в 300 раз, заменив самодельную базу данных на крошечную статическую специализированную структуру данных, которая делает именно то, что ему нужно, и ничего лишнего».

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

Она замечательно работала в первой реализации tsk, написанной на Go (о которой я уже много раз рассказывал). В ней используется несколько базовых оптимизаций. Чтобы не выполнять поиск по нескольким процентам от общего числа слов (а их было несколько сотен тысяч), которые мы встраивали непосредственно в исполняемый файл (с самого начала одной из целей проектирования было поставлять всю программу в виде одного файла .exe, одного файла .app или одного статически скомпонованного исполняемого файла), мы установили ограничение: например, возвращать только первые 50 или 100 совпадений. Кроме того, мы просто заранее кэшировали все комбинации из 1, 2 и 3 символов. После этого за целый год интенсивного личного использования я больше ни разу не замечал сколько-нибудь ощутимых задержек в работе программы. При помощи подобных простых оптимизаций мы смогли сжать префиксное дерево примерно в 60 МБ.

Однако финский язык отличается чрезвычайно развитой агглютинацией. Одно-единственное исходное слово может иметь более сотни возможных окончаний, если учитывать все их комбинации. Причём эти комбинации не образуются по какому-то простому регулярному правилу!2 Кроме того, чрезвычайно последовательная орфография финского языка означает, что написание слов точно отражает то, как носители языка действительно их произносят. Поэтому по мере добавления окончаний исходные слова причудливым образом удлиняются, изменяются и трансформируются, приобретая благозвучные формы. Всё это кажется совершенно естественным, если ты уже пару лет погружён в изучение языка. Но новичок, увидев предложение вроде «Opiskelijassammekin on leijonan sydän», с большой вероятностью споткнётся об одно конкретное слово. Одна из задач этой программы — помочь изучающему понять, где именно нужно правильно разделить слово на составляющие, и для этого она тоже включает в себя всю необходимую информацию.

Здесь префиксное дерево даёт сбой...

Читать далее

Внутри диаграммы Ганта: холст 480 на 360, палитра на 30 цветов и число без последнего бита

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

Я собираю файл конфигурации из XML так, чтобы он совпал с платформенным с точностью до бита. Диаграммы Ганта в типовых конфигурациях пустые, и на них ушло шесть дней. Внутри нашлись обычная диаграмма, воображаемый холст 480 на 360, число, у которого платформа теряет последний бит, и палитра, где серия номер -1 получает 15-й цвет. Рассказываю, как это устроено и как добывалось: дизассемблер, Frida и серия загрузок платформой.

Читать далее

Надоело платить за VPS — превратил старый смартфон в Linux‑сервер

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

Однажды мне надоело платить за VPS, ресурсов которого едва хватало для запуска Chrome. В поисках альтернативы я вспомнил про без дела лежащий CMF Phone 1 и решил превратить его в полноценный сервер для личных сервисов. Рассказываю, как удалось запустить Linux-приложения на Android, автоматизировать развёртывание и обеспечить доступ из любой сети — и с какими неожиданными проблемами столкнулся в процессе.

Читать историю

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

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

Допустим, ваш продукт продаётся в России и за рубежом, и по-русски нейросети уже ссылаются на ваш сайт и статьи. Я проверил, переносится ли это на английский: сравнил, из каких сайтов Google AI Overviews, Perplexity и Алиса AI собирают ответы на русские и на английские вопросы. В Google и Perplexity русских сайтов на английском почти не осталось, хотя регион в настройках Google стоял российский. Видимость по-русски сама в английскую не превратится, её придётся строить отдельно.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Ученый по данным, Промпт-инженер
Старший
От 300 000 ₽
Управление проектами
Оптимизация бизнес-процессов
Проектное планирование
Стратегическое планирование
Информационные технологии
Поддержка клиентов
Построение команды
Управление разработкой
Автоматизация процессов
Развитие бизнеса