Сообщество - Web-технологии

Web-технологии

534 поста 5 786 подписчиков

Популярные теги в сообществе:

0

Ответ на пост «Вопрос»1

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

Вопрос1

А сейчас уже все телефоны перешли на кабель зарядки Type-C или есть еще отщепенцы? И почему не делают в современных телефонах сменный аккумулятор как раньше это было во многих моделях?

6

Переезд с tailwind 3 на tailwind 4

Недавно обновляли корпоративную дизайн систему. Кроме чистки компонентов и их упрощения решили переехать с tailwind 3 на tailwind 4. В качестве сборщика у нас Vite, фреймворк Svelte.

В предыдущей версии компонентов мы не скупясь писали блоки стилей прямо в компонентах, применяя функцию tailwind @apply - это сильно причёсывает код в плане чистоты, как шаблона, так и чистоты стилей.

Стартанули мигрирование, прогнали миграционную утилиту от tailwind, все по православному, но - при запуске apply не работал и tw классы не резолвились. Пошли читать доку, вычислили новые правила про вызов функции @reference в каждом блоке стилей в компоненте. НО блэ, в доке приводят примеры:

  • либо ссылаемся относительным путём к своему конфигу tailwind @reference "../../app.css"

  • либо красиво и лаконично @reference "tailwindcss" - но тогда твой конфиг отваливается, корпоративные токены и вся прочая мишура остаётся за бортом.

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

Добавляем в конфиг фреймворка алиас:


alias: {

'corp-tailwind': './src/corp-tailwind.css'

},

В компонентах в блоке стилей пишем (у нас scss):

<style scoped lang="scss">

@ import "corp-tailwind" reference;

...

</style>

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

Показать полностью
164

По моему он гений маркетинга

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

133

Как я ускорил SSH-аутентификацию в 178 раз

Если каждое SSH-подключение тормозит на несколько секунд, со временем это выливается в часы потерянного времени. Особенно, если ты постоянно работаешь с серверами для автоматизации действий. В моём случае расшифровка SSH-ключа при коннекте занимала 4.6508 секунды – пока я не оптимизировал процесс, сократив его до 0.0261 секунды. Рассказываю, как именно.

Бенчмарк

Бенчмарк

Почему всё было так медленно

🔹 OpenSSH + пароль  

Я использовал SSH-ключи в OpenSSH-формате с паролем (passphrase). OpenSSH шифрует их с помощью bcrypt (или аналога KDF) с огромным числом итераций – это круто для безопасности (хотя и другие методы не менее безопасные), но ОЧЕНЬ медленно.  

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

🔹 Ключ загружался постоянно  

Деплой, выполнение задач, тестирование – при каждом подключении ключ снова и снова расшифровывался. Все это дико бесило и замедляло работу.

---

Как ускорить SSH-авторизацию?

1️⃣ Перешёл с OpenSSH на PKCS8  

Главный трюк – отказаться от шифрования bcrypt внутри OpenSSH и использовать PKCS8 с PBKDF2, где можно настроить разумное количество итераций или использовать дефолтные настройки

📌 Разница:  

OpenSSH (bcrypt, cost=16–18)секунды расшифровки  

PKCS8 (PBKDF2, 10k–20k итераций | дефолт)миллисекунды  

Публичная часть ключа всё ещё в OpenSSH-формате (для `authorized_keys`), но приватная теперь PKCS8.

2️⃣ Дополнительное шифрование AES-256  

Чтобы ключ не лежал в открытом виде, сверху добавил AES-256.  

Это дешёвая по вычислениям операция, но она не даёт ключу валяться в чистом виде на диске (даже если это S3).

Теперь процесс:

🔸 AES-256≈0.001s  

🔸 PKCS8 (PBKDF2)<0.02s  

Общее время расшифровки < 0.03 секунды вместо 4.6508 секунд.

Итог: ускорение в 178 раз 🚀  

Бенчмарк показал разницу в 17 739%. Теперь SSH-аутентификация работает в сотни раз быстрее, что значительно ускоряет деплой и управление серверами.

---

Дополнительные советы:

Отключить UseDNS и GSSAPIAuthentication в sshd_config, если задержка handshake.  

Убедись, что используешь gmp/openssl/sodium, а не чистый ЯП (иначе будут тормоза)  

Такая небольшая оптимизация дала огромный прирост скорости. Если у вас долго проходит авторизация – попробуйте такой подход 🥸

Показать полностью 1
Отличная работа, все прочитано!