Category: общество

Category was added automatically. Read all entries about "общество".

Ротируем прокси в Python

Унылые люди из различных проектов зачем-то пытаются закрыть от нас с вами свои данные. Один из любимых способ закрыться, но сохранить реноме, что мы, дескать, открытые - закрытие через API с ограничением количества запросов или просто защита сайта через определенное ограничение запросов. Что б не делать, только б не выкладывать нормальные православные дампы.

Возьмем к примеру такой сайт как РеформаЖКХ. Государство наладило сбор данных по ЖКХ на наши с вами налоги и даже нарисовало стандарт раскрытия. Данные ценные, пригодились бы в массе приложений. Пока все хорошо. Но потом начинается, сначала данные доступны только через веб-страницы, ладно, нужно грабить-скрэйпить, это криво, но терпимо. Дальше хуже, администрация решает, что скажем запрос в секунду, это много и ограничивает их количество через капчу. Старые скрипты перестают работать конечно же.

И всё это вместо того, чтобы выложить чёртовы дампы.

Ну достаточно лирики, теперь о том, как мы будем обходить капчи и все равно граббить.

Задача: скачать странички сайта защищенного капчей.
Решение: ротирующиеся прокси (основано на этом рецепте, с небольшими изменениями порта прокси и конфига, иначе не работает).

По шагам.

1. Ставим requesocks, stem для Python (pip install requesocks).

2. Ставим Tor Browser

3. Редактируем файл c:\tools\Tor Browser\Browser\TorBrowser\Data\Tor\torrc Делаем так, чтобы там присутствовала такая секция:
SocksPort 9150 IPv6Traffic PreferIPv6 KeepAliveIsolateSOCKSAuth
ControlPort 9151
HashedControlPassword 16:05834BCEDD478D1060F1D7E2CE98E9C13075E8D3061D702F63BCD674DE
CookieAuthentication 1

9151 это порт, который открывает Tor
HashedControlPassword это захэшированное слово password, пароль который мы дальше будем использовать в коде.

4. Запускаем Tor Browser, он просто будет висеть в памяти.

5. Теперь пишем код на питоне.

Сначала импорты, понадобятся пакеты requesocks, stem, не забываем их заранее установить:

import requesocks
from stem import Signal
from stem.control import Controller

Такой запрос пойдет через прокси сделанный тором и выдаст IP отличный от нашего настоящего:

session = requesocks.session()
session.proxies = {'http': 'socks5://127.0.0.1:9150',
'https': 'socks5://127.0.0.1:9150'}

print session.get("http://httpbin.org/ip").text


А так можно эти прокси менять по мере надобности:

from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9151) as controller:
controller.authenticate(password="password")
controller.signal(Signal.NEWNYM)

print session.get("http://httpbin.org/ip").text


В принципе это все что нам нужно, теперь мы можем просто делать так:

1. Отправить запрос
2. Проверить появилась ли в ответе капча.
2а. Если да, сменить прокси, перейти к 1.
2б. Если нет, распарсить.

Работает медленнее, чем напрямую, но работает автономно.

Fake it till you make it

Дискуссии на тему "во всём виноват Запад" часто оказываются аналогичными: "У меня в гараже живёт дракон". Это название притчи Карла Сагана, которая является главой из его книги The Demon-Haunted World. Искал её на русском одним куском, но так и не смог найти, поэтому перевёл сам. А Ане спасибо за корректуру.

Оригинал: http://www.godlessgeeks.com/LINKS/Dragon.htm

"В моём гараже живет огнедышащий дракон", Карл Саган.

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

Вы говорите: "Показывай", и я веду вас в свой гараж. Заглядываем внутрь: там лестница, пустые банки из-под краски, старый велосипед - но никакого дракона.

Вы: "А где дракон?"

Я: "О, он прямо здесь", и показываю куда-то в сторону. "Забыл сказать, дракон - невидимый".

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

Я говорю: "Классная идея, но дракон парит в воздухе".

Вы предлагаете использовать инфракрасный датчик, чтобы засечь невидимый огонь.

"Здорово, но невидимый огонь не выделяет тепла."

Вы предлагаете распылить краску на дракона, чтобы он проявился.

"Хорошая идея, но он бестелесный и краска не прилипнет." И так далее.

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

