Как стать автором
Обновить
8
0.3
Дмитрий @khajiit

Программист, железячник.

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

Как работает MAMR в HDD

Время на прочтение3 мин
Количество просмотров12K
Уже в 2019-м году должны выйти новые жесткие диски с технологией MAMR. Эта технология позволит увеличить плотность записи до 4Тбит на квадратный дюйм, что в теории позволит создавать HDD объемом 40ТБ.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии25

Используем Secure Boot в Linux на всю катушку

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


Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы, то есть защиту от буткитов и атак типа Evil Maid. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются.


Более подробно о Secure Boot можно узнать из цикла статей от CodeRush.



Чтобы Secure Boot обеспечивал безопасность, подписываемые приложения должны соблюдать некоторый «кодекс чести»: не иметь в себе лазеек для неограниченного доступа к системе и параметрам Secure Boot, а также требовать того же от загружаемых ими приложений. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению. Такую угрозу представляют загрузчик shim, подписываемый Microsoft, и загружаемый им GRUB.


Чтобы от этого защититься, мы установим Ubuntu с шифрованием всего диска на базе LUKS и LVM, защитим initramfs от изменений, объединив его с ядром в одно UEFI-приложение, и подпишем его собственными ключами.

Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии28

SMR (черепичные) жесткие диски без указания наличия SMR пошли в каналы продаж

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

Все три производителя начали продажи относительно небольших, от 2ТБ HDD SMR дисков (черепичных), не указывая это в спеках: WD, Seagate, Toshiba

Читать дальше →
Всего голосов 90: ↑82 и ↓8+74
Комментарии270

Про фразовые глаголы-3 (on/off)

Время на прочтение4 мин
Количество просмотров24K
Перед этой статьёй рекомендуется прочитать две предыдущие части:
1. habr.com/ru/post/495794
2. habr.com/ru/post/496190
On и Off обычно имеют противоположный смысл, поэтому мне показалось хорошей идеей совместить обзоры этих частиц.

И предлог, и частица on соответствуют русскому «на». Тут логика вполне очевидная: «на» – это и предлог (говорим о поверхностях: «на стене/столе»), и приставка – НА-сыпать (сыпать на поверхность).

Put – класть, put on – «на-кладывать». Например, put on makeup – «на-кладывать» грим. Любой предмет одежды, обуви, головной убор носители английского языка тоже накладывают, а не надевают, как у нас: put on a hat – надеть шляпу. У них даже вес тела накладывают: put on weight по-английски «набрать вес».

Часто ON соответствует русской приставке «про-». «Про-» обычно означает «двигаться вперёд»: про-двигаться, про-лезать, про-двигать. Возьмём фразовый глагол (ФГ) get on. Get означает «двигаться, перемещаться», get on буквально «про-двигаться». Или в пространстве, или, метафорически, в жизни или карьере: Young people try to get on in life – Молодые люди стараются продвигаться в жизни.
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии23

Настройка UEFI-загрузчика. Самое краткое руководство в мире

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

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?


Я обещал "самое краткое руководство". Вот оно:


  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

Читать дальше →
Всего голосов 52: ↑46 и ↓6+40
Комментарии99

Как мы проводим собеседования в Барселоне

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

Я все-таки решил поделиться нашим опытом приема людей на работу, и решил я это сделать по двум причинам: нам удалось собрать всех самых сильных разработчиков нашего стека в городе, и люди, которые приходят — уходят от нас крайне редко (точнее, был лишь один случай ухода в собственный бизнес).


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


Мы — продуктовая компания, нам не нужны вахтовые работники на три месяца. Это тоже накладывает отпечаток на процесс отбора. Мы не в состоянии конкурировать по зарплатам с молодыми заинвестированными стартапами (это не значит, что мы работаем за копейки, просто перекупить талантливый мозг не получится). Зарплата выше средней по рынку, но можно найти галеры сразу тысяч на десять годовых щедрее. Нам приходится искать свой путь завлечения специалистов, и я о нем расскажу.

Поехали.
Всего голосов 18: ↑12 и ↓6+6
Комментарии33

WireGuard — быстрый и безопасный VPN в ядре Linux

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

Рис. 1. OpenVPN vs WireGuard, тест Ars Technica

WireGuard — свободный и открытый протокол виртуальных частных сетей, призванный заменить IPsec и OpenVPN. В январе 2020 года после полутора лет доработки кода всё-таки состоялось долгожданное событие — Линус Торвальдс принял VPN WireGuard в основную ветку Linux 5.6.

Очень скоро этот VPN станет частью ядра Linux — сердца операционной системы с открытым исходным кодом, на которой работает весь мир, от веб-серверов до телефонов Android и автомобилей. Это действительно важное событие, потому что WireGuard устроен на порядок проще и логичнее предыдущих VPN. В июне 2019 года получено автоматизированное криптографическое доказательство математики протокола.
Читать дальше →
Всего голосов 20: ↑14 и ↓6+8
Комментарии50

Полное руководство по HTML-атрибутам data-*

