emergency
22:22 26-11-2015 размышляя о роботах, работающих на компьютерах, в фантастике
(да и о людях, на самом деле)

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

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

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

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

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

Впрочем часто и для человека тоже)
Комментарии:
стикер
23:35 26-11-2015
нет, это не логично

Каждый может подключиться "напрямую к проводкам", но от этого образуется т.н. object orgy, когда все как попало дёргают шаловливыми ручками за проводки и например, какие-нибудь функции, которые полагается запускать последовательно, будут выполнены впараллель, что приведёт к преждевременному застёгиванию объекта отряхивания с последующим нарушением сегментации и прочим весёлым последствиям. Чтобы последствий не наступало, нужно не только руки распускать, но ещё и разбираться в коде, читать все эти тыщи строк недокументированного кривого говна костылей за тысячи срочно-человеко-лет слежавшихся в отложениях гита, а это геморщина никому не нужная и поэтому все твои искуственные интеллекты роботы пришельцы будут кнопки нажимать как миленькие, или коннектиться через стандартный вайфай по стандартному хттп, и никто не будет инкапсуляцию нарушать.
emergency
23:39 26-11-2015
чтобы функции не запускались в параллель - нужно не запускать их в параллель
только и всего

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

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

значительно проще, если сигнал робота трансформируется в сигнал кнопки\тачскрина без лишних механических звеньев
-

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

отличие в механике которая есть "шум"
стикер
00:10 27-11-2015
> чтобы функции не запускались в параллель - нужно не запускать их в параллель
только и всего

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

например, у тебя кофе-машина
ты нажал кнопку "сделайКофе"
оно тебе в ответ "ок"
берёшь чашку а там кофе нет
почему?
и тут слышишь кофе полилось мимо
оказывается, "ок" означало не "кофе готов"
а "приготовление кофе успешно начато"
и надо было подождать пока он приготовится
потому что это асихронный кофе на nodejs

нахрена делать асинхронный кофе
вы чё дебилы???

клиент сказал он хочет отдыхать пока кофе готовится
значит
надо чтобы отдых и кофе можно было запускать параллельно
и поэтому кофе запускается параллельно, а не последовательно
и не блочит ожиданием поведение клиента
который может отдохнуть пока готовится кофе
а сколько готовится кофе?? кстати
сколько надо подождать?
40 сек? или 41? или 50 мл??
(читает код, матерится)
аааааа, вот!
оказывается, там типа сообщение посылается что кофе готов
и нужно настроить каллбэк куда приходит сообщение
как его настроить? а нет документации
программистам сказали СРОЧНО ДЕДЛАЙН
поэтому надо открывать опять исходники
читать
может, даже отладчик запускать
и вот эврика
оказывается там надо так написать

сделайКофе(рецепт.Каппучино).когдаГотов(каллбэк() (
  положитьОдноНаДругое(корица, кофе)
)))

блять нунаконецто кофе!!!
сука!!!!!!
я 2 часа ебался с вашей CoffeeMaker
с вашими атомарными корицами
со стекированием одного на другое
какие же вы криворукие мартышки
почему всё пять через жопу
да кто так пишет
дебилы блять

уфф нервы

а теперь представь что ты робот
и все страдания злость боль лень human программиста читающего плохо структурированный, неотрефакторенный говнокод красными глазами 2 часа тебе в мозг за 0.2 сек !!!ПИУ!!! вспышка красная в глазах, боль

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

проще кнопочки нажать
нажал и вот тебе кофе
emergency
00:16 27-11-2015
>ага, ты такой простой
>чтобы быть уверенным в том, что функции запускаются именно последовательно, нужно в этом >удостовериться, а чтобы в этом удостовериться, надо читать код

нет разницы нажимаешь ты кнопки или отправляешь сигналы
чтобы быть уверенным что ничего не запускается параллельно - надо читать код

отличие только одно - делаешь ли ты механическое движение кнопкой или нет
стикер
00:17 27-11-2015
читать код ОЧЕНЬ тяжело
говорю тебе как программист
никто за чашечку кофе этого делать не будет
emergency
00:18 27-11-2015
ещё раз повторяю