В чем же разница между невидимым, бестелесным, парящим в воздухе драконом и несуществующим драконом? Если нет способа опровергнуть моё утверждение и нельзя придумать эксперимент, который бы дал необходимую информацию против, то что вообще означает утверждение, что мой дракон существует? Ваша неспособность опровергнуть мою гипотезу не является подтверждением ее истинности. Утверждения, которые не могут быть проверены, определения, которые невозможно опровергнуть, - бесполезны для постижения истины, как бы сильно они ни вдохновляли нас или возбуждали нашу тягу к чудесам. То, о чём я прошу, сводится просто к вере, без каких-либо доказательств, вере мне на слово. Единственное, что вы почерпнули из моих настойчивых утверждений про дракона в гараже, - это то, что у меня что-то не так с головой. Вы можете задуматься о том, что же убедило меня, если материальные эксперименты неприменимы. Неминуемо возникнут предположения, что это был сон или галлюцинация. Но почему тогда я воспринимаю их так серьезно? Может мне нужна помощь? Или, может быть, я серьезно недооценил человеческую способность ошибаться? Представьте, что хотя эксперименты ничего не подтверждают, вы всё равно захотите быть максимально открытым и просто отложите окончательное решение по этому вопросу. Да, текущие факты выступают против, но если появятся новые данные, то вы готовы их оценить и решить, насколько они убедительны. Конечно, с моей стороны было бы несправедливо оскорбляться тому, что вы не хотите мне верить, или критиковать вас за занудство и отсутствие воображения только за вынесение вердикта: "Не доказано".

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

Теперь другой сценарий: предположим, что это не только я. Предположим, что несколько ваших знакомых, включая людей, про которых вам точно известно, что они не знают друг друга, начинают рассказывать про драконов в своих гаражах - и везде отсутствуют доказательства. Все мы признаем, что несколько ненормально верить в такую странную вещь, не подтвержденную физическими доказательствами. Мы не сумасшедшие. Мы думаем о том, что на самом деле бы означало для человечества существование драконов, прячущихся в гаражах по всему миру. Что касается меня, лучше бы это не было правдой. Но, может быть, все эти древние мифы Европы и Китая о драконах вовсе не мифы?

Наконец-то стали поступать свидетельства появления следов драконов на муке. Но почему-то они никогда не появляются в присутствие скептика. Альтернативное объяснение кажется очевидным. Более пристальное изучение следов показывает, что их могли подделать. Еще один любитель драконов показывает обожженый палец и заявляет о том, что стал жертвой редкого физического проявления огненного дыхания дракона. Но, снова, есть и другие объяснения. Мы понимаем, что есть и другие способы обжечь палец, кроме как попасть под дыхание невидимых драконов. Такие "доказательства" - не важно, насколько серьезными их считает любитель драконов, - далеки от убедительных. Опять же, единственный осмысленный подход заключается в предварительном опровержении гипотезы о драконе, оставаясь открытым к новым данным в будущем и задаваясь вопросом, в чем может быть причина того, что столько вроде бы здравомыслящих и трезвых людей разделяют одну и ту же странную иллюзию.

Досрочное голосование и организация выборов

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

В области проходят сразу пачки выборов, у нас выбираются депутаты в Совет депутатов сельского поселения и выборы главы района. С выборами в Совет еле-еле разобрался позвонив сначала в ИК Московской области (+7495606-6351), а потом в её же "отдел по организации выборов" (+74956060742). После выяснений оказалось, что голосовать нужно не на своем УИКе, а в Муниципальной избирательной комиссии располагающейся в администрации поселения.

С главой района сложнее. Звонил в свой УИК (школа), отвечает женщина не член комиссии, ничего по досрочному голосованию сказать не может, позвать никого из членов не может (якобы они все на уроках), заявление на голосование на дому соответственно тоже принять не может (хотя оно мне и не надо).

Одинцовский ТИК на официальный телефон (+7495599-0404) не отвечает. Координатор по району от Гражданина Наблюдателя где ТИК не знает и сомневается что он вообще существует. Координатор по Мособласти от Гражданина Наблюдателя тоже где ТИК не знает.

Так и не проголосовал, обидно.

Логирование сигнала с базовых станций GSM - ПО для Android

Нас окружаются базовые станции (БС) GSM. Как правило, наш телефон одновременно "виден" нескольким. Телефон постоянно переподключается, при движении меняется уровень силы сигнала  (измеряется в dBm, децибел-миливатты).

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

Идеальная программа должна уметь:

  • устанавливать высокой частоты обновления, скажем 1 сек

  • логирование LAC, CID, даты-времени, мощности сигнала

  • логировать сразу несколько станций (соседей и текущую)

  • логировать в файл в прозрачном формате (CSV), указывать путь до места куда сохранен лог

  • логировать пользовательские засечки

Нужно логировать:

  • LAC - Location Area Code

  • CID - Cell ID

  • MNC - Mobile Network Code

  • MCC - Mobile Country Code

  • RSSI - Received Signal Strength Indication

  • ASU - Arbitrary Strength Unit (тоже самое что и RSSI, но в других единицах: dBm = (2 × ASU) - 113 ASU)


Попробовал следующее ПО:Collapse )

Жулики из Видеоинструмент.РФ (ООО Люкс)

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

17-18 ноября мы проводили большую (для нас) конференцию, 250 человек. Заказали съемку в компании ООО Люкс, она же ведет сайт Видеоинструмент.РФ. Заказали съемку 3 залов, по два дня каждый. Заказали этой компании, потому что цена была в два раза ниже, чем у конкурентов. Тем не менее, 36 тыс. на дороге не валяются.

Суть: До конференции обсуждение было достаточно адекватным и интенсивным, съемка конференции (если это были не муляжи на треногах) была проведена. А вот получить результаты съемки от этой компании мы так и не смогли.

Хронология такая:

13.11.2012 - оплачиваем съемку (наша ошибка - не было бумажного договора, только счет и оплата).
17-18.11.2012 - конференция
19.11.2012 - первая просьба от нас передать видео. Ответ:

С зала номер 8 у нас 12 кассет, ребята говорят что на оцифровку их надо порядка 13 - 15 часов. Как всё оцифруем так я сразу вам пришлю ссылки для скачивания. Общий объём получается где то 500-600 гигабайт.

21, 26.11, 02.12 - повторные, безответные просьбы отдать видео с нашей стороны
05.12.2012 - исполнитель сообщает, что заливает данные на дропбокс, но не присылает ссылку
10.12.2012 - мы просим прислать ссылку на данные для скачки
11.12.2012 - напоминаем про ссылку
13.12.2012 - ссылка наконец доходит,  мы радостно качаем, но радость быстро пропадает, скорость очень плохая, хотя мы пробуем из 3 разных мест в Москве.
21.12.2012 - 72 Гб видео качались больше недели непрерывного скачивания. Потом папка дропбокса внезапно оказалась пустой. Оказывается, они ее сами стерли так как "решили, что мы уже все скачали". Мы понимаем, что террабайт мы так будем качать год и просим предоставить нам возможность самим приехать и забрать видео на диске. Вроде бы встречаем понимание.

Мы: Добрый день. Мы не писали, потому что мы еще не докачали - 72 Гб скачивалось больше недели! А сегодня наша директория дропбокса вообще стала пустой!

Они: Это я её почистила что бы положить новое. я думала вы уже скачали и просто не успели отписать. Я сама это скачиваю за три часа, потому мне и в голову не пришло что можно скачивать так долго.

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


24.12, 26.12 - напоминания, что мы готовы подъехать
окончание декабря и весь январь после праздников - бесконечные безответные звонки по телефонам компании +7 (800) 555-25-76, +7 916 551 3011, тоже самое с письмами.
24.01.2013 - неожиданно поднимает телефон какой-то мужик и удивляется, что нам ничего не отдали, обещает в течение недели разобраться.
02.02.2013 - говорит что директор (у которой почему-то доступ к видео) уехала в Японию и будет через неделю, обещает перезвонить
09.02.2013 - не перезванивает, телефоны всю неделю не отвечают, почта тоже. Нанимаем адвоката.
15.02.2013 - адвокат посылает им претензию с предупреждением обратиться в суд, дает 3 дня
20.02.2013 - адвокат (не мы!) получает ответ следующего содержания:

Здравствуйте.
Ваши бумаги получили.

Претензия не имеет никаких судебных перспектив или еще каких-либо других.
Работы по договору выполнены, видеосъёмка произведена. Факта не выполнения обязательств нет.

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

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

Далее они сами в устной беседы с нашим представителем отказались от скачки файлов и попросили отдать материал на диске.

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

Соответственно сняв человека со съёмок мы в любом случае должны будем ему полностью оплатить его рабочее время, хотя он работать не будет а просто потратит время на поездки, что ранее не было предусмотрено.

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

28.02.2013 - никто ни с нами, ни с адвокатом не связывается
27.03.2013 - собрали пачку документов и подали в суд.

Теперь эмоции:
1. У охрененной компании Видеоинструмент.РФ (ООО Люкс) выкладывание видео на хостинг, чтобы его забрал клиент занимает месяц.
2. Охрененная компания Видеоинструмент.РФ (ООО Люкс) на полном серьезе говорит адвокату клиента, что у него нет шансов получить его видео, так как по бумагам она свое дело сделала - выполнила съемку.
3. Степень адекватности ответов на телефон и вообще на вопросы компании получившей деньги за работу даже комментировать не решаюсь.
4. Мы никого не просили приехать к нам в офис и готовы были подъехать сами куда угодно.

Еще на гислабе

Ложь, страшная ложь и открытые данные

Иногда экспертов заносит на совсем уж оголтелое отрицание реальности.


