• Как перестать отслеживать файл в git?

    robux
    @robux
    На самом деле остановка отслеживания делается командой:
    git update-index --assume-unchanged file.txt

    Добавление в .gitignore и команда:
    git rm --cached file.txt
    оставляют файл локально, но убирают из удалённого репозитория.
    Ответ написан
    Комментировать
  • Как настроить прокрутку элемента по зажатию средней кнопки мышки в Linux Xorg?

    robux
    @robux
    В Ubuntu можно поставить утилиту:
    apt install mouseemu

    Добавить в настройки /etc/default/mouseemu строку:
    SCROLL="-scroll 125"   #или 126 для правой Super_R/Mod_R/Window_R
    Перезапустить прогу (под root):
    /etc/init.d/mouseemu restart

    Если качали с github и сами компиляли, то ручной перезапуск:
    killall mouseemu
    ./mouseemu -scroll 125
    И теперь при зажатии левой "Window" на клавиатуре и шевелении мышкой, будет скролить.
    Ответ написан
    Комментировать
  • Объясните пожалуйста почему данный код выводит именно такой результат?

    robux
    @robux
    Потому что ты все значения по умолчанию одним массивом инициализируешь.
    Если хочешь разными массивами, то делай так:
    foods = Hash.new { |hash, key| hash[key] = Array.new }

    Больше инфы.
    Ответ написан
    Комментировать
  • Можно ли в шаблон Word подставлять данные из Python?

    robux
    @robux
    Вместо Word (.doc) можно использовать LibreOffice (.odt).
    Правишь заготовку, а потом скриптом ODT->PDF или ODT->DOC.

    P.S. Кстати, и .odt, и .docx - это сжатые zip-ом текстовые xml-файлы. Поэтому многие советуют сначала распаковать "документ", заменить в одном из полученных xml слова-маркеры, а потом обратно запаковать.
    Ответ написан
    1 комментарий
  • Как корректно подключить гитару к Linux Mint?

    robux
    @robux
    Кроме остановки сервиса pulseaudio, нужно ещё правильно каналы в jackd настроить.
    Точно не помню (давно баловался), но графически это выглядит "крест-накрест".
    Вот примерный скриншот из гугля (а вот больше).
    jack.jpg
    Ответ написан
    1 комментарий
  • Как перенаправлять трафик на прокси-сервер и получать ответы с него?

    robux
    @robux
    А зачем именно "прокси-сервер" делать?
    Можно ведь пробросить порт: настроить маршрутизацию с маскарадом через iptables.

    Если на дачном сервере squid уже стоит и VPN работает, то маршрутизацию достаточно настроить на DO, например так:

    modprobe iptable_nat
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -d eth0 -p tcp --dport 3128 -j DNAT --to-destination 10.10.10.10:3128
    iptables -A FORWARD -d 10.10.10.10 -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

    Ну и проверить все текущие маршруты и правила:
    route -n
    iptables -L -n
    iptables -t nat -L -n


    Гугли, пробуй. Ещё вопросы будут - спросишь.
    Ответ написан
    Комментировать
  • Как разрабатывать GUI на Python?

    robux
    @robux
    > Tkinter, WxPython и PyQT

    Ещё есть Gtk2, FOX, FLTK, Gtk3.

    > Подскажите, что удобнее для решения простых задач

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

    robux
    @robux
    1. Можно в терминале набрать:
    su user2
    chromium-browser

    2. Но, полагаю, автор хочет, чтоб браузер создавал профиль в другой папке. Для этого достаточно добавить параметр "user-data-dir" и запускать из терминала:
    chromium-browser --user-data-dir="/home/user/chromium2"

    3. Лучше сделать chromium2.sh с этой командой:
    #!/usr/bin
    /usr/bin/chromium-browser --user-data-dir="/home/user/chromium2"

    4. А ещё лучше поместить в папку /home/user/Desktop (Рабочий стол) файл chromium2.desktop с таким содержимым:
    [Desktop Entry]
    Version=1.0
    Terminal=false
    Exec=/usr/bin/chromium-browser --user-data-dir="/home/user/chromium2"
    Icon=chromium-browser
    Type=Application
    Categories=Network;
    StartupNotify=true
    Name=Chrome2
    У меня таких "браузеров" штуки 3 сделано.

    P.S. Можно задавать второй параметр --proxy-server="111.222.111.222:8888" для указания http-прокси-серверов или --proxy-server="socks5://127.0.0.1:9050" для socks5-серверов. Рекомендую.
    Ответ написан
    Комментировать
  • Как физ.лицо может разработанное им ПО продать организации?

    robux
    @robux
    Главная соль при взаимодействии с заказчиком - кто возьмет на себя фондовые отчисления: ПФР - 22%, ОМС - 5% и ФСС - 2%. От этого никуда не денешься, если работать по бумагам и юридически чисто (в том числе защищая авторские права).

    Также кому-то придётся платить НДФЛ 13% (или УСН 6% или НП 20%) и НДС 20%. По бумагам проблем хапнет, либо заказчик (если нанимает вас как "физика"), либо вы сами (если создаёте своего "юрика"). Ниже рассмотрю 5 самых ходовых вариантов.

    1. Вы действуете как Физическое лицо (2 варианта):
    1.1. Работа на Заказчика по Трудовому Договору (ТД) Трудового кодекса.
    Здесь заказчик как бы нанимает вас к себе на работу и оплачивает по ТД.
    В этом случае бухгалтерия заказчика ведет и сдаёт полную отчетность на сотрудника, платит все налоги: ПФР, ОМС, ФСС, НДФЛ и НДС. Для заказчика это самый геморрой по обслуживанию и налогам.

    1.2. Работа на Заказчика по Гражданско-правовому Договору (ГПД) Гражданского кодекса.
    Заказчик уже не устраивает вас к себе в офис, а привлекает как сдельного подрядчика.
    В этом случае Заказчик платит налоги: ПФР, ОМС, НДФЛ и НДС. Для него тоже гемор, но чуть меньший.

    В обоих случаях бухгалтерам заказчика придется считать фондовые отчисления и налоги, сдавать отчетность и делать платежи в фонды и налоговую. Для вас же как "физика" оба варианта (и ТД и ГПД) по бумагам и остальной движухе - халява и расслабон :)

    2. Вы действуете как Юридическое лицо (3 варианта):
    2.1. Вы действуете как ИП на УСНО 6%.
    Теперь для заказчика халява - он заключает только обычный договор.
    Заплатит заказчик только НДС (20%) в обычном порядке.
    Зато вам придётся побегать и раскошелиться: 15 тыщ на регистрацию, 30 тыс в год на обслуживание расчетного счета и сдачу фондовой и налоговой отчетности (если бегать с бумажками и печатать формы самому, то можно чуток сэкономить).
    Придется самому платить фиксированные налоги ПФР, ОМС и ФСС - 40 тыс/год.
    Зато от сделок вы платите только УСНО 6%.
    При закрытии ИП придется выложить ещё 25 тыщ.

    2.2. Вы действуете как ООО на УСНО 6%.
    Для заказчика снова халява - он заключает обычный договор и заплатит только НДС.
    Вам придётся потратить 30 тыщ на регистрацию, 35 тыс в год на обслуживание расчетного счета и сдачу отчетности (если бегать с бумажками и печатать отчетность самому, то можно чуток сэкономить).
    Налоги ПФР, ОМС и ФСС платятся уже не фиксой (40 тыщ в год), а по процентам от оборота (22%, 5%, 2%).
    Также от сделок вы плюсом платите УСНО 6%.
    При закрытии ООО придется выложить ещё 40 тыщ.

    2.3. Вы действуете как ООО на ОСНО.
    Для заказчика это самая халява - он заключает обычный договор и всё.
    Заказчик не заплатит НДС (точнее, при услугах получит как полный входящий вычет).
    Зато вам придётся потратить 30 тыщ на регистрацию, 50 тыс в год на обслуживание расчетного счета и сдачу отчетности.
    Налоги ПФР, ОМС и ФСС платятся по процентам (22%, 5%, 2%).
    Плюсом к фондам от сделок вы заплатите НП (налог на прибыль) 20% и НДС 20%.
    Также придётся привлекать бухгалтера - минимум 180 тыс./год.
    При закрытии ООО придется выложить ещё 50 тыщ.

    Примечание: все цифры взяты на глазок, ибо гос. пошлины, тарифы юристов, нотариусов, банков, абонентка за отчётность, всякие 1С, Тензоры, СКБ и прочие КриптоПро постоянно растут.

    Итого: выбор оптимума зависит от общей суммы, и насколько регулярно вы будете заключать договоры, как много у вас заказчиков.

    На глазок прикидки такие:
    - если один договор в год до 1 млн. руб, то я бы посоветовал ГПД от физика.
    - если сумма 1 млн. в год и выше, то можно выходить на ИП с УСНО 6%.
    - если сумма 2 млн. в год и выше, а заказчик гос. контора или пафосная корпорация, то ООО с ОСНО.

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

    Если уходить от всего описанного геморроя в "серую зону" (грубо говоря, "грязным налом из-под стола"), то защищать авторские права в рамках закона не получится. Разве только по бумагам оформить например 10% суммы сделки, а под столом отмуслякать 90%, но заказчик будет ерепениться, и я вас, разумеется, здесь к этому не призываю :)
    Ответ написан
    4 комментария
  • Почему не работает поиск подстроки в строке?

    robux
    @robux
    Частая ошибка: либо двойное равно в присваивании, либо присваивание в условии.
    Особенно для тех, кто писал на Бейсике, Паскале и им подобным :)
    Ответ написан
    Комментировать
  • Изменение прав доступа у определенной группы в Linux?

    robux
    @robux
    1. Права на исполнение файла группе "staff":

    Дать права группе "staff":
    chown :staff /home/user/scripts/script.sh
    Дать права на запуск группе:
    chmod g+x /home/user/scripts/script.sh
    Дать права на запуск всем (в том числе группе):
    chmod a+x /home/user/scripts/script.sh

    2. Право на изменение файла пользователю "user":
    chown user /home/user/scripts/script.sh
    chmod u+rw /home/user/scripts/script.sh

    3. Право на чтение файла группе "staff":
    chown :staff /home/user/scripts/script.sh
    chmod g+r /home/user/scripts/script.sh

    4. Право на изменение и создание файлов в каталоге ~/scripts группе "staff":
    chown -R :staff /home/user/scripts
    chmod -R g+rw /home/user/scripts


    Подробности здесь:
    man chown
    man chmod
    Ответ написан
    Комментировать
  • Как обновлять сайт на боевом сервере спомощью GIT?

    robux
    @robux
    Первый раз так:
    git clone --depth=1 https://github.com/Author/Framework.git

    Второй и следующие так:
    git pull https://github.com/Author/Framework master
    или
    git pull

    P.S. Параметр "--depth=1", чтобы скачалась только последняя версия, без всей предыдущей истории.
    P.S.2. Перед обновлением делай резервные копии текущих настроек - либо в отдельную папку, либо просто копированием в отдельные файлы. Если что-то перетрётся после "pull", то из копии обратно восстановишь.
    Ответ написан
    2 комментария
  • Как подменить адрес назначения через iptables?

    robux
    @robux
    Полагаю, на шлюзе 10.0.0.1 сделать как-то так:
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 13389 -j DNAT --to-destination 10.0.0.10:3389

    Не забудь также разрешить FORWARD, подгрузить модуль iptable_nat и включить в ядре параметр /proc/sys/net/ipv4/ip_forward.
    Ответ написан
    6 комментариев
  • Зачем изучать Linux?

    robux
    @robux
    Узнав Linux, узнаешь UNIX-архитектуру, а это откроет дорогу к пониманию большинства существующих дистрибутивов (Macosx, FreeBSD, Android, Raspberry Pi, Orange Pi и т.д.)

    Виндовую архитектуру использует, пожалуй, только ReactOS.
    Ответ написан
    Комментировать
  • Как удалить неудаляемую папку?

    robux
    @robux
    Загрузиться с USB-флешки Linux и удалить (я так делаю).
    Ответ написан
    Комментировать
  • Как пиринговые сети побмениваются данными?

    robux
    @robux
    Смешались в кучу люди, кони: "p2p", "блокчейн", "анонимность"...

    Во-первых, блокчейн имеет к p2p весьма посредственное отношение.

    Во-вторых, при анонимности любое чистое p2p быстро будет загажено корпорастами и копирастами, как случилось с eMule и другими p2p-"пионерами". Должно быть какое-то доверие хотя бы к некоторым узлам. У торрентов груз доверия несут на себе трекеры, у Bitcoin'а несколько супернод, прописанных в клиенте и т.д.

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

    Например, в Tox-клиентах прописаны несколько десятков супернод. Клиенты при запуске подключаются к супернодам и через них обозревают другие узлы и "входят" в DHT. Дальше уже в эти узлы отправляются запросы, и от них принимаются ответы.

    Что касается маршрутизации трафика и целостности данных, то можно почитать ещё одну мою статью.
    Ответ написан
    Комментировать
  • Технические вопросы по блокчейну, где хранятся данные, какие технологие используются и как общаются узлы?

    robux
    @robux
    Я как раз в марте писал обзорную статью по p2p-сетям, почитайте.
    Ответ написан
    Комментировать
  • Почему до сих пор никто не создал p2p мессенджер?

    robux
    @robux
    Потому что программисты как стадо баранов - бегут туда, где платят денежки:
    - платят за веб - бегут в веб
    - платят за 1С - бегут в 1С
    - платят за блокчейн - бегут в блокчейн.

    А за p2p никто не платит. Корпорациям и чинушам p2p не нужен, как и СПО (более того - даже вреден и опасен). Программистам не хочется вникать в технические трудности, потому что не оплачивается и нет литературы. Ну а пользователям приходится жевать то, что дают корпорации и программисты.
    Ответ написан
    Комментировать
  • Как удаленно проверить целостность данных (на недоверенном узле)?

    robux
    @robux
    В качестве разновидности запроса случайного блока по случайному смещению, можно запрашивать не сам блок, а его хэш. Что-то типа: "Эй, чувак, дай md5 блока длиной 512 по смещению 23121 файла такого-то", и узел отвечает.

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

    robux
    @robux
    Нужно определять пользователя:
    1) по id учетной записи
    2) по IP с которого идет запрос
    3) просить ввести [имя и] пароль.
    Понятно, что эти параметры в бот нужно задать заранее, чтобы бот знал, как отличать пользователя-админа от пользователя-обычного.
    Ответ написан
    3 комментария