Скриншот-ориентированное программирование

Авторы этого чуда, Sikuli Script, (чуваки из MIT, вроде, кстати) утверждают, что теперь каждый хомячок, если не шутка, конечно, сможет стать суперзвездатым программистом, скармливая просто скриншоты того, что ему надо сделать на компьютере! По ссылке длинное, не весёлое видео без нямок, но какова концепция, а.
 в фейсбук
 в твиттер
вы смотрите все комментарии
У нас давно уже такое, только скриншоты присылает заказчик, а пытаются понять хоть что–нибудь программисты :–)
будучи программистом, я начинаю понимать чувства, которые испытывают оперные певцы, просматривая канал MTV.
Иными словами, мне действительно обидно, что данную чушь называют программированием. Ничего общего с программированием данное видео не имеет.
Via_Lactea: MIT, не MTV, в посте же написано!
бля, сиди только плей нажимай — лафа. Никпо не показывайте…
Класс — это написала эта штука, не я. Вот прогресс бля. Скоро вообще писать не буду.
Shir_man: RTFM. For Windows Platforms use Click instead of DblClick.
Можно попробовать сливы на dirty автоматизировать. Или просто карму на ночь всем поставить плюсовать :)
MarvinHeemeyer: а еще можно заставить скрипт копировать самого себя и слать по почте из записной книжки, получится лоховирус.
Скармливая скриншоты среде разработки этого скрипта, конечно. Я как тру–программер сам не пробовал, но если кто рискнёт будет интересно.
MarvinHeemeyer: написание скриптов автоматизации это теперь крутое программирование?
DEHiCKA: irony же )
Сцыкули–скрыпт [x]
MarvinHeemeyer: вот даже не смешно. На видео тупое перетаскивание иконок виджетов и докарябывание ручками чего имеется в виду.
Чем от QT отличается — не понятно.
alderina: хехе, в том–то и фишка, что тупое ;)
Qt — это нечто совершенно другое, поверьте мне, как человеку имеющему к нему отношение.
alderina: Каких иконок? А настройки IP тогда что? Найти поле и вбить в него значение. Я так понял, что неважно, какое приложение запускать.

Это смешно уже по тому, что капчам на сайтах слегка подурнеет от такого подхода.
AY: запрограммируете в скрипт все возможные написания капчи? и заставите вбивать 9999999 значений, пока не попадется правильная?
staypoh: хинт — существуют сторонние программы распознавания капчи
MarvinHeemeyer: ну а при чем тут программирование? Я вижу еще одну реализацию инструмента для автоматических тестов, ну или для прохождения занудных "визардов" при частых инсталляциях и настройках чего–либо. Это не говоря о том, что "невесёлое" пишется в данном случае слитно, запятая слева не нужна и т.п.
БУЛЛ ШИТ!

Вау супер круто! Гениально, скрптовый двиг отыскивает на экране квадрат похожий на вставленый и кликает.

1. "не юзает API" — оно однозначно юзает API что бы кликнуть в той области экрана
2. почему при том что заявлено скриншотоориентированое программирование, я должен настройки открывать таки кодом? Писать ручками строчку?
3. почему бы тогда просто не писать кодом имя кнопки — а двиг бы искал такую надпись на экране,
или же писать имя_окна–имя_кнопки и тогда бы двиг искал бы квадрат смахивающий на окно с капшином, и внутри квадрата что то похожее на кнопку?
4. почему бы не просто отслеживать движение мышки, делать реальные полные скриншоты, анализировать их в поисках окон и кнопок и полей, и следить куда тыкает пользователь, после чего генерить автоматически скрипт?


Прочитав заголовок я думал что эта скрипт система анализирует последовательности скринов и генерит скрипт,
а в итоге такая херня.
Zakus: а вам бы всё и сразу.
хм.. интересно, а долго эту прогу допиливать чтобы она выключала звук когда на экране тв возникает медведев, путин или рекламный ролик начинается? :
gaara: а еще варила пельмени или делала эротический массаж.
christmas: ага,
get(8===э)
do {
fap(8===э)
} while(8===э–––*)
блин, отладить забыл..
gaara: заебало?
gaara: я туда не поеду, там Гена! ©
gaara: Ну зайдите же в хелп к ней, там все есть.. И даже это.