Сейчас во всех странах — и в России — принимается много норм, регулирующих раскрытие информации в формате open data.
...

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


Глупости же. Конечно же есть масса документов, учебников, нормативов, методик и т.п. описывающих и то и другое. Есть наука описывающая и "подходы и отношение". Открытые данные тут непричем. Замена слова "статистика" на "открытые данные" в выражении "Ложь, страшная ложь и открытые данные" - имеет такое же отношение к смыслу, как и оригинальное выражение. Просто FUD для конспирологов, которые не могут понять статистические методы и поэтому тайно желающие, чтобы все это оказалось ложью.

Отправляем уведомление об открытом счете (счетах)

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

Здесь по шагам как это сделать самостоятельно.

1. Для ФНС: заполнить форму № С-09-01 "Сообщение об открытии (закрытии) счета (лицевого счета)" (бланк, пример заполнения).

2. Для ПФР: заполнить форму "Сообщение об открытии (закрытии) счета плательщика страховых взносов для представления в территориальный орган Пенсионного фонда Российской Федерации" (бланк, пример заполнения).

3. Для ФСС: заполнить форму "Уведомление плательщика страховых взносов по обязательному социальному страхованию на
случай временной нетрудоспособности и в связи с материнством об открытии (закрытии) банковского счета" (бланк, пример  заполнения).

Если счетов открыто несколько, то формы выше заполняются для каждого счета. Т.о., для 2 счетов будет 6 форм.

4. Складываем все в конверты. По конверту для ФНС, ПФР, ФСС (итого 3 штуки). Если уведомлений несколько, то можно в один конверт класть оба уведомления.

5. В каждый конверт также вкладываем ксерокопию сообщения об открытии счета из банка.

6. Для каждого конверта делаем опись по форме Почты России, в описи в каждой строке указываем документ вложенный в конверт. Т.о. минимум 2 строки, если счетов несколько то +1 на каждый дополнительный счет. Вкладываем опись в конверт (бланк, пример заполнения)

7. Для каждого конверта делаем опись по своей форме, для того, чтобы на ней поставили печать на почте. (бланк, пример заполнения). Правила приема писем с описью на сайте Почты России

На почте

1. Говорим, что ценное письмо с описью, называем название фирмы
2. Незаклеенные конверты со вложенными в них бумагами и описью + свою опись даем оператору. Он:
а) сверяет содержимое конверта с описями (на самом деле ниче не сверяет)
б) ставит штамп с датой на нашей описи - возвращает ее нам
в) заклеивает конверты специальной лентой, ставит штамп "с описью" и взвешивает письмо
г) выдает чек на каждое письмо отдельно, в чеке будет название фирмы, дата, цена и т.п., храним чек и опись с печатью.

Стоимость одного письма - 100р.


Выгрузка всей БД из красной книги IUCN

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

Начало: 1, 2, 3

Администраторы баг так исправить и не смогли, то что мне передали в качестве их "ответа" - чушь полная про то что типа Excel столько записей не открывает. Причем тут Excel я не понял, может они вручную генерируют CSV через Excel? В общем лажа.

Но они сподобились как-то сгенерировать таки полный список, 80430 видов. Это кстати больше чем пустой запрос, по нему выдавало около 50000.

Он тут: http://api.iucnredlist.org/index/all.csv

На вопрос можно ли распространять ссылку и будет ли она автоматически обновляться они пока не ответили.

На всякий случай сделал копию на 6 июня 2011 у себя: http://m-d.me/data/all_2011-06-06.7z
Судя по изменению размера файла - он не обновляется.

промежуточный ответ от ФСС

Получил промежуточный ответ от ФСС, что они переправили запрос в областное региональное управление, зачем, непонятно, как будто правила разные для разных областей. Ответили 14го по почте, которая пришла 19го. Письмо я отправил 2го, получил ответ что "получено" 4го.

Под катом сам отлуп. Жду дальше.

Collapse )

Дублирующиеся переменные в Maxent

Эксперимент: Берем переменную (e) и создаем ее копию, смотрим как меняется вклад её, её дубля и остальных переменных.

VariableC1P1C1P1C2P2
a3.16.6 3.16.9 3.17.4
b45.142.1 4543.8 45.146.6
c3.30.8 3.40.9 3.40.9
d25.824.7 25.725.8 25.827.4
e22.725.7 21.521.6 2114.5
e2-/--/- 1.21 1.62.3
e3-/--/--/--/- 0.11

Таким образом, копия переменной на результат, судя по вкладу и PI практически не влияет. Jackknife показывает похожую картину (под катом). Никакого влияния на другие переменные. По сути относительно исходного меняется только показать "без переменной", что логично, так как другие то ее копии остаются.

Collapse )