- Регистрация
- 11.06.2015
- Сообщения
- 240
- Благодарностей
- 250
- Баллы
- 63
«Пишущий стихотворение пишет его прежде всего потому,
что стихотворение – колоссальный ускоритель сознания,
мышления, мироощущения.»
И.А. Бродский «Нобелевская лекция» 1987г.
что стихотворение – колоссальный ускоритель сознания,
мышления, мироощущения.»
И.А. Бродский «Нобелевская лекция» 1987г.
Уважаемые коллеги, данная статья посвящена некоторым вопросам автоматизации и эргономики. Первая часть статьи — это теория, а вторая часть является демонстрацией. Надеюсь, что эти рассуждения окажутся полезными для нас.
Часть 1
Пользователи ZennoPoster находятся на острие автоматизации как современной научно-технической практики. И потому сложные теоретические проблемы автоматизации так или иначе касаются нас. Что есть автоматизация в контексте среды ZennoPoster? Автоматизация – это ускорение работы (полезной деятельности) за счет многопоточности и программируемости. ZennoPoster поддерживает параллельную работу программ (ботов). ZennoPoster программирует работу, т.е. может создавать ботов. Пользователь ZennoPoster является оператором, который создает ботов и контролирует их работу.
Проблемы автоматизации наиболее явно были озвучены в работе 1983 года Лизанны Бэйнбридж «Ирония автоматизации» (см. тут и тут). Речь идет о том, что автоматизация работы может ухудшить её качество по сравнению с «ручным» выполнением той же самой работы. Это происходит из-за того, что оператор при автоматизации в силу разных факторов теряет управление ботами (утрачивает понимание кода, утрачивает понимание сути деятельности). Есть яркие примеры «операторских» техно-катастроф.
Также существует т.н. «парадокс автоматизации», который фиксирует то, что чем эффективнее автоматизированная система, тем важнее роль операторов. В этой связи возникает вопрос о том, что и как нужно автоматизировать, чтобы как минимум не ухудшать качество работы? Подобная проблема, например, возникает, когда клиент просит сделать шаблон для ZennoPoster, но сам не разобрался в том, что ему нужно автоматизировать…
Здесь введем понятие «предела автоматизации» — это максимально доступная сложность автоматизации, которая зависит от навыков оператора и средств автоматизации. Замечу, что автоматизация является ростом сложности системы: чем более автоматизирована система, тем она более сложна.
Логически можно предположить, что предел автоматизации является результатом же автоматизации (т.е. определяются возможности автоматизации работы посредством программы). Второе логическое предположение заключается в том, что предел автоматизации определяется не-автоматически, а в виде свободного выбора человека. В ряде простых случаев, когда, например, происходит что-то часто повторяющееся, то возможно автоматизировать это через подсчет того, сколько раз выполняется действие, и порога автоматизации. Здесь автоматизация задается вроде бы автоматически. Но подобные частные случаи не дают понимания того, что определяет предел автоматизации. Вопрос о пределах автоматизации остаётся открытым для обсуждения, но я постараюсь дать своё видение.
Я думаю, что предел автоматизации – это свободный выбор человека и он имеет более эстетическое содержание, чем утилитарное. Нормальный шаблон ZennoPoster является «красивым решением», которое по максимуму реализует потенциал ZennoPoster в соответствии с предметом автоматизации. Затем идут утилитарные, финансовые и другие соображения, которые обычно предполагаются «красивым решением». Можно сказать, что красивое решение проблемы связанно с чувством свободы как освобождения от сложности (Гордиев узел), а также моментами переживания связи и единства мира (проблемы как бы выражают дисбаланс мира, решая проблему мы как бы приводим мир к гармонии). Наверное, практически все творческие люди встречаются с переживанием «красивого решения» и хотели бы его повторения.
Красота парадоксальным (свободным) образом является универсальным критерием автоматизации, имея в качестве аспектов другие важные вещи. Красота «снимает» сложность автоматизации, позволяя управлять (и создавать) всей системой просто и не задумываться долго над деталями, взаимодействуя с «живым» целым. Понимание красоты в рамках технического может быть выражено как эргономичность, т.е. легкость использования.
Это большая тема – эргономическая эстетика и особенно важна в наше время, когда люди постоянно имеют с этим дело (интерфейсы и дизайн программ, гаджетов, автомобилей…). Эргономика тесно связана с автоматизацией и по сути является её аспектом. Подобных (эргономика творчества) подходов множество и одним из интересных является, например, «The Zen of Python» («Дзен Питона», или «Дзен Пайтона»).
Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила.
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, только один — очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец (шутка про Guido van Rossum - одного из первых разрабов Питона)
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
Пространства имён — отличная штука! Будем делать их побольше!
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила.
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, только один — очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец (шутка про Guido van Rossum - одного из первых разрабов Питона)
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
Пространства имён — отличная штука! Будем делать их побольше!
Таким образом, с моей точки зрения, предел автоматизации задается эргономичностью решения, удобством и легкостью для оператора. Автоматизируя по максимуму что-то, мы ищем «красивые решения» и способы провести автоматизацию эргономично. Конечно, в рамках не-предельного, обычного автоматизирования решение создается другими (более сложными) способами…
В качестве демонстрации «эргономичного» решения хочу предложить вашему вниманию свой шаблон для поиска и проверки прокси. Данный шаблон решил потребность в большом количестве бесплатных прокси для некоторых проектов, написан движок на С++ для быстрой проверки прокси под данный шаблон, в целом найден правильный подход к распределению ручной и автоматической работы (не нужно избегать интересного ручного труда, коллеги!). Не могу сказать, что данный шаблон входит в мой топ красивых решений, но я помню драйв и вдохновение, когда делал его. Может быть правильней было бы обратиться к совокупному опыту человечества и на «пальцах» показать эстетику политики, спорта или изящной словесности. Однако думаю, что любой может убедиться в том, что люди стремятся совершать красивые (не добрые, а именно красивые) поступки. Это у нас в крови…
Истина заключается в том, что истины
не существует. Это не освобождает
от ответственности, но ровно наоборот:
этика -- тот же вакуум, заполняемый человеческим
поведением, практически постоянно;
тот же, если угодно, космос.
И боги любят добро не за его глаза,
но потому что, не будь добра, они бы не существовали.
И.А. Бродский 1989г.
Часть 2
Часть 2
Не секрет, что в паблике полно годных прокси, которые сложно собирать из-за того, что владельцы ресурсов закрывают свои списки прокси капчами и кнопками перехода. В этой связи представляю шаблон для сбора и проверки прокси листов со "сложных сайтов". Сложная часть работы обрабатывается вручную, а остальная автоматически, есть «полная автоматика» для ленивых. Эргономичность шаблона предполагает возможность разных режимов работы (ручной, полуавтомат, автомат).
Требования к системе:
Windows 64 бита, было проверено на windows 10 и windows 7
Значения кнопок диалога:
Пропуск - переход на другой url без парсинга текущего ресурса;
Проверка (кнопка автозакрытия) - досрочная проверка имеющихся прокси, без посещения других url;
Далее - сбор прокси с текущего сайта и переход на следующий url ресурс;
Выход - прекращение работы шаблона без сохранения прокси.
Файлы необходимые для работы:
1.proxy.txt - сюда собираются прокси для последующей проверки
2.proxy.txt - сюда сохраняются проверенные прокси
3.url.txt - файл с источниками прокси для работы скрипта (proxy_parserb.exe), шаблон автоматически сохраняет сюда url из посещенных сайтов. Можно ручками записать свои.
4.proxy_parserb.exe - исполняемый файл скрипта для 64 битной windows
5.source_proxy_read.zp - файл шаблона
6.profile.zpprofile - файл для работы с профилем
Условия работы скрипта проверки прокси:
1. 100 потоков проверки, проверка идет через тестовые запросы к различным поисковым системам, ищутся соксы.
2. будет проверять прокси в файлах (proxy.txt)
3. будет проверять прокси в proxy.txt, если в нем больше 20 проксей.
Последовательность действий:
1. Шаблон однопоточный, поэтому всегда выставляете "Максимум потоков" равное 1
2. Если на сайтах нужно совершать действия (решать каптчу, кликать для скачивания на кнопки, выставлять параметры...), то работайте в отображенном инстансе. Два раза кликните на него.
3.Всё.
Оригинальные пути:
папка загрузки {-Project.Directory-}download\
proxy_ready.txt {-Project.Directory-}proxy_parser\proxy_ready.txt
proxy.txt {-Project.Directory-}proxy_parser\proxy.txt
proxy_parserb.exe {-Project.Directory-}proxy_parser\proxy_parserb.exe
В случае необходимости(!) можно импортировать во входные настройки файл "экспорт входных настроек, оргинал.xml", чтобы прописать оригинальные пути шаблона. Лучше ручками. Спасибо за внимание.
Скачать шаблон: https://disk.yandex.ru/d/220C2mYm8h0D_w
- Тема статьи
- Нестандартные хаки
- Номер конкурса статей
- Семнадцатый конкурс статей
Вложения
-
7,4 МБ Просмотры: 174
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование модератором: