Исповедь системного администратора (многа букаф, мат)

Discussion in 'Off Topic' started by stalke, Aug 8, 2008.

  1. Sarych.

    Sarych. Well-Known Member

    Joined:
    Oct 6, 2004
    Messages:
    3,366
    Location:
    ВАО
    То есть нельзя изучить какой-то один язык и фигачить себе роботов, облегчая себе работу?
     
  2. -rust-

    -rust- Well-Known Member

    Joined:
    Jan 23, 2000
    Messages:
    5,291
    Можно конечно если уже есть инструмент для автоматизации который позволяет работать с "каким то одним языком".
    Но вообще язык программирования это всего лишь инструмент. Изучить сам язык задача очень и очень простая (если язык не огромное нагромождение разных концепций типа С++). Больше времени зайнимает "научиться с помощью этого инструмента решать задачи".
    Скриптовых языки для сценариев вообще изучают и используют все кому не лень. Взять, например, ту же индустрию создания "плагинов/аддонов" для ММО игр, для того же World of Warcraft только популярных аддонов десятки и сотни.
     
    Sarych. likes this.
  3. -rust-

    -rust- Well-Known Member

    Joined:
    Jan 23, 2000
    Messages:
    5,291
    Или ты про то чтобы "самому писать автоматизации"? Тогда, увы, на каждую платформу как правило свой язык нужен. Скорее всего си для линуксом, C# для виндов, ObjC/Swift для мака.
    Ну и плюс все таки самому такие тулзы писать - требуется какое нибудь знание/понимание того как операционки и системы ГУИ работают. На уровне заметно так повыше чем "среднестатистический написатель Hello World"
     
    Sarych. likes this.
  4. isaev

    isaev Well-Known Member

    Joined:
    Dec 7, 2007
    Messages:
    6,169
    Интел там вроде как(по слухам) просто аппаратной копипастой знимался, а мопед вовсе не их. :)
    Хотя прикрутили они его кривовато...
    А в плане аккуратности SSE2 гораздо хуже.
     
  5. -rust-

    -rust- Well-Known Member

    Joined:
    Jan 23, 2000
    Messages:
    5,291
    хммм?
    Если у тебя тип double - то компилятор будет использовать 64битные числа стандарта IEEE-754. В принципе 80-битные возможности x87 позволяют получить выше точность, но реально задач которые это требуют очень и очень мало (ибо точность исходных данных даже double часто делает избыточным, float (32-битного представления) уже хватает.

    То есть нужно чтобы во первых задача реально требовала 80-битной точности (я сходу такую не назову), и такое требование оправдывало ощутимое снижение производительности (в ряде операций в рады, для векторизованного кода порой в 8-16 раз)
     
  6. Sarych.

    Sarych. Well-Known Member

    Joined:
    Oct 6, 2004
    Messages:
    3,366
    Location:
    ВАО
    ну да, ждать, что кто-то сделает или выделит денег на программера можно бесконечно, может самому потыркать, готов выделить на это по часу в день. Самому интересно, просто не знаю с чего начать. Никакие линуксы и маки ни на одной работе я не встречал у нас, так что среда - винда. Что посоветуешь?
     
  7. Flk

    Flk Well-Known Member

    Joined:
    Aug 21, 2002
    Messages:
    17,076
    Location:
    Izhevsk
    Для начала: какими-то языками вообще владеешь?
     
  8. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,276
    Location:
    Tomsk, Russia
    да скорее всего в любом языке есть либы, при помощи которых можно добраться до "udev" и "шины гуёвых сообщений".
    я в линухе юзаю (иногда) wmctrl, cnee, xev ну и xdotool конечно же.
    остальную "обвязку" - сам написал на bash'е. но оно сильно специализированное.

    по вендой раньше пользовался каким-то макросо-записывателем-проигрывателем. это было в далёком 2004-2005 году.

    Однако, нонешние браузерные приложения - могут вполне себе препятствовать роботизированному взаимодействию с интерфейсом. Это особенно касается игрушек - мало кто (из людей-игроков) хочет играть с роботами.
     
  9. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,276
    Location:
    Tomsk, Russia
    у меня просто "бабочки в животе летали" от предвкушения "ух, сколько тут библиотек для всего есть! как забубеню сейчас ВСЁ ЧТО ЗАХОЧУ!", когда поизучал Rust :) (не нашего -rust-, а именно https://doc.rust-lang.org/book ) и написал себе пару консольных утилит.
    https://github.com/mcgru/subimg-search
    https://github.com/mcgru/img-bri-groups

    на rust можно и под венду писать.
     
    Sarych. likes this.
  10. Sea

    Sea Well-Known Member

    Joined:
    Feb 9, 2001
    Messages:
    27,472
    Location:
    Ukraine, Kiev
    Selenium - хоть обкликайся в браузере.
     
  11. sharky

    sharky Well-Known Member

    Joined:
    Feb 9, 2000
    Messages:
    2,662
    Location:
    Prague, Czech Republic (Ex Mosсow, Ex Omsk, Russia
    Я не против этих языков, именно более высокий уровень абстракции позволяет убрать много ненужного кодинга, но и минусы тоже есть. Иногда человек привыкший к сборщику мусора в может такие перлы написать на c++. Чисто по привычке ;)

    P.S. Увы современное авто так просто уже не починить.
     
  12. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,276
    Location:
    Tomsk, Russia
    и даже тогда, когда всё отображаемое на страничке нагенерено javascript'ом?
    там нет html'я
     
  13. Relict

    Relict Well-Known Member

    Joined:
    Jan 4, 2007
    Messages:
    14,138
    Location:
    Москворечье
    Это называется "конечные автоматы". Копай на чем их создают. Теоретически можно кодить на чем угодно. Я лично развлекался на java. Видел реализацию на c#.

    PS

    https://habr.com/ru/post/682422/
     
    Sarych. likes this.
  14. Sea

    Sea Well-Known Member

    Joined:
    Feb 9, 2001
    Messages:
    27,472
    Location:
    Ukraine, Kiev
    Я там не особо погружался в детали, но внутри запускается браузер (можно даже в headless режиме) и через апи посылаешь браузеру виртуальные возюкания мышки и клики кнопок. Открыл страницу, подождал пока скрипты на ней отработают (и нарисуют тот же свой gui) и погнал кликать по странице.
    Пример функции
    Offset from Viewport
    This method moves the mouse from the upper left corner of the current viewport by the provided offset.
    https://www.selenium.dev/documentation/webdriver/actions_api/mouse/
     
  15. Sarych.

    Sarych. Well-Known Member

    Joined:
    Oct 6, 2004
    Messages:
    3,366
    Location:
    ВАО
    в школе на Бейсике написал программку-тест по истории :)
    Ну и что, вон курсы по питону - 9 месяцев и ты юниор. Не вижу препятствий для человека с интеллектом :)
    Просто пока не могу понять что нужно, найти бы разработчика таких роботов пообщаться.
     
  16. Flk

    Flk Well-Known Member

    Joined:
    Aug 21, 2002
    Messages:
    17,076
    Location:
    Izhevsk
    Если собираешься кликать по десктопному приложению, то там не сложно.
    Пример для C на winapi:
    Code:
    DWORD position = x +  (y << 16);
    PostMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, position);
    PostMessage(hWnd, WM_LBUTTONUP, MK_LBUTTON, position);
    
    Только тут одним знанием языка не обойдёшься, надо знать и как винда "под капотом" работает.
     
    Sarych. likes this.
  17. rgreat

    rgreat FH Developer

    Joined:
    Jul 19, 2000
    Messages:
    42,049
    Location:
    Russia
    Еще проще: SendInput

    https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput

    Не надо окно знать. Нажимает все глобально.

    Правда не знаю, не забанили ли эту команду уже по секюрити.
    От малкософта всего можно ожидать.

    Давно не пользовался.
     
  18. -rust-

    -rust- Well-Known Member

    Joined:
    Jan 23, 2000
    Messages:
    5,291
    Читать АПИ винды. основы сишарпа. Возможно, что придется учить Си если АПИ по созданию/внедрению событий процедурный.
    Посмотреть в девелоперских тулзах наверняка должен быть "event spy" - программка которая "перехватывает" события и пишет их в лог.
    Гуглить/искать курить как работает на винде "screen control". Для начала, естественно, как устроены сообщения винды и как пишутся элементарные программы. Потом - как "синтезировать" событие и "заинжектить" его в систему.
    Поискать на всяких гитхабах оупенсорс проекты "screen control".
    Ну и как Ргрет заметил - читать как в последних версиях системы даются разрешения на screen control, потому что это по умолчанию огромная дырища в секьюрити и по хорошему пользователь должен сначала "благословить" программу, разрешив ей такие действия.
     
    Sarych. and Flk like this.
  19. Вовочка

    Вовочка Well-Known Member

    Joined:
    Jun 16, 2006
    Messages:
    22,662
    Location:
    Бараба, РФ
    Аха...
    Я был вроде и нехуевым програмистом, но понимал, что нафига выдумывать процедуры, которые уже есть в АПИ в готовом виде.
    Но в АПИ я был дуб дубом.
    И поэтому я часто обращался за консультаций по АПИ к своем другану.
    Сергей Ерастов.
    Он наш же "птичник" sbreez(Академгородок). Хороший пилот, между дрочим. Непонятно в каких областях знаний он был тупым. Если он чего касался, то разбирался до тонкостей.
     
    Last edited: Sep 2, 2022
  20. -rust-

    -rust- Well-Known Member

    Joined:
    Jan 23, 2000
    Messages:
    5,291
    Но вообще сначала - вдумчиво поискать готовое решение. Может быть найдется даже бесплатное
     
    Sarych., Вовочка and Flk like this.