You've successfully subscribed to Заметки Разработчиков
Great! Next, complete checkout for full access to Заметки Разработчиков
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Billing info update failed.

Заметки Разработчиков

Ух, что-то мне тяжело дались январские праздники, до сих пор не могу заставить себя войти в продуктивное русло: написание статей, изучение английского, спрот и прочее.

В прошлом году было как-то проще. Я прямо 3 января уже пошел на первое занятие англом. А сейчас хватает сил только на работу, но пора собраться и начать продуктивить 😄

Пишу я этот пост в 3:33 утра. Да епт...

Как откатить git reset hard

Сделал "Reset current branch to here" в режиме "Hard", но забыл сделать "Shelf" для не зафиксированных изменений, над которыми работал весь день. В итоге проделанная работа за день была успешно стерта.

В такие моменты  главное не поддаваться панике 😅

В Idea есть замечательная функция LocalHisotry, которая автоматически сохраняет все изменения над файлами. Если затертых файлов было не много, то нажмите ПКМ и в меню выберете Local History —> Show History

Скорее всего вы увидите состояние файла до выполнения git reset.

Если же измененных файлов было много, то восстанавливать их по одному довольно муторно. Поэтому нажмите ПКМ по корневой папке проекта и также выберете Local History —> Show History.

Вот и все, впредь будьте внимательнее 😊

SSH и YubiKey

Уже наверное полгода у меня есть YubiKey 5C NFC. Пользуюсь им как аппаратным ключом и для получения OTP паролей, и только сейчас дошли руки разобраться что там по работе с SSH.

А все оказалось достаточно просто. Вот эта команда позволяет сгенерировать SSH ключ, который будет связан с ключом, который существует внутри YubiKey:

⚠️
Для работы такого ключа нужен OpenSSH версии 8.2 и выше как на сервере, так и на вашем ПК
Из-за этого ограничения пришлось обновить сервера с RHEL 8 на RHEL 9
ssh-keygen -t ed25519-sk -O resident -f ~/.ssh/key_name -O verify-required

Все как с обычными ключами, у вас появится 2 файла в папке ssh key_name и key_name.pub. Только вот, воспользоваться секретным ключем без подключения YubiKey не выйдет, также нужно будет ввести пароль от YubiKey и коснуться его.

Если каждый раз вводить пароль от YubiKey не хочется, то удалите параметр -O verify-required. Тогда нужно будет только касаться ключа.

В интернете полно гайдов, как использовать GPG агент вместо SSH, когда у вас вместо ssh ключа будут ключи gpg. Но эти настройки выглядит как костыли.

GitHub и GitLab

Такой ключ подойдет и для доступа к репозиториям. Но необходимо будет прописать в ~/.ssh/config информацию о том, какой ключ использовать:

Host github.com
    Hostname github.com
    IdentityFile ~/.ssh/github
    IdentitiesOnly yes

Дополнительный материал

Оставлю тут доклад, который описывает все возможности YubiKey

Хороший доклад про типы UUID и оценку их производительности вставки/чтения в БД.

Community day Joker 2022

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

Из интересных докладов, которые хочу посмотреть:

  • Поваренная книга программиста: Vert.x
  • Клуб (не)анонимных монолитиков
  • Как сделать деплой незаметным для пользователя
  • Разработка распределенной очереди с отложенными задачами на основе PostgreSQL
  • Platform V User Sessions — распределенное хранилище сессионных данных

Пока Joker 2022 радует докладами, лучше чем мой опыт с Jpoint 2022.

Персональный билет — Joker 2022. Конференция для опытных Java-разработчиков
Купить персональный билет на конференцию Joker 2022.