Время на прочтение8 мин
Количество просмотров93K
Представляем вашему вниманию перевод статьи, посвящённой использованию атрибутов data-*. Это — атрибуты, которые можно применять для удобного хранения в стандартных HTML-элементах различной полезной информации. Эта информация, в частности, может применяться в JavaScript и CSS.


Читать дальше →
Всего голосов 46: ↑45 и ↓1+44
Комментарии18

WebAuthn в реальной жизни

Время на прочтение19 мин
Количество просмотров33K
В сентябре 2019 года команда Почты Mail.ru поддержала технологию WebAuthn. Мы стали первым в мире сервисом электронной почты, который реализовал возможность входа в аккаунт с использованием электронных ключей вместо паролей. Сейчас эта возможность доступна всем нашим пользователям, вы можете привязать электронный ключ к своему аккаунту в настройках и после этого свободно использовать его для входа.



Мы уже писали новость об этом событии здесь, на Хабре. В этой статье я хочу рассказать подробнее о причинах внедрения WebAuthn в наши сервисы и о технических аспектах работы с этой технологией.
Читать дальше →
Всего голосов 63: ↑59 и ↓4+55
Комментарии49

RabbitMQ. Часть 2. Разбираемся с Exchanges

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

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


Exchange не является Erlang-процессом. Из соображений масштабируемости exchange — это строка (ссылка на модуль с кодом, где лежит логика маршрутизации) во встроенной базе данных mnesia. 1 тысяч обменников будут потреблять всего 1МБ памяти.

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии10

Попытка решить проблему выбора авиабилетов перед отпуском

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

Привет всем! Хочу немного рассказать про то, как я делал, сделал и буду делать (наверное) в свободное время очередной travel-сервис для поиска авиабилетов.


Скриншот одной из страниц:


image

Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии22

XKB: перенастроим клавиши под себя любимого