AY: запускать винду только для того чтобы хелп к ней почитать — влом :
gaara: Вобщем, как и я — не смотрел, но осуждаю.
gaara: она вроде пашет везде, где есть джавка, даже на микроволновке, по идее
gaara: Хелп у них на сайте. Линк в посте.
Класс — это написала эта штука, не я. Вот прогресс бля. Скоро вообще писать не буду.
Боже, какой нечеловеческий, дикий, леденящий кровь в жилах МАРАЗМ. Мало было лихих идиотов, которые программно находили нужные пункты меню и нажимали кнопки по их имени с помощью апи? Мало слёз было пролито пользователями, которые после установки сервис–пака обнаруживали, что название какой–нибудь кнопочки в настройках поменялось и индусская программа перестала её находить?

Мало было мороки с двумя блокнотами, Windows\Notepad.exe и Windows\System32\Notepad.exe — поскольку люди жёстко прописывали в приложение путь к нему?
Мало было приложений, печатающих сохранением в файл и последующим программным кликом по нему мышью с выбором пункта "Print" (приложений, не работающих на локализованных виндах, поскольку там "Print" называется "Распечатать"!)

И вот, давайте искать по скриншоту. А если завтра поменяют иконку, название кнопки, переведут на другой язык, выберут другое представление иконок (Thumbnails), другую цветность — то всё полетит. Но разве индусов это волнует?
himself: О боже, а если ты пересядешь за другую OS?!
AY: Смена языка и сервис–паки — это не совсем другая ос. Никто не ждёт, что приложения из винды будут работать в линуксе (да, да, забудем вайн). Но вот если приложение, работающее в английской винде, не работает в русской, или не работает после установки какого–нибудь хотфикса — это неприятно удивляет.
Не, ну вообще… Перфокарт на них на них нету, иродов.
Лучшая скриптелка такого рода с которыми я пробовал это, это AutoIt. Правда в ней нет такой гуёвой тыкалки, зато язык несложный и есть масса самплесов.
shocker: гуёвая тыкалка[x]
shocker: да. Auto–it это мулька на которую автоматизаторам–тестерам молиться и молиться. благодаря этой Auto–it мы совершенно официально и легально резались в каунтер–страйк на работе по шесть часов кряду: хуле, тесты–то бегут, вот они, пожалуйста:..

и ничего нам за это не было: в случае если софтина менялась, кроме нас отладить скрипты–автотестеры всё равно было бы некому. Так я целый год просидел играя в кс за зарплату.
shocker: nncron–ом тоже можно.
shocker: гуёвая тыкалка там присутствует, ты чо. да и гуёвая рисовалка для интерфейсов скриптов тоже — Koda
вообще скриншот–ориентированное программирование это как раз то чем моя предпоследняя контора занималась: три отдела по сорок человек усердно монстрячили хреновину, которая не работала ни разу за шесть лет строительства, но зато отлично выглядела в буклетах, которые носили инвесторам
Панове, раз тут так много "скрипачей" собралось, может кто подскажет альтернативу Wise InstallMaster, также умеющего делать захват инсталляции с автоматическим созданием нового скрипта? чтобы и перезагрузки системы чувствовал, и изменения вплоть до сервисов и версий драйверов… и чтобы имел, свой(любой) внутренний язык с вызовом DLL. А?
Stavr: прогу с такими наворотами нужно в ином интернете искать…
По ссылке не ходил, но из обсуждения понял, что это автоматизация рутинных действий с ГУИ. Вещь избитая. Почему этим МИТ занялся только сейчас, непонятно.
alex394053: Sikuli Script can be used to perform desktop surveillance. In this tutorial, we will go through a number of exercises to create scripts that can monitor the screen and notify us when certain interesting visual event happens.

Она может караулить "событие на экране" — например статус у человека в Skype поменялся на "зеленый" и начать выполнять определенные действия. Можно к примеру следить за счетчиком и когда он достигнет нужного значения сделать нужное действие.

размер 500x375, 18.71 kb

