• Является ли такой мессенджер безопасным?

    saboteur_kiev
    @saboteur_kiev Куратор тега Информационная безопасность
    software engineer
    Пользователи сами настраивают свой личный сервер для переписки

    Уязвимость номер раз, требуется квалифицированный пользователь, который понимает как и что он настраивает и может оценить риски.

    Мессенджер использует симметричное шифрование, а ключи передаются между пользователями в оффлайн-формате.

    Уязвимость в оффлайн формате какая-то есть. Если они передают друг другу по бумажке - одно. Если по телефону, или почте - то что за телефон, что за почта, могут ли пользователи оценить риски?

    Сообщение шифруется локально на пк отправителя и отправляется на сервер, откуда пользователь получает его, если он в сети. Расшифровывается сообщение локально на пк получателя при помощи полученного от собеседника ключа шифрования.

    Как проверяется, что сервер не дешифрует сообщение?

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

    В каком виде? Дешифрованном или шифрованном? Какова вероятность компроментации сервера?

    Ну и что за шифрование используется, насколько легко оно сейчас ломается, и как часто меняются ключи, учитывая сложность обновления ключей....

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

    Ну и вообще, такой мессенджер скорее всего бесполезен. Если пользователи настолько опытные, что могут арендовать и настроить виртуальную машину, поставить и настроить там сервер, подключить к нему клиент, обменяться ключами, то в чем проблема ПРОСТО установить сервер, подключиться любым ссш клиентом и уже на самом сервере пообщаться в talk/write ?
    Ответ написан
    2 комментария
  • Почему мой линукс, команда ">" не работает?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Что-то не то с вашей консолью. | и > редиректят совершенно одинаково, не может одно работать, другое не работать.
    Или что-то у вас еще вокруг хелма делается или непонятно.
    Ответ написан
    Комментировать
  • Как правильно делаются Telegram Web App?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Так собственно через ссылку и своего бота оно и делается.
    Ссылку проще всего кидать через inline keyboard
    Ссылка может запуститься только в приватном чате с ботом, в общих чатах следует создать ссылку на своего бота с предустановленным start=something, которая при старте в приватном чате запустит нужное приложение
    Ответ написан
    7 комментариев
  • Git удалил коммит/ы при переключении веток с помощью checkout?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    повезло что я переименовал тогда файлы и сейчас нахожусь на предпоследней версии.


    Вот тут ничего не понятно.
    Гит ничего не удаляет, если оно было закоммичено. Возможно вы просто что-то правили локально, но забыли добавить и закоммитить?
    и файлы переименовывали не через git mv
    Ответ написан
    Комментировать
  • Как сменить стэк?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Не совсем понятно, где его заполучить. Чтобы получить этот опыт, нужно джуном устраиваться что ли? Это же бред какой-то. Или всё-таки предыдущий опыт как-то котируется в глазах HR-ов и прочих рекрутеров?

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

    Мне вообще не очень понятно это зацикливание на языке программирования. Если у кого-то есть достаточно опыта, он сможет изучить новый без проблем,

    И там и там же руль.

    Ну да, можно переключиться на другой язык. И опыт поможет. Но нужно брать и учить. С потолка опыт не придет. Придется потратить сколько-то лет
    Ответ написан
    3 комментария
  • Как научиться удерживать код в голове?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Этот навык прокачивается собственным опытом.
    Читать чужой код в данном случае сложнее, чем собственный, который ты написал и понимаешь его "скелет".

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

    Но со стороны кода можно все упрощать.
    Это делается декомпозицией кода на кусочки - функции или объекты с методами.
    Для этого используется конвенции для именования переменных, функций, объектов, методов так, чтобы по названию было легко понимать их предназначение и возможно тип. Тогда не нужно в голове держать все нюансы, ты видешь глобальную цепочку.
    Ну и стиль переносов, для облегчения чтения.

    Ну и да, есть проекты, в которые чтобы нормально вникнуть, нужно много времени, месяцы, годы.
    Поэтому собственно и стараются сейчас не писать полностью кастомный код, а пользоваться готовыми фремфорками, которые предлагают определенные паттерны.
    Учат собственно общие паттерны и так далее.
    Ответ написан
    Комментировать
  • Допустимы ли такие коммиты?

    saboteur_kiev
    @saboteur_kiev Куратор тега Git
    software engineer
    Если ты делаешь для себя, делай как хочешь.
    Но смысл делать подобный .md файл немного отсутствует - есть же git log
    Сейчас не совсем понятна мысль - ты хочешь автоматический change log, или тебе просто хочется иметь текстовый файлик?
    Но в бренче может быть много коммитов, пока не закончишь фичу, и зачастую "чистовик" пишется уже при слиянии в основной ветке, со сквизом промежуточных коммитов.
    Ответ написан
  • Профессиональная переподготовка СПБ, куда пойти?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Самостоятельное изучение вполне норм.
    Нет в мире "профессионального обучения программированию". Есть базовые курсы, но их легко заменить видяшками из инета или книжками для начинающих.
    А так - много практики.
    Если же интересует именно программная инженерия как курс высшего образования, то это скорее всего будет много математики или электротехники, возможно низкоуровневого программирования, но не так много именно прикладного современного программирования.
    Ответ написан
    Комментировать
  • Почему язык COBOL считают устаревшим и его не любят?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Потому что он устарел. Не развивался, не поддерживает многие современные стандарты.

    Важный критерий - на нем никто не пишет.
    На коболе есть некоторое количество старых проектов, которые дорого/сложно переписать заново, поэтому специалисты востребованы. Но их количество ОЧЕНЬ СИЛЬНО ограничено, а новые проекты никто не планирует на нем писать.
    Ответ написан
    Комментировать
  • Почему выводится только одна единица?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    echo -e "\n"PC-{001..150}


    for i in {0..150}; do printf "%03d\n" $i; done


    for i in $(seq -w 1 150); do echo "PC-$i"; done

    ну или сравнение чисел делается через спец. операторы -gt, -ge, -lt, -le, -eq, -ne
    #!/bin/bash
    
    for ((i=1; i < 150; i++)); do
        if [[ $i -lt 10 && $i -ge 0 ]] ; then
            out="00$i"
        fi
        if [[ $i -lt 100 && $i -ge 10 ]] ; then
            out="0$i"
        fi
        if [[ $i -lt 1000 && $i -ge 100 ]] ; then
            out="$i"
        fi
        echo PC-$out
    done
    Ответ написан
    2 комментария
  • Как передать переменную из телеграмм бота в приложение?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Да наверное никак.
    Как я понимаю, miniapps передают данные в структуре initData и initUnsafeData, но там нет рандомных переменных, только внутренние userID, userName и так далее.
    Сохраняйте внутреннюю переменную вместе с user_id в базе данных, и когда юзер переходит в веб приложение, то доставайте его из базы по user ID
    Ответ написан
  • Почему нет выбора максимальной частоты экрана?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Потому что для использования максимальной частоты экрана, нужно чтобы видеокарта могла поддерживать такую частоту на заданном разрешении, и чтобы у кабеля хватало пропускной способности для такой частоты на данном разрешении.

    Между прочим hdmi 2.1 - это вообще-то не то, что используют для высоких частот. 120 он тянет, 144 я уже даже сомневаюсь.
    Обычно для таких вещей уже используют displayport
    Ответ написан
    Комментировать
  • Библиотека на питоне, позволяющая рисовать точки, линии и круги на карте по заданным географическим координатам?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    ну нет конечно.
    Если карту еще можно натянуть и сделать подсчеты координат очень быстро, то города еще и с дорогами, еще и мастшабирование, это задача не библиотека а крупного сервиса, типа гугл, типа www.openstreetmap.org, так как это уже база данных с огромным количеством регулярно обновляемых данных.
    Ответ написан
  • Что такое сборка?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Если взять компиляцию и сборку исполняемого файла, например .exe, то обычно ты используешь вызовы различных библиотек.
    Системные библиотеки обычно доступны в системе, поэтому можно собрать файл динамически, где в самом файле будут ссылки на системные библиотеки, и файл будет не слишком большой. Но есть вероятность что на другой версии операционки какой-то библиотеки может не быть, или она будет более старой/новой версии, что может привести к несовместимости.

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

    Аналогичные вещи есть и в ассембли.
    Ответ написан
    Комментировать
  • Как при выполнении команды bash, которая использует grep, получить код выхода команды, а не самого grep?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Храни результат diff в промежуточном значении
    result="git diff --diff-filter=AM --name-only origin/master"
    grep "app/" <"$result" > ./log

    соответственно каждую команду можешь отдельно почекать
    result="git diff --diff-filter=AM --name-only origin/master"
    if [ $? -eq 0 ]; then echo OK; else echo NOT OK; fi
    grep "app/" <"$result" > ./log
    Ответ написан
    2 комментария
  • Стоит ли хранить изображения base64 в БД?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В общем случае - нет.
    В конкретных случаях - ну если много маленьких иконок, то можно использовать такой вариант. Или svg текстом можно так хранить.
    base64 кодирует все триолями, поэтому любой файл увеличивается на ~30%, если что то уж хотя бы в бинарных blob можно пробовать. А так - просто в виде файлов или специализированная база типа s3 предпочтительнее
    Ответ написан
    2 комментария
  • Как быть при утечке памяти? Можно ли "очистить" ОЗУ скриптом?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Вы вообще не в ту сторону шагаете.Какие тут скрипты??

    Утечки памяти это не проблема операционной системы (ну разве что утечки именно в ней).

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

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

    Тут нужно разбираться с вашими приложениями, с теми кто их писал.
    Иначе - ну ребутать разросшиеся приложения регулярно, если этот вариант возможен.
    Ответ написан
    Комментировать
  • Как вы выставляете memory and cpu requests для подов?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Приложения приложениям рознь.
    Тут основной вопрос к разработчикам, чтобы они могли написать приложение, которое требует минимум ресурсов и в случае чего легко скейлится горизонтально.
    Можно вообще выделить максимум 1 cpu/4gb памяти на под и сказать разработчикам - крутитесь как хотите, но чтобы все влезало в эти лимиты. Сюда влезет 90% микросервисов, но понятно что или придется пилить много микросервисов, и вдобавок какие-то тяжелые вещи типа базы данных сюда не влезут.
    НО, все ведь зависит от нагрузки и количества клиентов.

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

    А рандомные ответы из интернета дадут слишком общую картинку, которая может наоборот навредить.
    Ответ написан
  • Как организовать работу внутри компании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    нанимается проджект менеджер, который рулит людями
    выбирается тимлид, который рулит командой.
    проджект и тимлид делят проект на задачи - проджект с точки зрения бизнеса, тим лид с точки зрения технической реализации
    потом задачи выдаются разработчиками.
    Технически в этом помогает какой-то трекер, типа JIRA и система контроля версий и система ревью. Типа битбакет, гитхаб, гит, и другие.
    А так - слишком общий и нетехнический вопрос,
    Ответ написан
    2 комментария
  • Скорость интернета 100 мбит вместо 1 гбит, что делать?

    saboteur_kiev
    @saboteur_kiev Куратор тега Компьютерные сети
    software engineer
    100 мбит между чем и чем?
    Если провайдер отдает 1 гбит и роутер получает 1 гбит, то попробовать воткнуть провод из провайдера напрямую в комп, посмотреть какая будет скорость. Если станет 1 гбит, значит проблема в том что от роутера в комп отдается 100 мбит. Что тогда за роутер?

    Если от провайдера в роутер приходит 1 гбит, а от провайдера напрямую в комп будет 100 мбит, то проблема в компе (сетевушка/драйвера/настройки).

    Сделать пару экспериментов и выяснить в каком именно месте проблема.
    Ответ написан
    5 комментариев