Время на прочтение8 мин
Количество просмотров96K
В один прекрасный день надоедает нажимать Shift, чтобы вывелся символ ~ вместо `.
Надоедает тянуться до Esc, при этом клавишей CapsLock пользуетесь РЕДКО.
Надоедает смещать кисть вниз и нажимать Ctrl/Cmd/Win слабым мизинчиком, либо, не дай бог, тянуться до них большим пальцем.
Надоедает лезть за PgUp, PgDn, Home и End, двигая руку каждый раз, чтобы всего лишь промотать страницу вниз.
Надоедает каждый раз, когда вы делаете опечатку, со злобой смотреть на клавиатуру в поисках кнопки Backspace.



Сегодня мы узнаем, как навсегда избавиться от этих мучений.

Зачем это всё?


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

Многие раскладки для печати (Dvorak, Colemak и т.п.) сильно улучшают расположение клавиш, ставя их ближе к тем местам, куда нужно меньше тянуться. Но при этом совершенно забывают о модификаторах, спец. символах и командных клавишах (Enter, Backspace, Tab, Esc, Delete). А мы подумаем о том, как улучшить существующее положение вещей.

В статье пойдём от простейших изменений, до более интересной и глубокой настройки. И, как в конце хороших фильмов, я оставлю читателя подумать, что делать дальше, и не дам готового рецепта на всё. В конце концов, идеальных и универсальных решений нет, и на раскладку клавиатур товарищей нет.
Читать дальше →
Всего голосов 64: ↑53 и ↓11+42
Комментарии97

Linux. Настройка клавиатуры

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

Для чего вообще специально настраивать клавиатуру?


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


Почему я захотел изменить свою клавиатуру?


Во-первых, когда я начал использовать vim как основной редактор, я понял, что не хочу каждый раз тянуться к ESC. Кроме того, я писал в основном на питоне, поэтому ; нажимал сильно реже, чем :, а в vim разница стала более явной.


Во-вторых, через некоторое время я стал пользоваться вимовскими комбинациями для навигации в браузере, дальше — тайловый оконный менеджер i3, где они тоже использовались, и хотелось перейти на них везде (вместо обычных стрелок, например, в файловом менеджере).

Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии63

Обмен сообщениями → PubSub внутри OTP

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

OTP расшифровывается как Open Telecom Platform; так исторически сложилось, потому что платформа создавалась для нужд и на деньги Ericsson. Но, в принципе, это название имеет примерно столько же коннотаций с ее функциональностью, сколько и яблоки со среднего качества телефонами.


Основной отличительной характеристикой OTP по замыслу авторов является отказоустойчивость. Не многопоточность, не модель акторов, не богатые возможности pattern matching’а, даже не прозрачная кластеризация и не hot code upgrades. Отказоустойчивость.


Виртуальная машина эрланга на поверхностный взгляд устроена очень просто: есть куча «процессов» (не системных процессов, эрланг-процессов) с изолированной памятью, которые могут обмениваться сообщениями. Все. Вот, что говорил Джо Армстронг по этому поводу:


In my blog I argued that processes should behave pretty much like people. People have private memories and exchange data by message passing.
Why I don't like shared memory

Обмен сообщениями внутри OTP очень прост: один процесс посылает сообщение другому (или группе других процессов), синхронно, или асинхронно. Но для этого необходимо знать, кому эти сообщения посылать. То есть менеджером обмена выступает отправитель. Но что если мы хотим просто слать broadcast и дать возможность всем заинтересованным процессам подписаться на это сообщение?

Да это же PubSub!
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Использование GitHub CI для Elixir проектов

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

В октябре Github запустил actions, которые позволяют выполнять CI, не отходя от кассы, в которой этот самый код хранится. Это действительно очень удобно. Как только кто-то отправляет pull request, или просто загружает новые изменения на сервер, или что-то еще специальное (список событий, к которым можно прикрутить actions может быть найден в официальной документации), сборка запускается. Также поддерживаются запланированные повторяющиеся задачи (по принципу cron).


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

Готовый рецепт для действий со сторонними сервисами
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

Хуки времени компиляции в Elixir

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

Elixir снабжен сложной, очень хорошо продуманной, инфраструктурой макросов. С легкой руки Криса Маккорда, в сообществе существует негласный закон, который неизбежно озвучивается сразу, как только речь заходит о макросах: «Первое правило использования макросов — вы не должны их использовать». Иногда с малозаметной ремаркой, набранной бледно-серым шрифтом четвертого кегля: «только если вам этого не избежать, и вы очень хорошо понимаете, на что идете, и чем рискуете». Это связано с тем, что макросы имеют доступ ко всему AST модуля, в котором они используются, и, вообще говоря, могут до неузнаваемости изменить получившийся код.


Я в принципе согласен, что не следует использовать макросы в процессе ознакомления с языком. Пока вы не можете, будучи разбуженным в три часа ночи с похмелья, ответить на вопрос, выполняется ли этот код на стадии компиляции, или же в рантайме. Elixir — компилируемый язык, и в процессе компиляции происходит выполнение кода «верхнего уровня», полное раскрытие синтаксического дерева до тех пор, пока мы не окажемся в ситуации, когда дальше раскрывать уже нечего, и вот этот результат в конечном итоге и компилируется в BEAM. Когда компилятор встречает вызов макроса в исходном коде, он полностью раскрывает AST для него и впихивает вместо собственно вызова. Понять это невозможно, это можно только запомнить.

Не, попробуем разобраться и понять...
Всего голосов 13: ↑12 и ↓1+11
Комментарии2

Мониторинг приложений при помощи Logger.Backends

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

Elixir в полной мере использует инфраструктуру ведения журнала Erlang для создания логов. Начиная с версии 1.10, которая должна быть выпущена в ближайшее время, нам становятся доступны новые пользовательские функции ведения журнала, которые появились в Erlang/OTP 21+.


В то время как OTP предоставляет всю инфраструктуру для доставки журнальных событий (ивентов) абонентам, само протоколирование, если понимать его как хранение и/или отображение событий журнала, должно быть реализовано приложением. С этой целью вводится соответствующая абстракция Logger.Backend.

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Чешские программисты бесплатно написали сайт стоимостью 16 миллионов евро? Правда?

Время на прочтение11 мин
Количество просмотров132K
В конце января 2020 г. чешские программисты на безвозмездной основе за два дня разработали портал продажи билетов на право пользования скоростными дорожными магистралями Чехии. На разработку этого портала изначально был выделен 401 миллион чешских крон (около 16 миллионов евро) министерством транспорта Чехии, но энтузиазм сообщества позволил сохранить колоссальные бюджетные средства.

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

Такое изложение событий было приведено в пересказе издания CNews или, по крайней мере, таким образом было интерпретировано читателями.

Эта потрясающая история захватила умы всего бывшего СССР, многократно разойдясь по соцсетям. Однако, к сожалению, в оригинальной подаче CNews — вероятно, неумышленно — был опущен и искажён ряд ключевых деталей, вследствие чего исходная ситуация была весьма своеобразно искажена.

Целью данного поста является устранение этого пробела.
Читать дальше →
Всего голосов 348: ↑342 и ↓6+336
Комментарии266

Памятка пользователям ssh

Время на прочтение13 мин
Количество просмотров1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Всего голосов 360: ↑352 и ↓8+344
Комментарии148

Разработка мобильных приложений на Python. Библиотека KivyMD

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

Приветствую! Сегодня речь снова пойдет о библиотеке KivyMD — наборе виджетов для кроссплатформенной разработки на Python в стиле Material Design. В этой статье я сделаю не обзор виджетов KivyMD, как в недавней статье, а, скорее, это будет материал больше о позиционировании виджетов. Что-то похожего на туториал по разработке мобильных приложений на Python для новичков здесь не будет, так что если впервые слышите о фреймворке Kivy, вряд ли вам будет все это интересно. Ну, а мы погнали под кат!
Всего голосов 19: ↑18 и ↓1+17
Комментарии30

Информация

В рейтинге
1 742-й
Откуда
Россия
Зарегистрирован
Активность