e–t–o: а что побудило Вас в двухнедельной давности пост положить эту фигню?:)
Via_Lactea: стопудово тренировался человек с тегом img, размещая картинку с неидентифицируемой фигнёй в старом утонувшем посте :)
Senokossov: Нет, это на самом деле такой тайный знак.
e–t–o: Вас понял, выезжаем.
Gamberro:

размер 468x315, 18.63 kb

Ура, товарищи! Посмотрев этот чудо–ролик, меня не покидает стойкое ощущение, что близок все–таки тот час, когда наши доблестные программисты изобретут вожделенную чудо–кнопку "сверстать заебись".
paradox222: ага, после чего со свёрстаным ты будешь ебаться до конца своих дней и выучишь хинди.
alderina: тогда ещё вторую кнопку: "Переверстать"
shocker: ага и обе кнопки сделать круглыми, выпуклыми и розового цвета.
Это ж как же надо через джёпу написать пользовательский интерфейс, чтобы пользователю приходилось взаимодействовать с ним, ваяя скрипт, да ещё и вклеивая в этот скрипт скриншоты…
Gamberro: Обычно такие вещи делаются раз и навсегда. А если надо туда лазить все время — два варианта — батник в Unix командами или вот такое "программирование".
AY: Какие такие вещи? Что такое необходимо решать пользовательским программированием, что никак не может автоматизировать автор программы?

Батники? Бррр. Это уже в досе было страшное зло. Но при этом находились умельцы, которые писали батники на 8 экранов.

Всегда считал, что GUI и эргономику интерфейсов придумали именно, чтобы вот так не ковыряться. Сам во времена DOS+NC писал для себя графический интерфейс с иконками — потом оказалось, Windows существует.
Gamberro: Да хрен знает для чего может понадобиться менять настройки IP каждый день. Но вот OS X из данного примера способов сделать это средствами самой ОС как минимум два.
AY:

>для чего может понадобиться менять настройки IP каждый день

во многих сетях по сих пор не используется dhcp, например из–за того что "так заведено", или же из–за того что некоторые умники иногда вставляют в lan–порт своего роутера кабель от провайдера, чем доставляют кучу неудобств.

Gamberro:

скрипты — не зло. Тем более что вы говорите про bat, тогда как разговор идет совсем о другом (unix), да и в win–системах давно уже есть более гибкое средство автоматизации — vbs.
Очень веселая штука! Запрограммировал кликнуть на ярлык, а сам ярлык потом передвинул в другое место подальше — нашла! Мне нравится! Интересная функция: ожидание появления на экране определенной картинки (статус в мессенджерах, например), чтобы потом выполнить необходимое действие.
Jimie, поменяй у «ярлыка» иконку и название — найдет?
genn: нет. :)
Jimie, т.е. написать скрипт (не программу, это не программирование), который откроет определенное окно и, если в выпадающем списке не то значение, которое нам нужно, выберет нужное, невозможно. Удобно.
genn: но ведь если в выпадающем списке нету нужного нам значения, то зачем тогда вообще там что–то выбирать?
Jimie, когда выбираешь что–то в выпадающем списке, он начинает выглядеть как выпадающей список с другой надписью. Допустим, у нас есть выпадающий список, в котором в данный момент может быть выбрано, что угодно.


Нам надо, чтобы в этом списке всегда выбиралось Fuck off. Поскольку, как и в случае с ярлыком, он узнать список не сможет, выбрать Fuck off он тоже не сможет, потому что не будет знать, где выбирать.
genn: понял. Но ведь можно сделать скриншот этих двух маленьких стрелочек. А если выпадающих списков несколько, то в программе на этот случай предусмотрен поиск кнопки возле другой кнопки. То есть, вы делаете скриншот, например, заголовка этого списка и скриншот стрелочек. И пишете простую строчку, где указываете что стрелочки следует искать прямо под заголовком. Так же можно задать область любого размера на экране, где будет происходить поиск вашей картинки.

В общем, с помощью простых инструментов, можно найти выход из вышей ситуации.

Подробнее вот тут. Принцип тот же.

