Как стать автором
Обновить
5
0
Максим @maxzhurkin

Энтузиаст

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

Развлечения с хеш-коллизиями

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

Мой друг и коллега по цеху, блоггер Сэм, недавно опубликовал своё третье иллюстрированное руководство, темой которого стало хеширование. Нет острой необходимости читать его руководство перед прочтением моей статьи, но я очень рекомендую вам это сделать. Хотя бы ради того, чтобы посмотреть на восхитительные анимации, от которых невозможно оторваться. Честно — они просто потрясающие. Тут, к сожалению, анимаций вы не найдёте, поэтому насмотритесь на них в той статье, а потом возвращайтесь сюда. Здесь вы сможете немного позабавиться поиском коллизий алгоритма хеширования MurmurHash3.

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

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

Читать далее

Установка кастомных прошивок. Root-права и Magisk

Время на прочтение7 мин
Количество просмотров76K

Доброго времени суток всем моим читателям! Сегодня, продолжая цикл статей о кастомизации своего устройства, расскажу о том что такое права "root", зачем они нужны, кому они абсолютно точно не нужны и, если вы все-таки решили, как их получить.

Читать далее

Голос атомных ядер: собираем магнитно-резонансный магнитометр

Время на прочтение18 мин
Количество просмотров20K
image

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

Босяцкий кластер высокой доступности

Время на прочтение8 мин
Количество просмотров18K

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

Читать далее

Как организовать код в Python-проекте, чтобы потом не пожалеть

Время на прочтение10 мин
Количество просмотров87K

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

Бенджамин Франклин

Python отличается от таких языков программирования, как C# или Java, заставляющих программиста давать классам имена, соответствующие именам файлов, в которых находится код этих классов.

Python — это самый гибкий язык программирования из тех, с которыми мне приходилось сталкиваться. А когда имеешь дело с чем-то «слишком гибким» — возрастает вероятность принятия неправильных решений.

Читать далее

iPXE — заливка linux, windows, утилит по сети

Время на прочтение12 мин
Количество просмотров63K

Раньше у нас использовалась заливка ОС по PXE с использованием syslinux, но как бывает с самодостаточными системами и без достаточного контроля и внимания - быстро превратилась в кашу из конфигураций, библиотек, загрузчиков.

Так же была необходимость в поддержке заливки разных ОС в режиме EFI - на тот момент заливка была только в Legacy.

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

Читать далее

Борьба с фрагментацией памяти в ядре Linux

Время на прочтение12 мин
Количество просмотров13K

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

Как Unix-way убивает десктопный Linux

Время на прочтение28 мин
Количество просмотров94K

Нет, конечно же, не убивает.
То, что мертво, умереть не может: доля линукса на десктопах колеблется около 2% уже много лет, и не имеет тенденций ни к росту, ни к падению, изменяясь на уровне статистической погрешности.

Как выглядит захват рынка конкурентоспособным продуктом, можно видеть на примере, например, Chrome: за 10 лет рост на 70%. Или Android: за 5 лет рост на 75%. А вот у Linux рост пол-процента в год, несмотря на то, что он, например, лучший из существующих вариантов для использования в качестве национальных/государственных ОС.

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

Причины этой ситуации, как ни странно, те же, что сыграли роль в популярности Linux на серверах: unix-way, "Философия Unix": "Пишите программы, которые делают что-то одно, и делают это хорошо, и имеют возможность получать и принимать данные через текстовый интерфейс (потому что он универсален)".

Там огромный лонгрид, я предупредил

Лучшие книги по Python 2021-2022 года: для новичков и профи

Время на прочтение6 мин
Количество просмотров230K

Привет, Хабр! Поговорим о книгах?

Есть мнение, что люди начали читать меньше и всё чаще многие потребляют уже готовый контент в виде роликов на YouTube или сокращённых вариантов различных произведений. Но это вряд ли, ведь если бы люди не читали книги, могли бы тогда развиваться отечественные и зарубежные сервисы для любителей чтения? К примеру, LitRes, Bookmate и другие. 

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

