• Какая IDE удобнее и проще для плюсов?

    Adamos
    @Adamos
    Посоветую вычеркнуть Eclipse из списка рассмотрения.
    Clion - если готовы купить или воровать.
    QtCreator - если нужно бесплатно и вменяемо.
    Ответ написан
    Комментировать
  • Как правильно делать сложную форму QPushButton?

    maaGames
    @maaGames Автор вопроса
    Погроммирую программы
    Можно сделать при момощи 9-patch картинки

    border-image:  url(":/button.9.png");
    border-width: 5px;
    Ответ написан
    Комментировать
  • Как быстро разобраться в чужом проекте?

    @pavelsha
    Эти две недели "Живите вместе" с прежним разрабом.

    1) Пусть расскажет архитектуру, надет все обрывки по постановке ТЗ и выполнению, детально их покажет и отсортирует.

    2) Пройдите с ним по типовым кейсам поддержки / доработки. На второй неделе садитесь сами выполнять все заявки по системе, которые приходят на разраба (он чтобы был рядом как тьютор)

    3) Фиксируй для себя сразу, что было не понятно. И спрашивай

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

    5) Пусть старожил расскажет бытовые / политические / экономические особенности этого работодателя.
    У тебя идет испытательный срок? Прекрасно! В случае Пушного зверька на горизонте имеешь право уйти одним днем.

    6) Если время позволяет и ресурс есть, то пусть аналитики или этот разраб (если он Алл-инклюзив) садаться и ночами пишут доки по системе. Со стороны работодателя будет корректно предложить за это премию / бонус / договор ГПХ после увольнения разраба.
    Ответ написан
    Комментировать
  • Как быстро разобраться в чужом проекте?

    Zoominger
    @Zoominger
    System Integrator
    Обратиться к программисту с просьбой всё рассказать.
    Две недели - вполне достаточно для проекта средненького пошиба.

    Ну или бежать, пушо вот это:
    Доков особо нет.

    Вместо тысячи слов говорит об уровне конторы и постановке работы отдела разработки.
    Ответ написан
    4 комментария
  • Когда использование Cgo оправданно?

    Когда оправдано, на своём примере - использование библиотек на C.

    Есть у нас оборудование, к которому идут проприетарные библиотеки на C для управления им. Реверсинженерить их было затратно. Соответвенно, cgo позволил бы использовать эти библиотеки в сервисе на go с минимальными затратами.
    Ответ написан
    Комментировать
  • Когда использование Cgo оправданно?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Основной недостаток использования Cgo - это снижение производительности.
    Вызовы C/C++ достаточно затратны по ресурсам, т.к. C ничего не знает о данных в Go и для вызова C необходимо полностью сохранять все регистры и переключать стек, за счёт этого и возрастают накладные расходы, соответственно снижается производительность.

    Использование Cgo имеет смысл, когда есть объёмные библиотеки написанные на C/C++, которые можно использовать. При этом написание кода на чистом Go намного затратнее, чем использование этих библиотек с Cgo.

    > в каких кейсах следует использовать cgo для улучшения производительности
    На сколько я понимаю при вызове простых функций производительность не улучшится, а наоборот, скорее ухудшится.
    Но не исключаю, что есть кейсы, когда есть серьёзные расчёты/жёсткое управление памятью (частые выделения/освобождения), когда за счёт того, что в этом случае не будет использован сборщик мусора можно получить увеличения производительности.

    У меня был подобный кейс на Perl, но принцип тот же.
    При скачивании HTML страниц размер занимаемой RAM скриптом постоянно увеличивался и в итоге "съедал" всю память на сервере.

    Задача скрипта была скачивать HTML страницы, извлекать из них все ссылки на внешние ресурсы.
    Я принял решение и написал функцию на С, которая выкачивала страницу, извлекала ссылки, очищала память и возвращала в Perl уже готовый список ссылок. Скрипты перестали постоянно "пухнуть", их можно было запустить в несколько раз больше по количеству на том же сервере + производительность стала явно выше.

    В общем всё сильно зависит от задачи, но, думаю, более 90% кейсов будет связано с тем, что намного дешевле использовать готовую библиотеку C/C++ с Cgo, чем переписать эту библиотеку на чистом Go.
    Ответ написан
    Комментировать
  • Реально ли работать в одном IT-проекте (продуктовом) больше 5-ти лет и не деградировать профессионально?

    Jacen11
    @Jacen11
    Мой вопрос: реально ли развиваться в течение 5-ти лет и больше в одном продуктовом проекте и не деградировать?
    конечно возможно, почему бы и нет? Вот только человек со сменой работ будет прогрессировать быстрее и ему проще будет с этим
    Ответ написан
    3 комментария
  • Как сделать отсыл логов в Telegram бота?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    То, что вы хотите, называется "мониторинг". Для него придумано довольно много опенсорсных решений, умеющих всё, вам необходимое - поскольку, судя по вопросу, самостоятельно написать реализующие такую функциональность скрипты вы не готовы, это будет логичным решением.

    P.S. - слать полные логи вместо короткого диагностического сообщения мне видится сомнительной идеей.
    Ответ написан
    2 комментария
  • Как скрыть факт использования впн?

    CityCat4
    @CityCat4 Куратор тега VPN
    Внимание! Изменился адрес почты!
    Я думаю,он просто DNS перехватывает. Нужно трафик DNS гнать через VPN.
    Ответ написан
    8 комментариев
  • Как скрыть факт использования впн?

    @rPman
    Все ответы в теме в тему.

    Добавлю, вместо сложной настройки vpn, можно купить дешевую vps-ку (максимально) с linux и ничего в ней не настраивая, запустить локально у себя ssh к ней с ключом -D1080, где 1080 это локальный порт socks5 прокси, которая будет поднята таким образом на удаленном сервере, включить ее в браузере плюс резолв имен через прокси (чекбоксик в настройках) и все, весь трафик браузера пойдет через 'vpn', для провайдера у тебя висит ssh сессия, ограничивать и тем более блокировать их у нашего бешанного принтера пока духу не хватает (к сожалению, ключевое слово пока).

    p.s. но есть но, например ростелеком при накоплении некоторого количества трафика (кажется гигабайты) в пределах одного ip адреса, вне зависимости от протокола, сильно понижает скорость персонально до него примерно на пол суток или сутки, так что стратегия - гнать весь трафик через vpn/proxy не эффективна, придется разделять, что локально смотреть а что удаленно.
    Ответ написан
    5 комментариев
  • Как преодолевается потеря мотивации в ИТ?

    @res2001
    Developer, ex-admin
    Отдых, спорт, общение. В общем все стандартно - переключайтесь на другие занятия, которые приносят положительные эмоции. Со временем выгорание проходит и снова хочется куда-нибудь углубиться :-)
    Ответ написан
    Комментировать
  • Сидеть и парсить документы — это нормально?

    @rPman
    есть мнение что чем 'крупнее и солиднее' компания, то тем скучнее работать в ней, так как каждый участник больше винтик в системе, которого даже обучать нет смысла, - 'занимаешь место, выполняешь необходимую задачу, затраты по сравнению получаемыми доходами приемлимые - так зачем это менять?'.

    Попробуй обратись к своему начальнику с предложением дать другое задание, тебе это нужно для самосовершенстовования, и лучше это делать на деньги работодателя, а не свое время.
    Ответ написан
    Комментировать
  • Centos 7, почему не запускается openvpn клиент?

    @turock
    systemctl start openvpn@openvpn.service

    Вы пытаетесь запустить клиент с названием openvpn. У Вас так называется конфиг?
    То что после @ - название конфига, т.е. если у вас конфиг называется office.conf , то запускать его надо
    systemctl start openvpn@office.service
    Ответ написан
    4 комментария
  • Как повысить привилегии в системе без sudoers?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Внимание! Изменился адрес почты!
    Не имея рутовых прав - никак.
    Для скрипта - никак вообще, хоть с правами, хоть без них
    Для программы с правами - через setuid
    Ответ написан
    Комментировать
  • Как повысить привилегии в системе без sudoers?

    @none7
    Для скрипта никак. Придётся писать обёртку на компилируемом языке, которая вызовет функции setuid и setgid, а затем запустит скрипт. На бинарник обёртки уже можно поставить флаг S как написал Александр Карабанов. Пример обёртки:
    #include <sys/types.h>
    #include <unistd.h>
    #include <stdlib.h>
    
    int main() {
      setuid(0);
      setgid(0);
      system("/path/to/script");
    }

    При этом естественно владельцем файла должен быть пользователь чьи права нужно получить. То есть для данной обёртки нужно выполнить chown root:root /path/to/file. Правда программа с UID==0, может установить себе любой UID. Вот так вот и работают sudo и su.
    Ответ написан
    1 комментарий
  • Как повысить привилегии в системе без sudoers?

    karabanov
    @karabanov Куратор тега Linux
    Системный администратор
    Попробуй setuid бит chmod u+s <filename>
    Исполняемый файл с установленым setuid битом запускается c правами владельца, если это root, то от root.
    Но это дыра в безопасности...

    Есть ещё setgid chmod g+s <filename> запускать от имени группы, возможно он подойдёт лучше. Или нет...

    Если не подойдёт, то удалить биты можно заменив "+" на "-":
    chmod u-s <filename>
    chmod g-s <filename>

    PS
    Собсвенно sudo и позволяет повышать привилегии за счёт установленного setuid бита:
    ~$ which sudo
    /usr/bin/sudo
    ~$ ls -alah /usr/bin/sudo
    -rwsr-xr-x 1 root root 163K янв 19  2021 /usr/bin/sudo
    ~$

    -rwsr-xr-x это и есть setuid бит.
    Ответ написан
    3 комментария
  • Есть ли консольный редактор для Linux, в котором просто выделять весь текст?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Vim не надо.

    а emacs ?)

    как вариант попробуйте тильду ( tilde ) (выделить все Ctrl+A)

    п.с.
    наткнулся на интересный консольный редактор dte
    очень гибкий и весит меньше чем nano
    $HOME/.dte/rc
    alias select-all        'bof; select -l; eof'
    alias select-all-paste  'select-all; pipe-from -m wl-paste -p'
    
    bind C-A      'select-all'
    bind M-a      'select-all-paste'

    здесь мы создали файл($HOME/.dte/rc) настроек программы dte и прописали в нём алиасы нужных нам команд(select-all и select-all-paste) после чего повесили их на сочетания клавиш(Ctrl+a и Alt+a)
    select-all - выделяет весь текст
    select-all-paste - выделяет весь текст и заменяет его на содержимое буфера обмена (чтобы два раза не вставать)

    здесь wl-paste это внешняя утилита для работы с буфером обмена Wayland
    wl-paste -- буфер скопированного
    wl-paste -p -- буфер выделенного

    для X-сов вместо wl-paste можно использовать к примеру тот же xsel с нужными ключами:
    Selection options
    -p, --primary Operate on the PRIMARY selection (default)
    -s, --secondary Operate on the SECONDARY selection
    -b, --clipboard Operate on the CLIPBOARD selection

    то есть при замене wl-paste на xsel будет примерно так:
    alias select-all-paste  'select-all; pipe-from -m xsel -p'
    Ответ написан
    Комментировать
  • Как бороться с дедлайнами от неквалифицированного начальства?

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

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

    Год работы есть - это уже хорошая база для дальнейшего поиска работы.

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

    P.S. Вообще удивляют люди, которые занимая ключевую позицию (а если вы на проекте один - значит вы и есть ключевая фигура на этом проекте, независимо от того, джун вы или синьер), совершенно не ценят себя. Это вы должны им условия ставить, и говорить, что если не сделают как вы хотите - уйдете. Тем более они сами говорят, что не могут других программистов найти.
    Ответ написан
    1 комментарий