По моему, хорошо придумали!
Jimie, а по–моему сложная тупая фигня, сложнее Automator'a и бывшего еще в Windows 3.11 записывальщика макросов ;)
genn: может быть и так. Но мне, как обычному пользователю, который до этого лишь понаслышке слышал о скриптах, очень забавно. :)
Jimie, приятно поразвлекаться ;)
Полезно будет для автоматизации каких–то вещей в непопулярных программах, где не реализован скриптовый метод. Ну или да, развлекуха для чайников.
мне вот интересно, изменение параметров отображения экрана влияет на выполняемость скриптов? а размер шрифтов? а машинка в конце концов?… Если нет, то нахер весь этот цирк со скриншотами? Самый древний, кандовый скриптер с поддержкой Spy++ не сложнее а работает, как укуренный. Мой 11 летний сын с одноклассниками, под одним из таких(не помню названия), себе уже давно скрипты для онлайновых прокачек пишут.
Stavr: мне кажется, что они использовали какой–нибудь алгоритм распознавания образов, делают скриншот всего экрана при выполнении скрипта, находят прямоугольник, где наблюдается похожий элемент, ну и "нажимают" как–то туда.
MarvinHeemeyer: кто знает.. но такие алгоритмы довольно дорогостоящие в готовом виде, и трудоёмки для реализации, но в любом случае они не годятся для такой задачи. Подумайте: могут быть разные темы установлены, всевозможные шрифты… работа созданного решения не будет гарантироваться даже на той машине, где "записывалось"(в терминах макросов)
Stavr: студент MIT вполне мог бы за семестр написать реализацию такого распознавания :)
Да, на другой машине с другой осью работать, скорее всего не будет, да и если просто набор иконок поменять(в Gnome запросто), то, конечно ничего не выйдет. Чудес не бывает. Но, думаю, изменение разрешения оно осилит. Надо попробовать а общем.
В экселе есть функция записи макросов. Полезная штука, но особо серьезного не сделаешь все равно.. Будет очень удобно если она одновременно будет транслировать на язык какой нибудь.
ilshatkin: Запись макросов помогает быстро найти нужный метод
Забавная штука, но при чем тут программирование?

Кроме того, оно распознает визуально (а как иначе?), значит если у нас в выпадающем списке будет выбран другой пункт — не узнает. Очень круто! «Программирование» сверхвысокого уровня.
genn: сами авторы назвали это picture–driven programming.
Что–то мне подсказывает что то же самое можно сделать без скриншотов в разы быстрее.
qik: Один раз — конечно! Но так в ролике ж говорилось, что в случае многократного повторения набора действий сие становится удобным.
Ура, товарищи, настал тот великой день, когда на хабр тащат с dirty, а не наоборот! http://habrahabr.ru/blogs/ui_design_and_…
хоть бы инвайте поделились
MarvinHeemeyer, не обижайся, но я за неделю или около того читал об этом на реддите.
genn: реддит не считается :) Да, надо полазить там, кстати, давно что–то не заходил.
Топик, видимо, собрал не мало программистов–скриптовиков. Стоит ли говорить, что данная програмулина нужна не для этих самых, а для обывателя, который скрипты в их каноническом виде в гробу видал, но хочет получить определенную недокументированную автоматизацию. Всего лишь упрощение решений простых задач для персонального пользования.
Что–то наподобие я юзал для установки программ (не считать за рекламу). Только еще проще. А так… слишком медленно и не спортивно.
Не знаю что там с полезностью скрипта, но после того, как коментатороша в третий раз сказала "сикъюли скрыпт", мне суканах захотелось проломить ей голову. Бежать к врачу или я особенный?
все это очень практично… а если у меня два мака с разным разрешением экрана? два скрипта клепать? ;)
Jango: я думаю, разрешение экрана он осилит, здесь именно распознавание образов. Разные иконки и темы оформления, да, вряд ли.
Такая же штука применялась на Шаттлах при взлете. Сейчас версия постабильней немного, но отладка до конца не завершена. ;)
эту хрень они не для людей разрабатывают, а для роботов. которые потом смогут взаимодействовать со всякими подобными кнопками не только на мониторах.