Читать далее

Считаем уникальные IPv4 адреса

Время на прочтение9 мин
Количество просмотров10K

Как создавать быстрые и эффективные алгоритмы? В статье, на примере задачи по подсчёту уникальных IPv4 адресов, рассматриваются приёмы и методы обработки больших объёмов данных. Вы узнаете, как написать код, работающий в десятки раз быстрее и использующий в несколько десятков раз меньше памяти, чем "наивные" алгоритмы.

Читать далее

Хочу перемен: почему пора переходить на Vue 3

Время на прочтение10 мин
Количество просмотров31K

Привет! Меня зовут Влад, я frontend-разработчик в компании SimbirSoft. Мне приходилось создавать приложения как на старых версиях Vue, так и на новых. Причем многие из моих коллег вполне успешно разрабатывают на Vue 2 и не спешат переходить на Vue3, даже спустя два года после релиза.

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

В этой статье попытался раскрыть новшества, которые могут стать «триггером» для миграции на новую технологию для обеих заинтересованных групп. Поговорим об экосистеме Vue 3, о новинках и пользе для разработчиков и бизнеса. И, разумеется, сравним Vue 2 и Vue 3 с технической точки зрения. Также рассмотрим одно из главных нововведений фреймворка – Composition API, раскроем технические нюансы и определим лучшие кейсы использования нового API.

Читать далее

О том, как в питоне без протокола и задеплоить приложение не могут. Смешиваем ASGI с WSGI — вредные советы

Время на прочтение5 мин
Количество просмотров7.9K

Как должны выглядеть современные сервисы на питоне, многие имеют представление. Все они, так или иначе, имеют поддержку асинхронных операций. А вот, как их лучше деплоить? Здесь некоторые руководства (как FastAPI) отвели целый раздел для рекомендаций, а некоторые (как Django) ограничились несколькими абзацами с крайне размытыми формулировками. Мне не посчастливилось следовать именно последнему.

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

Читать далее

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

Время на прочтение4 мин
Количество просмотров35K

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

В новой подборке — несколько новых и не очень одноплатных компьютеров, на которые стоит обратить внимание.
Читать дальше →

5 советов по использованию декораторов в Python

Время на прочтение5 мин
Количество просмотров13K

Advanced советы по использованию декораторов в python. Будет полезно, как для новчиков, так и для самых продвинутых пользователей.

Читать далее

Миграция Windows между BIOS <-> UEFI

Время на прочтение2 мин
Количество просмотров85K
Появляется такая задача не часто, но все-же, нужно преобразовать уже установленную систему, загружаемую в BIOS (или UEFI режиме) в UEFI режим (в BIOS соответственно).
Кому интересно, читаем далее:
Читать дальше →

Волны, которые появляются из ниоткуда и исчезают бесследно

Время на прочтение22 мин
Количество просмотров57K

Это было утро 12 апреля 1966 года. Элегантный лайнер «Микеланджело» направлялся через Атлантику в Нью-Йорк. 275-метровый красавец водоизмещением 46 тысяч тонн некоторое время был флагманом флота Италии и являлся одним из крупнейших суден в стране. Он принадлежал семейству суперлайнеров, воплощавших в себе как отработанные технологии, так и прогрессивные решения: для безопасности пассажиров часть палуб и кают лишена иллюминаторов, дизайн и устройство дымовых труб не позволяли окуривать верхние прогулочные палубы, а также судно было оборудовано стабилизаторами качки, чтобы богатые пассажиры не пролили ни капли мартини.