даже когда нажимаешь кнопки - чтобы быть уверенным что ничего не запускается параллельно - надо читать код
нет никакого отличия

ты понял, что я только что написал два раза подряд?
стикер
00:19 27-11-2015
для примера: есть программа на языке А, её нужно перевести на язык Б
хороший программист может перевести всего 100 строк в день

размер типичной программы где-то 20 тысяч строк
emergency
00:20 27-11-2015
мне третий раз повторить?
emergency
00:25 27-11-2015
и, для справки: я не программист, но я знаю программирование
я учился на программиста
плюс в игровом дизайне (конкретно - в написании скриптов) базовое программирование требуется. я работал игровым дизайнером-скриптовиком

у меня есть представление, что это такое
стикер
00:47 27-11-2015
я просто ответил второй коммент, не дождавшись твоего коммента
извини

окей, продолжаем

> даже когда нажимаешь кнопки - чтобы быть уверенным что ничего не запускается параллельно - надо читать код

Да ладно. Вот айфон. Есть инструкция для юзера -- тоненькая книжечка формата А6. Есть референс для программиста -- несколько книг где-то на 300 страниц А4 каждая. И есть исходный код, в котором миллионы строк + тысячи специалистов, которые помнят, где забиты какие костыли и почему именно там они забиты и они именно такие, и какие истории вызвали такие решения.

Ты кнопочку нажимаешь на айфоне, тебе не нужно ничего читать, потому что происходящее на экране косплеит реальные предметы, которые для всех людей одинаковые. Нажал кнопочку, ответ всегда будет подан тебе на один и тот же экран, в одни и те же твои глаза и анимации будут те, к которым ты привык и на этих анимациях будут знакомые тебе кнопочки, менюшки, перетаскивания, рамочки, тени, короткие фразы... а в коде всегда сюрпризы. Ты функцию вызвал, а ничего не происходит, зато есть (наверное) некое внутреннее состояние a.k.a side effect (это не пейоратив, а термин, см. википедию), которое как-то там молча изменилось и тебе теперь надо найти а) где это состояние находится и б) чем это состояние считать, а так же с) не произойдёт ли от считывания этого нужного тебе состояния молчаливое изменение какого-нибудь ещё другого состояния где-нибудь ещё. И это как бы, не кривые руки, это повсеместно и норма, потому что в коде реальность не косплеят, и каждый разраб пишет так, как ему вздумается. По этой причине нажимание кнопочек руками всегда будет проще, чем нажимание кнопочек скриптами.
emergency
00:53 27-11-2015
ты всё равно не понял то, что я написал два раза
перечитай ещё раз пожалуйста и подумай о том, что я написал
я не могу разговаривать, если ты не понимаешь того, что я пишу

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

пишу тоже самое третий раз:
(это совсем не сложно, тебе надо просто прочитать и подумать)

что делает кнопка - она отправляет сигнал
больше она не делает ничего
нет никакого отличия - ты оправил сигнал из кнопки или тот же самый сигнал в тот же самый контакт откуда-то ещё
стикер
01:12 27-11-2015
emergency

> я не программист, но я знаю программирование

ты не знаешь программирование

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

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

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

--

знаешь, это всё равно что я сейчас скажу :
я знаю русский язык и прочитал 50 статей на tvtropes.org
значит ясценарист
сейчас возьму и напишу 100500 сценариев за год
у меня хватит фантазии
ведь это дизайнеру рисовать надо уметь
а текст набирать любой может
там ничего сложного
emergency
01:13 27-11-2015
обожемой
пяткой в грудь, да
стикер
01:15 27-11-2015
emergency

но если хочешь разговаривать со мной - таки отвечай на то, что написал я

Между устройствами ввода\вывода и остальной машиной очевидно есть какие-то провода\передатчики. Ну то есть должна же клавиатура как-то связываться с процессором.
И логичнее всего - снять кнопки и там пускать электрические сигналы уже просто в передатчик.


