Привет, Хабр!

Начну с того, что я начинающий python-разработчик, которому вполне не просто найти свой первый опыт коммерческой разработки. Где-то не хватает знаний, где-то вакансий, но речь не об этом, я здесь не жаловаться, а обсудить насущное :)

Давеча, на одном зарубежном ресурсе наткнулся на ветку форума, где идентичные мне по опыту разработчики рассуждали о полезности/целесообразности pet-projects, попутно делясь идеями самих проектов. Благо, мой intermediate позволяет мне вникать в суть без без переводчиков :)

Без сомнения, в сообществе Хабра ни раз слышали про pet-проекты, но для тех немногих, кто при виде этого слова в великих думах свел брови - в двух словах:

Pet-проект (так же side-проект) - проект, выполняющийся разработчиком в свободное от основной работы время. По тематике - от "антона до батона". Главное - нести пользу и удобство людям, его использующим.

Может исполняться как лично, так и в группе с другими специалистами.

Ближе к сути. Господа-джуны, наслушавшись более опытных товарищей, в серьез обсуждали проблему, которая близка и мне, а именно - проблему первого коммерческого опыта. В древе обсуждения у кого-то (назовем его господином N) всплыла идея создания pet-проекта, который может заменить собой тот самый вожделенный опыт.

Как вы поняли, я ждать не стал, реализовав одну из идей с ветки господина N. Хочу поделиться своим видением с вами, получив в замен уже ваше критическое мнение. Все-таки ресурс тот - иностранный, и возможно, ситуация в русскоговорящем сегменте далека от зарубежного рынка. В общем, вам решать.

Написал свой свой первый проект, который может, по моему мнению, дать серьезную пользу его юсерам. Это телеграм-бот, написанный на python - Шифр Цезаря 2.0 - @caesar_code_bot

Бот шифрует любое сообщение, выдает фразу и ключ для расшифровки. Расшифровывает свои сообщения по связке фраза-ключ. Принцип - как и в посланиях римского царя своим генералам - смещение алфавита. Алфавит в боте не раскрывается, что усложняет подбор (угадывание), но угадать, как вы понимаете, пока вполне реально. Понимает А-я, A-z, 0-9, знаки препинания и .!?

Репозиторий на GitHub

Хостится на pythonanywhere

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

Я, как разработчик, вижу лишь статистику в виде username, first и last name при каждом нажатии /start (считаю пользовательский ввод пересылать себе - не этично). С кодом можно подробно ознакомиться на GitHub.

 Ну и конечно же, весьма прикольная аватарка, а так же за первые 50 вызовов - ни одной ошибки :-)

Очень хочу получить ваше мнение, а именно - Может ли мое творение носить гордый статус pet-проект? Целесообразно ли в 2к22 писать новые пет-проекты и как сильно их наличие влияет на решение при принятии меня на первую работу в сфере IT?

Как обычно, вопросов больше, чем ответов. Но теперь есть Цезарь, который сможет все это зашифровать :)

Обнял за внимание.

Комментарии (21)


  1. GeMir
    06.03.2022 12:58
    +1

    угадать, как вы понимаете, пока вполне реально

    Может быть хотя бы Виженера для создания иллюзии безопасности?


  1. red-cat-fat
    06.03.2022 14:10
    +11

    Вообще статья "ниочём". Опубликовать ссылку на свой репозиторий - это в ВК можно. На хабре стоит публиковать статьи, из которых читатель может что-то принять для себя. В частности по поводу этой статьи - было бы здорово раскрыть какие-то технические особенности своей реализации, чем ваше решение лучше решения других и т.п. Даже простое описание того, как именно это делалось от А до Я принесло бы больше пользы сообществу, чем "Смотрите, я опубликовал свой петпроект, вот ссылка"


    1. Source
      07.03.2022 18:04

      Писать на Хабр статью о том, как реализовать шифр Цезаря было бы тоже странно.

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


  1. unsignedchar
    06.03.2022 14:15
    +3

    Ну, смогли вы закодировать на python шифратор Цезаря и прикрутить его к telegram боту. Программа состоит в основном из кода бота. Может, заголовок поправить? Телеграм-бот с возможностью шифрования, например? ;)


  1. teocode
    06.03.2022 20:58

    Класс! А интересно, есть какая-то книга по истории криптографии?


    1. GeMir
      06.03.2022 21:13

      «Взломщики кодов» подойдёт?


      1. teocode
        07.03.2022 16:52

        Конечно! Все подойдет. Просто хочу немного расширить кругозор на эту тему. Спасибо! Там ниже - "Криптономикон", я так понимаю художественная литература. Очень интересно будет углубиться.


    1. unsignedchar
      07.03.2022 09:12

      Пишут что рутрекер разблокирован.


    1. aszhitarev
      07.03.2022 09:20

      Криптономикон же от Нила Стивенсона.


    1. Dark_Furia
      08.03.2022 09:19

      Саймон Сингх "Книга шифров"


  1. Bu1
    06.03.2022 20:58
    +1

    я тоже junior python но это даже пет проектом не назвать так наброски на салфетке


  1. Mitch
    06.03.2022 21:37

    Зачем такой шифр, когда давно есть pgp ?


  1. ne555
    06.03.2022 22:00

    Очень хочу получить ваше мнение

    Вы из РФ? У вас есть лицензия для работы с шифрованием с длиной ключа выше "законного/56бит/типо des 1977г."?

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

    Здесь же история про барона к месту будет.


  1. bungu
    07.03.2022 00:31
    +7

    Я поставил минус и объясню почему

    • в репе нет информации о зависимостях

    • в репе нет информации о версии python, поддерживаемой скриптом

    • в репе нет описания функций

    • в репе нет тестов

    • код скрипта не отформатирован согласно стандарту PEP8

    • в репе не указано как конфигурировать скрипт под свой токен

    • переменные в коде имеет неиформативные имена - kb, c, dc и прочее

    • в коде по поводу и без стоят комменты (если требуется куча комментов то значит функция слишком сложна и ее стоит разделить на несколько)

    • в коде несколько раз подряд стоят send_message(), хотя можно отправить сообщение за один раз

    • в коде есть строка

      alphabet = ['a'# любой алфавит]

      и мне непонятно что это вообще такое и как может работать

    • отступы в коде не соответствуют 4 пробелам

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

    • try-блок судя по отлавливаемой ошибке должен быть в разы меньше

    • в функции f_code и ff_decode есть участок с повторением одного и того же кода

    • если скрипт упадет (например при проблеме с сетью) он сам не поднимется заново и будет лежать пока его не перезапустить

    И это я даже не пытался запустить

    Если бы вы на собеседование на должность джуна это мне принесли, то никаких шансов устроиться бы у вас не было


    1. reatfly
      07.03.2022 01:09
      +2

      About caesar => README.md
      Во-первых, это красиво.

      Во-вторых, будет отображаться сразу как описание проекта.


    1. unsignedchar
      07.03.2022 09:17
      +4

      В вашем review больше пользы чем в статье. Респект.

      И это я даже не пытался запустить

      :)


    1. alexyr
      08.03.2022 12:31

      Я бы ещё добавил:

      • комментарии на русском


      1. unsignedchar
        09.03.2022 09:09

        Как-то никто не обратил внимание, что там нет шифра Цезаря ;) А то что есть - алгоритмом шифрования не является. Это похоже на Вижинера, но зачем то с hardcoded ключом.


  1. GeneAYak
    07.03.2022 00:55

    Основная ошибка тс как по мне в том, что пет проект должен быть для себя, а не на сторону, потому что развивать и поддерживать он его все равно не будет, а зачем тогда все это делать?


    1. bungu
      07.03.2022 00:58

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


      1. unsignedchar
        09.03.2022 09:13

        Если рядом будет лежать бот для взлома это шифра - почему нет? ;) Пет проект подразумевает развитие.