В это апрельское утро «Микеланджело» с 745 пассажирами на борту столкнулся с очень плохой погодой. Капитан Джузеппе Солетти дал указания всем пассажирам оставаться в своих каютах и приказал судну следовать более южным маршрутом, чем обычно, чтобы избежать центра шторма. Обычное дело при путешествии через океан. Но внезапно перед судном возникла экстремально высокая волна. Все люди на судне ощутили мощный удар как после выстрела 305-мм пушки. Волна поднялась над носом на высоту около 18 метров и прошла вдоль палубы, оставляя за собой лишь покорёженный металл. Даже окна двухсантиметровой толщины находящиеся на 25 метров над ватерлинией были выбиты ударом воды. Всё произошло в считанные секунды. Два пассажира погибли сразу, один член экипажа погиб через несколько часов, более пятидесяти человек получили ранения. И ещё четверть века существование таких волн будет подвергаться сомнениям.
Читать дальше →

Пожалуйста, начните использовать pnpm

Время на прочтение1 мин
Количество просмотров54K

Я думаю, все, кто использует node.js, понимает про что эта картинка.

npm - это ужасный менеджер пакетов. В этом признавался даже сам создатель node.js. Npm для каждого вашего проекта создает папку node_modules, в которую он качает из интернета и сохраняет на диске каждый пакет из всей иерархии зависимостей.

Если у вас 100 проектов с одними и теми же зависимостями, то npm 100 раз скачает из интернета и сохранит на диске 100 копий одних и тех же пакетов. Ему плевать. Популярный yarn, к сожалению, делает то же самое.

Читать далее

Какими бывают дисплеи в ноутбуках? Разбор

Время на прочтение7 мин
Количество просмотров50K
У нас уже было много роликов про дисплеи: мы разбирали все типы LCD-матриц в телевизорах. Сделали один из самых подробных материалов про все виды OLED в смартфонах и ТВ. Также мы рассказывали вам про mini-LED и microLED-дисплеи будущего. Но мы еще ни разу не рассказывали про дисплеи в ноутбуках. А ведь в дисплеях для ноутбуков есть своя особая специфика. Поэтому сегодня мы глубоко нырнём в разновидности дисплеев для ноутбуков. Разберём всё страшные аббревиатуры и узнаем как маркетологи вводят нас в заблуждение?


Разберемся как узнать модель и тип дисплея в вашем ноутбуке? И посмотрим на конкретные примеры ноутов и дисплеев.
Читать дальше →

Динамическое программирование. Классические задачи

Время на прочтение8 мин
Количество просмотров330K
Здравствуй, Хабрахабр. В настоящий момент я работаю над учебным пособием по олимпиадному программированию, один из параграфов которого посвящен динамическому программированию. Ниже приведена выдержка из данного параграфа. Пытаясь объяснить данную тему как можно проще, я постарался сложные моменты сопроводить иллюстрациями. Мне интересно ваше мнение о том, насколько понятным получился данный материал. Также буду рад советам, какие еще задачи стоит включить в данный раздел.

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

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

Такие задачи решают методом динамического программирования, а под самим динамическим программированием понимают сведение задачи к подзадачам.
Читать дальше →

Как определить C и C++-программистов по коду, который они пишут

Время на прочтение4 мин
Количество просмотров40K

Так уж случилось, что я пишу код для разных IoT-железок, связанных с электричеством, типа зарядных станций автомобилей. Поскольку аппаратных ресурсов, как правило, вполне достаточно, то основным фокусом является не экономия каждого байта и такта процессора, а понятный и надежный код. Поэтому в проекте разрабатывают под Embedded Linux и в качестве основного языка используют C++ в его современном варианте - C++17, активно поглядывая на фичи из стандарта 20-го года и новее.

Иногда запускаются новые проекты на той же платформе, с теми же процессами и с переиспользованием многих уже существующих компонентов, и тогда в эти проекты мы ищем программистов, с учетом вышесказанного - программистов на C++. В embedded, тем не менее, чистый C все еще очень популярен, и нередко собеседоваться на вакансию C++ Developer'а приходят именно сишники. Логика у человека простая: языки, на первый взгляд, довольно близкие, базовый синтаксис одинаков, про ООП кандидат что-то слышал, и значит, основная база уже есть и он сможет легко освоить C++ за 21 день в процессе работы, поэтому можно наплести про "с C++ тоже работал", начать писать на "Си с классами" и все получится.

Но нет, не получится.
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность