В данной статье описывается процесс возникновения идеи и зарождения новых фич небольшого приложения на HTML/CSS/Vue, которое помогает мне не злоупотреблять соцсетями.
3 года я работал с React (react-native, material-ui), готовыми библиотеками компонентов и почти не соприкасался с HTML/CSS. Периодически встречал похвалу в адрес Vue, что он: "самый простой и по сути является упорядочиванием ванильного js". Мне было интересно и "вернуться к истокам" HTML/CSS и опробовать Vue - причём я это сделал самым простым образом, без компиляторов и сборки.
Здесь нет пошагового описания создания кода (я планирую записать скринкаст), но зато есть сам код:
Читайте с улыбкой на лице и долей юмора.
Если у меня есть аккаунты в социальных сетях, я постоянно туда захожу и залипаю. В редкие дни получается гармонично совместить их с работой. Но часто это как провалы в памяти:
У меня 13 лет опыта активного использования соцсетей. Были периоды когда я 1.5-2 года не использовал их. Были взлеты и падения зависимости, но гарантированно меня спасала от них только деактивация аккаунта.
В декабре 2020 я снова отключил все обжитые площадки: Фейсбук, Инстаграм, ВКонтакте. Нормально жил и трудился до октября 2021. И вдруг завел твиттер на английском: "чисто для работы". И вот у меня уже 185 друзей айтишников по всему миру и там веселей чем во всех прошлых соцсетях вместе взятых.
Удаляться и жалко – теряются полезные связи с людьми. И как-то стыдно. Когда я замечаю исчезновение человека, возникает беспокойство (вдруг с ним что-то случилось). А потом он появляется и говорит "да я просто отключал аккаунт". Это как-то не серьезно, бро. У нас тут связи социальные. Может мне нужен был какой-то твит с твоей страницы. Или спросить что-то у тебя – а ты удалился. Так некрасиво, несерьезно, безответственно, по-детски! Но а как ещё спастись от них?
И вот я придумал вместо деактивации – генерацию сложного пароля, который невозможно запомнить и к которому у меня не будет доступа на определенное время.
Первая мысль была такая: распечатать пароль на бумажке и разрезать пополам, одну половинку отдать супруге, а вторую оставить у себя. Через неделю она отдаст мне половинку и я смогу зайти… Но это лишние телодвижения: печать, бумажки, набор с бумажки. А вдруг она подшутит надо мной и не отдаст? А вдруг найдёт вторую половинку?
Надо доверить пароль нескольким людям. Но деление на части не гарантирует что я всем дам одинаковые половинки, тут легко ошибиться. И вот я придумал давать друзьям полный "сырой" пароль и видоизменять его известным мне образом. У них будет основа пароля, а у меня – ключ к нему. Примерно по такому принципу работает защищенный протокол HTTPS (certificate, public/private key).
И всё это совпало с моим увлечением HTML/CSS/Vue… Я подумал – а почему бы не сделать этот процесс наглядным?
Изначально я сгенерировал пароль на другом сайте и сделал 3 функции для его видоизменения:
Позже я нозову этот элемент постпроцессором - потому что он обрабатывает сырой пароль, доводя его до готовности по сохранённому рецепту.
Пока я искал генератор, где-то успел прочитать, что хороший пароль состоит из:
Конечно я и раньше об этом знал, но там были явно выписаны 4 ряда:
И в моей голове пошёл необратимый процесс создания своего генератора из этих символов. Вот она, ДНК всех паролей в моих руках 10+(26*2)+32 = 94 символа…
Я захотел микшер как в музыкальном редакторе, которым я буду регулировать соотношение разных типов символов в моём пароле. Может я захочу пароль только из значков и цифр? Или только из букв. А может всё вместе, но в заданных пропорциях? Щепотка цифр среди 100 больших букв, ммм…
Когда генератор был готов и я мог создавать пароли разной консистенции, мне захотелось визуально видеть: какие поля выпали на "рулетке". Изначально это была таблица с 4 рядами, где в углу подсвечивалось количество выпаданий. Я упорядочил ряды по возрастанию длины и получилось подобие ёлки. А так как в сети сейчас много разговоров и фотографий об этом, я подумал: почему бы не придать визуализации вид ёлки с гирляндами? После одной неудачной ёлки возник вариант, который вы видели. Позже можно сделать переключатель между разными видами.
Этот метод реально сработал. Возможно, первый раз в жизни я не заходил в соцсети больше недели, при этом не удаляя там аккаунтов.
Неделя уже прошла, но я так и не запросил пароль обратно. Когда я почувствую, что доделал все запланированные дела (в том числе подготовлю к публикации эту статью и ещё другую) – я попрошу пароль обратно.
Далее (как любой добропорядочный айтишник) я хочу исключить из процесса людей и заменить их, например, телеграм ботом.
Math.random
, который я использую в коде, говорят, плохой для "криптографических" целейПочему я взялся это писать? Устал от основной работы и оказался на грани выгорания, наверное поэтому много и зависал в соцсетях в последнее время, а они утомляют ещё больше.
Захотелось сделать что-то лёгкое и приятное, и поделиться с людьми, чтобы отвлечься от рутины на 100%. Кажется получилось. Пока я делал этот проектик, возникла мысль записать сринкаст. Я не эксперт по Vue, мне хотелось поупражняться в HTML/CSS и мне показалось что это самый оптимальный путь. Как думаете, стоит ли записать скринкаст c этой ёлкой?
У меня возникло видение идеального блога, где часть информации подаётся текстом для донесения замысла приложения, а техническая реализация делается скринкастом. У меня ещё есть "говорящая клавиатура для детей", тоже на Vue. Пока что там только английская раскладка. Я планирую добавить русскую и потом опубликовать.