к твоем сведению, в клавиатуре тоже процессор
который связывается с процессором который в компе по особому протоколу
и если ты пошлёшь в "передатчик процессора" код ручками
учи протокол взаимодействия клавы и компа
читай спек
стикер
01:16 27-11-2015
emergency

> пяткой в грудь, да

почему пяткой в грудь? не вижу никаких поводов для гордости
скорее, наоборот
сам тысячу раз делал все те косяки, о которых написал
emergency
01:17 27-11-2015
четвёртый раз повторяю:
ну есть процессор, и что?

кнопки отправляют сигналы этому процессору
нет никакого отличия от кнопок эти сигналы идут или от чего-то ещё

я говорю о том, чтобы избавиться от механической части, как от "шума"
стикер
01:17 27-11-2015
ура, пошла конкретика)
emergency
01:18 27-11-2015
я просто четыре раза повторил то, что уже было и так написано в изначальном посте
стикер
02:26 27-11-2015
emergency

Рассмотрим простую схему. Есть кнопка, в неё приходит один провод из проца, другой провод уходит обратно в проц. Когда кнопка нажимается, проводящая деталь механически опускается и замыкает цепь. Так работает клавиатура производителя №1. А клавиатура производителя №2 сенсорная, там когда некто касается пупырышка пальцем, он прибавляет своё тело к конденсатору. Принцип уже совсем другой. И так как производителей клавиатур у нас много, то чтобы "выстреливать маячком ретранслятором (возможно + шифровальщиком) рядом с компьютером" и дальше "пускать электрические сигналы уже просто в передатчик", девайсу надо будет будет автоматически лезть на какой-нибудь местный аппстор и установить оттуда "дрова" для передатчика-шифровальщика. Всё это отлично по идее должно работать, если бы не одно но:

Предположим, что это инопланетный компьютер, и в нём нет стандартных разъёмов. Но в нём всё равно есть устройства ввода (клавиатура, тачскрин, мало ли что ещё) и устройства вывода (монитор, проектор).

Раз стандартных разъёмов у нас нет, то аппстор для хипстеров тут же превратится в гитхаб для прыщеблядков. А раз гитхаб, то искаробки не подымется, и автоматически не заработает. Надо будет править конфиги, а эта одна из тех активностей, которую простой робот вася хочет прекратить как можно быстрее. У васи будет выбор: либо палец, нажимающий на кнопку (верхний уровень пирога абстракции, где всё просто и понятно для тупых), либо нижний уровень пирога абстракции -- "пуляние электричеством" в некие провода, по которым идут некие данные по некому протоколу, придуманному некими программистами, которые, как я уже сказал, городят костыли и портят этим весь plug-n-play. Разумеется, вася выберет палец.

Поэтому никакого универсального мозгодоступа не будет до тех пор, пока не будет стандартных разъёмов для подключения мозга. Типа... иконка brainport на корпусе девайса означает, что можно бабушкину клаву отложить и подключиться по модненькому мозговайфаю через модненький мозгоклиент, которым пользуются все поцоны, и всё это будет стандартизировано, разрекламировано, будет много где, но как сказали в комиксе xkcd, добавление самого лучшего стандарта, призванного заменить остальные 12 стандартов даёт 13 стандартов, а не 1. И значит, даже тут клава остаётся.
emergency
02:31 27-11-2015
ок. ты считаешь, что сделать механизмы, каких-то нанороботов, которые бы сами заменяли собой кнопки и тасчкрины, избавляясь от механической части - это сложно и не стоит того

я считаю, что в каких-то случаях да - не стоит
а в каких-то - нет, стоит
стикер
02:39 27-11-2015
emergency смотря кто юзер этих механизмов и наноботов. Если это кибер-спецназ или хакеры или какие-нибудь инженеры, которым нужно набрать пин-код на подводном банкомате, из которого вытекает нефть то да, как раз что доктор прописал.
emergency
02:41 27-11-2015
да