• Что мой провайдер знает обо мне?

    @nirvimel
    Когда я захожу на определенный сайт, провайдер видит URL?

    Да.

    А если я захожу на https?

    Известен IP сервера и имя домена. Больше ничего.

    Откуда провайдер узнает, что я скачиваю определенный фильм/программу через torrent?

    Торрент-клиент общается с трекером по HTTP. Все видно насквозь: конкретные торренты + вся статистика (когда начато скачивание, когда закончено, когда пошла раздача, сколько роздано). Возможно подключение к трекеру и по HTTPS, но rutracker.org такой возможности не дает (мне тоже интересно почему).

    Все пакеты которые я получаю и раздаю значит провайдер скачивает себе, чтобы узнать что это за фильм/программа?

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

    Или он отслеживает факт скачивания .torrent файла, а затем делает вывод по идущим пакетам, что это скачивается?

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

    Когда я пользуюсь VPN, что видит провайдер?

    Видит шифрованный траффик на конкретный IP. По IP можно узнать, что этот диапазон продается под VPSы. Сам факт шифрованного трафика вешает абонента в списки тех, "кому есть что скрывать", а значит подозреваемых при любом розыске.

    Что я зашел на определенный IP и с него идут зашифрованные потоки?

    Дальнейшее направление трафика от VPN-сервера отследить невозможно (по крайней мере, на оборудовании провайдера в автоматическом режиме). Но при целенаправленной слежке за абонентом в принципе возможно по временным меткам сопоставить трафик абонента с трафиком любого сервера.

    OpenVPN будет работать через VPN IP и в браузере и при обновлении Windows, драйверов, ...?

    В зависимости от настройки. Но в общем случае, да, так.

    Читал, что в Windows есть такая особенность, что если провайдер как-то урезает пакет, то VPN отключается и сайту показывается мой реальный IP?

    Это не связанно с провайдером. Это особенность Windows. Когда VPN отваливается, весь трафик вылетает наружу в открытом виде. Опять же зависит от настроек. Но это еще одна цена "удобства" при использовании Windows.

    При этом провайдер видит на каком я сайте, что скачиваю?

    VPN отвалился - хацкер спалился.

    Таких фишек много?

    Смотря о чем речь. В сфере сетевой безопасности и анонимности различных нюансов вообще много.

    Как от них защитится?

    Учить мат.часть. Разбираться в сетевых протоколах и в устройстве ОС.

    Если пользуюсь каким-то расширением типа ZenMate, dotvpn, провайдер аналогично как и с VPN видит что что-то отправляется и приходит на определенный VPN IP?

    Расширения очень разные. Они могут базироваться на совершенно разных технологиях. Ни один специалист вам не скажет за все расширения. Не исключено, что многие из них, по сути - honeypot, то есть созданы с целью слежения за любителями анонимности, привлекают своим удобством и дают ложное чувство безопасности.

    При использовании Tor, кто-то пользуется моим IP, пока я пользуюсь чужим?

    Нет. Если у вас не сконфигурирован Exit Node.

    Что при этом видит провайдер, что я получаю потоки данных с определенных IP и каждый раз разный IP?

    У них есть система точного обнаружения использования Tor. Это факт остается в логах с теми же последствиями, что и для VPN.

    Провайдер видит URL?

    Через Tor и VPN - нет.

    Каким образом можно полностью управлять сетью на ПК, видеть что, куда и когда отправляется или приходит на ПК (Windows, Linux)?

    Видеть все: https://www.google.com/search?q=Wireshark
    Блокировать все лишнее: https://www.google.com/search?q=Comodo+Firewall
    Ответ написан
    22 комментария
  • Почему Python multiprocessing нестабилен?

    @nirvimel
    Хорошо, что вы указали в тегах Windows, это все объясняет. Под Windows нет простого способа "раздвоиться" процессу при вызове multiprocessing.Process, поэтому осуществляется очень сложная эмуляция этого поведения. При этом функция target выдирается из модуля, запускается в отдельном интерпретаторе, а все параметры сереализуются передаются и десереализуются перед вызовом target, при этом инициализация модуля в новом интерпретаторе выполняется частично (инициализируется только глобальный контекс). Подробнее об этом, например, тут, есть еще одна очень хорошая статья где подробно рассмотрен этот механизм, но сейчас не найду ссылку.

    Коротко о том, как готовить multiprocessing под Windows:
    1. Разделять процессы (вызов multiprocessing.Process()) как можно раньше в коде.
    2. По возможности избегать инициализации любых ресурсов и глобальных переменных до разделения. Учитывайте, что этот код выполняется во всех процессах независимо и может давать кучу сторонних эффектов.
    3. Не передавать через args никаких сложных объектов с "поведением" (кроме объектов из самого multiprocessing, он сам знает как их правильно передавать), только голые данные (примитивы или объекты состоящие только из примитивов), которые сериализуются без сторонних эффектов.
    4. Создавать дочерние процессы один раз, и на протяжении всего времени работать с ними посредством обмена сообщениями через Pipe/Queue. Не порождать новые процессы в цикле вычислений в момент "когда понадобятся".
    5. Queue при попытке записи/чтения может блокировать процесс, если при этом происходит запись/чтения в/из нее в другом процессе. (Думаю, именно это и происходит в коде в вопросе).
    6. Лучше использовать Pipe, который в худшем случае блокирует один процесс, а не все, как Queue.
    7. При создании процесса можно передавать ему два Pipe (input одного + output другого), в вызывающем процессе хранить соответствующие им коннекторы и только при помощи их общаться с дочерним процессом.
    8. Можно не делать process.join(), а просто читать результаты из output Pipe, они прочтутся только после того как попадут туда, что дальше будет происходить с процессом уже не важно (можно поставить return после записи в Pipe в дочернем процессе).
    Ответ написан
    4 комментария
  • Выбор версии python для новичка?

    valerium
    @valerium
    Изобретая велосипед
    На дворе скоро начнётся 2016 год. Пора бы уже считать третий пайтон пайтоном по умолчанию.

    Да, есть несколько библиотек, которые не работают под третий пайтон, но практически всем им есть замена.
    Ответ написан
    4 комментария
  • Как найти максимальное значение без ?/switch/if?

    @Alexander1705
    Можно написать функцию max без использования условных операторов:

    def max_(a, b):
        return (a + b + abs(a-b)) / 2;
    
    m = 0
    arr = [1, 2, 3, 4, 5, 6, 98, 65, 190]
    for val in arr:
        m = max_(m, val)
    
    print(m)
    Ответ написан
    2 комментария
  • Как организовать параллельную работу по сети с несколькими устройствами?

    @nirvimel
    1. Подобные сервера лучше писать не на потоках threading (которые все равно упираются в GIL), а на "зеленых" потоках, например gevent, который создан для решения задач, подобной вашей, с максимальной производительностью.
    2. Проблему зависания потоков в вечном ожидании решает настройка keepalive: клиент обязуется передавать пустые пакеты раз в n секунд, если ему больше нечего передавать. А сервер делает socket.settimeout(n+10) и при вызове recv отлавливает исключение socket.timeout, которое сигнализирует, что клиент "отвалился".
    Ответ написан
    Комментировать
  • Где найти Open Sourse проекты?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Присоединяйся к разработке the-tale.org

    Все исходники открыты: https://github.com/Tiendil/the-tale

    Берёшь задачу делаешь, делаешь пул-реквест, получаешь критику, пока всё правильно не будет сделано, и код попадает в рабочий проект.

    В вики на гитхабе рассказано подробнее.
    Ответ написан
    Комментировать
  • Какую версию Python изучать в конце 2015 года?

    @Tabletko
    никого не трогаю, починяю примус
    Python 3
    Ответ написан
    Комментировать
  • Какая будет безопасность сайта запущенного на порту 5000?

    @nirvimel
    Трюки, типа изменения номера порта при помощи SRV, не особо влияют на безопасность.
    Безопасность HTTP зависит не от номера порта, а от вебсервера, вашего вебприложения (отчасти от используемого фреймворка) и от грамотного администрирования самого сервера (если речь не о shared hosting).
    В самом windows может и нет ничего плохого (при грамотной настройке), но если это - ваш домашний десктоп, то открывать с него что-то пита HTTP наружу в сеть - плохая идея. По поводу безопасности windows есть несколько общих советов:
    1. Закройте файрволом весь входящий трафик, HTTP-порт добавьте в исключение, это отрежет возможность лазить во вашим shared folders с других машин в локалке, зато сильно повысит безопасность, открытой в сеть, машины.
    2. Создайте отдельного пользователя системы, сложите все что относится к сайту в его домашнюю папку и запускайте вебсервер и СУБД только под ним.
    3. Регулярно делайте бекапы сайта и БД в какое-то место, куда не имеет доступа пользователь под которым запущен вебсервер, а лучше настройте специальную софтину, уотрая будет делать это автоматически по расписанию.
    Ответ написан
    Комментировать
  • Почему функция не видит переменную?

    @nirvimel
    check объявляется только при if node_name: В противном случае остается не объявленной.
    Ответ написан
    Комментировать
  • Как заменить все пробелы ограниченные определенным символом?

    @nirvimel
    1. Нельзя парcить HTML регулярками.
    2. import re
      from lxml import etree
      doc = \
          """
          <body>
          <img alt='fdsfsd' src='CONST text1 text2'/>
          adasd
          <img alt='sadsdd' src='CONST text3 text4'/>
          adasdas
          </body>
          """
      tree = etree.fromstring(doc, parser=etree.HTMLParser())
      for img in tree.xpath('//img[@src]'):
          img.attrib['src'] = re.sub(r'\s+', '_', img.attrib['src'])

    Ответ написан
    2 комментария
  • Как экономно сымитировать двусвязный список на Python?

    def previous_and_next(some_iterable):
        prevs, items, nexts = tee(some_iterable, 3)
        prevs = chain([None], prevs)
        nexts = chain(islice(nexts, 1, None), [None])
        return izip(prevs, items, nexts)
    Ответ написан
    5 комментариев
  • Как в проекте Delphi 6 использовать вычисления произведенные средствами Python?

    gadfi
    @gadfi
    https://gamega.org
    первое что приходит в голову консольное приложение на python которому delphi скармлевает массивы и получает результат, но овчинка не стоит выделки, проще написать все что нужно на delphi
    Ответ написан
    2 комментария
  • Возможно ли подключить внешний файл стилей для приложения на PyQt4?

    TomasHuk
    @TomasHuk Автор вопроса
    Наконец-то нашел простой и рабочий пример - https://github.com/jangelo/pyqt-helloworld.
    Обычное окно:
    5b7247a51f274bd8918cab025afb07d9.png
    То же окно с подключенным внешним файлом стилей:
    0ce2de96813743128ec4d258010f72eb.png
    Ответ написан
    2 комментария
  • Работа с железом через web на python?

    @cardinalus
    Если в планах графики то без БД вряд ли обойдетесь.

    Вариант:
    - приложение выполняется периодически (как удобно - планировщик, сервис, etc.) и данные пишет в БД
    - WEB интерфейс отображает данные не с приложения а с БД
    - при необходимости делаете кнопку на которую вешаете запрос актуальных данных (иногда может пригодиться).
    Ответ написан
    4 комментария
  • Почему код выдает AttributeError?

    @throughtheether
    human after all
    Но там, где это должно работать (сайтик с задачками), оно не работает. Как мне переписать этот код, чтобы избавиться от этой ошибки непонятного генезиса?

    Есть подозрение, что проверка результатов в тестовом окружении реализована путем вызова метода .equals(). Поэтому сделайте так:
    1) реализуйте метод Vector.equals(self,other) в вашем классе (равен ли вектор другому вектору)
    2) в методах Vector.add(...), Vector.subtract(...) возвращайте не список, а вектор (экземпляр класса Vector)
    3) перепишите методы Vector.dot(...) и Vector.norm(...). Если они должны реализовывать скалярное произведение и норму, то почему они возвращают списки, а не числа?

    И в чем смысл этих строк, я так и не понял:self.victor = victor, вы, вроде, нигде не используете self.victor.
    Ответ написан
    Комментировать
  • Как сделать красивый вывод словарей в консоль Python?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    pprint
    Ответ написан
    Комментировать
  • Где найти хорошие спрайты для 2D игр?

    stasuss
    @stasuss
    быдлокодер со стажем
    opengameart.org
    hasgraphics.com
    kenney.nl/assets

    а вообще у художников берутся спрайты и фоны (если сам не умеешь)
    Ответ написан
    Комментировать
  • Почему так сильно подорожали аккаунты pro на российских биржах фриланса? С чем это связано?

    tin-iven
    @tin-iven
    Фрилансер до костей
    d4b3d05717394f538a0470236a5d53f8.png

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

    А теперь конкретно по FL. Как это работает - есть акционеры (Мажирин и аптекари) и руководство (Росошанский и Тараханов). Раз в полгода акционеры собираются и говорят руководству - уровень прибыльности должен быть такой. Аптекари покупали долю в у.е. и получать хотят у.е. Мажирину тоже у.е. нужны - хотя бы на танцы свои. Итак, в начале 2013 прибыль была 200 000 у.е. в месяц, а в начале 2015 стала 75 000 у.е. Акционеры говорят руководству - нужно вернуть хотя бы до 150 000 у.е.

    Как это сделать - проблема не акционеров, а руководства. И руководство начинает действовать - вводит Profi, поднимает цену Pro, добавляет закрепления и прочие мелкие платности, увольняет кучу людей штата - почти 90%! www.the-village.ru/village/blogs/business/221897-c...
    Прибыль пошла в гору. "Ф-у-у-х! Акционеры не уволят, даже премию дадут" - так думает руководство. На первом этапе это так и работает.

    Но. Что имеем с итоге: сервис теряет в качестве - не хватает людей для нормального обслуживания пользователей, кода, серверов - отсюда постоянные падения, взломы и недовольство (https://vc.ru/n/fl-off, https://vc.ru/p/fl-hacked и т.д.). Сервис становится дороже (замечу - в рублях, в у.е. остается на том же уровне или дешевле) - отсюда снова недовольство пользователей.

    Блин, так почему же эта биржа не умирает? Почему все снова идут и платят (судя по анализу количество PRO за последний год не уменьшилось, а только выросло)? А я скажу - потому что есть заказы. Не просто заказы, а много заказов. Смотрим сколько - primelance.com/analytics/. Блин, да столько же, сколько на всех остальных биржах вместе взятых.

    Итог повествования: в обозримой перспективе ничего не изменится. На FL будет много заказов - к ней привыкли, она выделяет денег на рекламу больше остальных, только она обслуживает юриков. Поэтому туда будут идти фрилансеры, будут платить дорогой Pro. Этот самый Pro будет дальше дорожать - думаю, к середине 2016 на уровне 2000-2500 рублей. Если рубль продолжит плохо себя вести - еще больше, или переведут ценник в доллар.

    Скажете, на англоязычных лучше и светлее? Нет и еще раз нет. Посмотрите ценник на том же Upwork и радуйтесь, что FL до такого еще не додумалась. Одна радость - там ценник в проектах другой, отсюда и рентабельность работы на буржуев.

    Поэтому - если вы знаете или учите английский - валите по быстрому с отечественного фриланса. Если не знаете и учить не собираетесь - радуйтесь, что FL просят 1600 в месяц с неограниченным числом ответов, а не 600 за 10 ответов в месяц, и дальше по 120 рублей за каждый ответ + 10% с каждого заказа (каждого!), как это есть на Upwork.
    Ответ написан
    8 комментариев
  • PyQt - с чего начать изучение?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    python-3.ru/category/pyqt тут достаточно для начала

    потом много на Ютубе есть, например
    https://www.youtube.com/watch?v=ZKYr9DB-Pzc&list=P...

    и еще 1-2 курса с кучей мини видиков
    Ответ написан
    2 комментария